diff --git a/app/api/controller/CompanyController.php b/app/api/controller/CompanyController.php index be8d4fc60..9be5a3974 100644 --- a/app/api/controller/CompanyController.php +++ b/app/api/controller/CompanyController.php @@ -75,13 +75,13 @@ class CompanyController extends BaseApiController } $company['company_type_name'] = Db::name('dict_data')->where('id', $company['company_type'])->value('name'); $company['day_money_count'] = UserAccountLog::where(['company_id' => $company['id'], 'action' => 1])->whereDay('create_time')->sum('change_amount'); - $users = Admin::where('id', $company['admin_id'])->field('id,name,account,phone,qualification')->select()->toArray(); - foreach ($users as &$user) { - $user['is_main'] = $user['id'] == $company['admin_id'] ? 1 : 0; - $user['qualification'] = $user['qualification'] != null ? json_decode($user['qualification'], true) : []; - unset($user['role_id'], $user['dept_id'], $user['jobs_id'], $user['id']); - } - return $this->success('success', ['contract' => $contract ?? [], 'company' => $company, 'users' => $users]); + // $users = Admin::where('id', $company['admin_id'])->field('id,name,account,phone,qualification')->select()->toArray(); + // foreach ($users as &$user) { + // $user['is_main'] = $user['id'] == $company['admin_id'] ? 1 : 0; + // $user['qualification'] = $user['qualification'] != null ? json_decode($user['qualification'], true) : []; + // unset($user['role_id'], $user['dept_id'], $user['jobs_id'], $user['id']); + // } + return $this->success('success', ['contract' => $contract ?? [], 'company' => $company]); } public function areaManager() @@ -112,8 +112,8 @@ class CompanyController extends BaseApiController $count = $query->count(); $users = $query->order('id', 'desc')->page($page)->limit($limit)->with(['company' => function ($query) { $query->field('id,company_name'); - }])->append(['province_name', 'city_name', 'area_name', 'street_name']) - ->field('id,avatar,real_name,account,mobile as phone,province,city,area,street,company_id,qualification,nickname,is_contract,is_captain') + }])->append(['province_name', 'city_name', 'area_name', 'street_name','village_name','brigade_name']) + ->field('id,avatar,real_name,account,mobile as phone,province,city,area,street,village,brigade,company_id,qualification,nickname,is_contract,is_captain') ->select()->each(function ($item, $key) { if ($item['qualification'] != '') { $item['qualification'] = json_decode($item['qualification'], true); diff --git a/app/api/logic/LoginLogic.php b/app/api/logic/LoginLogic.php index fe702103f..42a7a49c1 100755 --- a/app/api/logic/LoginLogic.php +++ b/app/api/logic/LoginLogic.php @@ -81,7 +81,7 @@ class LoginLogic extends BaseLogic 'area'=>$params['area'], 'street'=>$params['street'], 'village'=>$params['village'], - 'brigade'=>$params['brigade'], + 'brigade'=>implode(',',$params['brigade']), 'address'=>$params['address'], 'qualification'=>json_encode($params['qualification']), 'company_id'=>$params['company_id'], diff --git a/app/common/enum/user/AccountLogEnum.php b/app/common/enum/user/AccountLogEnum.php index 3d6346d05..1497dd759 100755 --- a/app/common/enum/user/AccountLogEnum.php +++ b/app/common/enum/user/AccountLogEnum.php @@ -53,6 +53,7 @@ class AccountLogEnum */ const UM_INC_ADMIN = 200; const UM_INC_RECHARGE = 201; + const UM_INC_TASK = 202; /** @@ -108,6 +109,7 @@ class AccountLogEnum self::UM_DEC_ADMIN => '平台减少余额', self::UM_INC_ADMIN => '平台增加余额', self::UM_INC_RECHARGE => '充值增加余额', + self::UM_INC_TASK => '任务增加余额', self::UM_DEC_RECHARGE_REFUND => '充值订单退款减少余额', ]; if ($flag) { diff --git a/app/common/logic/CompanyLogic.php b/app/common/logic/CompanyLogic.php index 9b23ae049..7f52f2f7c 100644 --- a/app/common/logic/CompanyLogic.php +++ b/app/common/logic/CompanyLogic.php @@ -70,7 +70,7 @@ class CompanyLogic extends BaseLogic 'other_contacts' => $params['other_contacts'], 'area_manager' => $params['area_manager'] ?? 0, 'qualification' => $params['qualification'], - 'admin_id' => $params['admin_id'] ?? 0, + 'admin_id' => 0, 'level_one' => $level_one, ]; $data = Company::create($arr); @@ -96,7 +96,8 @@ class CompanyLogic extends BaseLogic $admin['nickname']=$params['master_name']; $admin['mobile']=$params['master_phone']; $admin['phone']=$params['master_phone']; - User::strict(false)->insert($admin); + $user_id=User::strict(false)->insertGetId($admin); + Company::where('id',$data['id'])->update(['admin_id'=>$admin_id,'user_id'=>$user_id]); // if ($level_one > 0) { // $contractId = self::contract($data['id'], $params); // } @@ -155,8 +156,10 @@ class CompanyLogic extends BaseLogic Admin::strict(false)->where('account',$account)->update($admin); $admin_id=Admin::where('account',$account)->value('id'); + $user_id=User::where('account',$account)->value('id'); $arr['admin_id']=$admin_id; + $arr['user_id']=$user_id; Company::where('id', $params['id'])->update($arr); $admin['admin_id']=$admin_id; diff --git a/app/common/logic/finance/ShareProfit.php b/app/common/logic/finance/ShareProfit.php new file mode 100644 index 000000000..ed8798617 --- /dev/null +++ b/app/common/logic/finance/ShareProfit.php @@ -0,0 +1,23 @@ +where('admin_id',0)->field('id,user_money')->select(); + $master_maoney=bcdiv($data['money'],2,2); + $this->master($data,$master_maoney,$data['user_id']); + } + + private function master($data,$money,$user_id){ + $master=User::where('id',$user_id)->field('id,user_money')->find(); + AccountLogLogic::add($user_id, AccountLogEnum::UM_INC_TASK, AccountLogEnum::INC,$money, + $data['sn'], + '充值订单退款'); + } +} \ No newline at end of file diff --git a/app/common/model/user/User.php b/app/common/model/user/User.php index 1e9d77b05..7a3bdf111 100755 --- a/app/common/model/user/User.php +++ b/app/common/model/user/User.php @@ -208,6 +208,10 @@ class User extends BaseModel } public function getBrigadeNameAttr($value) { - return Db::name('geo_brigade')->where(['id' => $this->brigade])->value('brigade_name'); + if($this->brigade){ + return Db::name('geo_brigade')->where('id' ,'in' ,explode(',',$value))->field('brigade_name')->select()->toArray(); + }else{ + return []; + } } } \ No newline at end of file diff --git a/app/job/TaskInformationJob.php b/app/job/TaskInformationJob.php new file mode 100644 index 000000000..7ae52d5c3 --- /dev/null +++ b/app/job/TaskInformationJob.php @@ -0,0 +1,20 @@ +attempts() > 3) { + //通过这个方法可以检查这个任务已经重试了几次了 + } + + + //如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法 + $job->delete(); + } +} diff --git a/composer.json b/composer.json index 471ed998b..d554bc9eb 100755 --- a/composer.json +++ b/composer.json @@ -34,8 +34,9 @@ "alibabacloud/client": "^1.5", "rmccue/requests": "^2.0", "w7corp/easywechat": "^6.8", - "ebaoquan/junziqian_sdk":">=2.0.2" - + "ebaoquan/junziqian_sdk":">=2.0.2", + "yunwuxin/think-cron": "^3.0", + "topthink/think-queue": "^3.0" }, "require-dev": { "symfony/var-dumper": "^4.2", @@ -52,7 +53,8 @@ "config": { "preferred-install": "dist", "allow-plugins": { - "easywechat-composer/easywechat-composer": false + "easywechat-composer/easywechat-composer": false, + "kylekatarnls/update-helper": true } }, "scripts": { diff --git a/composer.lock b/composer.lock index cb628da56..86fcf4478 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bfd44f608a3deb6f9ad2926b51ffc60a", + "content-hash": "90f60bd55476b5210a9bd6fa3ad453eb", "packages": [ { "name": "adbario/php-dot-notation", @@ -18,13 +18,7 @@ "type": "zip", "url": "https://api.github.com/repos/adbario/php-dot-notation/zipball/081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae", "reference": "081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "ext-json": "*", @@ -77,13 +71,7 @@ "type": "zip", "url": "https://api.github.com/repos/aliyun/openapi-sdk-php-client/zipball/5bc6f6d660797dcee2c3aef29700ab41ee764f4d", "reference": "5bc6f6d660797dcee2c3aef29700ab41ee764f4d", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "adbario/php-dot-notation": "^2.4.1", @@ -167,13 +155,7 @@ "type": "zip", "url": "https://api.github.com/repos/aliyun/aliyun-oss-php-sdk/zipball/572d0f8e099e8630ae7139ed3fdedb926c7a760f", "reference": "572d0f8e099e8630ae7139ed3fdedb926c7a760f", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=5.3" @@ -208,32 +190,23 @@ }, { "name": "clagiordano/weblibs-configmanager", - "version": "v1.5.0", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/clagiordano/weblibs-configmanager.git", - "reference": "8802c7396d61a923c9a73e37ead062b24bb1b273" + "reference": "5c8ebcc62782313b1278afe802b120d18c07a059" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/clagiordano/weblibs-configmanager/zipball/8802c7396d61a923c9a73e37ead062b24bb1b273", - "reference": "8802c7396d61a923c9a73e37ead062b24bb1b273", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/clagiordano/weblibs-configmanager/zipball/5c8ebcc62782313b1278afe802b120d18c07a059", + "reference": "5c8ebcc62782313b1278afe802b120d18c07a059", + "shasum": "" }, "require": { - "ext-json": "*", - "php": ">=5.4", - "symfony/yaml": "^2.8" + "php": ">=5.4" }, "require-dev": { "clagiordano/phpunit-result-printer": "^1", - "php-coveralls/php-coveralls": "^1.1", "phpunit/phpunit": "^4.8" }, "type": "library", @@ -263,29 +236,23 @@ ], "support": { "issues": "https://github.com/clagiordano/weblibs-configmanager/issues", - "source": "https://github.com/clagiordano/weblibs-configmanager/tree/v1.5.0" + "source": "https://github.com/clagiordano/weblibs-configmanager/tree/v1.2.0" }, - "time": "2021-07-12T15:27:21+00:00" + "time": "2021-05-18T17:55:57+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa" + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/be85b3f05b46c39bbc0d95f6c071ddff669510fa", - "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "shasum": "" }, "require": { "php": "^7.2|^8.0", @@ -324,7 +291,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.1" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" }, "funding": [ { @@ -332,7 +299,7 @@ "type": "github" } ], - "time": "2022-01-18T15:43:28+00:00" + "time": "2022-09-10T18:51:20+00:00" }, { "name": "ebaoquan/junziqian_sdk", @@ -377,13 +344,7 @@ "type": "zip", "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8", "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0" @@ -444,13 +405,7 @@ "type": "zip", "url": "https://api.github.com/repos/guzzle/command/zipball/3372bcfd79d4b357b6871665bf06155515e8d844", "reference": "3372bcfd79d4b357b6871665bf06155515e8d844", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "guzzlehttp/guzzle": "^7.5.1", @@ -533,13 +488,7 @@ "type": "zip", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "ext-json": "*", @@ -665,13 +614,7 @@ "type": "zip", "url": "https://api.github.com/repos/guzzle/guzzle-services/zipball/f4bb1c205152a56741624b88753732e01a60565c", "reference": "f4bb1c205152a56741624b88753732e01a60565c", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "guzzlehttp/command": "^1.3", @@ -748,35 +691,33 @@ }, { "name": "guzzlehttp/promises", - "version": "1.5.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", - "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", + "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -813,7 +754,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.3" + "source": "https://github.com/guzzle/promises/tree/2.0.1" }, "funding": [ { @@ -829,27 +770,21 @@ "type": "tidelift" } ], - "time": "2023-05-21T12:31:43+00:00" + "time": "2023-08-03T15:11:55+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.5.0", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6" + "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/guzzle/psr7/zipball/8bd7c33a0734ae1c5d074360512beb716bef3f77", + "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77", + "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", @@ -935,7 +870,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.5.0" + "source": "https://github.com/guzzle/psr7/tree/2.6.0" }, "funding": [ { @@ -951,7 +886,7 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:11:26+00:00" + "time": "2023-08-03T15:06:02+00:00" }, { "name": "guzzlehttp/uri-template", @@ -965,13 +900,7 @@ "type": "zip", "url": "https://api.github.com/repos/guzzle/uri-template/zipball/b945d74a55a25a949158444f09ec0d3c120d69e2", "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", @@ -1045,39 +974,36 @@ }, { "name": "maennchen/zipstream-php", - "version": "2.4.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3" + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3", - "reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "shasum": "" }, "require": { "ext-mbstring": "*", - "myclabs/php-enum": "^1.5", - "php": "^8.0", - "psr/http-message": "^1.0" + "ext-zlib": "*", + "php-64bit": "^8.1" }, "require-dev": { "ext-zip": "*", - "friendsofphp/php-cs-fixer": "^3.9", - "guzzlehttp/guzzle": "^6.5.3 || ^7.2.0", + "friendsofphp/php-cs-fixer": "^3.16", + "guzzlehttp/guzzle": "^7.5", "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4", - "phpunit/phpunit": "^8.5.8 || ^9.4.2", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^10.0", "vimeo/psalm": "^5.0" }, + "suggest": { + "guzzlehttp/psr7": "^2.4", + "psr/http-message": "^2.0" + }, "type": "library", "autoload": { "psr-4": { @@ -1113,7 +1039,7 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.4.0" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0" }, "funding": [ { @@ -1125,7 +1051,7 @@ "type": "open_collective" } ], - "time": "2022-12-08T12:29:14+00:00" + "time": "2023-06-21T14:59:35+00:00" }, { "name": "markbaker/complex", @@ -1139,13 +1065,7 @@ "type": "zip", "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9", "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": "^7.2 || ^8.0" @@ -1196,13 +1116,7 @@ "type": "zip", "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c", "reference": "728434227fe21be27ff6d86621a1b13107a2562c", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": "^7.1 || ^8.0" @@ -1258,13 +1172,7 @@ "type": "zip", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1", "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.2", @@ -1366,13 +1274,7 @@ "type": "zip", "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9b87907a81b87bc76d19a7fb2d61e61486ee9edb", "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": "^5.4 || ^7.0 || ^8.0", @@ -1422,38 +1324,62 @@ "time": "2021-06-14T00:11:39+00:00" }, { - "name": "myclabs/php-enum", - "version": "1.8.3", + "name": "nesbot/carbon", + "version": "2.68.1", "source": { "type": "git", - "url": "https://github.com/myclabs/php-enum.git", - "reference": "b942d263c641ddb5190929ff840c68f78713e937" + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "4f991ed2a403c85efbc4f23eb4030063fdbe01da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/php-enum/zipball/b942d263c641ddb5190929ff840c68f78713e937", - "reference": "b942d263c641ddb5190929ff840c68f78713e937", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4f991ed2a403c85efbc4f23eb4030063fdbe01da", + "reference": "4f991ed2a403c85efbc4f23eb4030063fdbe01da", + "shasum": "" }, "require": { "ext-json": "*", - "php": "^7.3 || ^8.0" + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "1.*", - "vimeo/psalm": "^4.6.2" + "doctrine/dbal": "^2.0 || ^3.1.4", + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" }, + "bin": [ + "bin/carbon" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, "autoload": { "psr-4": { - "MyCLabs\\Enum\\": "src/" + "Carbon\\": "src/Carbon/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1462,30 +1388,42 @@ ], "authors": [ { - "name": "PHP Enum contributors", - "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" } ], - "description": "PHP Enum implementation", - "homepage": "http://github.com/myclabs/php-enum", + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", "keywords": [ - "enum" + "date", + "datetime", + "time" ], "support": { - "issues": "https://github.com/myclabs/php-enum/issues", - "source": "https://github.com/myclabs/php-enum/tree/1.8.3" + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" }, "funding": [ { - "url": "https://github.com/mnapoli", + "url": "https://github.com/sponsors/kylekatarnls", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", "type": "tidelift" } ], - "time": "2021-07-05T08:18:36+00:00" + "time": "2023-06-20T18:29:04+00:00" }, { "name": "nyholm/psr7", @@ -1499,13 +1437,7 @@ "type": "zip", "url": "https://api.github.com/repos/Nyholm/psr7/zipball/3cb4d163b58589e47b35103e8e5e6a6a475b47be", "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.2", @@ -1583,13 +1515,7 @@ "type": "zip", "url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/b846a689844cef114e8079d8c80f0afd96745ae3", "reference": "b846a689844cef114e8079d8c80f0afd96745ae3", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": "^7.1 || ^8.0", @@ -1655,13 +1581,7 @@ "type": "zip", "url": "https://api.github.com/repos/overtrue/socialite/zipball/470b781f288fbb24c8b105cfdada215d83d84d4b", "reference": "470b781f288fbb24c8b105cfdada215d83d84d4b", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "ext-json": "*", @@ -1724,23 +1644,17 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "1.28.0", + "version": "1.29.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "6e81cf39bbd93ebc3a4e8150444c41e8aa9b769a" + "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/6e81cf39bbd93ebc3a4e8150444c41e8aa9b769a", - "reference": "6e81cf39bbd93ebc3a4e8150444c41e8aa9b769a", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fde2ccf55eaef7e86021ff1acce26479160a0fa0", + "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0", + "shasum": "" }, "require": { "ext-ctype": "*", @@ -1757,7 +1671,7 @@ "ext-zip": "*", "ext-zlib": "*", "ezyang/htmlpurifier": "^4.15", - "maennchen/zipstream-php": "^2.1", + "maennchen/zipstream-php": "^2.1 || ^3.0", "markbaker/complex": "^3.0", "markbaker/matrix": "^3.0", "php": "^7.4 || ^8.0", @@ -1769,12 +1683,12 @@ "dealerdirect/phpcodesniffer-composer-installer": "dev-main", "dompdf/dompdf": "^1.0 || ^2.0", "friendsofphp/php-cs-fixer": "^3.2", - "mitoteam/jpgraph": "^10.2.4", + "mitoteam/jpgraph": "^10.3", "mpdf/mpdf": "^8.1.1", "phpcompatibility/php-compatibility": "^9.3", "phpstan/phpstan": "^1.1", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.0", + "phpunit/phpunit": "^8.5 || ^9.0 || ^10.0", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, @@ -1829,9 +1743,9 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.28.0" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.0" }, - "time": "2023-02-25T12:24:49+00:00" + "time": "2023-06-14T22:48:31+00:00" }, { "name": "psr/cache", @@ -1845,13 +1759,7 @@ "type": "zip", "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=8.0.0" @@ -1900,13 +1808,7 @@ "type": "zip", "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.4.0" @@ -1944,27 +1846,21 @@ }, { "name": "psr/http-client", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "shasum": "" }, "require": { "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -1984,7 +1880,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP clients", @@ -1996,9 +1892,9 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "source": "https://github.com/php-fig/http-client/tree/1.0.2" }, - "time": "2020-06-29T06:28:15+00:00" + "time": "2023-04-10T20:12:12+00:00" }, { "name": "psr/http-factory", @@ -2012,13 +1908,7 @@ "type": "zip", "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", "reference": "e616d01114759c4c489f93b099585439f795fe35", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.0.0", @@ -2073,13 +1963,7 @@ "type": "zip", "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": "^7.2 || ^8.0" @@ -2132,13 +2016,7 @@ "type": "zip", "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", "reference": "d49695b909c3b7628b6289db5479a1c204601f11", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=5.3.0" @@ -2188,13 +2066,7 @@ "type": "zip", "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=5.3.0" @@ -2245,13 +2117,7 @@ "type": "zip", "url": "https://api.github.com/repos/tencentyun/cos-php-sdk-v5/zipball/06ccc95599635abd3f431f470b79b8fb8ddbd6a0", "reference": "06ccc95599635abd3f431f470b79b8fb8ddbd6a0", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "ext-curl": "*", @@ -2319,13 +2185,7 @@ "type": "zip", "url": "https://api.github.com/repos/qiniu/php-sdk/zipball/1c6bc89166e524a40ee42bf516fb99ffc6401c82", "reference": "1c6bc89166e524a40ee42bf516fb99ffc6401c82", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=5.3.3" @@ -2380,13 +2240,7 @@ "type": "zip", "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=5.6" @@ -2420,23 +2274,17 @@ }, { "name": "rmccue/requests", - "version": "v2.0.5", + "version": "v2.0.7", "source": { "type": "git", "url": "https://github.com/WordPress/Requests.git", - "reference": "b717f1d2f4ef7992ec0c127747ed8b7e170c2f49" + "reference": "e14a6f4e7438d3f8da3f2657759e6367b906ee23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/Requests/zipball/b717f1d2f4ef7992ec0c127747ed8b7e170c2f49", - "reference": "b717f1d2f4ef7992ec0c127747ed8b7e170c2f49", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/WordPress/Requests/zipball/e14a6f4e7438d3f8da3f2657759e6367b906ee23", + "reference": "e14a6f4e7438d3f8da3f2657759e6367b906ee23", + "shasum": "" }, "require": { "ext-json": "*", @@ -2503,7 +2351,7 @@ "issues": "https://github.com/WordPress/Requests/issues", "source": "https://github.com/WordPress/Requests" }, - "time": "2022-10-11T08:15:28+00:00" + "time": "2023-06-02T07:35:42+00:00" }, { "name": "symfony/cache", @@ -2517,13 +2365,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/cache/zipball/e2013521c0f07473ae69a01fce0af78fc3ec0f23", "reference": "e2013521c0f07473ae69a01fce0af78fc3ec0f23", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.2.5", @@ -2620,13 +2462,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.2.5", @@ -2695,31 +2531,25 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.2", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2748,7 +2578,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" }, "funding": [ { @@ -2764,31 +2594,26 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/http-client", - "version": "v6.0.20", + "version": "v6.2.13", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "541c04560da1875f62c963c3aab6ea12a7314e11" + "reference": "297374a399ce6852d5905d92a1351df00bb9dd10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/541c04560da1875f62c963c3aab6ea12a7314e11", - "reference": "541c04560da1875f62c963c3aab6ea12a7314e11", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/http-client/zipball/297374a399ce6852d5905d92a1351df00bb9dd10", + "reference": "297374a399ce6852d5905d92a1351df00bb9dd10", + "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/http-client-contracts": "^3", "symfony/service-contracts": "^1.0|^2|^3" }, @@ -2806,6 +2631,7 @@ "guzzlehttp/promises": "^1.4", "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", + "php-http/message-factory": "^1.0", "psr/http-client": "^1.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/http-kernel": "^5.4|^6.0", @@ -2837,8 +2663,11 @@ ], "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", + "keywords": [ + "http" + ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.0.20" + "source": "https://github.com/symfony/http-client/tree/v6.2.13" }, "funding": [ { @@ -2854,38 +2683,29 @@ "type": "tidelift" } ], - "time": "2023-01-30T15:41:07+00:00" + "time": "2023-07-03T12:13:45+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v3.0.2", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "4184b9b63af1edaf35b6a7974c6f1f9f33294129" + "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/4184b9b63af1edaf35b6a7974c6f1f9f33294129", - "reference": "4184b9b63af1edaf35b6a7974c6f1f9f33294129", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb", + "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb", + "shasum": "" }, "require": { - "php": ">=8.0.2" - }, - "suggest": { - "symfony/http-client-implementation": "" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2895,7 +2715,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\HttpClient\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2922,7 +2745,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0" }, "funding": [ { @@ -2938,30 +2761,24 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.0.20", + "version": "v6.1.12", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e16b2676a4b3b1fa12378a20b29c364feda2a8d6" + "reference": "bd1bcfb0eba14de22c4d086c5023e608f37366ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e16b2676a4b3b1fa12378a20b29c364feda2a8d6", - "reference": "e16b2676a4b3b1fa12378a20b29c364feda2a8d6", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/bd1bcfb0eba14de22c4d086c5023e608f37366ed", + "reference": "bd1bcfb0eba14de22c4d086c5023e608f37366ed", + "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1" }, @@ -3003,7 +2820,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.0.20" + "source": "https://github.com/symfony/http-foundation/tree/v6.1.12" }, "funding": [ { @@ -3019,30 +2836,25 @@ "type": "tidelift" } ], - "time": "2023-01-30T15:41:07+00:00" + "time": "2023-01-30T15:43:30+00:00" }, { "name": "symfony/mime", - "version": "v6.0.19", + "version": "v6.3.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "d7052547a0070cbeadd474e172b527a00d657301" + "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/d7052547a0070cbeadd474e172b527a00d657301", - "reference": "d7052547a0070cbeadd474e172b527a00d657301", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/mime/zipball/9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", + "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", + "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -3051,15 +2863,16 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" + "symfony/serializer": "<6.2.13|>=6.3,<6.3.2" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" + "symfony/serializer": "~6.2.13|^6.3.2" }, "type": "library", "autoload": { @@ -3091,7 +2904,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.0.19" + "source": "https://github.com/symfony/mime/tree/v6.3.3" }, "funding": [ { @@ -3107,95 +2920,7 @@ "type": "tidelift" } ], - "time": "2023-01-11T11:50:03+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.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": "2022-11-03T14:55:06+00:00" + "time": "2023-07-31T07:08:24+00:00" }, { "name": "symfony/polyfill-intl-idn", @@ -3209,13 +2934,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", "reference": "639084e360537a19f9ee352433b84ce831f3d2da", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1", @@ -3302,13 +3021,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1" @@ -3392,13 +3105,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1" @@ -3481,13 +3188,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1" @@ -3563,13 +3264,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1" @@ -3648,13 +3343,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1" @@ -3737,13 +3426,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1" @@ -3811,28 +3494,85 @@ "time": "2022-11-03T14:55:06+00:00" }, { - "name": "symfony/psr-http-message-bridge", - "version": "v2.2.0", + "name": "symfony/process", + "version": "v5.4.26", "source": { "type": "git", - "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "28a732c05bbad801304ad5a5c674cf2970508993" + "url": "https://github.com/symfony/process.git", + "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/28a732c05bbad801304ad5a5c674cf2970508993", - "reference": "28a732c05bbad801304ad5a5c674cf2970508993", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } + "url": "https://api.github.com/repos/symfony/process/zipball/1a44dc377ec86a50fab40d066cd061e28a6b482f", + "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.4.26" + }, + "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": "2023-07-12T15:44:31+00:00" + }, + { + "name": "symfony/psr-http-message-bridge", + "version": "v2.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e", + "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e", + "shasum": "" + }, "require": { "php": ">=7.2.5", "psr/http-message": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", "symfony/http-foundation": "^5.4 || ^6.0" }, "require-dev": { @@ -3851,7 +3591,7 @@ "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-main": "2.2-dev" + "dev-main": "2.3-dev" } }, "autoload": { @@ -3886,7 +3626,7 @@ ], "support": { "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.2.0" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1" }, "funding": [ { @@ -3902,7 +3642,7 @@ "type": "tidelift" } ], - "time": "2023-04-21T08:40:19+00:00" + "time": "2023-07-26T11:53:26+00:00" }, { "name": "symfony/service-contracts", @@ -3916,13 +3656,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.2.5", @@ -3994,27 +3728,194 @@ "time": "2022-05-30T19:17:29+00:00" }, { - "name": "symfony/var-exporter", - "version": "v6.0.19", + "name": "symfony/translation", + "version": "v6.3.3", "source": { "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2" + "url": "https://github.com/symfony/translation.git", + "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df56f53818c2d5d9f683f4ad2e365ba73a3b69d2", - "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/translation/zipball/3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.13", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v6.3.3" + }, + "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": "2023-07-31T07:08:24+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "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 translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.3.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": "2023-05-30T17:17:10+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "3400949782c0cb5b3e73aa64cfd71dde000beccc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/3400949782c0cb5b3e73aa64cfd71dde000beccc", + "reference": "3400949782c0cb5b3e73aa64cfd71dde000beccc", + "shasum": "" + }, + "require": { + "php": ">=8.1" }, "require-dev": { "symfony/var-dumper": "^5.4|^6.0" @@ -4050,10 +3951,12 @@ "export", "hydrate", "instantiate", + "lazy-loading", + "proxy", "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.0.19" + "source": "https://github.com/symfony/var-exporter/tree/v6.3.2" }, "funding": [ { @@ -4069,86 +3972,21 @@ "type": "tidelift" } ], - "time": "2023-01-13T08:34:10+00:00" - }, - { - "name": "symfony/yaml", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v2.8.52" - }, - "time": "2018-11-11T11:18:13+00:00" + "time": "2023-07-26T17:39:03+00:00" }, { "name": "tencentcloud/tencentcloud-sdk-php", - "version": "3.0.935", + "version": "3.0.950", "source": { "type": "git", "url": "https://github.com/TencentCloud/tencentcloud-sdk-php.git", - "reference": "91af4a89502782136c969c70b96d2fe7f76fba48" + "reference": "33490ab22dc357d297c3419740a23c39ea70b20e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TencentCloud/tencentcloud-sdk-php/zipball/91af4a89502782136c969c70b96d2fe7f76fba48", - "reference": "91af4a89502782136c969c70b96d2fe7f76fba48", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/TencentCloud/tencentcloud-sdk-php/zipball/33490ab22dc357d297c3419740a23c39ea70b20e", + "reference": "33490ab22dc357d297c3419740a23c39ea70b20e", + "shasum": "" }, "require": { "guzzlehttp/guzzle": "^6.3 || ^7.0", @@ -4182,9 +4020,9 @@ "homepage": "https://github.com/TencentCloud/tencentcloud-sdk-php", "support": { "issues": "https://github.com/TencentCloud/tencentcloud-sdk-php/issues", - "source": "https://github.com/TencentCloud/tencentcloud-sdk-php/tree/3.0.935" + "source": "https://github.com/TencentCloud/tencentcloud-sdk-php/tree/3.0.950" }, - "time": "2023-07-20T00:05:40+00:00" + "time": "2023-08-09T00:06:15+00:00" }, { "name": "thenorthmemory/xml", @@ -4198,13 +4036,7 @@ "type": "zip", "url": "https://api.github.com/repos/TheNorthMemory/xml/zipball/6f50c63450a0b098772423f8bdc3c4ad2c4c30bb", "reference": "6f50c63450a0b098772423f8bdc3c4ad2c4c30bb", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "ext-libxml": "*", @@ -4255,13 +4087,7 @@ "type": "zip", "url": "https://api.github.com/repos/top-think/framework/zipball/66eb9cf4d627df12911344cd328faf9bb596bf2c", "reference": "66eb9cf4d627df12911344cd328faf9bb596bf2c", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "ext-json": "*", @@ -4326,13 +4152,7 @@ "type": "zip", "url": "https://api.github.com/repos/top-think/think-helper/zipball/769acbe50a4274327162f9c68ec2e89a38eb2aff", "reference": "769acbe50a4274327162f9c68ec2e89a38eb2aff", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1.0" @@ -4378,13 +4198,7 @@ "type": "zip", "url": "https://api.github.com/repos/top-think/think-multi-app/zipball/4055a6187296ac16c0bc7bbab4ed5d92f82f791c", "reference": "4055a6187296ac16c0bc7bbab4ed5d92f82f791c", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1.0", @@ -4432,13 +4246,7 @@ "type": "zip", "url": "https://api.github.com/repos/top-think/think-orm/zipball/10528ebf4a5106b19c3bac9c6deae7a67ff49de6", "reference": "10528ebf4a5106b19c3bac9c6deae7a67ff49de6", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "ext-json": "*", @@ -4481,6 +4289,67 @@ }, "time": "2023-04-20T14:27:51+00:00" }, + { + "name": "topthink/think-queue", + "version": "v3.0.9", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-queue.git", + "reference": "654812b47dd7c708c4443deed27f212f8382e8da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-queue/zipball/654812b47dd7c708c4443deed27f212f8382e8da", + "reference": "654812b47dd7c708c4443deed27f212f8382e8da", + "shasum": "" + }, + "require": { + "ext-json": "*", + "nesbot/carbon": "^2.16", + "symfony/process": ">=4.2", + "topthink/framework": "^6.0 || ^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "phpunit/phpunit": "^6.2", + "topthink/think-migration": "^3.0" + }, + "type": "library", + "extra": { + "think": { + "services": [ + "think\\queue\\Service" + ], + "config": { + "queue": "src/config.php" + } + } + }, + "autoload": { + "files": [ + "src/common.php" + ], + "psr-4": { + "think\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP6 Queue Package", + "support": { + "issues": "https://github.com/top-think/think-queue/issues", + "source": "https://github.com/top-think/think-queue/tree/v3.0.9" + }, + "time": "2023-07-03T05:42:01+00:00" + }, { "name": "topthink/think-template", "version": "v2.0.9", @@ -4493,13 +4362,7 @@ "type": "zip", "url": "https://api.github.com/repos/top-think/think-template/zipball/6d25642ae0e306166742fd7073dc7a159e18073c", "reference": "6d25642ae0e306166742fd7073dc7a159e18073c", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1.0", @@ -4540,13 +4403,7 @@ "type": "zip", "url": "https://api.github.com/repos/top-think/think-view/zipball/edce0ae2c9551ab65f9e94a222604b0dead3576d", "reference": "edce0ae2c9551ab65f9e94a222604b0dead3576d", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1.0", @@ -4577,23 +4434,17 @@ }, { "name": "w7corp/easywechat", - "version": "6.8.0", + "version": "6.12.3", "source": { "type": "git", "url": "https://github.com/w7corp/easywechat.git", - "reference": "60f0b4ba2ac3144df1a2291193daa34beb949d26" + "reference": "10b9f31b61b4e5327c9e4457dffcf307de2deb6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/w7corp/easywechat/zipball/60f0b4ba2ac3144df1a2291193daa34beb949d26", - "reference": "60f0b4ba2ac3144df1a2291193daa34beb949d26", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/w7corp/easywechat/zipball/10b9f31b61b4e5327c9e4457dffcf307de2deb6c", + "reference": "10b9f31b61b4e5327c9e4457dffcf307de2deb6c", + "shasum": "" }, "require": { "ext-curl": "*", @@ -4602,10 +4453,10 @@ "ext-openssl": "*", "ext-simplexml": "*", "ext-sodium": "*", - "monolog/monolog": "^2.2", + "monolog/monolog": "^2.2|^3.0", "nyholm/psr7": "^1.5", "nyholm/psr7-server": "^1.0", - "overtrue/socialite": "^3.5|^4.0.1", + "overtrue/socialite": "^3.5.4|^4.0.1", "php": ">=8.0.2", "psr/http-client": "^1.0", "psr/simple-cache": "^1.0|^2.0|^3.0", @@ -4671,7 +4522,7 @@ ], "support": { "issues": "https://github.com/w7corp/easywechat/issues", - "source": "https://github.com/w7corp/easywechat/tree/6.8.0" + "source": "https://github.com/w7corp/easywechat/tree/6.12.3" }, "funding": [ { @@ -4679,7 +4530,7 @@ "type": "github" } ], - "time": "2022-09-25T13:05:18+00:00" + "time": "2023-07-05T14:14:28+00:00" }, { "name": "webmozart/assert", @@ -4693,13 +4544,7 @@ "type": "zip", "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "ext-ctype": "*", @@ -4744,6 +4589,62 @@ "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, "time": "2022-06-03T18:03:27+00:00" + }, + { + "name": "yunwuxin/think-cron", + "version": "v3.0.6", + "source": { + "type": "git", + "url": "https://github.com/yunwuxin/think-cron.git", + "reference": "4013c39cea4600e05ffd10de5b63177bfb9bf480" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yunwuxin/think-cron/zipball/4013c39cea4600e05ffd10de5b63177bfb9bf480", + "reference": "4013c39cea4600e05ffd10de5b63177bfb9bf480", + "shasum": "" + }, + "require": { + "dragonmantank/cron-expression": "^3.0", + "nesbot/carbon": "^2.28", + "symfony/process": "^4.4 || ^5.0", + "topthink/framework": "^6.0 || ^8.0" + }, + "require-dev": { + "topthink/think-swoole": "^4.0" + }, + "type": "library", + "extra": { + "think": { + "config": { + "cron": "src/config.php" + }, + "services": [ + "yunwuxin\\cron\\Service" + ] + } + }, + "autoload": { + "psr-4": { + "yunwuxin\\cron\\": "src/cron" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "计划任务", + "support": { + "issues": "https://github.com/yunwuxin/think-cron/issues", + "source": "https://github.com/yunwuxin/think-cron/tree/v3.0.6" + }, + "time": "2023-07-01T11:10:51+00:00" } ], "packages-dev": [ @@ -4759,13 +4660,7 @@ "type": "zip", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1.3", @@ -4854,13 +4749,7 @@ "type": "zip", "url": "https://api.github.com/repos/top-think/think-trace/zipball/136cd5d97e8bdb780e4b5c1637c588ed7ca3e142", "reference": "136cd5d97e8bdb780e4b5c1637c588ed7ca3e142", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "shasum": "" }, "require": { "php": ">=7.1.0", diff --git a/config/cron.php b/config/cron.php new file mode 100644 index 000000000..e5a24290a --- /dev/null +++ b/config/cron.php @@ -0,0 +1,5 @@ + [] +]; \ No newline at end of file diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 000000000..fb096a81f --- /dev/null +++ b/config/queue.php @@ -0,0 +1,39 @@ + +// +---------------------------------------------------------------------- + +return [ + 'default' => 'sync', + 'connections' => [ + 'sync' => [ + 'type' => 'sync', + ], + 'database' => [ + 'type' => 'database', + 'queue' => 'default', + 'table' => 'jobs', + 'connection' => null, + ], + 'redis' => [ + 'type' => 'redis', + 'queue' => 'default', + 'host' => '127.0.0.1', + 'port' => 6379, + 'password' => '', + 'select' => 0, + 'timeout' => 0, + 'persistent' => false, + ], + ], + 'failed' => [ + 'type' => 'none', + 'table' => 'failed_jobs', + ], +]; diff --git a/vendor/bin/carbon b/vendor/bin/carbon new file mode 100755 index 000000000..86fbfdfd8 --- /dev/null +++ b/vendor/bin/carbon @@ -0,0 +1,119 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + return include("phpvfscomposer://" . __DIR__ . '/..'.'/nesbot/carbon/bin/carbon'); + } +} + +return include __DIR__ . '/..'.'/nesbot/carbon/bin/carbon'; diff --git a/vendor/bin/carbon.bat b/vendor/bin/carbon.bat new file mode 100755 index 000000000..44bca2087 --- /dev/null +++ b/vendor/bin/carbon.bat @@ -0,0 +1,5 @@ +@ECHO OFF +setlocal DISABLEDELAYEDEXPANSION +SET BIN_TARGET=%~dp0/carbon +SET COMPOSER_RUNTIME_BIN_DIR=%~dp0 +php "%BIN_TARGET%" %* diff --git a/vendor/clagiordano/weblibs-configmanager/.github/workflows/php.yml b/vendor/clagiordano/weblibs-configmanager/.github/workflows/php.yml old mode 100755 new mode 100644 index 365f40067..7a9e14ed1 --- a/vendor/clagiordano/weblibs-configmanager/.github/workflows/php.yml +++ b/vendor/clagiordano/weblibs-configmanager/.github/workflows/php.yml @@ -13,20 +13,13 @@ jobs: matrix: operating-system: [ ubuntu-18.04 ] php: [ '5.4', '5.5', '5.6', '7.1', '7.2', '7.3', '7.4' ] - name: PHP ${{ matrix.php }}@${{ matrix.operating-system }} + name: PHP ${{ matrix.operating-system }} ${{ matrix.php }} steps: - uses: actions/checkout@v2 - - uses: shivammathur/setup-php@master + - uses: nanasess/setup-php@master with: php-version: ${{ matrix.php }} - extensions: xdebug - - - name: check php version - run: php --version - - - name: check composer version - run: composer --version - name: Validate composer.json and composer.lock run: composer validate @@ -34,10 +27,8 @@ jobs: - name: Install dependencies run: composer install --prefer-dist --no-progress + # Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit" + # Docs: https://getcomposer.org/doc/articles/scripts.md + - name: Run test suite run: ./vendor/bin/phpunit - - - name: Upload coverage results to Coveralls - env: - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }} - run: ./vendor/bin/coveralls --coverage_clover=build/logs/clover.xml -v diff --git a/vendor/clagiordano/weblibs-configmanager/.gitignore b/vendor/clagiordano/weblibs-configmanager/.gitignore old mode 100755 new mode 100644 index 521afebe6..e01942fb8 --- a/vendor/clagiordano/weblibs-configmanager/.gitignore +++ b/vendor/clagiordano/weblibs-configmanager/.gitignore @@ -1,3 +1,2 @@ composer.phar vendor -testsdata/phpunit_* \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/.travis.yml b/vendor/clagiordano/weblibs-configmanager/.travis.yml new file mode 100644 index 000000000..b13b30d93 --- /dev/null +++ b/vendor/clagiordano/weblibs-configmanager/.travis.yml @@ -0,0 +1,17 @@ +language: php + +php: + - 5.4 + - 5.5 + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + - hhvm + +before_script: + - travis_retry composer self-update + - travis_retry composer update --prefer-source --no-interaction --dev + +script: phpunit diff --git a/vendor/clagiordano/weblibs-configmanager/README.md b/vendor/clagiordano/weblibs-configmanager/README.md old mode 100755 new mode 100644 index b20066330..f72bf5ca6 --- a/vendor/clagiordano/weblibs-configmanager/README.md +++ b/vendor/clagiordano/weblibs-configmanager/README.md @@ -1,36 +1,23 @@ -[![PHP Composer](https://github.com/clagiordano/weblibs-configmanager/actions/workflows/php.yml/badge.svg)](https://github.com/clagiordano/weblibs-configmanager/actions/workflows/php.yml) -[![Coverage Status](https://coveralls.io/repos/github/clagiordano/weblibs-configmanager/badge.svg?branch=master)](https://coveralls.io/github/clagiordano/weblibs-configmanager?branch=master) -[![SymfonyInsight](https://insight.symfony.com/projects/54c4e80c-ff15-4235-8bec-a4c71bbe3ba5/mini.svg)](https://insight.symfony.com/projects/54c4e80c-ff15-4235-8bec-a4c71bbe3ba5) +![BuildStatus](https://travis-ci.org/clagiordano/weblibs-configmanager.svg?branch=master) ![License](https://img.shields.io/github/license/clagiordano/weblibs-configmanager.svg) # weblibs-configmanager weblibs-configmanager is a tool library for easily read and access to php config array file and direct read/write configuration file / object. +[![SensioLabsInsight](https://insight.sensiolabs.com/projects/54c4e80c-ff15-4235-8bec-a4c71bbe3ba5/big.png)](https://insight.sensiolabs.com/projects/54c4e80c-ff15-4235-8bec-a4c71bbe3ba5) + ## Why use weblibs-configmanager ? The purpose of this project is to propose a simple and lightweight library to manage php hierarchical configuration files. -## Supported formats - -This package supports config files in the following format: - -Format | Component | Since version | Description -:---: | :---: | :---: | --- -Array | `ConfigManager` | `v0.1.0` | Deprecated, legacy name for the php array reader, only for compatibility support -Array | `ArrayConfigManager` | `v1.2.0` | A file that returns a php array, the original supported format -Yaml | `YamlConfigManager` | `v1.3.0` | A file containing a valid YAML file -JSON | `JsonConfigManager` | `v1.4.0` | A file containing a valid JSON file - -All the supported format are parsed and internally handled in the same way granting the same functionalities. - ## Installation The recommended way to install weblibs-configmanager is through [Composer](https://getcomposer.org). ```bash composer require clagiordano/weblibs-configmanager ``` -## Usage examples (Array format) +## Usage examples ### Write a sample config file like this -```php +``` =5.4", - "symfony/yaml": "^2.8", - "ext-json": "*" + "php": ">=5.4" }, "require-dev": { "phpunit/phpunit": "^4.8", - "clagiordano/phpunit-result-printer": "^1", - "php-coveralls/php-coveralls": "^1.1" + "clagiordano/phpunit-result-printer": "^1" }, "autoload-dev": { "psr-4": { diff --git a/vendor/clagiordano/weblibs-configmanager/composer.lock b/vendor/clagiordano/weblibs-configmanager/composer.lock old mode 100755 new mode 100644 index 6532c62e3..d306da0c8 --- a/vendor/clagiordano/weblibs-configmanager/composer.lock +++ b/vendor/clagiordano/weblibs-configmanager/composer.lock @@ -4,135 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f98dd1d9d1b8f4986c6a54cc483c1166", - "packages": [ - { - "name": "symfony/polyfill-ctype", - "version": "v1.19.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b", - "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.19-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "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": "2020-10-23T09:01:57+00:00" - }, - { - "name": "symfony/yaml", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" - } - ], + "content-hash": "6d2aba6439fb7be37e7120eed3311f56", + "packages": [], "packages-dev": [ { "name": "clagiordano/phpunit-result-printer", @@ -218,163 +91,6 @@ ], "time": "2015-06-14T21:17:01+00:00" }, - { - "name": "guzzle/guzzle", - "version": "v3.9.3", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle3.git", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", - "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "php": ">=5.3.3", - "symfony/event-dispatcher": "~2.1" - }, - "replace": { - "guzzle/batch": "self.version", - "guzzle/cache": "self.version", - "guzzle/common": "self.version", - "guzzle/http": "self.version", - "guzzle/inflection": "self.version", - "guzzle/iterator": "self.version", - "guzzle/log": "self.version", - "guzzle/parser": "self.version", - "guzzle/plugin": "self.version", - "guzzle/plugin-async": "self.version", - "guzzle/plugin-backoff": "self.version", - "guzzle/plugin-cache": "self.version", - "guzzle/plugin-cookie": "self.version", - "guzzle/plugin-curlauth": "self.version", - "guzzle/plugin-error-response": "self.version", - "guzzle/plugin-history": "self.version", - "guzzle/plugin-log": "self.version", - "guzzle/plugin-md5": "self.version", - "guzzle/plugin-mock": "self.version", - "guzzle/plugin-oauth": "self.version", - "guzzle/service": "self.version", - "guzzle/stream": "self.version" - }, - "require-dev": { - "doctrine/cache": "~1.3", - "monolog/monolog": "~1.0", - "phpunit/phpunit": "3.7.*", - "psr/log": "~1.0", - "symfony/class-loader": "~2.1", - "zendframework/zend-cache": "2.*,<2.3", - "zendframework/zend-log": "2.*,<2.3" - }, - "suggest": { - "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.9-dev" - } - }, - "autoload": { - "psr-0": { - "Guzzle": "src/", - "Guzzle\\Tests": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Guzzle Community", - "homepage": "https://github.com/guzzle/guzzle/contributors" - } - ], - "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "abandoned": "guzzlehttp/guzzle", - "time": "2015-03-18T18:23:50+00:00" - }, - { - "name": "php-coveralls/php-coveralls", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-coveralls/php-coveralls.git", - "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", - "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-simplexml": "*", - "guzzle/guzzle": "^2.8 || ^3.0", - "php": "^5.3.3 || ^7.0", - "psr/log": "^1.0", - "symfony/config": "^2.1 || ^3.0 || ^4.0", - "symfony/console": "^2.1 || ^3.0 || ^4.0", - "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0", - "symfony/yaml": "^2.0 || ^3.0 || ^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" - }, - "suggest": { - "symfony/http-kernel": "Allows Symfony integration" - }, - "bin": [ - "bin/coveralls" - ], - "type": "library", - "autoload": { - "psr-4": { - "Satooshi\\": "src/Satooshi/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kitamura Satoshi", - "email": "with.no.parachute@gmail.com", - "homepage": "https://www.facebook.com/satooshi.jp" - } - ], - "description": "PHP client library for Coveralls API", - "homepage": "https://github.com/php-coveralls/php-coveralls", - "keywords": [ - "ci", - "coverage", - "github", - "test" - ], - "time": "2017-12-06T23:17:56+00:00" - }, { "name": "phpdocumentor/reflection-docblock", "version": "2.0.5", @@ -733,7 +449,6 @@ "keywords": [ "tokenizer" ], - "abandoned": true, "time": "2017-12-04T08:55:13+00:00" }, { @@ -865,53 +580,6 @@ "abandoned": true, "time": "2015-10-02T06:51:40+00:00" }, - { - "name": "psr/log", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2021-05-03T11:20:27+00:00" - }, { "name": "sebastian/comparator", "version": "1.2.4", @@ -1285,309 +953,24 @@ "time": "2015-06-21T13:59:46+00:00" }, { - "name": "symfony/config", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "7dd5f5040dc04c118d057fb5886563963eb70011" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/7dd5f5040dc04c118d057fb5886563963eb70011", - "reference": "7dd5f5040dc04c118d057fb5886563963eb70011", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/filesystem": "~2.3|~3.0.0", - "symfony/polyfill-ctype": "~1.8" - }, - "require-dev": { - "symfony/yaml": "~2.7|~3.0.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2018-11-26T09:38:12+00:00" - }, - { - "name": "symfony/console", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12", - "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/debug": "^2.7.2|~3.0.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.1|~3.0.0", - "symfony/process": "~2.1|~3.0.0" - }, - "suggest": { - "psr/log-implementation": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2018-11-20T15:55:20+00:00" - }, - { - "name": "symfony/debug", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "74251c8d50dd3be7c4ce0c7b862497cdc641a5d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/74251c8d50dd3be7c4ce0c7b862497cdc641a5d0", - "reference": "74251c8d50dd3be7c4ce0c7b862497cdc641a5d0", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/class-loader": "~2.2|~3.0.0", - "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0", - "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.6|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2018-11-21T14:20:20+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v2.8.52", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "7ae46872dad09dffb7fe1e93a0937097339d0080" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/7ae46872dad09dffb7fe1e93a0937097339d0080", - "reference": "7ae46872dad09dffb7fe1e93a0937097339d0080", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "~1.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" - }, - { - "name": "symfony/polyfill-mbstring", + "name": "symfony/polyfill-ctype", "version": "v1.19.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce", - "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b", + "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b", "shasum": "" }, "require": { "php": ">=5.3.3" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-ctype": "For best performance" }, "type": "library", "extra": { @@ -1601,7 +984,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" + "Symfony\\Polyfill\\Ctype\\": "" }, "files": [ "bootstrap.php" @@ -1613,22 +996,21 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for ctype functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "ctype", "polyfill", - "portable", - "shim" + "portable" ], "funding": [ { @@ -1647,21 +1029,22 @@ "time": "2020-10-23T09:01:57+00:00" }, { - "name": "symfony/stopwatch", + "name": "symfony/yaml", "version": "v2.8.52", "source": { "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "752586c80af8a85aeb74d1ae8202411c68836663" + "url": "https://github.com/symfony/yaml.git", + "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/752586c80af8a85aeb74d1ae8202411c68836663", - "reference": "752586c80af8a85aeb74d1ae8202411c68836663", + "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", + "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.3.9", + "symfony/polyfill-ctype": "~1.8" }, "type": "library", "extra": { @@ -1671,7 +1054,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" + "Symfony\\Component\\Yaml\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -1691,7 +1074,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Stopwatch Component", + "description": "Symfony Yaml Component", "homepage": "https://symfony.com", "time": "2018-11-11T11:18:13+00:00" } @@ -1702,8 +1085,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=5.4", - "ext-json": "*" + "php": ">=5.4" }, "platform-dev": [], "platform-overrides": { diff --git a/vendor/clagiordano/weblibs-configmanager/phpunit.xml b/vendor/clagiordano/weblibs-configmanager/phpunit.xml old mode 100755 new mode 100644 index 7c0752826..43831358e --- a/vendor/clagiordano/weblibs-configmanager/phpunit.xml +++ b/vendor/clagiordano/weblibs-configmanager/phpunit.xml @@ -34,6 +34,6 @@ - + diff --git a/vendor/clagiordano/weblibs-configmanager/src/AbstractConfigManager.php b/vendor/clagiordano/weblibs-configmanager/src/AbstractConfigManager.php deleted file mode 100755 index 121dd2bee..000000000 --- a/vendor/clagiordano/weblibs-configmanager/src/AbstractConfigManager.php +++ /dev/null @@ -1,159 +0,0 @@ -loadConfig($configFilePath); - } catch (Exception $exception) { - /** - * Allow not existent file name at construct - */ - } - } - - /** - * Get value pointer from config for get/set value - * - * @param string $configPath - * - * @return mixed - */ - protected function & getValuePointer($configPath) - { - $configData =& $this->configData; - $parts = explode('.', $configPath); - $length = count($parts); - - for ($i = 0; $i < $length; $i++) { - if (!isset($configData[ $parts[ $i ] ])) { - $configData[ $parts[ $i ] ] = ($i === $length) ? [] : null; - } - - $configData = &$configData[ $parts[ $i ] ]; - } - - return $configData; - } - - /** - * Get value from config data throught keyValue path - * - * @param string $configPath - * @param mixed $defaultValue - * - * @return mixed - */ - public function getValue($configPath, $defaultValue = null) - { - $stored = $this->getValuePointer($configPath); - - return (is_null($stored) - ? $defaultValue - : $stored); - } - - /** - * Check if exist required config for keyValue - * - * @param string $keyValue - * - * @return mixed - */ - public function existValue($keyValue) - { - return !is_null($this->getValue($keyValue)); - } - - /** - * Set value in config path - * - * @param string $configPath - * @param mixed $newValue - * - * @return IConfigurable - */ - public function setValue($configPath, $newValue) - { - $configData = &$this->getValuePointer($configPath); - $configData = $newValue; - - return $this; - } - - /** - * @inheritDoc - */ - public function getConfig() - { - return $this->configData; - } - - /** - * @inheritDoc - */ - public function setConfig($config) - { - $this->configData = (array)$config; - - return $this; - } - - /** - * @inheritDoc - */ - public function convert(IConfigurable $target) - { - $target->setConfig($this->getConfig()); - - return $target; - } - - /** - * Check if configFilePath exists and is readable - * @return bool - * @throws RuntimeException - */ - protected function checkLoadable() - { - if ($this->configFilePath !== null) { - if (file_exists($this->configFilePath) && is_readable($this->configFilePath)) { - /** - * Readable - */ - return true; - } - - /** - * $configFilePath is not null, but not existent or not readable - */ - throw new RuntimeException("Failed to read config file from path '{$this->configFilePath}'"); - } - - /** - * $configFilePath is null - */ - return false; - } -} diff --git a/vendor/clagiordano/weblibs-configmanager/src/ArrayConfigManager.php b/vendor/clagiordano/weblibs-configmanager/src/ArrayConfigManager.php deleted file mode 100755 index 1fd5b1156..000000000 --- a/vendor/clagiordano/weblibs-configmanager/src/ArrayConfigManager.php +++ /dev/null @@ -1,72 +0,0 @@ -configFilePath = $configFilePath; - if ($this->checkLoadable()) { - $this->configData = require $this->configFilePath; - } - - return $this; - } - - /** - * Prepare and write config file on disk - * - * @param null|string $configFilePath - * @param bool $autoReloadConfig - * - * @return IConfigurable - * @throws RuntimeException - */ - public function saveConfigFile($configFilePath = null, $autoReloadConfig = false) - { - if (is_null($configFilePath)) { - $configFilePath = $this->configFilePath; - } - - $configFileContent = "configData, true); - $configFileContent .= ";\n\n"; - - try { - file_put_contents($configFilePath, $configFileContent); - - if (is_callable('opcache_invalidate')) { - /** - * Invalidate opcache for writed file if opcache is available - */ - opcache_invalidate($configFilePath, true); - } - } catch (Exception $exception) { - throw new RuntimeException( - "Failed to write config file to path '{$configFilePath}'\n{$exception->getMessage()}" - ); - } - - if ($autoReloadConfig) { - $this->loadConfig($configFilePath); - } - - return $this; - } -} diff --git a/vendor/clagiordano/weblibs-configmanager/src/ConfigManager.php b/vendor/clagiordano/weblibs-configmanager/src/ConfigManager.php old mode 100755 new mode 100644 index 3fe13ed5c..9db1d624d --- a/vendor/clagiordano/weblibs-configmanager/src/ConfigManager.php +++ b/vendor/clagiordano/weblibs-configmanager/src/ConfigManager.php @@ -2,13 +2,160 @@ namespace clagiordano\weblibs\configmanager; +use Exception; +use RuntimeException; + /** * Class ConfigManager, class for easily read and access to php config array file. * @package clagiordano\weblibs\configmanager - * @deprecated This is a wrapper for the same class with the new name, - * please use directly ArrayConfigManager instead */ -class ConfigManager extends ArrayConfigManager +class ConfigManager implements IConfigurable { + /** @var array $configData */ + private $configData = null; + /** @var string $configFilePath */ + private $configFilePath = null; + /** + * Create config object, optionally automatic load config + * from argument $configFilePath + * + * @param string $configFilePath + * @return IConfigurable + */ + public function __construct($configFilePath = null) + { + return $this->loadConfig($configFilePath); + } + + /** + * Load config data from file and store it into internal property + * + * @param null|string $configFilePath + * + * @return IConfigurable + */ + public function loadConfig($configFilePath = null) + { + if (!is_null($configFilePath)) { + $this->configFilePath = $configFilePath; + + if (file_exists($configFilePath)) { + $this->configData = require $configFilePath; + } + } + + return $this; + } + + /** + * Prepare and write config file on disk + * + * @param null|string $configFilePath + * @param bool $autoReloadConfig + * + * @return IConfigurable + * @throws RuntimeException + */ + public function saveConfigFile($configFilePath = null, $autoReloadConfig = false) + { + if (is_null($configFilePath)) { + $configFilePath = $this->configFilePath; + } + + $configFileContent = "configData, true); + $configFileContent .= ";\n\n"; + + try { + file_put_contents($configFilePath, $configFileContent); + + if (is_callable('opcache_invalidate')) { + /** + * Invalidate opcache for writed file if opcache is available + */ + opcache_invalidate($configFilePath, true); + } + } catch (Exception $exc) { + throw new RuntimeException( + __METHOD__ . ": Failed to write config file to path '{$configFilePath}'" + ); + } + + if ($autoReloadConfig) { + $this->loadConfig($configFilePath); + } + + return $this; + } + + /** + * Get value pointer from config for get/set value + * + * @param string $configPath + * + * @return mixed + */ + private function & getValuePointer($configPath) + { + $configData =& $this->configData; + $parts = explode('.', $configPath); + $length = count($parts); + + for ($i = 0; $i < $length; $i++) { + if (!isset($configData[ $parts[ $i ] ])) { + $configData[ $parts[ $i ] ] = ($i === $length) ? [] : null; + } + + $configData = &$configData[ $parts[ $i ] ]; + } + + return $configData; + } + + /** + * Get value from config data throught keyValue path + * + * @param string $configPath + * @param mixed $defaultValue + * + * @return mixed + */ + public function getValue($configPath, $defaultValue = null) + { + $stored = $this->getValuePointer($configPath); + + return (is_null($stored) + ? $defaultValue + : $stored); + } + + /** + * Check if exist required config for keyValue + * + * @param string $keyValue + * + * @return mixed + */ + public function existValue($keyValue) + { + return !is_null($this->getValue($keyValue)); + } + + /** + * Set value in config path + * + * @param string $configPath + * @param mixed $newValue + * + * @return IConfigurable + */ + public function setValue($configPath, $newValue) + { + $configData = &$this->getValuePointer($configPath); + $configData = $newValue; + + return $this; + } } diff --git a/vendor/clagiordano/weblibs-configmanager/src/FileConverter.php b/vendor/clagiordano/weblibs-configmanager/src/FileConverter.php deleted file mode 100755 index 04947e68b..000000000 --- a/vendor/clagiordano/weblibs-configmanager/src/FileConverter.php +++ /dev/null @@ -1,28 +0,0 @@ -setConfig($source->getConfig()); - } - - /** - * @inheritDoc - */ - public static function convertAndSave(IConfigurable $source, IConfigurable $target) - { - $target->setConfig($source->getConfig()); - - return $target->saveConfigFile(); - } -} diff --git a/vendor/clagiordano/weblibs-configmanager/src/IConfigurable.php b/vendor/clagiordano/weblibs-configmanager/src/IConfigurable.php old mode 100755 new mode 100644 index ebf662d54..7ca8d6d21 --- a/vendor/clagiordano/weblibs-configmanager/src/IConfigurable.php +++ b/vendor/clagiordano/weblibs-configmanager/src/IConfigurable.php @@ -58,27 +58,4 @@ interface IConfigurable * @return IConfigurable */ public function setValue($configPath, $newValue); - - /** - * Returns the whole internal configuration as array - * @return array - */ - public function getConfig(); - - /** - * Sets the whole internal configuration from array - * - * @param array $config - * @return IConfigurable - */ - public function setConfig($config); - - /** - * Converts the current instance into another one provided as argument, - * migrating its internal configuration and returning the new one. - * - * @param IConfigurable $target - * @return IConfigurable - */ - public function convert(IConfigurable $target); -} +} \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/src/IConvertable.php b/vendor/clagiordano/weblibs-configmanager/src/IConvertable.php deleted file mode 100755 index e85b2ea90..000000000 --- a/vendor/clagiordano/weblibs-configmanager/src/IConvertable.php +++ /dev/null @@ -1,28 +0,0 @@ -configFilePath = $configFilePath; - if ($this->checkLoadable()) { - if (!is_callable('json_decode')) { - throw new RuntimeException('Missing php-json extension'); - } - - $this->configData = json_decode(file_get_contents($configFilePath), true); - } - - return $this; - } - - /** - * Prepare and write config file on disk - * - * @param null|string $configFilePath - * @param bool $autoReloadConfig - * - * @return IConfigurable - * @throws RuntimeException - */ - public function saveConfigFile($configFilePath = null, $autoReloadConfig = false) - { - if (is_null($configFilePath)) { - $configFilePath = $this->configFilePath; - } - - try { - if (!is_callable('json_encode')) { - throw new RuntimeException('Missing php-json extension'); - } - - file_put_contents($configFilePath, json_encode($this->configData, JSON_UNESCAPED_UNICODE)); - } catch (Exception $exception) { - throw new RuntimeException( - "Failed to write config file to path '{$configFilePath}'\n{$exception->getMessage()}" - ); - } - - if ($autoReloadConfig) { - $this->loadConfig($configFilePath); - } - - return $this; - } -} diff --git a/vendor/clagiordano/weblibs-configmanager/src/YamlConfigManager.php b/vendor/clagiordano/weblibs-configmanager/src/YamlConfigManager.php deleted file mode 100755 index cd6d05263..000000000 --- a/vendor/clagiordano/weblibs-configmanager/src/YamlConfigManager.php +++ /dev/null @@ -1,64 +0,0 @@ -configFilePath = $configFilePath; - if ($this->checkLoadable()) { - $this->configData = Yaml::parse(file_get_contents($configFilePath)); - } - - return $this; - } - - /** - * Prepare and write config file on disk - * - * @param null|string $configFilePath - * @param bool $autoReloadConfig - * - * @return IConfigurable - * @throws RuntimeException - */ - public function saveConfigFile($configFilePath = null, $autoReloadConfig = false) - { - if (is_null($configFilePath)) { - $configFilePath = $this->configFilePath; - } - - try { - file_put_contents( - $configFilePath, - Yaml::dump($this->configData, 2, 2) - ); - } catch (Exception $exception) { - throw new RuntimeException( - "Failed to write config file to path '{$configFilePath}'\n{$exception->getMessage()}" - ); - } - - if ($autoReloadConfig) { - $this->loadConfig($configFilePath); - } - - return $this; - } -} diff --git a/vendor/clagiordano/weblibs-configmanager/tests/AbstractConfigManagerTest.php b/vendor/clagiordano/weblibs-configmanager/tests/AbstractConfigManagerTest.php deleted file mode 100755 index 4446fb3c6..000000000 --- a/vendor/clagiordano/weblibs-configmanager/tests/AbstractConfigManagerTest.php +++ /dev/null @@ -1,223 +0,0 @@ -assertNotNull( - $this->config->getValue('app') - ); - } - - public function testFastUsage() - { - $this->assertNotNull( - $this->config->getValue('app') - ); - } - - public function testFastInvalidKey() - { - $this->assertNull( - $this->config->getValue('invalidKey') - ); - } - - public function testFastInvalidKeyWithDefault() - { - $this->assertEquals( - $this->config->getValue('invalidKey', 'defaultValue'), - 'defaultValue' - ); - } - - public function testFastNestedConfig() - { - $this->assertNotNull( - $this->config->getValue('other.multi.deep.nested') - ); - } - - public function testCheckExistConfig() - { - $this->assertTrue( - $this->config->existValue('other.multi.deep.nested') - ); - } - - public function testCheckNotExistConfig() - { - $this->assertFalse( - $this->config->existValue('invalid.config.path') - ); - } - - public function testSetValue() - { - $this->config->setValue('other.multi.deep.nested', __FUNCTION__); - - $this->assertEquals( - $this->config->getValue('other.multi.deep.nested'), - __FUNCTION__ - ); - } - - public function testFailedSaveConfig() - { - $this->setExpectedException('Exception'); - $this->config->saveConfigFile('/invalid/path'); - } - - public function testSuccessSaveConfigOnTempAndReload() - { - $this->config->setValue('other.multi.deep.nested', "SUPERNESTED"); - $this->config->saveConfigFile("/tmp/testconfig.sample", true); - - $this->assertEquals( - $this->config->getValue('other.multi.deep.nested'), - "SUPERNESTED" - ); - } - - public function testOverwriteSameConfigFile() - { - $this->config->saveConfigFile(); - } - - public function testFailWriteConfig() - { - $this->setExpectedException('\RuntimeException'); - $this->config->saveConfigFile('/invalid/path/test.sample'); - } - - /** - * @test - * @group permissions - */ - public function canRaiseExceptionOnUnreadableFile() - { - /** - * Create new temp file - */ - $testFile = tempnam(__DIR__ . '/../testsdata/temp/', 'phpunit_'); - self::assertFileExists($testFile); - - /** - * Make tempfile unreadable by everyone, but still writeable - */ - $status = chmod($testFile, 0200); - self::assertTrue($status); - - /** - * Check permissions it must be 0200 ( --w------- ) - */ - $filePerms = (fileperms($testFile) & 0777); - self::assertSame(0200, $filePerms); - - /** - * Try to read that file, an exception must be thrown - */ - self::setExpectedException('\RuntimeException'); - $this->config->loadConfig($testFile); - - /** - * Remove temp file - */ - $status = chmod($testFile, 0744); - self::assertTrue($status); - - $filePerms = (fileperms($testFile) & 0777); - self::assertSame(0755, $filePerms); - - $status = unlink($testFile); - self::assertTrue($status); - self::assertFileNotExists($testFile); - } - - /** - * @return array - */ - public function configDataProvider() - { - return [ - [ - __DIR__ . '/../testsdata/sample_config_data.converted.yml', - '\clagiordano\weblibs\configmanager\YamlConfigManager', - ], - [ - __DIR__ . '/../testsdata/sample_config_data.converted.json', - '\clagiordano\weblibs\configmanager\JsonConfigManager', - ], - [ - __DIR__ . '/../testsdata/sample_config_data.converted.php', - '\clagiordano\weblibs\configmanager\ArrayConfigManager', - ], - ]; - } - - /** - * @test - * @dataProvider configDataProvider - * @param mixed $targetConfig - * @param mixed $targetInstance - */ - public function canConvertOneFormatToAnother($targetConfig, $targetInstance) - { - if (file_exists($targetConfig)) { - /** - * Drop target file if already existing - */ - unlink($targetConfig); - } - - self::assertFileNotExists($targetConfig); - - $target = new $targetInstance($targetConfig); - self::assertInstanceOf($targetInstance, $target); - - $converted = $this->config->convert($target); - self::assertInstanceOf($targetInstance, $converted); - - self::assertFileNotExists($targetConfig); - } -} \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/tests/ArrayConfigManagerTest.php b/vendor/clagiordano/weblibs-configmanager/tests/ArrayConfigManagerTest.php deleted file mode 100755 index 55268ef93..000000000 --- a/vendor/clagiordano/weblibs-configmanager/tests/ArrayConfigManagerTest.php +++ /dev/null @@ -1,25 +0,0 @@ -config = new ArrayConfigManager("TestConfigData.php"); - $this->assertInstanceOf('clagiordano\weblibs\configmanager\ArrayConfigManager', $this->config); - - $this->assertFileExists($this->configFile); - $this->config->loadConfig($this->configFile); - } -} \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/tests/ConfigManagerTest.php b/vendor/clagiordano/weblibs-configmanager/tests/ConfigManagerTest.php old mode 100755 new mode 100644 index 016d44f6e..f4dc541ba --- a/vendor/clagiordano/weblibs-configmanager/tests/ConfigManagerTest.php +++ b/vendor/clagiordano/weblibs-configmanager/tests/ConfigManagerTest.php @@ -3,14 +3,17 @@ namespace clagiordano\weblibs\configmanager\tests; use clagiordano\weblibs\configmanager\ConfigManager; +use PHPUnit\Framework\TestCase; /** * Class ConfigManagerTest * @package clagiordano\weblibs\configmanager\tests */ -class ConfigManagerTest extends AbstractConfigManagerTest +class ConfigManagerTest extends TestCase { - protected $configFile = 'testsdata/sample_config_data.php'; + /** @var ConfigManager $config */ + private $config = null; + private $configFile = 'testsdata/sample_config_data.php'; public function setUp() { @@ -22,4 +25,92 @@ class ConfigManagerTest extends AbstractConfigManagerTest $this->assertFileExists($this->configFile); $this->config->loadConfig($this->configFile); } + + public function testBasicUsage() + { + $this->assertNotNull( + $this->config->getValue('app') + ); + } + + public function testFastUsage() + { + $this->assertNotNull( + $this->config->getValue('app') + ); + } + + public function testFastInvalidKey() + { + $this->assertNull( + $this->config->getValue('invalidKey') + ); + } + + public function testFastInvalidKeyWithDefault() + { + $this->assertEquals( + $this->config->getValue('invalidKey', 'defaultValue'), + 'defaultValue' + ); + } + + public function testFastNestedConfig() + { + $this->assertNotNull( + $this->config->getValue('other.multi.deep.nested') + ); + } + + public function testCheckExistConfig() + { + $this->assertTrue( + $this->config->existValue('other.multi.deep.nested') + ); + } + + public function testCheckNotExistConfig() + { + $this->assertFalse( + $this->config->existValue('invalid.config.path') + ); + } + + public function testSetValue() + { + $this->config->setValue('other.multi.deep.nested', __FUNCTION__); + + $this->assertEquals( + $this->config->getValue('other.multi.deep.nested'), + __FUNCTION__ + ); + } + + public function testFailedSaveConfig() + { + $this->setExpectedException('Exception'); + $this->config->saveConfigFile('/invalid/path'); + } + + public function testSuccessSaveConfigOnTempAndReload() + { + $this->config->setValue('other.multi.deep.nested', "SUPERNESTED"); + $this->config->saveConfigFile("/tmp/testconfig.php", true); + + $this->assertEquals( + $this->config->getValue('other.multi.deep.nested'), + "SUPERNESTED" + ); + } + + public function testOverwriteSameConfigFile() + { + $this->config->saveConfigFile(); + } + + public function testFailWriteConfig() + { + $this->setExpectedException('\RuntimeException'); + $this->config->saveConfigFile('/invalid/path/test.php'); + } } \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/tests/FileConverterTest.php b/vendor/clagiordano/weblibs-configmanager/tests/FileConverterTest.php deleted file mode 100755 index 152261486..000000000 --- a/vendor/clagiordano/weblibs-configmanager/tests/FileConverterTest.php +++ /dev/null @@ -1,148 +0,0 @@ -config = new JsonConfigManager("TestConfigData.json"); - $this->assertInstanceOf('clagiordano\weblibs\configmanager\JsonConfigManager', $this->config); - - $this->assertFileExists($this->configFile); - $this->config->loadConfig($this->configFile); - } -} \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/tests/YamlConfigManagerTest.php b/vendor/clagiordano/weblibs-configmanager/tests/YamlConfigManagerTest.php deleted file mode 100755 index d5df62656..000000000 --- a/vendor/clagiordano/weblibs-configmanager/tests/YamlConfigManagerTest.php +++ /dev/null @@ -1,25 +0,0 @@ -config = new YamlConfigManager("TestConfigData.yml"); - $this->assertInstanceOf('clagiordano\weblibs\configmanager\YamlConfigManager', $this->config); - - $this->assertFileExists($this->configFile); - $this->config->loadConfig($this->configFile); - } -} \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.empty.converted.yml b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.empty.converted.yml deleted file mode 100755 index 6578fd5a5..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.empty.converted.yml +++ /dev/null @@ -1 +0,0 @@ -{ } diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json deleted file mode 100755 index 126dd6372..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json +++ /dev/null @@ -1 +0,0 @@ -{"app":"name","db":{"host":"localhost","user":"sample_user","pass":"sample_pass","port":"3306"},"other":{"multi":{"deep":{"nested":"config_value"}}}} \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json.converted.php b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json.converted.php deleted file mode 100755 index ce32a6626..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json.converted.php +++ /dev/null @@ -1,23 +0,0 @@ - 'name', - 'db' => - array ( - 'host' => 'localhost', - 'user' => 'sample_user', - 'pass' => 'sample_pass', - 'port' => '3306', - ), - 'other' => - array ( - 'multi' => - array ( - 'deep' => - array ( - 'nested' => 'config_value', - ), - ), - ), -); - diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json.converted.yml b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json.converted.yml deleted file mode 100755 index 3f1a03eda..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.json.converted.yml +++ /dev/null @@ -1,8 +0,0 @@ -app: name -db: - host: localhost - user: sample_user - pass: sample_pass - port: '3306' -other: - multi: { deep: { nested: config_value } } diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php old mode 100755 new mode 100644 diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php.converted.json b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php.converted.json deleted file mode 100755 index 5b14b3dcc..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php.converted.json +++ /dev/null @@ -1 +0,0 @@ -{"app":"app_name","db":{"host":"localhost","user":"sample_user","pass":"sample_pass","port":3306},"other":{"multi":{"deep":{"nested":"config_value"}}}} \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php.converted.yml b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php.converted.yml deleted file mode 100755 index 1de87d790..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.php.converted.yml +++ /dev/null @@ -1,8 +0,0 @@ -app: app_name -db: - host: localhost - user: sample_user - pass: sample_pass - port: 3306 -other: - multi: { deep: { nested: config_value } } diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml deleted file mode 100755 index f67a753bc..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml +++ /dev/null @@ -1,8 +0,0 @@ -app: name -db: - host: localhost - user: sample_user - pass: sample_pass - port: 3306 -other: - multi: { deep: { nested: config_value } } diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml.converted.json b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml.converted.json deleted file mode 100755 index f271831e9..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml.converted.json +++ /dev/null @@ -1 +0,0 @@ -{"app":"name","db":{"host":"localhost","user":"sample_user","pass":"sample_pass","port":3306},"other":{"multi":{"deep":{"nested":"config_value"}}}} \ No newline at end of file diff --git a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml.converted.php b/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml.converted.php deleted file mode 100755 index 770b0daf3..000000000 --- a/vendor/clagiordano/weblibs-configmanager/testsdata/sample_config_data.yml.converted.php +++ /dev/null @@ -1,23 +0,0 @@ - 'name', - 'db' => - array ( - 'host' => 'localhost', - 'user' => 'sample_user', - 'pass' => 'sample_pass', - 'port' => 3306, - ), - 'other' => - array ( - 'multi' => - array ( - 'deep' => - array ( - 'nested' => 'config_value', - ), - ), - ), -); - diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 6588f3b8c..f210f0591 100755 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -7,16 +7,15 @@ $baseDir = dirname($vendorDir); return array( '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', - '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', - 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', - '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', - '9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php', + '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', - '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', - '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', + '9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php', + '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', '35fab96057f1bf5e7aba31a8a6d5fdde' => $vendorDir . '/topthink/think-orm/stubs/load_stubs.php', + '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', + 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', + 'a1105708a18b76903365ca1c4aa61b02' => $vendorDir . '/symfony/translation/Resources/functions.php', 'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php', '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php', 'd767e4fc2dc52fe66584ab8c6684783e' => $vendorDir . '/adbario/php-dot-notation/src/helpers.php', @@ -31,4 +30,5 @@ return array( '841780ea2e1d6545ea3a253239d59c05' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/functions.php', '941748b3c8cae4466c827dfb5ca9602a' => $vendorDir . '/rmccue/requests/library/Deprecated.php', '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php', + 'cc56288302d9df745d97c934d6a6e5f0' => $vendorDir . '/topthink/think-queue/src/common.php', ); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 2118e273e..cf8e56502 100755 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -6,10 +6,11 @@ $vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array( + 'yunwuxin\\cron\\' => array($vendorDir . '/yunwuxin/think-cron/src/cron'), 'think\\view\\driver\\' => array($vendorDir . '/topthink/think-view/src'), 'think\\trace\\' => array($vendorDir . '/topthink/think-trace/src'), 'think\\app\\' => array($vendorDir . '/topthink/think-multi-app/src'), - 'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src'), + 'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src', $vendorDir . '/topthink/think-queue/src'), 'com\\junziqian\\sdk\\' => array($vendorDir . '/ebaoquan/junziqian_sdk/src/com/junziqian/sdk'), 'clagiordano\\weblibs\\configmanager\\' => array($vendorDir . '/clagiordano/weblibs-configmanager/src'), 'app\\' => array($baseDir . '/app'), @@ -25,13 +26,14 @@ return array( 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'), 'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'), - 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), + 'Symfony\\Contracts\\Translation\\' => array($vendorDir . '/symfony/translation-contracts'), 'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), 'Symfony\\Contracts\\HttpClient\\' => array($vendorDir . '/symfony/http-client-contracts'), 'Symfony\\Contracts\\Cache\\' => array($vendorDir . '/symfony/cache-contracts'), - 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), 'Symfony\\Component\\VarExporter\\' => array($vendorDir . '/symfony/var-exporter'), 'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'), + 'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'), + 'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), 'Symfony\\Component\\Mime\\' => array($vendorDir . '/symfony/mime'), 'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'), 'Symfony\\Component\\HttpClient\\' => array($vendorDir . '/symfony/http-client'), @@ -50,7 +52,6 @@ return array( 'OSS\\' => array($vendorDir . '/aliyuncs/oss-sdk-php/src/OSS'), 'Nyholm\\Psr7\\' => array($vendorDir . '/nyholm/psr7/src'), 'Nyholm\\Psr7Server\\' => array($vendorDir . '/nyholm/psr7-server/src'), - 'MyCLabs\\Enum\\' => array($vendorDir . '/myclabs/php-enum/src'), 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), 'Matrix\\' => array($vendorDir . '/markbaker/matrix/classes/src'), 'JmesPath\\' => array($vendorDir . '/mtdowling/jmespath.php/src'), @@ -63,6 +64,7 @@ return array( 'EasyWeChat\\' => array($vendorDir . '/w7corp/easywechat/src'), 'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'), 'Complex\\' => array($vendorDir . '/markbaker/complex/classes/src'), + 'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'), 'AlibabaCloud\\Client\\' => array($vendorDir . '/alibabacloud/client/src'), 'Adbar\\' => array($vendorDir . '/adbario/php-dot-notation/src'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 210bafb1c..bd07e196d 100755 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -8,16 +8,15 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e { public static $files = array ( '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', - '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', - 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', - '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', - '9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php', + '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', - '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', - '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', + '9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php', + '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', '35fab96057f1bf5e7aba31a8a6d5fdde' => __DIR__ . '/..' . '/topthink/think-orm/stubs/load_stubs.php', + '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', + 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', + 'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php', 'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php', '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php', 'd767e4fc2dc52fe66584ab8c6684783e' => __DIR__ . '/..' . '/adbario/php-dot-notation/src/helpers.php', @@ -32,9 +31,14 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e '841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php', '941748b3c8cae4466c827dfb5ca9602a' => __DIR__ . '/..' . '/rmccue/requests/library/Deprecated.php', '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php', + 'cc56288302d9df745d97c934d6a6e5f0' => __DIR__ . '/..' . '/topthink/think-queue/src/common.php', ); public static $prefixLengthsPsr4 = array ( + 'y' => + array ( + 'yunwuxin\\cron\\' => 14, + ), 't' => array ( 'think\\view\\driver\\' => 18, @@ -74,13 +78,14 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e 'Symfony\\Polyfill\\Mbstring\\' => 26, 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, 'Symfony\\Polyfill\\Intl\\Idn\\' => 26, - 'Symfony\\Polyfill\\Ctype\\' => 23, + 'Symfony\\Contracts\\Translation\\' => 30, 'Symfony\\Contracts\\Service\\' => 26, 'Symfony\\Contracts\\HttpClient\\' => 29, 'Symfony\\Contracts\\Cache\\' => 24, - 'Symfony\\Component\\Yaml\\' => 23, 'Symfony\\Component\\VarExporter\\' => 30, 'Symfony\\Component\\VarDumper\\' => 28, + 'Symfony\\Component\\Translation\\' => 30, + 'Symfony\\Component\\Process\\' => 26, 'Symfony\\Component\\Mime\\' => 23, 'Symfony\\Component\\HttpFoundation\\' => 33, 'Symfony\\Component\\HttpClient\\' => 29, @@ -114,7 +119,6 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e ), 'M' => array ( - 'MyCLabs\\Enum\\' => 13, 'Monolog\\' => 8, 'Matrix\\' => 7, ), @@ -139,6 +143,7 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e array ( 'Cron\\' => 5, 'Complex\\' => 8, + 'Carbon\\' => 7, ), 'A' => array ( @@ -148,6 +153,10 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e ); public static $prefixDirsPsr4 = array ( + 'yunwuxin\\cron\\' => + array ( + 0 => __DIR__ . '/..' . '/yunwuxin/think-cron/src/cron', + ), 'think\\view\\driver\\' => array ( 0 => __DIR__ . '/..' . '/topthink/think-view/src', @@ -166,6 +175,7 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e 1 => __DIR__ . '/..' . '/topthink/think-helper/src', 2 => __DIR__ . '/..' . '/topthink/think-orm/src', 3 => __DIR__ . '/..' . '/topthink/think-template/src', + 4 => __DIR__ . '/..' . '/topthink/think-queue/src', ), 'com\\junziqian\\sdk\\' => array ( @@ -227,9 +237,9 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn', ), - 'Symfony\\Polyfill\\Ctype\\' => + 'Symfony\\Contracts\\Translation\\' => array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', + 0 => __DIR__ . '/..' . '/symfony/translation-contracts', ), 'Symfony\\Contracts\\Service\\' => array ( @@ -243,10 +253,6 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e array ( 0 => __DIR__ . '/..' . '/symfony/cache-contracts', ), - 'Symfony\\Component\\Yaml\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/yaml', - ), 'Symfony\\Component\\VarExporter\\' => array ( 0 => __DIR__ . '/..' . '/symfony/var-exporter', @@ -255,6 +261,14 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e array ( 0 => __DIR__ . '/..' . '/symfony/var-dumper', ), + 'Symfony\\Component\\Translation\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/translation', + ), + 'Symfony\\Component\\Process\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/process', + ), 'Symfony\\Component\\Mime\\' => array ( 0 => __DIR__ . '/..' . '/symfony/mime', @@ -328,10 +342,6 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e array ( 0 => __DIR__ . '/..' . '/nyholm/psr7-server/src', ), - 'MyCLabs\\Enum\\' => - array ( - 0 => __DIR__ . '/..' . '/myclabs/php-enum/src', - ), 'Monolog\\' => array ( 0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog', @@ -380,6 +390,10 @@ class ComposerStaticInitd2a74ba94e266cc4f45a64c54a292d7e array ( 0 => __DIR__ . '/..' . '/markbaker/complex/classes/src', ), + 'Carbon\\' => + array ( + 0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon', + ), 'AlibabaCloud\\Client\\' => array ( 0 => __DIR__ . '/..' . '/alibabacloud/client/src', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 07faec5f9..627062043 100755 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -211,36 +211,27 @@ }, { "name": "clagiordano/weblibs-configmanager", - "version": "v1.5.0", - "version_normalized": "1.5.0.0", + "version": "v1.2.0", + "version_normalized": "1.2.0.0", "source": { "type": "git", "url": "https://github.com/clagiordano/weblibs-configmanager.git", - "reference": "8802c7396d61a923c9a73e37ead062b24bb1b273" + "reference": "5c8ebcc62782313b1278afe802b120d18c07a059" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/clagiordano/weblibs-configmanager/zipball/8802c7396d61a923c9a73e37ead062b24bb1b273", - "reference": "8802c7396d61a923c9a73e37ead062b24bb1b273", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/clagiordano/weblibs-configmanager/zipball/5c8ebcc62782313b1278afe802b120d18c07a059", + "reference": "5c8ebcc62782313b1278afe802b120d18c07a059", + "shasum": "" }, "require": { - "ext-json": "*", - "php": ">=5.4", - "symfony/yaml": "^2.8" + "php": ">=5.4" }, "require-dev": { "clagiordano/phpunit-result-printer": "^1", - "php-coveralls/php-coveralls": "^1.1", "phpunit/phpunit": "^4.8" }, - "time": "2021-07-12T15:27:21+00:00", + "time": "2021-05-18T17:55:57+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -269,30 +260,24 @@ ], "support": { "issues": "https://github.com/clagiordano/weblibs-configmanager/issues", - "source": "https://github.com/clagiordano/weblibs-configmanager/tree/v1.5.0" + "source": "https://github.com/clagiordano/weblibs-configmanager/tree/v1.2.0" }, "install-path": "../clagiordano/weblibs-configmanager" }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.1", - "version_normalized": "3.3.1.0", + "version": "v3.3.2", + "version_normalized": "3.3.2.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa" + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/be85b3f05b46c39bbc0d95f6c071ddff669510fa", - "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "shasum": "" }, "require": { "php": "^7.2|^8.0", @@ -307,7 +292,7 @@ "phpstan/phpstan-webmozart-assert": "^1.0", "phpunit/phpunit": "^7.0|^8.0|^9.0" }, - "time": "2022-01-18T15:43:28+00:00", + "time": "2022-09-10T18:51:20+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -333,7 +318,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.1" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" }, "funding": [ { @@ -754,38 +739,36 @@ }, { "name": "guzzlehttp/promises", - "version": "1.5.3", - "version_normalized": "1.5.3.0", + "version": "2.0.1", + "version_normalized": "2.0.1.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", - "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", + "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, - "time": "2023-05-21T12:31:43+00:00", + "time": "2023-08-03T15:11:55+00:00", "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "installation-source": "dist", "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -822,7 +805,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.3" + "source": "https://github.com/guzzle/promises/tree/2.0.1" }, "funding": [ { @@ -842,24 +825,18 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.5.0", - "version_normalized": "2.5.0.0", + "version": "2.6.0", + "version_normalized": "2.6.0.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6" + "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/guzzle/psr7/zipball/8bd7c33a0734ae1c5d074360512beb716bef3f77", + "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77", + "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", @@ -879,7 +856,7 @@ "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, - "time": "2023-04-17T16:11:26+00:00", + "time": "2023-08-03T15:06:02+00:00", "type": "library", "extra": { "bamarni-bin": { @@ -947,7 +924,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.5.0" + "source": "https://github.com/guzzle/psr7/tree/2.6.0" }, "funding": [ { @@ -1060,41 +1037,38 @@ }, { "name": "maennchen/zipstream-php", - "version": "2.4.0", - "version_normalized": "2.4.0.0", + "version": "3.1.0", + "version_normalized": "3.1.0.0", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3" + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3", - "reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "shasum": "" }, "require": { "ext-mbstring": "*", - "myclabs/php-enum": "^1.5", - "php": "^8.0", - "psr/http-message": "^1.0" + "ext-zlib": "*", + "php-64bit": "^8.1" }, "require-dev": { "ext-zip": "*", - "friendsofphp/php-cs-fixer": "^3.9", - "guzzlehttp/guzzle": "^6.5.3 || ^7.2.0", + "friendsofphp/php-cs-fixer": "^3.16", + "guzzlehttp/guzzle": "^7.5", "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4", - "phpunit/phpunit": "^8.5.8 || ^9.4.2", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^10.0", "vimeo/psalm": "^5.0" }, - "time": "2022-12-08T12:29:14+00:00", + "suggest": { + "guzzlehttp/psr7": "^2.4", + "psr/http-message": "^2.0" + }, + "time": "2023-06-21T14:59:35+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1131,7 +1105,7 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.4.0" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0" }, "funding": [ { @@ -1446,41 +1420,65 @@ "install-path": "../mtdowling/jmespath.php" }, { - "name": "myclabs/php-enum", - "version": "1.8.3", - "version_normalized": "1.8.3.0", + "name": "nesbot/carbon", + "version": "2.68.1", + "version_normalized": "2.68.1.0", "source": { "type": "git", - "url": "https://github.com/myclabs/php-enum.git", - "reference": "b942d263c641ddb5190929ff840c68f78713e937" + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "4f991ed2a403c85efbc4f23eb4030063fdbe01da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/php-enum/zipball/b942d263c641ddb5190929ff840c68f78713e937", - "reference": "b942d263c641ddb5190929ff840c68f78713e937", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4f991ed2a403c85efbc4f23eb4030063fdbe01da", + "reference": "4f991ed2a403c85efbc4f23eb4030063fdbe01da", + "shasum": "" }, "require": { "ext-json": "*", - "php": "^7.3 || ^8.0" + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "1.*", - "vimeo/psalm": "^4.6.2" + "doctrine/dbal": "^2.0 || ^3.1.4", + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" }, - "time": "2021-07-05T08:18:36+00:00", + "time": "2023-06-20T18:29:04+00:00", + "bin": [ + "bin/carbon" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, "installation-source": "dist", "autoload": { "psr-4": { - "MyCLabs\\Enum\\": "src/" + "Carbon\\": "src/Carbon/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1489,30 +1487,42 @@ ], "authors": [ { - "name": "PHP Enum contributors", - "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" } ], - "description": "PHP Enum implementation", - "homepage": "http://github.com/myclabs/php-enum", + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", "keywords": [ - "enum" + "date", + "datetime", + "time" ], "support": { - "issues": "https://github.com/myclabs/php-enum/issues", - "source": "https://github.com/myclabs/php-enum/tree/1.8.3" + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" }, "funding": [ { - "url": "https://github.com/mnapoli", + "url": "https://github.com/sponsors/kylekatarnls", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", "type": "tidelift" } ], - "install-path": "../myclabs/php-enum" + "install-path": "../nesbot/carbon" }, { "name": "nyholm/psr7", @@ -1760,24 +1770,18 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "1.28.0", - "version_normalized": "1.28.0.0", + "version": "1.29.0", + "version_normalized": "1.29.0.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "6e81cf39bbd93ebc3a4e8150444c41e8aa9b769a" + "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/6e81cf39bbd93ebc3a4e8150444c41e8aa9b769a", - "reference": "6e81cf39bbd93ebc3a4e8150444c41e8aa9b769a", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fde2ccf55eaef7e86021ff1acce26479160a0fa0", + "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0", + "shasum": "" }, "require": { "ext-ctype": "*", @@ -1794,7 +1798,7 @@ "ext-zip": "*", "ext-zlib": "*", "ezyang/htmlpurifier": "^4.15", - "maennchen/zipstream-php": "^2.1", + "maennchen/zipstream-php": "^2.1 || ^3.0", "markbaker/complex": "^3.0", "markbaker/matrix": "^3.0", "php": "^7.4 || ^8.0", @@ -1806,12 +1810,12 @@ "dealerdirect/phpcodesniffer-composer-installer": "dev-main", "dompdf/dompdf": "^1.0 || ^2.0", "friendsofphp/php-cs-fixer": "^3.2", - "mitoteam/jpgraph": "^10.2.4", + "mitoteam/jpgraph": "^10.3", "mpdf/mpdf": "^8.1.1", "phpcompatibility/php-compatibility": "^9.3", "phpstan/phpstan": "^1.1", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.0", + "phpunit/phpunit": "^8.5 || ^9.0 || ^10.0", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, @@ -1822,7 +1826,7 @@ "mpdf/mpdf": "Option for rendering PDF with PDF Writer", "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer" }, - "time": "2023-02-25T12:24:49+00:00", + "time": "2023-06-14T22:48:31+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1868,7 +1872,7 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.28.0" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.0" }, "install-path": "../phpoffice/phpspreadsheet" }, @@ -1989,30 +1993,24 @@ }, { "name": "psr/http-client", - "version": "1.0.1", - "version_normalized": "1.0.1.0", + "version": "1.0.2", + "version_normalized": "1.0.2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "shasum": "" }, "require": { "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, - "time": "2020-06-29T06:28:15+00:00", + "time": "2023-04-10T20:12:12+00:00", "type": "library", "extra": { "branch-alias": { @@ -2032,7 +2030,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP clients", @@ -2044,7 +2042,7 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "source": "https://github.com/php-fig/http-client/tree/1.0.2" }, "install-path": "../psr/http-client" }, @@ -2483,24 +2481,18 @@ }, { "name": "rmccue/requests", - "version": "v2.0.5", - "version_normalized": "2.0.5.0", + "version": "v2.0.7", + "version_normalized": "2.0.7.0", "source": { "type": "git", "url": "https://github.com/WordPress/Requests.git", - "reference": "b717f1d2f4ef7992ec0c127747ed8b7e170c2f49" + "reference": "e14a6f4e7438d3f8da3f2657759e6367b906ee23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/Requests/zipball/b717f1d2f4ef7992ec0c127747ed8b7e170c2f49", - "reference": "b717f1d2f4ef7992ec0c127747ed8b7e170c2f49", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/WordPress/Requests/zipball/e14a6f4e7438d3f8da3f2657759e6367b906ee23", + "reference": "e14a6f4e7438d3f8da3f2657759e6367b906ee23", + "shasum": "" }, "require": { "ext-json": "*", @@ -2517,7 +2509,7 @@ "wp-coding-standards/wpcs": "^2.0", "yoast/phpunit-polyfills": "^1.0.0" }, - "time": "2022-10-11T08:15:28+00:00", + "time": "2023-06-02T07:35:42+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2761,33 +2753,27 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.2", - "version_normalized": "3.0.2.0", + "version": "v3.3.0", + "version_normalized": "3.3.0.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, - "time": "2022-01-02T09:55:41+00:00", + "time": "2023-05-23T14:45:45+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2817,7 +2803,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" }, "funding": [ { @@ -2837,28 +2823,23 @@ }, { "name": "symfony/http-client", - "version": "v6.0.20", - "version_normalized": "6.0.20.0", + "version": "v6.2.13", + "version_normalized": "6.2.13.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "541c04560da1875f62c963c3aab6ea12a7314e11" + "reference": "297374a399ce6852d5905d92a1351df00bb9dd10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/541c04560da1875f62c963c3aab6ea12a7314e11", - "reference": "541c04560da1875f62c963c3aab6ea12a7314e11", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/http-client/zipball/297374a399ce6852d5905d92a1351df00bb9dd10", + "reference": "297374a399ce6852d5905d92a1351df00bb9dd10", + "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/http-client-contracts": "^3", "symfony/service-contracts": "^1.0|^2|^3" }, @@ -2876,13 +2857,14 @@ "guzzlehttp/promises": "^1.4", "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", + "php-http/message-factory": "^1.0", "psr/http-client": "^1.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/http-kernel": "^5.4|^6.0", "symfony/process": "^5.4|^6.0", "symfony/stopwatch": "^5.4|^6.0" }, - "time": "2023-01-30T15:41:07+00:00", + "time": "2023-07-03T12:13:45+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2909,8 +2891,11 @@ ], "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", + "keywords": [ + "http" + ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.0.20" + "source": "https://github.com/symfony/http-client/tree/v6.2.13" }, "funding": [ { @@ -2930,36 +2915,27 @@ }, { "name": "symfony/http-client-contracts", - "version": "v3.0.2", - "version_normalized": "3.0.2.0", + "version": "v3.3.0", + "version_normalized": "3.3.0.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "4184b9b63af1edaf35b6a7974c6f1f9f33294129" + "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/4184b9b63af1edaf35b6a7974c6f1f9f33294129", - "reference": "4184b9b63af1edaf35b6a7974c6f1f9f33294129", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb", + "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb", + "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, - "suggest": { - "symfony/http-client-implementation": "" - }, - "time": "2022-04-12T16:11:42+00:00", + "time": "2023-05-23T14:45:45+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2970,7 +2946,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\HttpClient\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2997,7 +2976,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0" }, "funding": [ { @@ -3017,27 +2996,21 @@ }, { "name": "symfony/http-foundation", - "version": "v6.0.20", - "version_normalized": "6.0.20.0", + "version": "v6.1.12", + "version_normalized": "6.1.12.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e16b2676a4b3b1fa12378a20b29c364feda2a8d6" + "reference": "bd1bcfb0eba14de22c4d086c5023e608f37366ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e16b2676a4b3b1fa12378a20b29c364feda2a8d6", - "reference": "e16b2676a4b3b1fa12378a20b29c364feda2a8d6", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/bd1bcfb0eba14de22c4d086c5023e608f37366ed", + "reference": "bd1bcfb0eba14de22c4d086c5023e608f37366ed", + "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1" }, @@ -3053,7 +3026,7 @@ "suggest": { "symfony/mime": "To use the file extension guesser" }, - "time": "2023-01-30T15:41:07+00:00", + "time": "2023-01-30T15:43:30+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -3081,7 +3054,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.0.20" + "source": "https://github.com/symfony/http-foundation/tree/v6.1.12" }, "funding": [ { @@ -3101,27 +3074,22 @@ }, { "name": "symfony/mime", - "version": "v6.0.19", - "version_normalized": "6.0.19.0", + "version": "v6.3.3", + "version_normalized": "6.3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "d7052547a0070cbeadd474e172b527a00d657301" + "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/d7052547a0070cbeadd474e172b527a00d657301", - "reference": "d7052547a0070cbeadd474e172b527a00d657301", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/mime/zipball/9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", + "reference": "9a0cbd52baa5ba5a5b1f0cacc59466f194730f98", + "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -3130,17 +3098,18 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" + "symfony/serializer": "<6.2.13|>=6.3,<6.3.2" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" + "symfony/serializer": "~6.2.13|^6.3.2" }, - "time": "2023-01-11T11:50:03+00:00", + "time": "2023-07-31T07:08:24+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -3172,7 +3141,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.0.19" + "source": "https://github.com/symfony/mime/tree/v6.3.3" }, "funding": [ { @@ -3190,97 +3159,6 @@ ], "install-path": "../symfony/mime" }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "time": "2022-11-03T14:55:06+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.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" - } - ], - "install-path": "../symfony/polyfill-ctype" - }, { "name": "symfony/polyfill-intl-idn", "version": "v1.27.0", @@ -3916,29 +3794,89 @@ "install-path": "../symfony/polyfill-php81" }, { - "name": "symfony/psr-http-message-bridge", - "version": "v2.2.0", - "version_normalized": "2.2.0.0", + "name": "symfony/process", + "version": "v5.4.26", + "version_normalized": "5.4.26.0", "source": { "type": "git", - "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "28a732c05bbad801304ad5a5c674cf2970508993" + "url": "https://github.com/symfony/process.git", + "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/28a732c05bbad801304ad5a5c674cf2970508993", - "reference": "28a732c05bbad801304ad5a5c674cf2970508993", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } + "url": "https://api.github.com/repos/symfony/process/zipball/1a44dc377ec86a50fab40d066cd061e28a6b482f", + "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "time": "2023-07-12T15:44:31+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.4.26" + }, + "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" + } + ], + "install-path": "../symfony/process" + }, + { + "name": "symfony/psr-http-message-bridge", + "version": "v2.3.1", + "version_normalized": "2.3.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e", + "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e", + "shasum": "" + }, "require": { "php": ">=7.2.5", "psr/http-message": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", "symfony/http-foundation": "^5.4 || ^6.0" }, "require-dev": { @@ -3954,11 +3892,11 @@ "suggest": { "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" }, - "time": "2023-04-21T08:40:19+00:00", + "time": "2023-07-26T11:53:26+00:00", "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-main": "2.2-dev" + "dev-main": "2.3-dev" } }, "installation-source": "dist", @@ -3994,7 +3932,7 @@ ], "support": { "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.2.0" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1" }, "funding": [ { @@ -4104,6 +4042,185 @@ ], "install-path": "../symfony/service-contracts" }, + { + "name": "symfony/translation", + "version": "v6.3.3", + "version_normalized": "6.3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "reference": "3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.13", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0" + }, + "time": "2023-07-31T07:08:24+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v6.3.3" + }, + "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" + } + ], + "install-path": "../symfony/translation" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.3.0", + "version_normalized": "3.3.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "time": "2023-05-30T17:17:10+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "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 translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.3.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" + } + ], + "install-path": "../symfony/translation-contracts" + }, { "name": "symfony/var-dumper", "version": "v4.4.47", @@ -4204,32 +4321,26 @@ }, { "name": "symfony/var-exporter", - "version": "v6.0.19", - "version_normalized": "6.0.19.0", + "version": "v6.3.2", + "version_normalized": "6.3.2.0", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2" + "reference": "3400949782c0cb5b3e73aa64cfd71dde000beccc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df56f53818c2d5d9f683f4ad2e365ba73a3b69d2", - "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/3400949782c0cb5b3e73aa64cfd71dde000beccc", + "reference": "3400949782c0cb5b3e73aa64cfd71dde000beccc", + "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, "require-dev": { "symfony/var-dumper": "^5.4|^6.0" }, - "time": "2023-01-13T08:34:10+00:00", + "time": "2023-07-26T17:39:03+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -4262,10 +4373,12 @@ "export", "hydrate", "instantiate", + "lazy-loading", + "proxy", "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.0.19" + "source": "https://github.com/symfony/var-exporter/tree/v6.3.2" }, "funding": [ { @@ -4283,88 +4396,20 @@ ], "install-path": "../symfony/var-exporter" }, - { - "name": "symfony/yaml", - "version": "v2.8.52", - "version_normalized": "2.8.52.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b", - "reference": "02c1859112aa779d9ab394ae4f3381911d84052b", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "~1.8" - }, - "time": "2018-11-11T11:18:13+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v2.8.52" - }, - "install-path": "../symfony/yaml" - }, { "name": "tencentcloud/tencentcloud-sdk-php", - "version": "3.0.935", - "version_normalized": "3.0.935.0", + "version": "3.0.950", + "version_normalized": "3.0.950.0", "source": { "type": "git", "url": "https://github.com/TencentCloud/tencentcloud-sdk-php.git", - "reference": "91af4a89502782136c969c70b96d2fe7f76fba48" + "reference": "33490ab22dc357d297c3419740a23c39ea70b20e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TencentCloud/tencentcloud-sdk-php/zipball/91af4a89502782136c969c70b96d2fe7f76fba48", - "reference": "91af4a89502782136c969c70b96d2fe7f76fba48", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/TencentCloud/tencentcloud-sdk-php/zipball/33490ab22dc357d297c3419740a23c39ea70b20e", + "reference": "33490ab22dc357d297c3419740a23c39ea70b20e", + "shasum": "" }, "require": { "guzzlehttp/guzzle": "^6.3 || ^7.0", @@ -4373,7 +4418,7 @@ "require-dev": { "phpunit/phpunit": "^9.5" }, - "time": "2023-07-20T00:05:40+00:00", + "time": "2023-08-09T00:06:15+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -4400,7 +4445,7 @@ "homepage": "https://github.com/TencentCloud/tencentcloud-sdk-php", "support": { "issues": "https://github.com/TencentCloud/tencentcloud-sdk-php/issues", - "source": "https://github.com/TencentCloud/tencentcloud-sdk-php/tree/3.0.935" + "source": "https://github.com/TencentCloud/tencentcloud-sdk-php/tree/3.0.950" }, "install-path": "../tencentcloud/tencentcloud-sdk-php" }, @@ -4702,6 +4747,70 @@ }, "install-path": "../topthink/think-orm" }, + { + "name": "topthink/think-queue", + "version": "v3.0.9", + "version_normalized": "3.0.9.0", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-queue.git", + "reference": "654812b47dd7c708c4443deed27f212f8382e8da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/top-think/think-queue/zipball/654812b47dd7c708c4443deed27f212f8382e8da", + "reference": "654812b47dd7c708c4443deed27f212f8382e8da", + "shasum": "" + }, + "require": { + "ext-json": "*", + "nesbot/carbon": "^2.16", + "symfony/process": ">=4.2", + "topthink/framework": "^6.0 || ^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "phpunit/phpunit": "^6.2", + "topthink/think-migration": "^3.0" + }, + "time": "2023-07-03T05:42:01+00:00", + "type": "library", + "extra": { + "think": { + "services": [ + "think\\queue\\Service" + ], + "config": { + "queue": "src/config.php" + } + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/common.php" + ], + "psr-4": { + "think\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP6 Queue Package", + "support": { + "issues": "https://github.com/top-think/think-queue/issues", + "source": "https://github.com/top-think/think-queue/tree/v3.0.9" + }, + "install-path": "../topthink/think-queue" + }, { "name": "topthink/think-template", "version": "v2.0.9", @@ -4864,24 +4973,18 @@ }, { "name": "w7corp/easywechat", - "version": "6.8.0", - "version_normalized": "6.8.0.0", + "version": "6.12.3", + "version_normalized": "6.12.3.0", "source": { "type": "git", "url": "https://github.com/w7corp/easywechat.git", - "reference": "60f0b4ba2ac3144df1a2291193daa34beb949d26" + "reference": "10b9f31b61b4e5327c9e4457dffcf307de2deb6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/w7corp/easywechat/zipball/60f0b4ba2ac3144df1a2291193daa34beb949d26", - "reference": "60f0b4ba2ac3144df1a2291193daa34beb949d26", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] + "url": "https://api.github.com/repos/w7corp/easywechat/zipball/10b9f31b61b4e5327c9e4457dffcf307de2deb6c", + "reference": "10b9f31b61b4e5327c9e4457dffcf307de2deb6c", + "shasum": "" }, "require": { "ext-curl": "*", @@ -4890,10 +4993,10 @@ "ext-openssl": "*", "ext-simplexml": "*", "ext-sodium": "*", - "monolog/monolog": "^2.2", + "monolog/monolog": "^2.2|^3.0", "nyholm/psr7": "^1.5", "nyholm/psr7-server": "^1.0", - "overtrue/socialite": "^3.5|^4.0.1", + "overtrue/socialite": "^3.5.4|^4.0.1", "php": ">=8.0.2", "psr/http-client": "^1.0", "psr/simple-cache": "^1.0|^2.0|^3.0", @@ -4915,7 +5018,7 @@ "phpunit/phpunit": "^9.5", "symfony/var-dumper": "^5.2" }, - "time": "2022-09-25T13:05:18+00:00", + "time": "2023-07-05T14:14:28+00:00", "type": "library", "extra": { "hooks": { @@ -4961,7 +5064,7 @@ ], "support": { "issues": "https://github.com/w7corp/easywechat/issues", - "source": "https://github.com/w7corp/easywechat/tree/6.8.0" + "source": "https://github.com/w7corp/easywechat/tree/6.12.3" }, "funding": [ { @@ -5037,6 +5140,65 @@ "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, "install-path": "../webmozart/assert" + }, + { + "name": "yunwuxin/think-cron", + "version": "v3.0.6", + "version_normalized": "3.0.6.0", + "source": { + "type": "git", + "url": "https://github.com/yunwuxin/think-cron.git", + "reference": "4013c39cea4600e05ffd10de5b63177bfb9bf480" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yunwuxin/think-cron/zipball/4013c39cea4600e05ffd10de5b63177bfb9bf480", + "reference": "4013c39cea4600e05ffd10de5b63177bfb9bf480", + "shasum": "" + }, + "require": { + "dragonmantank/cron-expression": "^3.0", + "nesbot/carbon": "^2.28", + "symfony/process": "^4.4 || ^5.0", + "topthink/framework": "^6.0 || ^8.0" + }, + "require-dev": { + "topthink/think-swoole": "^4.0" + }, + "time": "2023-07-01T11:10:51+00:00", + "type": "library", + "extra": { + "think": { + "config": { + "cron": "src/config.php" + }, + "services": [ + "yunwuxin\\cron\\Service" + ] + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "yunwuxin\\cron\\": "src/cron" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "计划任务", + "support": { + "issues": "https://github.com/yunwuxin/think-cron/issues", + "source": "https://github.com/yunwuxin/think-cron/tree/v3.0.6" + }, + "install-path": "../yunwuxin/think-cron" } ], "dev": true, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 332dd41fe..1292a72b7 100755 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => 'topthink/think', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '0197552395b685f53388789e60cb3a0be9f37b16', + 'reference' => '2ce3ce34e1ecd3baf3de0336dbc82d38522186d8', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -38,18 +38,18 @@ 'dev_requirement' => false, ), 'clagiordano/weblibs-configmanager' => array( - 'pretty_version' => 'v1.5.0', - 'version' => '1.5.0.0', - 'reference' => '8802c7396d61a923c9a73e37ead062b24bb1b273', + 'pretty_version' => 'v1.2.0', + 'version' => '1.2.0.0', + 'reference' => '5c8ebcc62782313b1278afe802b120d18c07a059', 'type' => 'library', 'install_path' => __DIR__ . '/../clagiordano/weblibs-configmanager', 'aliases' => array(), 'dev_requirement' => false, ), 'dragonmantank/cron-expression' => array( - 'pretty_version' => 'v3.3.1', - 'version' => '3.3.1.0', - 'reference' => 'be85b3f05b46c39bbc0d95f6c071ddff669510fa', + 'pretty_version' => 'v3.3.2', + 'version' => '3.3.2.0', + 'reference' => '782ca5968ab8b954773518e9e49a6f892a34b2a8', 'type' => 'library', 'install_path' => __DIR__ . '/../dragonmantank/cron-expression', 'aliases' => array(), @@ -101,18 +101,18 @@ 'dev_requirement' => false, ), 'guzzlehttp/promises' => array( - 'pretty_version' => '1.5.3', - 'version' => '1.5.3.0', - 'reference' => '67ab6e18aaa14d753cc148911d273f6e6cb6721e', + 'pretty_version' => '2.0.1', + 'version' => '2.0.1.0', + 'reference' => '111166291a0f8130081195ac4556a5587d7f1b5d', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => false, ), 'guzzlehttp/psr7' => array( - 'pretty_version' => '2.5.0', - 'version' => '2.5.0.0', - 'reference' => 'b635f279edd83fc275f822a1188157ffea568ff6', + 'pretty_version' => '2.6.0', + 'version' => '2.6.0.0', + 'reference' => '8bd7c33a0734ae1c5d074360512beb716bef3f77', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), @@ -128,9 +128,9 @@ 'dev_requirement' => false, ), 'maennchen/zipstream-php' => array( - 'pretty_version' => '2.4.0', - 'version' => '2.4.0.0', - 'reference' => '3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3', + 'pretty_version' => '3.1.0', + 'version' => '3.1.0.0', + 'reference' => 'b8174494eda667f7d13876b4a7bfef0f62a7c0d1', 'type' => 'library', 'install_path' => __DIR__ . '/../maennchen/zipstream-php', 'aliases' => array(), @@ -178,12 +178,12 @@ 'aliases' => array(), 'dev_requirement' => false, ), - 'myclabs/php-enum' => array( - 'pretty_version' => '1.8.3', - 'version' => '1.8.3.0', - 'reference' => 'b942d263c641ddb5190929ff840c68f78713e937', + 'nesbot/carbon' => array( + 'pretty_version' => '2.68.1', + 'version' => '2.68.1.0', + 'reference' => '4f991ed2a403c85efbc4f23eb4030063fdbe01da', 'type' => 'library', - 'install_path' => __DIR__ . '/../myclabs/php-enum', + 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => false, ), @@ -233,9 +233,9 @@ ), ), 'phpoffice/phpspreadsheet' => array( - 'pretty_version' => '1.28.0', - 'version' => '1.28.0.0', - 'reference' => '6e81cf39bbd93ebc3a4e8150444c41e8aa9b769a', + 'pretty_version' => '1.29.0', + 'version' => '1.29.0.0', + 'reference' => 'fde2ccf55eaef7e86021ff1acce26479160a0fa0', 'type' => 'library', 'install_path' => __DIR__ . '/../phpoffice/phpspreadsheet', 'aliases' => array(), @@ -266,9 +266,9 @@ 'dev_requirement' => false, ), 'psr/http-client' => array( - 'pretty_version' => '1.0.1', - 'version' => '1.0.1.0', - 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621', + 'pretty_version' => '1.0.2', + 'version' => '1.0.2.0', + 'reference' => '0955afe48220520692d2d09f7ab7e0f93ffd6a31', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(), @@ -368,9 +368,9 @@ 'dev_requirement' => false, ), 'rmccue/requests' => array( - 'pretty_version' => 'v2.0.5', - 'version' => '2.0.5.0', - 'reference' => 'b717f1d2f4ef7992ec0c127747ed8b7e170c2f49', + 'pretty_version' => 'v2.0.7', + 'version' => '2.0.7.0', + 'reference' => 'e14a6f4e7438d3f8da3f2657759e6367b906ee23', 'type' => 'library', 'install_path' => __DIR__ . '/../rmccue/requests', 'aliases' => array(), @@ -401,27 +401,27 @@ ), ), 'symfony/deprecation-contracts' => array( - 'pretty_version' => 'v3.0.2', - 'version' => '3.0.2.0', - 'reference' => '26954b3d62a6c5fd0ea8a2a00c0353a14978d05c', + 'pretty_version' => 'v3.3.0', + 'version' => '3.3.0.0', + 'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/http-client' => array( - 'pretty_version' => 'v6.0.20', - 'version' => '6.0.20.0', - 'reference' => '541c04560da1875f62c963c3aab6ea12a7314e11', + 'pretty_version' => 'v6.2.13', + 'version' => '6.2.13.0', + 'reference' => '297374a399ce6852d5905d92a1351df00bb9dd10', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-client', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/http-client-contracts' => array( - 'pretty_version' => 'v3.0.2', - 'version' => '3.0.2.0', - 'reference' => '4184b9b63af1edaf35b6a7974c6f1f9f33294129', + 'pretty_version' => 'v3.3.0', + 'version' => '3.3.0.0', + 'reference' => '3b66325d0176b4ec826bffab57c9037d759c31fb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-client-contracts', 'aliases' => array(), @@ -434,32 +434,23 @@ ), ), 'symfony/http-foundation' => array( - 'pretty_version' => 'v6.0.20', - 'version' => '6.0.20.0', - 'reference' => 'e16b2676a4b3b1fa12378a20b29c364feda2a8d6', + 'pretty_version' => 'v6.1.12', + 'version' => '6.1.12.0', + 'reference' => 'bd1bcfb0eba14de22c4d086c5023e608f37366ed', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-foundation', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/mime' => array( - 'pretty_version' => 'v6.0.19', - 'version' => '6.0.19.0', - 'reference' => 'd7052547a0070cbeadd474e172b527a00d657301', + 'pretty_version' => 'v6.3.3', + 'version' => '6.3.3.0', + 'reference' => '9a0cbd52baa5ba5a5b1f0cacc59466f194730f98', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/mime', 'aliases' => array(), 'dev_requirement' => false, ), - 'symfony/polyfill-ctype' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', - 'aliases' => array(), - 'dev_requirement' => false, - ), 'symfony/polyfill-intl-idn' => array( 'pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', @@ -523,10 +514,19 @@ 'aliases' => array(), 'dev_requirement' => false, ), + 'symfony/process' => array( + 'pretty_version' => 'v5.4.26', + 'version' => '5.4.26.0', + 'reference' => '1a44dc377ec86a50fab40d066cd061e28a6b482f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/process', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'symfony/psr-http-message-bridge' => array( - 'pretty_version' => 'v2.2.0', - 'version' => '2.2.0.0', - 'reference' => '28a732c05bbad801304ad5a5c674cf2970508993', + 'pretty_version' => 'v2.3.1', + 'version' => '2.3.1.0', + 'reference' => '581ca6067eb62640de5ff08ee1ba6850a0ee472e', 'type' => 'symfony-bridge', 'install_path' => __DIR__ . '/../symfony/psr-http-message-bridge', 'aliases' => array(), @@ -541,6 +541,30 @@ 'aliases' => array(), 'dev_requirement' => false, ), + 'symfony/translation' => array( + 'pretty_version' => 'v6.3.3', + 'version' => '6.3.3.0', + 'reference' => '3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/translation', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/translation-contracts' => array( + 'pretty_version' => 'v3.3.0', + 'version' => '3.3.0.0', + 'reference' => '02c24deb352fb0d79db5486c0c79905a85e37e86', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/translation-contracts', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'symfony/translation-implementation' => array( + 'dev_requirement' => false, + 'provided' => array( + 0 => '2.3|3.0', + ), + ), 'symfony/var-dumper' => array( 'pretty_version' => 'v4.4.47', 'version' => '4.4.47.0', @@ -551,27 +575,18 @@ 'dev_requirement' => true, ), 'symfony/var-exporter' => array( - 'pretty_version' => 'v6.0.19', - 'version' => '6.0.19.0', - 'reference' => 'df56f53818c2d5d9f683f4ad2e365ba73a3b69d2', + 'pretty_version' => 'v6.3.2', + 'version' => '6.3.2.0', + 'reference' => '3400949782c0cb5b3e73aa64cfd71dde000beccc', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/var-exporter', 'aliases' => array(), 'dev_requirement' => false, ), - 'symfony/yaml' => array( - 'pretty_version' => 'v2.8.52', - 'version' => '2.8.52.0', - 'reference' => '02c1859112aa779d9ab394ae4f3381911d84052b', - 'type' => 'library', - 'install_path' => __DIR__ . '/../symfony/yaml', - 'aliases' => array(), - 'dev_requirement' => false, - ), 'tencentcloud/tencentcloud-sdk-php' => array( - 'pretty_version' => '3.0.935', - 'version' => '3.0.935.0', - 'reference' => '91af4a89502782136c969c70b96d2fe7f76fba48', + 'pretty_version' => '3.0.950', + 'version' => '3.0.950.0', + 'reference' => '33490ab22dc357d297c3419740a23c39ea70b20e', 'type' => 'library', 'install_path' => __DIR__ . '/../tencentcloud/tencentcloud-sdk-php', 'aliases' => array(), @@ -598,7 +613,7 @@ 'topthink/think' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '0197552395b685f53388789e60cb3a0be9f37b16', + 'reference' => '2ce3ce34e1ecd3baf3de0336dbc82d38522186d8', 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -631,6 +646,15 @@ 'aliases' => array(), 'dev_requirement' => false, ), + 'topthink/think-queue' => array( + 'pretty_version' => 'v3.0.9', + 'version' => '3.0.9.0', + 'reference' => '654812b47dd7c708c4443deed27f212f8382e8da', + 'type' => 'library', + 'install_path' => __DIR__ . '/../topthink/think-queue', + 'aliases' => array(), + 'dev_requirement' => false, + ), 'topthink/think-template' => array( 'pretty_version' => 'v2.0.9', 'version' => '2.0.9.0', @@ -659,9 +683,9 @@ 'dev_requirement' => false, ), 'w7corp/easywechat' => array( - 'pretty_version' => '6.8.0', - 'version' => '6.8.0.0', - 'reference' => '60f0b4ba2ac3144df1a2291193daa34beb949d26', + 'pretty_version' => '6.12.3', + 'version' => '6.12.3.0', + 'reference' => '10b9f31b61b4e5327c9e4457dffcf307de2deb6c', 'type' => 'library', 'install_path' => __DIR__ . '/../w7corp/easywechat', 'aliases' => array(), @@ -676,5 +700,14 @@ 'aliases' => array(), 'dev_requirement' => false, ), + 'yunwuxin/think-cron' => array( + 'pretty_version' => 'v3.0.6', + 'version' => '3.0.6.0', + 'reference' => '4013c39cea4600e05ffd10de5b63177bfb9bf480', + 'type' => 'library', + 'install_path' => __DIR__ . '/../yunwuxin/think-cron', + 'aliases' => array(), + 'dev_requirement' => false, + ), ), ); diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php index b168ddd5d..4c3a5d68f 100755 --- a/vendor/composer/platform_check.php +++ b/vendor/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 80002)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 8.0.2". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 80100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { diff --git a/vendor/dragonmantank/cron-expression/CHANGELOG.md b/vendor/dragonmantank/cron-expression/CHANGELOG.md index 99b587be1..7b6df4b1c 100644 --- a/vendor/dragonmantank/cron-expression/CHANGELOG.md +++ b/vendor/dragonmantank/cron-expression/CHANGELOG.md @@ -1,5 +1,16 @@ # Change Log +## [3.3.2] - 2022-09-19 + +### Added +- N/A + +### Changed +- Skip some daylight savings time tests for PHP 8.1 daylight savings time weirdness (#146) + +### Fixed +- Changed string interpolations to work better with PHP 8.2 (#142) + ## [3.3.1] - 2022-01-18 ### Added diff --git a/vendor/dragonmantank/cron-expression/composer.json b/vendor/dragonmantank/cron-expression/composer.json index e512446d1..657a5b47c 100644 --- a/vendor/dragonmantank/cron-expression/composer.json +++ b/vendor/dragonmantank/cron-expression/composer.json @@ -37,5 +37,11 @@ "scripts": { "phpstan": "./vendor/bin/phpstan analyze", "test": "phpunit" + }, + "config": { + "allow-plugins": { + "ocramius/package-versions": true, + "phpstan/extension-installer": true + } } } diff --git a/vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php b/vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php index e08f62ead..39ff59783 100644 --- a/vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php +++ b/vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php @@ -49,7 +49,7 @@ class DayOfMonthField extends AbstractField private static function getNearestWeekday(int $currentYear, int $currentMonth, int $targetDay): ?DateTime { $tday = str_pad((string) $targetDay, 2, '0', STR_PAD_LEFT); - $target = DateTime::createFromFormat('Y-m-d', "${currentYear}-${currentMonth}-${tday}"); + $target = DateTime::createFromFormat('Y-m-d', "{$currentYear}-{$currentMonth}-{$tday}"); if ($target === false) { return null; @@ -94,9 +94,9 @@ class DayOfMonthField extends AbstractField } // Check to see if this is the nearest weekday to a particular value - if (strpos($value, 'W')) { + if ($wPosition = strpos($value, 'W')) { // Parse the target day - $targetDay = (int) substr($value, 0, strpos($value, 'W')); + $targetDay = (int) substr($value, 0, $wPosition); // Find out if the current day is the nearest day of the week $nearest = self::getNearestWeekday( (int) $date->format('Y'), diff --git a/vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php b/vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php index 5ac003da9..b9bbf48b6 100644 --- a/vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php +++ b/vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php @@ -68,8 +68,8 @@ class DayOfWeekField extends AbstractField $lastDayOfMonth = (int) $date->format('t'); // Find out if this is the last specific weekday of the month - if (strpos($value, 'L')) { - $weekday = $this->convertLiterals(substr($value, 0, strpos($value, 'L'))); + if ($lPosition = strpos($value, 'L')) { + $weekday = $this->convertLiterals(substr($value, 0, $lPosition)); $weekday %= 7; $daysInMonth = (int) $date->format('t'); diff --git a/vendor/dragonmantank/cron-expression/src/Cron/HoursField.php b/vendor/dragonmantank/cron-expression/src/Cron/HoursField.php index a7f8f33c4..413d138be 100644 --- a/vendor/dragonmantank/cron-expression/src/Cron/HoursField.php +++ b/vendor/dragonmantank/cron-expression/src/Cron/HoursField.php @@ -25,7 +25,7 @@ class HoursField extends AbstractField /** * @var array|null Transitions returned by DateTimeZone::getTransitions() */ - protected $transitions = null; + protected $transitions = []; /** * @var int|null Timestamp of the start of the transitions range @@ -92,7 +92,7 @@ class HoursField extends AbstractField $dtLimitStart->getTimestamp(), $dtLimitEnd->getTimestamp() ); - if ($this->transitions === false) { + if (empty($this->transitions)) { return null; } $this->transitionsStart = $dtLimitStart->getTimestamp(); diff --git a/vendor/ebaoquan/junziqian_sdk b/vendor/ebaoquan/junziqian_sdk index 1294ea49f..9acc82cd2 160000 --- a/vendor/ebaoquan/junziqian_sdk +++ b/vendor/ebaoquan/junziqian_sdk @@ -1 +1 @@ -Subproject commit 1294ea49ff9ecc4532821f8798304816cbf8dd74 +Subproject commit 9acc82cd23d807280ddd29df2117e7890094d049 diff --git a/vendor/guzzlehttp/promises/CHANGELOG.md b/vendor/guzzlehttp/promises/CHANGELOG.md index 2e1a2f384..eaf2af426 100644 --- a/vendor/guzzlehttp/promises/CHANGELOG.md +++ b/vendor/guzzlehttp/promises/CHANGELOG.md @@ -1,17 +1,43 @@ # CHANGELOG + +## 2.0.1 - 2023-08-03 + +### Changed + +- PHP 8.3 support + + +## 2.0.0 - 2023-05-21 + +### Added + +- Added PHP 7 type hints + +### Changed + +- All previously non-final non-exception classes have been marked as soft-final + +### Removed + +- Dropped PHP < 7.2 support +- All functions in the `GuzzleHttp\Promise` namespace + + ## 1.5.3 - 2023-05-21 ### Changed - Removed remaining usage of deprecated functions + ## 1.5.2 - 2022-08-07 ### Changed - Officially support PHP 8.2 + ## 1.5.1 - 2021-10-22 ### Fixed @@ -19,6 +45,7 @@ - Revert "Call handler when waiting on fulfilled/rejected Promise" - Fix pool memory leak when empty array of promises provided + ## 1.5.0 - 2021-10-07 ### Changed @@ -30,12 +57,14 @@ - Fix manually settle promises generated with `Utils::task` + ## 1.4.1 - 2021-02-18 ### Fixed - Fixed `each_limit` skipping promises and failing + ## 1.4.0 - 2020-09-30 ### Added diff --git a/vendor/guzzlehttp/promises/README.md b/vendor/guzzlehttp/promises/README.md index 1ea667ab9..a32d3d29c 100644 --- a/vendor/guzzlehttp/promises/README.md +++ b/vendor/guzzlehttp/promises/README.md @@ -29,6 +29,21 @@ for a general introduction to promises. `GuzzleHttp\Promise\Coroutine::of()`. +## Installation + +```shell +composer require guzzlehttp/promises +``` + + +## Version Guidance + +| Version | Status | PHP Version | +|---------|------------------------|--------------| +| 1.x | Bug and security fixes | >=5.5,<8.3 | +| 2.x | Latest | >=7.2.5,<8.4 | + + ## Quick Start A *promise* represents the eventual result of an asynchronous operation. The @@ -430,8 +445,6 @@ $loop = React\EventLoop\Factory::create(); $loop->addPeriodicTimer(0, [$queue, 'run']); ``` -*TODO*: Perhaps adding a `futureTick()` on each tick would be faster? - ## Implementation Notes @@ -501,8 +514,8 @@ $promise->resolve('foo'); A static API was first introduced in 1.4.0, in order to mitigate problems with functions conflicting between global and local copies of the package. The -function API will be removed in 2.0.0. A migration table has been provided here -for your convenience: +function API was removed in 2.0.0. A migration table has been provided here for +your convenience: | Original Function | Replacement Method | |----------------|----------------| diff --git a/vendor/guzzlehttp/promises/composer.json b/vendor/guzzlehttp/promises/composer.json index 966e3e3a8..fc1989ec1 100644 --- a/vendor/guzzlehttp/promises/composer.json +++ b/vendor/guzzlehttp/promises/composer.json @@ -26,27 +26,32 @@ } ], "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "autoload": { "psr-4": { "GuzzleHttp\\Promise\\": "src/" - }, - "files": ["src/functions_include.php"] + } }, "autoload-dev": { "psr-4": { "GuzzleHttp\\Promise\\Tests\\": "tests/" } }, - "scripts": { - "test": "vendor/bin/simple-phpunit", - "test-ci": "vendor/bin/simple-phpunit --coverage-text" + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } }, "config": { + "allow-plugins": { + "bamarni/composer-bin-plugin": true + }, "preferred-install": "dist", "sort-packages": true } diff --git a/vendor/guzzlehttp/promises/src/AggregateException.php b/vendor/guzzlehttp/promises/src/AggregateException.php index d2b5712b9..40ffdbcf1 100644 --- a/vendor/guzzlehttp/promises/src/AggregateException.php +++ b/vendor/guzzlehttp/promises/src/AggregateException.php @@ -1,5 +1,7 @@ generator = $generatorFn(); - $this->result = new Promise(function () { + $this->result = new Promise(function (): void { while (isset($this->currentPromise)) { $this->currentPromise->wait(); } }); try { $this->nextCoroutine($this->generator->current()); - } catch (\Exception $exception) { - $this->result->reject($exception); } catch (Throwable $throwable) { $this->result->reject($throwable); } @@ -78,10 +77,8 @@ final class Coroutine implements PromiseInterface /** * Create a new coroutine. - * - * @return self */ - public static function of(callable $generatorFn) + public static function of(callable $generatorFn): self { return new self($generatorFn); } @@ -89,42 +86,42 @@ final class Coroutine implements PromiseInterface public function then( callable $onFulfilled = null, callable $onRejected = null - ) { + ): PromiseInterface { return $this->result->then($onFulfilled, $onRejected); } - public function otherwise(callable $onRejected) + public function otherwise(callable $onRejected): PromiseInterface { return $this->result->otherwise($onRejected); } - public function wait($unwrap = true) + public function wait(bool $unwrap = true) { return $this->result->wait($unwrap); } - public function getState() + public function getState(): string { return $this->result->getState(); } - public function resolve($value) + public function resolve($value): void { $this->result->resolve($value); } - public function reject($reason) + public function reject($reason): void { $this->result->reject($reason); } - public function cancel() + public function cancel(): void { $this->currentPromise->cancel(); $this->result->cancel(); } - private function nextCoroutine($yielded) + private function nextCoroutine($yielded): void { $this->currentPromise = Create::promiseFor($yielded) ->then([$this, '_handleSuccess'], [$this, '_handleFailure']); @@ -133,7 +130,7 @@ final class Coroutine implements PromiseInterface /** * @internal */ - public function _handleSuccess($value) + public function _handleSuccess($value): void { unset($this->currentPromise); try { @@ -143,8 +140,6 @@ final class Coroutine implements PromiseInterface } else { $this->result->resolve($value); } - } catch (Exception $exception) { - $this->result->reject($exception); } catch (Throwable $throwable) { $this->result->reject($throwable); } @@ -153,15 +148,13 @@ final class Coroutine implements PromiseInterface /** * @internal */ - public function _handleFailure($reason) + public function _handleFailure($reason): void { unset($this->currentPromise); try { $nextYield = $this->generator->throw(Create::exceptionFor($reason)); // The throw was caught, so keep iterating on the coroutine $this->nextCoroutine($nextYield); - } catch (Exception $exception) { - $this->result->reject($exception); } catch (Throwable $throwable) { $this->result->reject($throwable); } diff --git a/vendor/guzzlehttp/promises/src/Create.php b/vendor/guzzlehttp/promises/src/Create.php index 8d038e9c1..9d3fc4a1e 100644 --- a/vendor/guzzlehttp/promises/src/Create.php +++ b/vendor/guzzlehttp/promises/src/Create.php @@ -1,5 +1,7 @@ then([$promise, 'resolve'], [$promise, 'reject']); + return $promise; } @@ -34,10 +35,8 @@ final class Create * If the provided reason is a promise, then it is returned as-is. * * @param mixed $reason Promise or reason. - * - * @return PromiseInterface */ - public static function rejectionFor($reason) + public static function rejectionFor($reason): PromiseInterface { if ($reason instanceof PromiseInterface) { return $reason; @@ -50,12 +49,10 @@ final class Create * Create an exception for a rejected promise value. * * @param mixed $reason - * - * @return \Exception|\Throwable */ - public static function exceptionFor($reason) + public static function exceptionFor($reason): \Throwable { - if ($reason instanceof \Exception || $reason instanceof \Throwable) { + if ($reason instanceof \Throwable) { return $reason; } @@ -66,10 +63,8 @@ final class Create * Returns an iterator for the given value. * * @param mixed $value - * - * @return \Iterator */ - public static function iterFor($value) + public static function iterFor($value): \Iterator { if ($value instanceof \Iterator) { return $value; diff --git a/vendor/guzzlehttp/promises/src/Each.php b/vendor/guzzlehttp/promises/src/Each.php index ff8efd734..1a7aa0fb6 100644 --- a/vendor/guzzlehttp/promises/src/Each.php +++ b/vendor/guzzlehttp/promises/src/Each.php @@ -1,5 +1,7 @@ $onFulfilled, - 'rejected' => $onRejected + 'rejected' => $onRejected, ]))->promise(); } @@ -46,19 +46,17 @@ final class Each * @param int|callable $concurrency * @param callable $onFulfilled * @param callable $onRejected - * - * @return PromiseInterface */ public static function ofLimit( $iterable, $concurrency, callable $onFulfilled = null, callable $onRejected = null - ) { + ): PromiseInterface { return (new EachPromise($iterable, [ - 'fulfilled' => $onFulfilled, - 'rejected' => $onRejected, - 'concurrency' => $concurrency + 'fulfilled' => $onFulfilled, + 'rejected' => $onRejected, + 'concurrency' => $concurrency, ]))->promise(); } @@ -70,19 +68,17 @@ final class Each * @param mixed $iterable * @param int|callable $concurrency * @param callable $onFulfilled - * - * @return PromiseInterface */ public static function ofLimitAll( $iterable, $concurrency, callable $onFulfilled = null - ) { + ): PromiseInterface { return self::ofLimit( $iterable, $concurrency, $onFulfilled, - function ($reason, $idx, PromiseInterface $aggregate) { + function ($reason, $idx, PromiseInterface $aggregate): void { $aggregate->reject($reason); } ); diff --git a/vendor/guzzlehttp/promises/src/EachPromise.php b/vendor/guzzlehttp/promises/src/EachPromise.php index 280d79950..28dd9793a 100644 --- a/vendor/guzzlehttp/promises/src/EachPromise.php +++ b/vendor/guzzlehttp/promises/src/EachPromise.php @@ -1,10 +1,14 @@ aggregate) { return $this->aggregate; @@ -82,21 +86,18 @@ class EachPromise implements PromisorInterface $this->refillPending(); } catch (\Throwable $e) { $this->aggregate->reject($e); - } catch (\Exception $e) { - $this->aggregate->reject($e); } /** * @psalm-suppress NullableReturnStatement - * @phpstan-ignore-next-line */ return $this->aggregate; } - private function createPromise() + private function createPromise(): void { $this->mutex = false; - $this->aggregate = new Promise(function () { + $this->aggregate = new Promise(function (): void { if ($this->checkIfFinished()) { return; } @@ -113,7 +114,7 @@ class EachPromise implements PromisorInterface }); // Clear the references when the promise is resolved. - $clearFn = function () { + $clearFn = function (): void { $this->iterable = $this->concurrency = $this->pending = null; $this->onFulfilled = $this->onRejected = null; $this->nextPendingIndex = 0; @@ -122,11 +123,13 @@ class EachPromise implements PromisorInterface $this->aggregate->then($clearFn, $clearFn); } - private function refillPending() + private function refillPending(): void { if (!$this->concurrency) { // Add all pending promises. - while ($this->addPending() && $this->advanceIterator()); + while ($this->addPending() && $this->advanceIterator()) { + } + return; } @@ -147,10 +150,11 @@ class EachPromise implements PromisorInterface // next value to yield until promise callbacks are called. while (--$concurrency && $this->advanceIterator() - && $this->addPending()); + && $this->addPending()) { + } } - private function addPending() + private function addPending(): bool { if (!$this->iterable || !$this->iterable->valid()) { return false; @@ -164,7 +168,7 @@ class EachPromise implements PromisorInterface $idx = $this->nextPendingIndex++; $this->pending[$idx] = $promise->then( - function ($value) use ($idx, $key) { + function ($value) use ($idx, $key): void { if ($this->onFulfilled) { call_user_func( $this->onFulfilled, @@ -175,7 +179,7 @@ class EachPromise implements PromisorInterface } $this->step($idx); }, - function ($reason) use ($idx, $key) { + function ($reason) use ($idx, $key): void { if ($this->onRejected) { call_user_func( $this->onRejected, @@ -191,7 +195,7 @@ class EachPromise implements PromisorInterface return true; } - private function advanceIterator() + private function advanceIterator(): bool { // Place a lock on the iterator so that we ensure to not recurse, // preventing fatal generator errors. @@ -204,19 +208,17 @@ class EachPromise implements PromisorInterface try { $this->iterable->next(); $this->mutex = false; + return true; } catch (\Throwable $e) { $this->aggregate->reject($e); $this->mutex = false; - return false; - } catch (\Exception $e) { - $this->aggregate->reject($e); - $this->mutex = false; + return false; } } - private function step($idx) + private function step(int $idx): void { // If the promise was already resolved, then ignore this step. if (Is::settled($this->aggregate)) { @@ -234,11 +236,12 @@ class EachPromise implements PromisorInterface } } - private function checkIfFinished() + private function checkIfFinished(): bool { if (!$this->pending && !$this->iterable->valid()) { // Resolve the promise if there's nothing left to do. $this->aggregate->resolve(null); + return true; } diff --git a/vendor/guzzlehttp/promises/src/FulfilledPromise.php b/vendor/guzzlehttp/promises/src/FulfilledPromise.php index 98f72a62a..ab7129659 100644 --- a/vendor/guzzlehttp/promises/src/FulfilledPromise.php +++ b/vendor/guzzlehttp/promises/src/FulfilledPromise.php @@ -1,5 +1,7 @@ value; - $queue->add(static function () use ($p, $value, $onFulfilled) { + $queue->add(static function () use ($p, $value, $onFulfilled): void { if (Is::pending($p)) { try { $p->resolve($onFulfilled($value)); } catch (\Throwable $e) { $p->reject($e); - } catch (\Exception $e) { - $p->reject($e); } } }); @@ -50,34 +55,34 @@ class FulfilledPromise implements PromiseInterface return $p; } - public function otherwise(callable $onRejected) + public function otherwise(callable $onRejected): PromiseInterface { return $this->then(null, $onRejected); } - public function wait($unwrap = true, $defaultDelivery = null) + public function wait(bool $unwrap = true) { return $unwrap ? $this->value : null; } - public function getState() + public function getState(): string { return self::FULFILLED; } - public function resolve($value) + public function resolve($value): void { if ($value !== $this->value) { - throw new \LogicException("Cannot resolve a fulfilled promise"); + throw new \LogicException('Cannot resolve a fulfilled promise'); } } - public function reject($reason) + public function reject($reason): void { - throw new \LogicException("Cannot reject a fulfilled promise"); + throw new \LogicException('Cannot reject a fulfilled promise'); } - public function cancel() + public function cancel(): void { // pass } diff --git a/vendor/guzzlehttp/promises/src/Is.php b/vendor/guzzlehttp/promises/src/Is.php index c3ed8d014..f3f050384 100644 --- a/vendor/guzzlehttp/promises/src/Is.php +++ b/vendor/guzzlehttp/promises/src/Is.php @@ -1,45 +1,39 @@ getState() === PromiseInterface::PENDING; } /** * Returns true if a promise is fulfilled or rejected. - * - * @return bool */ - public static function settled(PromiseInterface $promise) + public static function settled(PromiseInterface $promise): bool { return $promise->getState() !== PromiseInterface::PENDING; } /** * Returns true if a promise is fulfilled. - * - * @return bool */ - public static function fulfilled(PromiseInterface $promise) + public static function fulfilled(PromiseInterface $promise): bool { return $promise->getState() === PromiseInterface::FULFILLED; } /** * Returns true if a promise is rejected. - * - * @return bool */ - public static function rejected(PromiseInterface $promise) + public static function rejected(PromiseInterface $promise): bool { return $promise->getState() === PromiseInterface::REJECTED; } diff --git a/vendor/guzzlehttp/promises/src/Promise.php b/vendor/guzzlehttp/promises/src/Promise.php index 75939057b..1b07bdc9a 100644 --- a/vendor/guzzlehttp/promises/src/Promise.php +++ b/vendor/guzzlehttp/promises/src/Promise.php @@ -1,11 +1,15 @@ state === self::PENDING) { $p = new Promise(null, [$this, 'cancel']); $this->handlers[] = [$p, $onFulfilled, $onRejected]; $p->waitList = $this->waitList; $p->waitList[] = $this; + return $p; } // Return a fulfilled promise and immediately invoke any callbacks. if ($this->state === self::FULFILLED) { $promise = Create::promiseFor($this->result); + return $onFulfilled ? $promise->then($onFulfilled) : $promise; } // It's either cancelled or rejected, so return a rejected promise // and immediately invoke any callbacks. $rejection = Create::rejectionFor($this->result); + return $onRejected ? $rejection->then(null, $onRejected) : $rejection; } - public function otherwise(callable $onRejected) + public function otherwise(callable $onRejected): PromiseInterface { return $this->then(null, $onRejected); } - public function wait($unwrap = true) + public function wait(bool $unwrap = true) { $this->waitIfPending(); @@ -73,12 +80,12 @@ class Promise implements PromiseInterface } } - public function getState() + public function getState(): string { return $this->state; } - public function cancel() + public function cancel(): void { if ($this->state !== self::PENDING) { return; @@ -93,8 +100,6 @@ class Promise implements PromiseInterface $fn(); } catch (\Throwable $e) { $this->reject($e); - } catch (\Exception $e) { - $this->reject($e); } } @@ -105,17 +110,17 @@ class Promise implements PromiseInterface } } - public function resolve($value) + public function resolve($value): void { $this->settle(self::FULFILLED, $value); } - public function reject($reason) + public function reject($reason): void { $this->settle(self::REJECTED, $reason); } - private function settle($state, $value) + private function settle(string $state, $value): void { if ($this->state !== self::PENDING) { // Ignore calls with the same resolution. @@ -148,7 +153,7 @@ class Promise implements PromiseInterface if (!is_object($value) || !method_exists($value, 'then')) { $id = $state === self::FULFILLED ? 1 : 2; // It's a success, so resolve the handlers in the queue. - Utils::queue()->add(static function () use ($id, $value, $handlers) { + Utils::queue()->add(static function () use ($id, $value, $handlers): void { foreach ($handlers as $handler) { self::callHandler($id, $value, $handler); } @@ -159,12 +164,12 @@ class Promise implements PromiseInterface } else { // Resolve the handlers when the forwarded promise is resolved. $value->then( - static function ($value) use ($handlers) { + static function ($value) use ($handlers): void { foreach ($handlers as $handler) { self::callHandler(1, $value, $handler); } }, - static function ($reason) use ($handlers) { + static function ($reason) use ($handlers): void { foreach ($handlers as $handler) { self::callHandler(2, $reason, $handler); } @@ -180,7 +185,7 @@ class Promise implements PromiseInterface * @param mixed $value Value to pass to the callback. * @param array $handler Array of handler data (promise and callbacks). */ - private static function callHandler($index, $value, array $handler) + private static function callHandler(int $index, $value, array $handler): void { /** @var PromiseInterface $promise */ $promise = $handler[0]; @@ -211,12 +216,10 @@ class Promise implements PromiseInterface } } catch (\Throwable $reason) { $promise->reject($reason); - } catch (\Exception $reason) { - $promise->reject($reason); } } - private function waitIfPending() + private function waitIfPending(): void { if ($this->state !== self::PENDING) { return; @@ -227,9 +230,9 @@ class Promise implements PromiseInterface } else { // If there's no wait function, then reject the promise. $this->reject('Cannot wait on a promise that has ' - . 'no internal wait function. You must provide a wait ' - . 'function when constructing the promise to be able to ' - . 'wait on a promise.'); + .'no internal wait function. You must provide a wait ' + .'function when constructing the promise to be able to ' + .'wait on a promise.'); } Utils::queue()->run(); @@ -240,13 +243,13 @@ class Promise implements PromiseInterface } } - private function invokeWaitFn() + private function invokeWaitFn(): void { try { $wfn = $this->waitFn; $this->waitFn = null; $wfn(true); - } catch (\Exception $reason) { + } catch (\Throwable $reason) { if ($this->state === self::PENDING) { // The promise has not been resolved yet, so reject the promise // with the exception. @@ -259,7 +262,7 @@ class Promise implements PromiseInterface } } - private function invokeWaitList() + private function invokeWaitList(): void { $waitList = $this->waitList; $this->waitList = null; diff --git a/vendor/guzzlehttp/promises/src/PromiseInterface.php b/vendor/guzzlehttp/promises/src/PromiseInterface.php index e59833143..2824802bb 100644 --- a/vendor/guzzlehttp/promises/src/PromiseInterface.php +++ b/vendor/guzzlehttp/promises/src/PromiseInterface.php @@ -1,5 +1,7 @@ reason; $p = new Promise([$queue, 'run']); - $queue->add(static function () use ($p, $reason, $onRejected) { + $queue->add(static function () use ($p, $reason, $onRejected): void { if (Is::pending($p)) { try { // Return a resolved promise if onRejected does not throw. @@ -43,9 +50,6 @@ class RejectedPromise implements PromiseInterface } catch (\Throwable $e) { // onRejected threw, so return a rejected promise. $p->reject($e); - } catch (\Exception $e) { - // onRejected threw, so return a rejected promise. - $p->reject($e); } } }); @@ -53,12 +57,12 @@ class RejectedPromise implements PromiseInterface return $p; } - public function otherwise(callable $onRejected) + public function otherwise(callable $onRejected): PromiseInterface { return $this->then(null, $onRejected); } - public function wait($unwrap = true, $defaultDelivery = null) + public function wait(bool $unwrap = true) { if ($unwrap) { throw Create::exceptionFor($this->reason); @@ -67,24 +71,24 @@ class RejectedPromise implements PromiseInterface return null; } - public function getState() + public function getState(): string { return self::REJECTED; } - public function resolve($value) + public function resolve($value): void { - throw new \LogicException("Cannot resolve a rejected promise"); + throw new \LogicException('Cannot resolve a rejected promise'); } - public function reject($reason) + public function reject($reason): void { if ($reason !== $this->reason) { - throw new \LogicException("Cannot reject a rejected promise"); + throw new \LogicException('Cannot reject a rejected promise'); } } - public function cancel() + public function cancel(): void { // pass } diff --git a/vendor/guzzlehttp/promises/src/RejectionException.php b/vendor/guzzlehttp/promises/src/RejectionException.php index e2f137707..47dca8624 100644 --- a/vendor/guzzlehttp/promises/src/RejectionException.php +++ b/vendor/guzzlehttp/promises/src/RejectionException.php @@ -1,5 +1,7 @@ reason = $reason; $message = 'The promise was rejected'; if ($description) { - $message .= ' with reason: ' . $description; + $message .= ' with reason: '.$description; } elseif (is_string($reason) || (is_object($reason) && method_exists($reason, '__toString')) ) { - $message .= ' with reason: ' . $this->reason; + $message .= ' with reason: '.$this->reason; } elseif ($reason instanceof \JsonSerializable) { - $message .= ' with reason: ' - . json_encode($this->reason, JSON_PRETTY_PRINT); + $message .= ' with reason: '.json_encode($this->reason, JSON_PRETTY_PRINT); } parent::__construct($message); diff --git a/vendor/guzzlehttp/promises/src/TaskQueue.php b/vendor/guzzlehttp/promises/src/TaskQueue.php index f0fba2c59..503e0b2da 100644 --- a/vendor/guzzlehttp/promises/src/TaskQueue.php +++ b/vendor/guzzlehttp/promises/src/TaskQueue.php @@ -1,5 +1,7 @@ run(); + * + * @final */ class TaskQueue implements TaskQueueInterface { private $enableShutdown = true; private $queue = []; - public function __construct($withShutdown = true) + public function __construct(bool $withShutdown = true) { if ($withShutdown) { - register_shutdown_function(function () { + register_shutdown_function(function (): void { if ($this->enableShutdown) { // Only run the tasks if an E_ERROR didn't occur. $err = error_get_last(); @@ -31,17 +35,17 @@ class TaskQueue implements TaskQueueInterface } } - public function isEmpty() + public function isEmpty(): bool { return !$this->queue; } - public function add(callable $task) + public function add(callable $task): void { $this->queue[] = $task; } - public function run() + public function run(): void { while ($task = array_shift($this->queue)) { /** @var callable $task */ @@ -60,7 +64,7 @@ class TaskQueue implements TaskQueueInterface * * Note: This shutdown will occur before any destructors are triggered. */ - public function disableShutdown() + public function disableShutdown(): void { $this->enableShutdown = false; } diff --git a/vendor/guzzlehttp/promises/src/TaskQueueInterface.php b/vendor/guzzlehttp/promises/src/TaskQueueInterface.php index 723d4d54e..34c561a48 100644 --- a/vendor/guzzlehttp/promises/src/TaskQueueInterface.php +++ b/vendor/guzzlehttp/promises/src/TaskQueueInterface.php @@ -1,24 +1,24 @@ * - * @param TaskQueueInterface $assign Optionally specify a new queue instance. - * - * @return TaskQueueInterface + * @param TaskQueueInterface|null $assign Optionally specify a new queue instance. */ - public static function queue(TaskQueueInterface $assign = null) + public static function queue(TaskQueueInterface $assign = null): TaskQueueInterface { static $queue; @@ -39,22 +39,18 @@ final class Utils * returns a promise that is fulfilled or rejected with the result. * * @param callable $task Task function to run. - * - * @return PromiseInterface */ - public static function task(callable $task) + public static function task(callable $task): PromiseInterface { $queue = self::queue(); $promise = new Promise([$queue, 'run']); - $queue->add(function () use ($task, $promise) { + $queue->add(function () use ($task, $promise): void { try { if (Is::pending($promise)) { $promise->resolve($task()); } } catch (\Throwable $e) { $promise->reject($e); - } catch (\Exception $e) { - $promise->reject($e); } }); @@ -72,22 +68,18 @@ final class Utils * key mapping to the rejection reason of the promise. * * @param PromiseInterface $promise Promise or value. - * - * @return array */ - public static function inspect(PromiseInterface $promise) + public static function inspect(PromiseInterface $promise): array { try { return [ 'state' => PromiseInterface::FULFILLED, - 'value' => $promise->wait() + 'value' => $promise->wait(), ]; } catch (RejectionException $e) { return ['state' => PromiseInterface::REJECTED, 'reason' => $e->getReason()]; } catch (\Throwable $e) { return ['state' => PromiseInterface::REJECTED, 'reason' => $e]; - } catch (\Exception $e) { - return ['state' => PromiseInterface::REJECTED, 'reason' => $e]; } } @@ -100,10 +92,8 @@ final class Utils * @see inspect for the inspection state array format. * * @param PromiseInterface[] $promises Traversable of promises to wait upon. - * - * @return array */ - public static function inspectAll($promises) + public static function inspectAll($promises): array { $results = []; foreach ($promises as $key => $promise) { @@ -122,12 +112,9 @@ final class Utils * * @param iterable $promises Iterable of PromiseInterface objects to wait on. * - * @return array - * - * @throws \Exception on error - * @throws \Throwable on error in PHP >=7 + * @throws \Throwable on error */ - public static function unwrap($promises) + public static function unwrap($promises): array { $results = []; foreach ($promises as $key => $promise) { @@ -147,22 +134,21 @@ final class Utils * * @param mixed $promises Promises or values. * @param bool $recursive If true, resolves new promises that might have been added to the stack during its own resolution. - * - * @return PromiseInterface */ - public static function all($promises, $recursive = false) + public static function all($promises, bool $recursive = false): PromiseInterface { $results = []; $promise = Each::of( $promises, - function ($value, $idx) use (&$results) { + function ($value, $idx) use (&$results): void { $results[$idx] = $value; }, - function ($reason, $idx, Promise $aggregate) { + function ($reason, $idx, Promise $aggregate): void { $aggregate->reject($reason); } )->then(function () use (&$results) { ksort($results); + return $results; }); @@ -173,6 +159,7 @@ final class Utils return self::all($promises, $recursive); } } + return $results; }); } @@ -193,17 +180,15 @@ final class Utils * * @param int $count Total number of promises. * @param mixed $promises Promises or values. - * - * @return PromiseInterface */ - public static function some($count, $promises) + public static function some(int $count, $promises): PromiseInterface { $results = []; $rejections = []; return Each::of( $promises, - function ($value, $idx, PromiseInterface $p) use (&$results, $count) { + function ($value, $idx, PromiseInterface $p) use (&$results, $count): void { if (Is::settled($p)) { return; } @@ -212,7 +197,7 @@ final class Utils $p->resolve(null); } }, - function ($reason) use (&$rejections) { + function ($reason) use (&$rejections): void { $rejections[] = $reason; } )->then( @@ -224,6 +209,7 @@ final class Utils ); } ksort($results); + return array_values($results); } ); @@ -234,10 +220,8 @@ final class Utils * fulfillment value is not an array of 1 but the value directly. * * @param mixed $promises Promises or values. - * - * @return PromiseInterface */ - public static function any($promises) + public static function any($promises): PromiseInterface { return self::some(1, $promises)->then(function ($values) { return $values[0]; @@ -253,23 +237,22 @@ final class Utils * @see inspect for the inspection state array format. * * @param mixed $promises Promises or values. - * - * @return PromiseInterface */ - public static function settle($promises) + public static function settle($promises): PromiseInterface { $results = []; return Each::of( $promises, - function ($value, $idx) use (&$results) { + function ($value, $idx) use (&$results): void { $results[$idx] = ['state' => PromiseInterface::FULFILLED, 'value' => $value]; }, - function ($reason, $idx) use (&$results) { + function ($reason, $idx) use (&$results): void { $results[$idx] = ['state' => PromiseInterface::REJECTED, 'reason' => $reason]; } )->then(function () use (&$results) { ksort($results); + return $results; }); } diff --git a/vendor/guzzlehttp/promises/src/functions.php b/vendor/guzzlehttp/promises/src/functions.php deleted file mode 100644 index c03d39d02..000000000 --- a/vendor/guzzlehttp/promises/src/functions.php +++ /dev/null @@ -1,363 +0,0 @@ - - * while ($eventLoop->isRunning()) { - * GuzzleHttp\Promise\queue()->run(); - * } - * - * - * @param TaskQueueInterface $assign Optionally specify a new queue instance. - * - * @return TaskQueueInterface - * - * @deprecated queue will be removed in guzzlehttp/promises:2.0. Use Utils::queue instead. - */ -function queue(TaskQueueInterface $assign = null) -{ - return Utils::queue($assign); -} - -/** - * Adds a function to run in the task queue when it is next `run()` and returns - * a promise that is fulfilled or rejected with the result. - * - * @param callable $task Task function to run. - * - * @return PromiseInterface - * - * @deprecated task will be removed in guzzlehttp/promises:2.0. Use Utils::task instead. - */ -function task(callable $task) -{ - return Utils::task($task); -} - -/** - * Creates a promise for a value if the value is not a promise. - * - * @param mixed $value Promise or value. - * - * @return PromiseInterface - * - * @deprecated promise_for will be removed in guzzlehttp/promises:2.0. Use Create::promiseFor instead. - */ -function promise_for($value) -{ - return Create::promiseFor($value); -} - -/** - * Creates a rejected promise for a reason if the reason is not a promise. If - * the provided reason is a promise, then it is returned as-is. - * - * @param mixed $reason Promise or reason. - * - * @return PromiseInterface - * - * @deprecated rejection_for will be removed in guzzlehttp/promises:2.0. Use Create::rejectionFor instead. - */ -function rejection_for($reason) -{ - return Create::rejectionFor($reason); -} - -/** - * Create an exception for a rejected promise value. - * - * @param mixed $reason - * - * @return \Exception|\Throwable - * - * @deprecated exception_for will be removed in guzzlehttp/promises:2.0. Use Create::exceptionFor instead. - */ -function exception_for($reason) -{ - return Create::exceptionFor($reason); -} - -/** - * Returns an iterator for the given value. - * - * @param mixed $value - * - * @return \Iterator - * - * @deprecated iter_for will be removed in guzzlehttp/promises:2.0. Use Create::iterFor instead. - */ -function iter_for($value) -{ - return Create::iterFor($value); -} - -/** - * Synchronously waits on a promise to resolve and returns an inspection state - * array. - * - * Returns a state associative array containing a "state" key mapping to a - * valid promise state. If the state of the promise is "fulfilled", the array - * will contain a "value" key mapping to the fulfilled value of the promise. If - * the promise is rejected, the array will contain a "reason" key mapping to - * the rejection reason of the promise. - * - * @param PromiseInterface $promise Promise or value. - * - * @return array - * - * @deprecated inspect will be removed in guzzlehttp/promises:2.0. Use Utils::inspect instead. - */ -function inspect(PromiseInterface $promise) -{ - return Utils::inspect($promise); -} - -/** - * Waits on all of the provided promises, but does not unwrap rejected promises - * as thrown exception. - * - * Returns an array of inspection state arrays. - * - * @see inspect for the inspection state array format. - * - * @param PromiseInterface[] $promises Traversable of promises to wait upon. - * - * @return array - * - * @deprecated inspect will be removed in guzzlehttp/promises:2.0. Use Utils::inspectAll instead. - */ -function inspect_all($promises) -{ - return Utils::inspectAll($promises); -} - -/** - * Waits on all of the provided promises and returns the fulfilled values. - * - * Returns an array that contains the value of each promise (in the same order - * the promises were provided). An exception is thrown if any of the promises - * are rejected. - * - * @param iterable $promises Iterable of PromiseInterface objects to wait on. - * - * @return array - * - * @throws \Exception on error - * @throws \Throwable on error in PHP >=7 - * - * @deprecated unwrap will be removed in guzzlehttp/promises:2.0. Use Utils::unwrap instead. - */ -function unwrap($promises) -{ - return Utils::unwrap($promises); -} - -/** - * Given an array of promises, return a promise that is fulfilled when all the - * items in the array are fulfilled. - * - * The promise's fulfillment value is an array with fulfillment values at - * respective positions to the original array. If any promise in the array - * rejects, the returned promise is rejected with the rejection reason. - * - * @param mixed $promises Promises or values. - * @param bool $recursive If true, resolves new promises that might have been added to the stack during its own resolution. - * - * @return PromiseInterface - * - * @deprecated all will be removed in guzzlehttp/promises:2.0. Use Utils::all instead. - */ -function all($promises, $recursive = false) -{ - return Utils::all($promises, $recursive); -} - -/** - * Initiate a competitive race between multiple promises or values (values will - * become immediately fulfilled promises). - * - * When count amount of promises have been fulfilled, the returned promise is - * fulfilled with an array that contains the fulfillment values of the winners - * in order of resolution. - * - * This promise is rejected with a {@see AggregateException} if the number of - * fulfilled promises is less than the desired $count. - * - * @param int $count Total number of promises. - * @param mixed $promises Promises or values. - * - * @return PromiseInterface - * - * @deprecated some will be removed in guzzlehttp/promises:2.0. Use Utils::some instead. - */ -function some($count, $promises) -{ - return Utils::some($count, $promises); -} - -/** - * Like some(), with 1 as count. However, if the promise fulfills, the - * fulfillment value is not an array of 1 but the value directly. - * - * @param mixed $promises Promises or values. - * - * @return PromiseInterface - * - * @deprecated any will be removed in guzzlehttp/promises:2.0. Use Utils::any instead. - */ -function any($promises) -{ - return Utils::any($promises); -} - -/** - * Returns a promise that is fulfilled when all of the provided promises have - * been fulfilled or rejected. - * - * The returned promise is fulfilled with an array of inspection state arrays. - * - * @see inspect for the inspection state array format. - * - * @param mixed $promises Promises or values. - * - * @return PromiseInterface - * - * @deprecated settle will be removed in guzzlehttp/promises:2.0. Use Utils::settle instead. - */ -function settle($promises) -{ - return Utils::settle($promises); -} - -/** - * Given an iterator that yields promises or values, returns a promise that is - * fulfilled with a null value when the iterator has been consumed or the - * aggregate promise has been fulfilled or rejected. - * - * $onFulfilled is a function that accepts the fulfilled value, iterator index, - * and the aggregate promise. The callback can invoke any necessary side - * effects and choose to resolve or reject the aggregate if needed. - * - * $onRejected is a function that accepts the rejection reason, iterator index, - * and the aggregate promise. The callback can invoke any necessary side - * effects and choose to resolve or reject the aggregate if needed. - * - * @param mixed $iterable Iterator or array to iterate over. - * @param callable $onFulfilled - * @param callable $onRejected - * - * @return PromiseInterface - * - * @deprecated each will be removed in guzzlehttp/promises:2.0. Use Each::of instead. - */ -function each( - $iterable, - callable $onFulfilled = null, - callable $onRejected = null -) { - return Each::of($iterable, $onFulfilled, $onRejected); -} - -/** - * Like each, but only allows a certain number of outstanding promises at any - * given time. - * - * $concurrency may be an integer or a function that accepts the number of - * pending promises and returns a numeric concurrency limit value to allow for - * dynamic a concurrency size. - * - * @param mixed $iterable - * @param int|callable $concurrency - * @param callable $onFulfilled - * @param callable $onRejected - * - * @return PromiseInterface - * - * @deprecated each_limit will be removed in guzzlehttp/promises:2.0. Use Each::ofLimit instead. - */ -function each_limit( - $iterable, - $concurrency, - callable $onFulfilled = null, - callable $onRejected = null -) { - return Each::ofLimit($iterable, $concurrency, $onFulfilled, $onRejected); -} - -/** - * Like each_limit, but ensures that no promise in the given $iterable argument - * is rejected. If any promise is rejected, then the aggregate promise is - * rejected with the encountered rejection. - * - * @param mixed $iterable - * @param int|callable $concurrency - * @param callable $onFulfilled - * - * @return PromiseInterface - * - * @deprecated each_limit_all will be removed in guzzlehttp/promises:2.0. Use Each::ofLimitAll instead. - */ -function each_limit_all( - $iterable, - $concurrency, - callable $onFulfilled = null -) { - return Each::ofLimitAll($iterable, $concurrency, $onFulfilled); -} - -/** - * Returns true if a promise is fulfilled. - * - * @return bool - * - * @deprecated is_fulfilled will be removed in guzzlehttp/promises:2.0. Use Is::fulfilled instead. - */ -function is_fulfilled(PromiseInterface $promise) -{ - return Is::fulfilled($promise); -} - -/** - * Returns true if a promise is rejected. - * - * @return bool - * - * @deprecated is_rejected will be removed in guzzlehttp/promises:2.0. Use Is::rejected instead. - */ -function is_rejected(PromiseInterface $promise) -{ - return Is::rejected($promise); -} - -/** - * Returns true if a promise is fulfilled or rejected. - * - * @return bool - * - * @deprecated is_settled will be removed in guzzlehttp/promises:2.0. Use Is::settled instead. - */ -function is_settled(PromiseInterface $promise) -{ - return Is::settled($promise); -} - -/** - * Create a new coroutine. - * - * @see Coroutine - * - * @return PromiseInterface - * - * @deprecated coroutine will be removed in guzzlehttp/promises:2.0. Use Coroutine::of instead. - */ -function coroutine(callable $generatorFn) -{ - return Coroutine::of($generatorFn); -} diff --git a/vendor/guzzlehttp/promises/src/functions_include.php b/vendor/guzzlehttp/promises/src/functions_include.php deleted file mode 100644 index 34cd1710a..000000000 --- a/vendor/guzzlehttp/promises/src/functions_include.php +++ /dev/null @@ -1,6 +0,0 @@ -=5.4,<8.1 | +| 2.x | Latest | >=7.2.5,<8.4 | ## AppendStream @@ -855,14 +863,6 @@ This of course assumes they will be resolved against the same base URI. If this equivalence or difference of relative references does not mean anything. -## Version Guidance - -| Version | Status | PHP Version | -|---------|----------------|------------------| -| 1.x | Security fixes | >=5.4,<8.1 | -| 2.x | Latest | ^7.2.5 \|\| ^8.0 | - - ## Security If you discover a security vulnerability within this package, please send an email to security@tidelift.com. All security vulnerabilities will be promptly addressed. Please do not disclose security-related issues publicly until a fix has been announced. Please see [Security Policy](https://github.com/guzzle/psr7/security/policy) for more information. diff --git a/vendor/guzzlehttp/psr7/composer.json b/vendor/guzzlehttp/psr7/composer.json old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/AppendStream.php b/vendor/guzzlehttp/psr7/src/AppendStream.php old mode 100755 new mode 100644 index cbcfaee65..8361564b0 --- a/vendor/guzzlehttp/psr7/src/AppendStream.php +++ b/vendor/guzzlehttp/psr7/src/AppendStream.php @@ -40,12 +40,14 @@ final class AppendStream implements StreamInterface { try { $this->rewind(); + return $this->getContents(); } catch (\Throwable $e) { if (\PHP_VERSION_ID >= 70400) { throw $e; } trigger_error(sprintf('%s::__toString exception: %s', self::class, (string) $e), E_USER_ERROR); + return ''; } } @@ -167,7 +169,7 @@ final class AppendStream implements StreamInterface $stream->rewind(); } catch (\Exception $e) { throw new \RuntimeException('Unable to seek stream ' - . $i . ' of the AppendStream', 0, $e); + .$i.' of the AppendStream', 0, $e); } } @@ -197,7 +199,7 @@ final class AppendStream implements StreamInterface if ($this->current === $total) { break; } - $this->current++; + ++$this->current; } $result = $this->streams[$this->current]->read($remaining); diff --git a/vendor/guzzlehttp/psr7/src/BufferStream.php b/vendor/guzzlehttp/psr7/src/BufferStream.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/CachingStream.php b/vendor/guzzlehttp/psr7/src/CachingStream.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/DroppingStream.php b/vendor/guzzlehttp/psr7/src/DroppingStream.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/Exception/MalformedUriException.php b/vendor/guzzlehttp/psr7/src/Exception/MalformedUriException.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/FnStream.php b/vendor/guzzlehttp/psr7/src/FnStream.php old mode 100755 new mode 100644 index 3a1a9512e..312b80ec7 --- a/vendor/guzzlehttp/psr7/src/FnStream.php +++ b/vendor/guzzlehttp/psr7/src/FnStream.php @@ -18,7 +18,7 @@ final class FnStream implements StreamInterface private const SLOTS = [ '__toString', 'close', 'detach', 'rewind', 'getSize', 'tell', 'eof', 'isSeekable', 'seek', 'isWritable', 'write', - 'isReadable', 'read', 'getContents', 'getMetadata' + 'isReadable', 'read', 'getContents', 'getMetadata', ]; /** @var array */ @@ -33,7 +33,7 @@ final class FnStream implements StreamInterface // Create the functions on the class foreach ($methods as $name => $fn) { - $this->{'_fn_' . $name} = $fn; + $this->{'_fn_'.$name} = $fn; } } @@ -45,7 +45,7 @@ final class FnStream implements StreamInterface public function __get(string $name): void { throw new \BadMethodCallException(str_replace('_fn_', '', $name) - . '() is not implemented in the FnStream'); + .'() is not implemented in the FnStream'); } /** @@ -99,6 +99,7 @@ final class FnStream implements StreamInterface throw $e; } trigger_error(sprintf('%s::__toString exception: %s', self::class, (string) $e), E_USER_ERROR); + return ''; } } diff --git a/vendor/guzzlehttp/psr7/src/Header.php b/vendor/guzzlehttp/psr7/src/Header.php old mode 100755 new mode 100644 index 4d7005b22..6e38e0031 --- a/vendor/guzzlehttp/psr7/src/Header.php +++ b/vendor/guzzlehttp/psr7/src/Header.php @@ -89,7 +89,7 @@ final class Header $v = ''; $isQuoted = false; $isEscaped = false; - for ($i = 0, $max = \strlen($value); $i < $max; $i++) { + for ($i = 0, $max = \strlen($value); $i < $max; ++$i) { if ($isEscaped) { $v .= $value[$i]; $isEscaped = false; diff --git a/vendor/guzzlehttp/psr7/src/HttpFactory.php b/vendor/guzzlehttp/psr7/src/HttpFactory.php old mode 100755 new mode 100644 index 30be222fc..73d17e337 --- a/vendor/guzzlehttp/psr7/src/HttpFactory.php +++ b/vendor/guzzlehttp/psr7/src/HttpFactory.php @@ -23,13 +23,7 @@ use Psr\Http\Message\UriInterface; * Note: in consuming code it is recommended to require the implemented interfaces * and inject the instance of this class multiple times. */ -final class HttpFactory implements - RequestFactoryInterface, - ResponseFactoryInterface, - ServerRequestFactoryInterface, - StreamFactoryInterface, - UploadedFileFactoryInterface, - UriFactoryInterface +final class HttpFactory implements RequestFactoryInterface, ResponseFactoryInterface, ServerRequestFactoryInterface, StreamFactoryInterface, UploadedFileFactoryInterface, UriFactoryInterface { public function createUploadedFile( StreamInterface $stream, diff --git a/vendor/guzzlehttp/psr7/src/InflateStream.php b/vendor/guzzlehttp/psr7/src/InflateStream.php old mode 100755 new mode 100644 index 8e00f1c32..599b55da3 --- a/vendor/guzzlehttp/psr7/src/InflateStream.php +++ b/vendor/guzzlehttp/psr7/src/InflateStream.php @@ -13,9 +13,9 @@ use Psr\Http\Message\StreamInterface; * then appends the zlib.inflate filter. The stream is then converted back * to a Guzzle stream resource to be used as a Guzzle stream. * - * @link http://tools.ietf.org/html/rfc1950 - * @link http://tools.ietf.org/html/rfc1952 - * @link http://php.net/manual/en/filters.compression.php + * @see http://tools.ietf.org/html/rfc1950 + * @see http://tools.ietf.org/html/rfc1952 + * @see http://php.net/manual/en/filters.compression.php */ final class InflateStream implements StreamInterface { diff --git a/vendor/guzzlehttp/psr7/src/LazyOpenStream.php b/vendor/guzzlehttp/psr7/src/LazyOpenStream.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/LimitStream.php b/vendor/guzzlehttp/psr7/src/LimitStream.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/Message.php b/vendor/guzzlehttp/psr7/src/Message.php old mode 100755 new mode 100644 index c1e15f826..9b74b8d46 --- a/vendor/guzzlehttp/psr7/src/Message.php +++ b/vendor/guzzlehttp/psr7/src/Message.php @@ -18,16 +18,16 @@ final class Message public static function toString(MessageInterface $message): string { if ($message instanceof RequestInterface) { - $msg = trim($message->getMethod() . ' ' - . $message->getRequestTarget()) - . ' HTTP/' . $message->getProtocolVersion(); + $msg = trim($message->getMethod().' ' + .$message->getRequestTarget()) + .' HTTP/'.$message->getProtocolVersion(); if (!$message->hasHeader('host')) { - $msg .= "\r\nHost: " . $message->getUri()->getHost(); + $msg .= "\r\nHost: ".$message->getUri()->getHost(); } } elseif ($message instanceof ResponseInterface) { - $msg = 'HTTP/' . $message->getProtocolVersion() . ' ' - . $message->getStatusCode() . ' ' - . $message->getReasonPhrase(); + $msg = 'HTTP/'.$message->getProtocolVersion().' ' + .$message->getStatusCode().' ' + .$message->getReasonPhrase(); } else { throw new \InvalidArgumentException('Unknown message type'); } @@ -35,14 +35,14 @@ final class Message foreach ($message->getHeaders() as $name => $values) { if (strtolower($name) === 'set-cookie') { foreach ($values as $value) { - $msg .= "\r\n{$name}: " . $value; + $msg .= "\r\n{$name}: ".$value; } } else { - $msg .= "\r\n{$name}: " . implode(', ', $values); + $msg .= "\r\n{$name}: ".implode(', ', $values); } } - return "{$msg}\r\n\r\n" . $message->getBody(); + return "{$msg}\r\n\r\n".$message->getBody(); } /** @@ -190,7 +190,7 @@ final class Message $host = $headers[reset($hostKey)][0]; $scheme = substr($host, -4) === ':443' ? 'https' : 'http'; - return $scheme . '://' . $host . '/' . ltrim($path, '/'); + return $scheme.'://'.$host.'/'.ltrim($path, '/'); } /** @@ -231,7 +231,7 @@ final class Message // between status-code and reason-phrase is required. But browsers accept // responses without space and reason as well. if (!preg_match('/^HTTP\/.* [0-9]{3}( .*|$)/', $data['start-line'])) { - throw new \InvalidArgumentException('Invalid response string: ' . $data['start-line']); + throw new \InvalidArgumentException('Invalid response string: '.$data['start-line']); } $parts = explode(' ', $data['start-line'], 3); diff --git a/vendor/guzzlehttp/psr7/src/MessageTrait.php b/vendor/guzzlehttp/psr7/src/MessageTrait.php old mode 100755 new mode 100644 index 464bdfaa4..a85d3ab25 --- a/vendor/guzzlehttp/psr7/src/MessageTrait.php +++ b/vendor/guzzlehttp/psr7/src/MessageTrait.php @@ -16,7 +16,7 @@ trait MessageTrait private $headers = []; /** @var array Map of lowercase header name => original name at registration */ - private $headerNames = []; + private $headerNames = []; /** @var string */ private $protocol = '1.1'; @@ -37,6 +37,7 @@ trait MessageTrait $new = clone $this; $new->protocol = $version; + return $new; } @@ -135,6 +136,7 @@ trait MessageTrait $new = clone $this; $new->stream = $body; + return $new; } @@ -224,7 +226,7 @@ trait MessageTrait )); } - if (! preg_match('/^[a-zA-Z0-9\'`#$%&*+.^_|~!-]+$/D', $header)) { + if (!preg_match('/^[a-zA-Z0-9\'`#$%&*+.^_|~!-]+$/D', $header)) { throw new \InvalidArgumentException( sprintf('"%s" is not valid header name.', $header) ); @@ -254,7 +256,7 @@ trait MessageTrait // Clients must not send a request with line folding and a server sending folded headers is // likely very rare. Line folding is a fairly obscure feature of HTTP/1.1 and thus not accepting // folding is not likely to break any legitimate use case. - if (! preg_match('/^[\x20\x09\x21-\x7E\x80-\xFF]*$/D', $value)) { + if (!preg_match('/^[\x20\x09\x21-\x7E\x80-\xFF]*$/D', $value)) { throw new \InvalidArgumentException( sprintf('"%s" is not valid header value.', $value) ); diff --git a/vendor/guzzlehttp/psr7/src/MimeType.php b/vendor/guzzlehttp/psr7/src/MimeType.php old mode 100755 new mode 100644 index 0debbd18c..b131bdbe7 --- a/vendor/guzzlehttp/psr7/src/MimeType.php +++ b/vendor/guzzlehttp/psr7/src/MimeType.php @@ -18,7 +18,7 @@ final class MimeType '7zip' => 'application/x-7z-compressed', '123' => 'application/vnd.lotus-1-2-3', 'aab' => 'application/x-authorware-bin', - 'aac' => 'audio/x-acc', + 'aac' => 'audio/aac', 'aam' => 'application/x-authorware-map', 'aas' => 'application/x-authorware-seg', 'abw' => 'application/x-abiword', @@ -29,6 +29,7 @@ final class MimeType 'acu' => 'application/vnd.acucobol', 'acutc' => 'application/vnd.acucorp', 'adp' => 'audio/adpcm', + 'adts' => 'audio/aac', 'aep' => 'application/vnd.audiograph', 'afm' => 'application/x-font-type1', 'afp' => 'application/vnd.ibm.modcap', @@ -41,11 +42,16 @@ final class MimeType 'air' => 'application/vnd.adobe.air-application-installer-package+zip', 'ait' => 'application/vnd.dvb.ait', 'ami' => 'application/vnd.amiga.ami', + 'aml' => 'application/automationml-aml+xml', + 'amlx' => 'application/automationml-amlx+zip', 'amr' => 'audio/amr', 'apk' => 'application/vnd.android.package-archive', 'apng' => 'image/apng', 'appcache' => 'text/cache-manifest', + 'appinstaller' => 'application/appinstaller', 'application' => 'application/x-ms-application', + 'appx' => 'application/appx', + 'appxbundle' => 'application/appxbundle', 'apr' => 'application/vnd.lotus-approach', 'arc' => 'application/x-freearc', 'arj' => 'application/x-arj', @@ -90,6 +96,7 @@ final class MimeType 'bpk' => 'application/octet-stream', 'bpmn' => 'application/octet-stream', 'bsp' => 'model/vnd.valve.source.compiled-map', + 'btf' => 'image/prs.btif', 'btif' => 'image/prs.btif', 'buffer' => 'application/octet-stream', 'bz' => 'application/x-bzip', @@ -141,6 +148,7 @@ final class MimeType 'cjs' => 'application/node', 'cla' => 'application/vnd.claymore', 'class' => 'application/octet-stream', + 'cld' => 'model/vnd.cld', 'clkk' => 'application/vnd.crick.clicker.keyboard', 'clkp' => 'application/vnd.crick.clicker.palette', 'clkt' => 'application/vnd.crick.clicker.template', @@ -175,6 +183,7 @@ final class MimeType 'csv' => 'text/csv', 'cu' => 'application/cu-seeme', 'curl' => 'text/vnd.curl', + 'cwl' => 'application/cwl', 'cww' => 'application/prs.cww', 'cxt' => 'application/x-director', 'cxx' => 'text/x-c', @@ -197,6 +206,7 @@ final class MimeType 'der' => 'application/x-x509-ca-cert', 'dfac' => 'application/vnd.dreamfactory', 'dgc' => 'application/x-dgc-compressed', + 'dib' => 'image/bmp', 'dic' => 'text/x-c', 'dir' => 'application/x-director', 'dis' => 'application/vnd.mobius.dis', @@ -219,6 +229,7 @@ final class MimeType 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', 'dp' => 'application/vnd.osgi.dp', 'dpg' => 'application/vnd.dpgraph', + 'dpx' => 'image/dpx', 'dra' => 'audio/vnd.dra', 'drle' => 'image/dicom-rle', 'dsc' => 'text/prs.lines.tag', @@ -255,7 +266,6 @@ final class MimeType 'eot' => 'application/vnd.ms-fontobject', 'eps' => 'application/postscript', 'epub' => 'application/epub+zip', - 'es' => 'application/ecmascript', 'es3' => 'application/vnd.eszigno3+xml', 'esa' => 'application/vnd.osgi.subsystem', 'esf' => 'application/vnd.epson.esf', @@ -448,6 +458,7 @@ final class MimeType 'jsonld' => 'application/ld+json', 'jsonml' => 'application/jsonml+json', 'jsx' => 'text/jsx', + 'jt' => 'model/jt', 'jxr' => 'image/jxr', 'jxra' => 'image/jxra', 'jxrs' => 'image/jxrs', @@ -552,7 +563,7 @@ final class MimeType 'mime' => 'message/rfc822', 'mj2' => 'video/mj2', 'mjp2' => 'video/mj2', - 'mjs' => 'application/javascript', + 'mjs' => 'text/javascript', 'mk3d' => 'video/x-matroska', 'mka' => 'audio/x-matroska', 'mkd' => 'text/x-markdown', @@ -602,6 +613,8 @@ final class MimeType 'msg' => 'application/vnd.ms-outlook', 'msh' => 'model/mesh', 'msi' => 'application/x-msdownload', + 'msix' => 'application/msix', + 'msixbundle' => 'application/msixbundle', 'msl' => 'application/vnd.mobius.msl', 'msm' => 'application/octet-stream', 'msp' => 'application/octet-stream', @@ -775,6 +788,8 @@ final class MimeType 'pvb' => 'application/vnd.3gpp.pic-bw-var', 'pwn' => 'application/vnd.3m.post-it-notes', 'pya' => 'audio/vnd.ms-playready.media.pya', + 'pyo' => 'model/vnd.pytha.pyox', + 'pyox' => 'model/vnd.pytha.pyox', 'pyv' => 'video/vnd.ms-playready.media.pyv', 'qam' => 'application/vnd.epson.quickanime', 'qbo' => 'application/vnd.intu.qbo', @@ -923,10 +938,12 @@ final class MimeType 'st' => 'application/vnd.sailingtracker.track', 'stc' => 'application/vnd.sun.xml.calc.template', 'std' => 'application/vnd.sun.xml.draw.template', + 'step' => 'application/STEP', 'stf' => 'application/vnd.wt.stf', 'sti' => 'application/vnd.sun.xml.impress.template', 'stk' => 'application/hyperstudio', 'stl' => 'model/stl', + 'stp' => 'application/STEP', 'stpx' => 'model/step+xml', 'stpxz' => 'model/step-xml+zip', 'stpz' => 'model/step+zip', @@ -1013,10 +1030,12 @@ final class MimeType 'ulx' => 'application/x-glulx', 'umj' => 'application/vnd.umajin', 'unityweb' => 'application/vnd.unity', + 'uo' => 'application/vnd.uoml+xml', 'uoml' => 'application/vnd.uoml+xml', 'uri' => 'text/uri-list', 'uris' => 'text/uri-list', 'urls' => 'text/uri-list', + 'usda' => 'model/vnd.usda', 'usdz' => 'model/vnd.usdz+zip', 'ustar' => 'application/x-ustar', 'utz' => 'application/vnd.uiq.theme', @@ -1096,6 +1115,7 @@ final class MimeType 'webmanifest' => 'application/manifest+json', 'webp' => 'image/webp', 'wg' => 'application/vnd.pmi.widget', + 'wgsl' => 'text/wgsl', 'wgt' => 'application/widget', 'wif' => 'application/watcherinfo+xml', 'wks' => 'application/vnd.ms-works', @@ -1150,9 +1170,10 @@ final class MimeType 'xel' => 'application/xcap-el+xml', 'xenc' => 'application/xenc+xml', 'xer' => 'application/patch-ops-error+xml', - 'xfdf' => 'application/vnd.adobe.xfdf', + 'xfdf' => 'application/xfdf', 'xfdl' => 'application/vnd.xfdl', 'xht' => 'application/xhtml+xml', + 'xhtm' => 'application/vnd.pwg-xhtml-print+xml', 'xhtml' => 'application/xhtml+xml', 'xhvml' => 'application/xv+xml', 'xif' => 'image/vnd.xiff', @@ -1183,6 +1204,7 @@ final class MimeType 'xpw' => 'application/vnd.intercon.formnet', 'xpx' => 'application/vnd.intercon.formnet', 'xsd' => 'application/xml', + 'xsf' => 'application/prs.xsf+xml', 'xsl' => 'application/xml', 'xslt' => 'application/xslt+xml', 'xsm' => 'application/vnd.syncml+xml', @@ -1218,7 +1240,7 @@ final class MimeType /** * Determines the mimetype of a file by looking at its extension. * - * @link https://raw.githubusercontent.com/jshttp/mime-db/master/db.json + * @see https://raw.githubusercontent.com/jshttp/mime-db/master/db.json */ public static function fromFilename(string $filename): ?string { @@ -1228,7 +1250,7 @@ final class MimeType /** * Maps a file extensions to a mimetype. * - * @link https://raw.githubusercontent.com/jshttp/mime-db/master/db.json + * @see https://raw.githubusercontent.com/jshttp/mime-db/master/db.json */ public static function fromExtension(string $extension): ?string { diff --git a/vendor/guzzlehttp/psr7/src/MultipartStream.php b/vendor/guzzlehttp/psr7/src/MultipartStream.php old mode 100755 new mode 100644 index 3e12b74d1..41c48eef8 --- a/vendor/guzzlehttp/psr7/src/MultipartStream.php +++ b/vendor/guzzlehttp/psr7/src/MultipartStream.php @@ -60,7 +60,7 @@ final class MultipartStream implements StreamInterface $str .= "{$key}: {$value}\r\n"; } - return "--{$this->boundary}\r\n" . trim($str) . "\r\n\r\n"; + return "--{$this->boundary}\r\n".trim($str)."\r\n\r\n"; } /** @@ -72,7 +72,7 @@ final class MultipartStream implements StreamInterface foreach ($elements as $element) { if (!is_array($element)) { - throw new \UnexpectedValueException("An array is expected"); + throw new \UnexpectedValueException('An array is expected'); } $this->addElement($stream, $element); } @@ -137,9 +137,7 @@ final class MultipartStream implements StreamInterface // Set a default Content-Type if one was not supplied $type = $this->getHeader($headers, 'content-type'); if (!$type && ($filename === '0' || $filename)) { - if ($type = MimeType::fromFilename($filename)) { - $headers['Content-Type'] = $type; - } + $headers['Content-Type'] = MimeType::fromFilename($filename) ?? 'application/octet-stream'; } return [$stream, $headers]; diff --git a/vendor/guzzlehttp/psr7/src/NoSeekStream.php b/vendor/guzzlehttp/psr7/src/NoSeekStream.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/PumpStream.php b/vendor/guzzlehttp/psr7/src/PumpStream.php old mode 100755 new mode 100644 index e90389c3b..b52341d9e --- a/vendor/guzzlehttp/psr7/src/PumpStream.php +++ b/vendor/guzzlehttp/psr7/src/PumpStream.php @@ -60,6 +60,7 @@ final class PumpStream implements StreamInterface throw $e; } trigger_error(sprintf('%s::__toString exception: %s', self::class, (string) $e), E_USER_ERROR); + return ''; } } @@ -169,6 +170,7 @@ final class PumpStream implements StreamInterface $data = call_user_func($this->source, $length); if ($data === false || $data === null) { $this->source = null; + return; } $this->buffer->write($data); diff --git a/vendor/guzzlehttp/psr7/src/Query.php b/vendor/guzzlehttp/psr7/src/Query.php old mode 100755 new mode 100644 index 2faab3a88..8b9492797 --- a/vendor/guzzlehttp/psr7/src/Query.php +++ b/vendor/guzzlehttp/psr7/src/Query.php @@ -93,7 +93,7 @@ final class Query $qs .= $k; $v = is_bool($v) ? (int) $v : $v; if ($v !== null) { - $qs .= '=' . $encoder((string) $v); + $qs .= '='.$encoder((string) $v); } $qs .= '&'; } else { @@ -101,7 +101,7 @@ final class Query $qs .= $k; $vv = is_bool($vv) ? (int) $vv : $vv; if ($vv !== null) { - $qs .= '=' . $encoder((string) $vv); + $qs .= '='.$encoder((string) $vv); } $qs .= '&'; } diff --git a/vendor/guzzlehttp/psr7/src/Request.php b/vendor/guzzlehttp/psr7/src/Request.php old mode 100755 new mode 100644 index b17af66a2..db29d95d3 --- a/vendor/guzzlehttp/psr7/src/Request.php +++ b/vendor/guzzlehttp/psr7/src/Request.php @@ -69,7 +69,7 @@ class Request implements RequestInterface $target = '/'; } if ($this->uri->getQuery() != '') { - $target .= '?' . $this->uri->getQuery(); + $target .= '?'.$this->uri->getQuery(); } return $target; @@ -85,6 +85,7 @@ class Request implements RequestInterface $new = clone $this; $new->requestTarget = $requestTarget; + return $new; } @@ -98,6 +99,7 @@ class Request implements RequestInterface $this->assertMethod($method); $new = clone $this; $new->method = strtoupper($method); + return $new; } @@ -131,7 +133,7 @@ class Request implements RequestInterface } if (($port = $this->uri->getPort()) !== null) { - $host .= ':' . $port; + $host .= ':'.$port; } if (isset($this->headerNames['host'])) { diff --git a/vendor/guzzlehttp/psr7/src/Response.php b/vendor/guzzlehttp/psr7/src/Response.php old mode 100755 new mode 100644 index 4c6ee6f03..8fc11478b --- a/vendor/guzzlehttp/psr7/src/Response.php +++ b/vendor/guzzlehttp/psr7/src/Response.php @@ -138,6 +138,7 @@ class Response implements ResponseInterface $reasonPhrase = self::PHRASES[$new->statusCode]; } $new->reasonPhrase = (string) $reasonPhrase; + return $new; } diff --git a/vendor/guzzlehttp/psr7/src/Rfc7230.php b/vendor/guzzlehttp/psr7/src/Rfc7230.php old mode 100755 new mode 100644 index 30224018d..8219dba4d --- a/vendor/guzzlehttp/psr7/src/Rfc7230.php +++ b/vendor/guzzlehttp/psr7/src/Rfc7230.php @@ -14,7 +14,7 @@ final class Rfc7230 * * Note: header delimiter (\r\n) is modified to \r?\n to accept line feed only delimiters for BC reasons. * - * @link https://github.com/amphp/http/blob/v1.0.1/src/Rfc7230.php#L12-L15 + * @see https://github.com/amphp/http/blob/v1.0.1/src/Rfc7230.php#L12-L15 * * @license https://github.com/amphp/http/blob/v1.0.1/LICENSE */ diff --git a/vendor/guzzlehttp/psr7/src/ServerRequest.php b/vendor/guzzlehttp/psr7/src/ServerRequest.php old mode 100755 new mode 100644 index b2aa382da..1198ff63d --- a/vendor/guzzlehttp/psr7/src/ServerRequest.php +++ b/vendor/guzzlehttp/psr7/src/ServerRequest.php @@ -144,10 +144,10 @@ class ServerRequest extends Request implements ServerRequestInterface foreach (array_keys($files['tmp_name']) as $key) { $spec = [ 'tmp_name' => $files['tmp_name'][$key], - 'size' => $files['size'][$key] ?? null, - 'error' => $files['error'][$key] ?? null, - 'name' => $files['name'][$key] ?? null, - 'type' => $files['type'][$key] ?? null, + 'size' => $files['size'][$key] ?? null, + 'error' => $files['error'][$key] ?? null, + 'name' => $files['name'][$key] ?? null, + 'type' => $files['type'][$key] ?? null, ]; $normalizedFiles[$key] = self::createUploadedFileFromSpec($spec); } @@ -182,7 +182,7 @@ class ServerRequest extends Request implements ServerRequestInterface private static function extractHostAndPortFromAuthority(string $authority): array { - $uri = 'http://' . $authority; + $uri = 'http://'.$authority; $parts = parse_url($uri); if (false === $parts) { return [null, null]; diff --git a/vendor/guzzlehttp/psr7/src/Stream.php b/vendor/guzzlehttp/psr7/src/Stream.php old mode 100755 new mode 100644 index ecd31861e..c2477fe32 --- a/vendor/guzzlehttp/psr7/src/Stream.php +++ b/vendor/guzzlehttp/psr7/src/Stream.php @@ -61,8 +61,8 @@ class Stream implements StreamInterface $this->stream = $stream; $meta = stream_get_meta_data($this->stream); $this->seekable = $meta['seekable']; - $this->readable = (bool)preg_match(self::READABLE_MODES, $meta['mode']); - $this->writable = (bool)preg_match(self::WRITABLE_MODES, $meta['mode']); + $this->readable = (bool) preg_match(self::READABLE_MODES, $meta['mode']); + $this->writable = (bool) preg_match(self::WRITABLE_MODES, $meta['mode']); $this->uri = $this->getMetadata('uri'); } @@ -80,12 +80,14 @@ class Stream implements StreamInterface if ($this->isSeekable()) { $this->seek(0); } + return $this->getContents(); } catch (\Throwable $e) { if (\PHP_VERSION_ID >= 70400) { throw $e; } trigger_error(sprintf('%s::__toString exception: %s', self::class, (string) $e), E_USER_ERROR); + return ''; } } @@ -145,6 +147,7 @@ class Stream implements StreamInterface $stats = fstat($this->stream); if (is_array($stats) && isset($stats['size'])) { $this->size = $stats['size']; + return $this->size; } @@ -207,7 +210,7 @@ class Stream implements StreamInterface } if (fseek($this->stream, $offset, $whence) === -1) { throw new \RuntimeException('Unable to seek to stream position ' - . $offset . ' with whence ' . var_export($whence, true)); + .$offset.' with whence '.var_export($whence, true)); } } diff --git a/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php b/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php old mode 100755 new mode 100644 index 56d4104d4..dfb3e4549 --- a/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php +++ b/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php @@ -31,6 +31,7 @@ trait StreamDecoratorTrait { if ($name === 'stream') { $this->stream = $this->createStream(); + return $this->stream; } @@ -43,12 +44,14 @@ trait StreamDecoratorTrait if ($this->isSeekable()) { $this->seek(0); } + return $this->getContents(); } catch (\Throwable $e) { if (\PHP_VERSION_ID >= 70400) { throw $e; } trigger_error(sprintf('%s::__toString exception: %s', self::class, (string) $e), E_USER_ERROR); + return ''; } } diff --git a/vendor/guzzlehttp/psr7/src/StreamWrapper.php b/vendor/guzzlehttp/psr7/src/StreamWrapper.php old mode 100755 new mode 100644 index 2a9346403..b3655cb3a --- a/vendor/guzzlehttp/psr7/src/StreamWrapper.php +++ b/vendor/guzzlehttp/psr7/src/StreamWrapper.php @@ -41,7 +41,7 @@ final class StreamWrapper $mode = 'w'; } else { throw new \InvalidArgumentException('The stream must be readable, ' - . 'writable, or both.'); + .'writable, or both.'); } return fopen('guzzle://stream', $mode, false, self::createStreamContext($stream)); @@ -55,7 +55,7 @@ final class StreamWrapper public static function createStreamContext(StreamInterface $stream) { return stream_context_create([ - 'guzzle' => ['stream' => $stream] + 'guzzle' => ['stream' => $stream], ]); } @@ -115,7 +115,7 @@ final class StreamWrapper */ public function stream_cast(int $cast_as) { - $stream = clone($this->stream); + $stream = clone $this->stream; $resource = $stream->detach(); return $resource ?? false; @@ -127,27 +127,27 @@ final class StreamWrapper public function stream_stat(): array { static $modeMap = [ - 'r' => 33060, + 'r' => 33060, 'rb' => 33060, 'r+' => 33206, - 'w' => 33188, - 'wb' => 33188 + 'w' => 33188, + 'wb' => 33188, ]; return [ - 'dev' => 0, - 'ino' => 0, - 'mode' => $modeMap[$this->mode], - 'nlink' => 0, - 'uid' => 0, - 'gid' => 0, - 'rdev' => 0, - 'size' => $this->stream->getSize() ?: 0, - 'atime' => 0, - 'mtime' => 0, - 'ctime' => 0, + 'dev' => 0, + 'ino' => 0, + 'mode' => $modeMap[$this->mode], + 'nlink' => 0, + 'uid' => 0, + 'gid' => 0, + 'rdev' => 0, + 'size' => $this->stream->getSize() ?: 0, + 'atime' => 0, + 'mtime' => 0, + 'ctime' => 0, 'blksize' => 0, - 'blocks' => 0 + 'blocks' => 0, ]; } @@ -157,19 +157,19 @@ final class StreamWrapper public function url_stat(string $path, int $flags): array { return [ - 'dev' => 0, - 'ino' => 0, - 'mode' => 0, - 'nlink' => 0, - 'uid' => 0, - 'gid' => 0, - 'rdev' => 0, - 'size' => 0, - 'atime' => 0, - 'mtime' => 0, - 'ctime' => 0, + 'dev' => 0, + 'ino' => 0, + 'mode' => 0, + 'nlink' => 0, + 'uid' => 0, + 'gid' => 0, + 'rdev' => 0, + 'size' => 0, + 'atime' => 0, + 'mtime' => 0, + 'ctime' => 0, 'blksize' => 0, - 'blocks' => 0 + 'blocks' => 0, ]; } } diff --git a/vendor/guzzlehttp/psr7/src/UploadedFile.php b/vendor/guzzlehttp/psr7/src/UploadedFile.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/Uri.php b/vendor/guzzlehttp/psr7/src/Uri.php old mode 100755 new mode 100644 index 09e878d3d..fbba7f123 --- a/vendor/guzzlehttp/psr7/src/Uri.php +++ b/vendor/guzzlehttp/psr7/src/Uri.php @@ -25,7 +25,7 @@ class Uri implements UriInterface, \JsonSerializable private const HTTP_DEFAULT_HOST = 'localhost'; private const DEFAULT_PORTS = [ - 'http' => 80, + 'http' => 80, 'https' => 443, 'ftp' => 21, 'gopher' => 70, @@ -41,14 +41,14 @@ class Uri implements UriInterface, \JsonSerializable /** * Unreserved characters for use in a regex. * - * @link https://tools.ietf.org/html/rfc3986#section-2.3 + * @see https://tools.ietf.org/html/rfc3986#section-2.3 */ private const CHAR_UNRESERVED = 'a-zA-Z0-9_\-\.~'; /** * Sub-delims for use in a regex. * - * @link https://tools.ietf.org/html/rfc3986#section-2.2 + * @see https://tools.ietf.org/html/rfc3986#section-2.2 */ private const CHAR_SUB_DELIMS = '!\$&\'\(\)\*\+,;='; private const QUERY_SEPARATORS_REPLACEMENT = ['=' => '%3D', '&' => '%26']; @@ -87,6 +87,7 @@ class Uri implements UriInterface, \JsonSerializable $this->applyParts($parts); } } + /** * UTF-8 aware \parse_url() replacement. * @@ -121,7 +122,7 @@ class Uri implements UriInterface, \JsonSerializable $url ); - $result = parse_url($prefix . $encodedUrl); + $result = parse_url($prefix.$encodedUrl); if ($result === false) { return false; @@ -161,7 +162,7 @@ class Uri implements UriInterface, \JsonSerializable * `file:///` is the more common syntax for the file scheme anyway (Chrome for example redirects to * that format). * - * @link https://tools.ietf.org/html/rfc3986#section-5.3 + * @see https://tools.ietf.org/html/rfc3986#section-5.3 */ public static function composeComponents(?string $scheme, ?string $authority, string $path, ?string $query, ?string $fragment): string { @@ -169,25 +170,25 @@ class Uri implements UriInterface, \JsonSerializable // weak type checks to also accept null until we can add scalar type hints if ($scheme != '') { - $uri .= $scheme . ':'; + $uri .= $scheme.':'; } if ($authority != '' || $scheme === 'file') { - $uri .= '//' . $authority; + $uri .= '//'.$authority; } if ($authority != '' && $path != '' && $path[0] != '/') { - $path = '/' . $path; + $path = '/'.$path; } $uri .= $path; if ($query != '') { - $uri .= '?' . $query; + $uri .= '?'.$query; } if ($fragment != '') { - $uri .= '#' . $fragment; + $uri .= '#'.$fragment; } return $uri; @@ -218,7 +219,7 @@ class Uri implements UriInterface, \JsonSerializable * @see Uri::isNetworkPathReference * @see Uri::isAbsolutePathReference * @see Uri::isRelativePathReference - * @link https://tools.ietf.org/html/rfc3986#section-4 + * @see https://tools.ietf.org/html/rfc3986#section-4 */ public static function isAbsolute(UriInterface $uri): bool { @@ -230,7 +231,7 @@ class Uri implements UriInterface, \JsonSerializable * * A relative reference that begins with two slash characters is termed an network-path reference. * - * @link https://tools.ietf.org/html/rfc3986#section-4.2 + * @see https://tools.ietf.org/html/rfc3986#section-4.2 */ public static function isNetworkPathReference(UriInterface $uri): bool { @@ -242,7 +243,7 @@ class Uri implements UriInterface, \JsonSerializable * * A relative reference that begins with a single slash character is termed an absolute-path reference. * - * @link https://tools.ietf.org/html/rfc3986#section-4.2 + * @see https://tools.ietf.org/html/rfc3986#section-4.2 */ public static function isAbsolutePathReference(UriInterface $uri): bool { @@ -257,7 +258,7 @@ class Uri implements UriInterface, \JsonSerializable * * A relative reference that does not begin with a slash character is termed a relative-path reference. * - * @link https://tools.ietf.org/html/rfc3986#section-4.2 + * @see https://tools.ietf.org/html/rfc3986#section-4.2 */ public static function isRelativePathReference(UriInterface $uri): bool { @@ -276,7 +277,7 @@ class Uri implements UriInterface, \JsonSerializable * @param UriInterface $uri The URI to check * @param UriInterface|null $base An optional base URI to compare against * - * @link https://tools.ietf.org/html/rfc3986#section-4.4 + * @see https://tools.ietf.org/html/rfc3986#section-4.4 */ public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null): bool { @@ -352,7 +353,7 @@ class Uri implements UriInterface, \JsonSerializable /** * Creates a URI from a hash of `parse_url` components. * - * @link http://php.net/manual/en/function.parse-url.php + * @see http://php.net/manual/en/function.parse-url.php * * @throws MalformedUriException If the components do not form a valid URI. */ @@ -374,11 +375,11 @@ class Uri implements UriInterface, \JsonSerializable { $authority = $this->host; if ($this->userInfo !== '') { - $authority = $this->userInfo . '@' . $authority; + $authority = $this->userInfo.'@'.$authority; } if ($this->port !== null) { - $authority .= ':' . $this->port; + $authority .= ':'.$this->port; } return $authority; @@ -435,7 +436,7 @@ class Uri implements UriInterface, \JsonSerializable { $info = $this->filterUserInfoComponent($user); if ($password !== null) { - $info .= ':' . $this->filterUserInfoComponent($password); + $info .= ':'.$this->filterUserInfoComponent($password); } if ($this->userInfo === $info) { @@ -563,7 +564,7 @@ class Uri implements UriInterface, \JsonSerializable ? $this->filterQueryAndFragment($parts['fragment']) : ''; if (isset($parts['pass'])) { - $this->userInfo .= ':' . $this->filterUserInfoComponent($parts['pass']); + $this->userInfo .= ':'.$this->filterUserInfoComponent($parts['pass']); } $this->removeDefaultPort(); @@ -595,7 +596,7 @@ class Uri implements UriInterface, \JsonSerializable } return preg_replace_callback( - '/(?:[^%' . self::CHAR_UNRESERVED . self::CHAR_SUB_DELIMS . ']+|%(?![A-Fa-f0-9]{2}))/', + '/(?:[^%'.self::CHAR_UNRESERVED.self::CHAR_SUB_DELIMS.']+|%(?![A-Fa-f0-9]{2}))/', [$this, 'rawurlencodeMatchZero'], $component ); @@ -627,7 +628,7 @@ class Uri implements UriInterface, \JsonSerializable } $port = (int) $port; - if (0 > $port || 0xffff < $port) { + if (0 > $port || 0xFFFF < $port) { throw new \InvalidArgumentException( sprintf('Invalid port: %d. Must be between 0 and 65535', $port) ); @@ -664,7 +665,7 @@ class Uri implements UriInterface, \JsonSerializable $queryString = strtr($key, self::QUERY_SEPARATORS_REPLACEMENT); if ($value !== null) { - $queryString .= '=' . strtr($value, self::QUERY_SEPARATORS_REPLACEMENT); + $queryString .= '='.strtr($value, self::QUERY_SEPARATORS_REPLACEMENT); } return $queryString; @@ -691,7 +692,7 @@ class Uri implements UriInterface, \JsonSerializable } return preg_replace_callback( - '/(?:[^' . self::CHAR_UNRESERVED . self::CHAR_SUB_DELIMS . '%:@\/]++|%(?![A-Fa-f0-9]{2}))/', + '/(?:[^'.self::CHAR_UNRESERVED.self::CHAR_SUB_DELIMS.'%:@\/]++|%(?![A-Fa-f0-9]{2}))/', [$this, 'rawurlencodeMatchZero'], $path ); @@ -711,7 +712,7 @@ class Uri implements UriInterface, \JsonSerializable } return preg_replace_callback( - '/(?:[^' . self::CHAR_UNRESERVED . self::CHAR_SUB_DELIMS . '%:@\/\?]++|%(?![A-Fa-f0-9]{2}))/', + '/(?:[^'.self::CHAR_UNRESERVED.self::CHAR_SUB_DELIMS.'%:@\/\?]++|%(?![A-Fa-f0-9]{2}))/', [$this, 'rawurlencodeMatchZero'], $str ); diff --git a/vendor/guzzlehttp/psr7/src/UriComparator.php b/vendor/guzzlehttp/psr7/src/UriComparator.php old mode 100755 new mode 100644 diff --git a/vendor/guzzlehttp/psr7/src/UriNormalizer.php b/vendor/guzzlehttp/psr7/src/UriNormalizer.php old mode 100755 new mode 100644 index e12971edd..3d98210b0 --- a/vendor/guzzlehttp/psr7/src/UriNormalizer.php +++ b/vendor/guzzlehttp/psr7/src/UriNormalizer.php @@ -11,7 +11,7 @@ use Psr\Http\Message\UriInterface; * * @author Tobias Schultze * - * @link https://tools.ietf.org/html/rfc3986#section-6 + * @see https://tools.ietf.org/html/rfc3986#section-6 */ final class UriNormalizer { @@ -119,7 +119,7 @@ final class UriNormalizer * @param UriInterface $uri The URI to normalize * @param int $flags A bitmask of normalizations to apply, see constants * - * @link https://tools.ietf.org/html/rfc3986#section-6.2 + * @see https://tools.ietf.org/html/rfc3986#section-6.2 */ public static function normalize(UriInterface $uri, int $flags = self::PRESERVING_NORMALIZATIONS): UriInterface { @@ -174,7 +174,7 @@ final class UriNormalizer * @param UriInterface $uri2 An URI to compare * @param int $normalizations A bitmask of normalizations to apply, see constants * - * @link https://tools.ietf.org/html/rfc3986#section-6.1 + * @see https://tools.ietf.org/html/rfc3986#section-6.1 */ public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, int $normalizations = self::PRESERVING_NORMALIZATIONS): bool { diff --git a/vendor/guzzlehttp/psr7/src/UriResolver.php b/vendor/guzzlehttp/psr7/src/UriResolver.php old mode 100755 new mode 100644 index 426e5c9ad..b942d1cec --- a/vendor/guzzlehttp/psr7/src/UriResolver.php +++ b/vendor/guzzlehttp/psr7/src/UriResolver.php @@ -11,14 +11,14 @@ use Psr\Http\Message\UriInterface; * * @author Tobias Schultze * - * @link https://tools.ietf.org/html/rfc3986#section-5 + * @see https://tools.ietf.org/html/rfc3986#section-5 */ final class UriResolver { /** * Removes dot segments from a path and returns the new path. * - * @link http://tools.ietf.org/html/rfc3986#section-5.2.4 + * @see http://tools.ietf.org/html/rfc3986#section-5.2.4 */ public static function removeDotSegments(string $path): string { @@ -40,7 +40,7 @@ final class UriResolver if ($path[0] === '/' && (!isset($newPath[0]) || $newPath[0] !== '/')) { // Re-add the leading slash if necessary for cases like "/.." - $newPath = '/' . $newPath; + $newPath = '/'.$newPath; } elseif ($newPath !== '' && ($segment === '.' || $segment === '..')) { // Add the trailing slash if necessary // If newPath is not empty, then $segment must be set and is the last segment from the foreach @@ -53,7 +53,7 @@ final class UriResolver /** * Converts the relative URI into a new URI that is resolved against the base URI. * - * @link http://tools.ietf.org/html/rfc3986#section-5.2 + * @see http://tools.ietf.org/html/rfc3986#section-5.2 */ public static function resolve(UriInterface $base, UriInterface $rel): UriInterface { @@ -80,13 +80,13 @@ final class UriResolver $targetPath = $rel->getPath(); } else { if ($targetAuthority != '' && $base->getPath() === '') { - $targetPath = '/' . $rel->getPath(); + $targetPath = '/'.$rel->getPath(); } else { $lastSlashPos = strrpos($base->getPath(), '/'); if ($lastSlashPos === false) { $targetPath = $rel->getPath(); } else { - $targetPath = substr($base->getPath(), 0, $lastSlashPos + 1) . $rel->getPath(); + $targetPath = substr($base->getPath(), 0, $lastSlashPos + 1).$rel->getPath(); } } } @@ -185,7 +185,7 @@ final class UriResolver } } $targetSegments[] = $targetLastSegment; - $relativePath = str_repeat('../', count($sourceSegments)) . implode('/', $targetSegments); + $relativePath = str_repeat('../', count($sourceSegments)).implode('/', $targetSegments); // A reference to am empty last segment or an empty first sub-segment must be prefixed with "./". // This also applies to a segment with a colon character (e.g., "file:colon") that cannot be used diff --git a/vendor/guzzlehttp/psr7/src/Utils.php b/vendor/guzzlehttp/psr7/src/Utils.php old mode 100755 new mode 100644 index 3a4cf3946..49b481e53 --- a/vendor/guzzlehttp/psr7/src/Utils.php +++ b/vendor/guzzlehttp/psr7/src/Utils.php @@ -90,6 +90,7 @@ final class Utils } $buffer .= $buf; } + return $buffer; } @@ -174,7 +175,7 @@ final class Utils $standardPorts = ['http' => 80, 'https' => 443]; $scheme = $changes['uri']->getScheme(); if (isset($standardPorts[$scheme]) && $port != $standardPorts[$scheme]) { - $changes['set_headers']['Host'] .= ':' . $port; + $changes['set_headers']['Host'] .= ':'.$port; } } } @@ -291,6 +292,7 @@ final class Utils fwrite($stream, (string) $resource); fseek($stream, 0); } + return new Stream($stream, $options); } @@ -308,6 +310,7 @@ final class Utils fseek($stream, 0); $resource = $stream; } + return new Stream($resource, $options); case 'object': /** @var object $resource */ @@ -320,6 +323,7 @@ final class Utils } $result = $resource->current(); $resource->next(); + return $result; }, $options); } elseif (method_exists($resource, '__toString')) { @@ -334,7 +338,7 @@ final class Utils return new PumpStream($resource, $options); } - throw new \InvalidArgumentException('Invalid resource type: ' . gettype($resource)); + throw new \InvalidArgumentException('Invalid resource type: '.gettype($resource)); } /** diff --git a/vendor/maennchen/zipstream-php/.php-cs-fixer.dist.php b/vendor/maennchen/zipstream-php/.php-cs-fixer.dist.php index 3ba86a4e6..b978f0646 100644 --- a/vendor/maennchen/zipstream-php/.php-cs-fixer.dist.php +++ b/vendor/maennchen/zipstream-php/.php-cs-fixer.dist.php @@ -26,7 +26,7 @@ $config = new Config(); return $config->setRules([ '@PER' => true, '@PER:risky' => true, - '@PHP81Migration' => true, + '@PHP82Migration' => true, '@PHPUnit84Migration:risky' => true, 'array_syntax' => ['syntax' => 'short'], 'class_attributes_separation' => true, @@ -68,4 +68,4 @@ return $config->setRules([ ], ]) ->setFinder($finder) - ->setRiskyAllowed(true); \ No newline at end of file + ->setRiskyAllowed(true); diff --git a/vendor/maennchen/zipstream-php/.tool-versions b/vendor/maennchen/zipstream-php/.tool-versions index 54f6ff0b4..261817810 100644 --- a/vendor/maennchen/zipstream-php/.tool-versions +++ b/vendor/maennchen/zipstream-php/.tool-versions @@ -1 +1 @@ -php 8.2.0 +php 8.2.5 diff --git a/vendor/maennchen/zipstream-php/README.md b/vendor/maennchen/zipstream-php/README.md index 155a26582..8ebb2c3cf 100644 --- a/vendor/maennchen/zipstream-php/README.md +++ b/vendor/maennchen/zipstream-php/README.md @@ -14,13 +14,17 @@ version. ## Overview -A fast and simple streaming zip file downloader for PHP. Using this library will save you from having to write the Zip to disk. You can directly send it to the user, which is much faster. It can work with S3 buckets or any PSR7 Stream. +A fast and simple streaming zip file downloader for PHP. Using this library will +save you from having to write the Zip to disk. You can directly send it to the +user, which is much faster. It can work with S3 buckets or any PSR7 Stream. Please see the [LICENSE](LICENSE) file for licensing and warranty information. ## Installation -Simply add a dependency on maennchen/zipstream-php to your project's composer.json file if you use Composer to manage the dependencies of your project. Use following command to add the package to your project's dependencies: +Simply add a dependency on maennchen/zipstream-php to your project's +`composer.json` file if you use Composer to manage the dependencies of your +project. Use following command to add the package to your project's dependencies: ```bash composer require maennchen/zipstream-php @@ -29,51 +33,116 @@ composer require maennchen/zipstream-php ## Usage For detailed instructions, please check the -[Documentation](https://maennchen.dev/ZipStream-PHP/). - -Here's a simple example: +[Documentation](https://maennchen.github.io/ZipStream-PHP/). ```php // Autoload the dependencies require 'vendor/autoload.php'; -// enable output of HTTP headers -$options = new ZipStream\Option\Archive(); -$options->setSendHttpHeaders(true); - // create a new zipstream object -$zip = new ZipStream\ZipStream('example.zip', $options); +$zip = new ZipStream\ZipStream( + outputName: 'example.zip', + + // enable output of HTTP headers + sendHttpHeaders: true, +); // create a file named 'hello.txt' -$zip->addFile('hello.txt', 'This is the contents of hello.txt'); +$zip->addFile( + fileName: 'hello.txt', + data: 'This is the contents of hello.txt', +); // add a file named 'some_image.jpg' from a local file 'path/to/image.jpg' -$zip->addFileFromPath('some_image.jpg', 'path/to/image.jpg'); +$zip->addFileFromPath( + fileName: 'some_image.jpg', + path: 'path/to/image.jpg', +); // finish the zip stream $zip->finish(); ``` +## Upgrade to version 3.0.0 + +### General + +- Minimum PHP Version: `8.1` +- Only 64bit Architecture is supported. +- The class `ZipStream\Option\Method` has been replaced with the enum + `ZipStream\CompressionMethod`. +- Most clases have been flagged as `@internal` and should not be used from the + outside. + If you're using internal resources to extend this library, please open an + issue so that a clean interface can be added & published. + The externally available classes & enums are: + - `ZipStream\CompressionMethod` + - `ZipStream\Exception*` + - `ZipStream\ZipStream` + +### Archive Options + +- The class `ZipStream\Option\Archive` has been replaced in favor of named + arguments in the `ZipStream\ZipStream` constuctor. +- The archive options `largeFileSize` & `largeFileMethod` has been removed. If + you want different `compressionMethods` based on the file size, you'll have to + implement this yourself. +- The archive option `httpHeaderCallback` changed the type from `callable` to + `Closure`. +- The archive option `zeroHeader` has been replaced with the option + `defaultEnableZeroHeader` and can be overridden for every file. Its default + value changed from `false` to `true`. +- The archive option `statFiles` was removed since the library no longer checks + filesizes this way. +- The archive option `deflateLevel` has been replaced with the option + `defaultDeflateLevel` and can be overridden for every file. +- The first argument (`name`) of the `ZipStream\ZipStream` constuctor has been + replaced with the named argument `outputName`. +- Headers are now also sent if the `outputName` is empty. If you do not want to + automatically send http headers, set `sendHttpHeaders` to `false`. + +### File Options + +- The class `ZipStream\Option\File` has been replaced in favor of named + arguments in the `ZipStream\ZipStream->addFile*` functions. +- The file option `method` has been renamed to `compressionMethod`. +- The file option `time` has been renamed to `lastModificationDateTime`. +- The file option `size` has been renamed to `maxSize`. + ## Upgrade to version 2.0.0 -- Only the self opened streams will be closed (#139) - If you were relying on ZipStream to close streams that the library didn't open, - you'll need to close them yourself now. +https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-200 ## Upgrade to version 1.0.0 -- All options parameters to all function have been moved from an `array` to structured option objects. See [the wiki](https://github.com/maennchen/ZipStream-PHP/wiki/Available-options) for examples. -- The whole library has been refactored. The minimal PHP requirement has been raised to PHP 7.1. - -## Usage with Symfony and S3 - -You can find example code on [the wiki](https://github.com/maennchen/ZipStream-PHP/wiki/Symfony-example). +https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-100 ## Contributing ZipStream-PHP is a collaborative project. Please take a look at the [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md) file. +## Version Support + +Versions are supported according to the table below. + +Please do not open any pull requests contradicting the current version support +status. + +Careful: Always check the `README` on `main` for up-to-date information. + +| Version | New Features | Bugfixes | Security | +|---------|--------------|----------|----------| +| *3* | ✓ | ✓ | ✓ | +| *2* | ✗ | ✓ | ✓ | +| *1* | ✗ | ✗ | ✓ | +| *0* | ✗ | ✗ | ✗ | + +This library aligns itself with the PHP core support. New features and bugfixes +will only target PHP versions according to their current status. + +See: https://www.php.net/supported-versions.php + ## About the Authors - Paul Duncan - https://pablotron.org/ diff --git a/vendor/maennchen/zipstream-php/composer.json b/vendor/maennchen/zipstream-php/composer.json index 2746da19f..98c536a43 100644 --- a/vendor/maennchen/zipstream-php/composer.json +++ b/vendor/maennchen/zipstream-php/composer.json @@ -22,26 +22,35 @@ } ], "require": { - "php": "^8.0", + "php-64bit": "^8.1", "ext-mbstring": "*", - "psr/http-message": "^1.0", - "myclabs/php-enum": "^1.5" + "ext-zlib": "*" }, "require-dev": { - "phpunit/phpunit": "^8.5.8 || ^9.4.2", - "guzzlehttp/guzzle": "^6.5.3 || ^7.2.0", + "phpunit/phpunit": "^10.0", + "guzzlehttp/guzzle": "^7.5", "ext-zip": "*", "mikey179/vfsstream": "^1.6", - "vimeo/psalm": "^5.0", - "php-coveralls/php-coveralls": "^2.4", - "friendsofphp/php-cs-fixer": "^3.9" + "php-coveralls/php-coveralls": "^2.5", + "friendsofphp/php-cs-fixer": "^3.16", + "vimeo/psalm": "^5.0" + }, + "suggest": { + "psr/http-message": "^2.0", + "guzzlehttp/psr7": "^2.4" }, "scripts": { - "format": "PHP_CS_FIXER_IGNORE_ENV=true php-cs-fixer fix", - "test": "composer run test:unit && composer run test:formatted && composer run test:lint", + "format": "php-cs-fixer fix", + "test": [ + "@test:unit", + "@test:formatted", + "@test:lint" + ], "test:unit": "phpunit --coverage-clover=coverage.clover.xml --coverage-html cov", - "test:formatted": "composer run format -- --dry-run --stop-on-violation --using-cache=no", - "test:lint": "psalm --stats --show-info --find-unused-psalm-suppress", + "test:unit:slow": "@test:unit --group slow", + "test:unit:fast": "@test:unit --exclude-group slow", + "test:formatted": "@format --dry-run --stop-on-violation --using-cache=no", + "test:lint": "psalm --stats --show-info=true --find-unused-psalm-suppress", "coverage:report": "php-coveralls --coverage_clover=coverage.clover.xml --json_path=coveralls-upload.json --insecure", "install:tools": "phive install --trust-gpg-keys 0x67F861C3D889C656", "docs:generate": "tools/phpdocumentor --sourcecode" @@ -51,6 +60,9 @@ "ZipStream\\": "src/" } }, + "autoload-dev": { + "psr-4": { "ZipStream\\Test\\": "test/" } + }, "archive": { "exclude": [ "/composer.lock", diff --git a/vendor/maennchen/zipstream-php/guides/ContentLength.rst b/vendor/maennchen/zipstream-php/guides/ContentLength.rst index e51e69276..21fea34d7 100644 --- a/vendor/maennchen/zipstream-php/guides/ContentLength.rst +++ b/vendor/maennchen/zipstream-php/guides/ContentLength.rst @@ -1,79 +1,47 @@ Adding Content-Length header ============= -Adding a ``Content-Length`` header for ``ZipStream`` is not trivial since the -size is not known beforehand. +Adding a ``Content-Length`` header for ``ZipStream`` can be achieved by +using the options ``SIMULATION_STRICT`` or ``SIMULATION_LAX`` in the +``operationMode`` parameter. -The following workaround adds an approximated header: +In the ``SIMULATION_STRICT`` mode, ``ZipStream`` will not allow to calculate the +size based on reading the whole file. ``SIMULATION_LAX`` will read the whole +file if neccessary. + +``SIMULATION_STRICT`` is therefore useful to make sure that the size can be +calculated efficiently. .. code-block:: php + use ZipStream\OperationMode; + use ZipStream\ZipStream; - class Zip - { - /** @var string */ - private $name; + $zip = new ZipStream( + operationMode: OperationMode::SIMULATE_STRICT, // or SIMULATE_LAX + defaultEnableZeroHeader: false, + sendHttpHeaders: true, + outputStream: $stream, + ); - private $files = []; + // Normally add files + $zip->addFile('sample.txt', 'Sample String Data'); - public function __construct($name) - { - $this->name = $name; + // Use addFileFromCallback and exactSize if you want to defer opening of + // the file resource + $zip->addFileFromCallback( + 'sample.txt', + exactSize: 18, + callback: function () { + return fopen('...'); } + ); - public function addFile($name, $data) - { - $this->files[] = ['type' => 'addFile', 'name' => $name, 'data' => $data]; - } + // Read resulting file size + $size = $zip->finish(); + + // Tell it to the browser + header('Content-Length: '. $size); + + // Execute the Simulation and stream the actual zip to the client + $zip->executeSimulation(); - public function addFileFromPath($name, $path) - { - $this->files[] = ['type' => 'addFileFromPath', 'name' => $name, 'path' => $path]; - } - - public function getEstimate() - { - $estimate = 22; - foreach ($this->files as $file) { - $estimate += 76 + 2 * strlen($file['name']); - if ($file['type'] === 'addFile') { - $estimate += strlen($file['data']); - } - if ($file['type'] === 'addFileFromPath') { - $estimate += filesize($file['path']); - } - } - return $estimate; - } - - public function finish() - { - header('Content-Length: ' . $this->getEstimate()); - $options = new \ZipStream\Option\Archive(); - $options->setSendHttpHeaders(true); - $options->setEnableZip64(false); - $options->setDeflateLevel(-1); - $zip = new \ZipStream\ZipStream($this->name, $options); - - $fileOptions = new \ZipStream\Option\File(); - $fileOptions->setMethod(\ZipStream\Option\Method::STORE()); - foreach ($this->files as $file) { - if ($file['type'] === 'addFile') { - $zip->addFile($file['name'], $file['data'], $fileOptions); - } - if ($file['type'] === 'addFileFromPath') { - $zip->addFileFromPath($file['name'], $file['path'], $fileOptions); - } - } - $zip->finish(); - exit; - } - } - -It only works with the following constraints: - -- All file content is known beforehand. -- Content Deflation is disabled - -Thanks to -`partiellkorrekt `_ -for this workaround. \ No newline at end of file diff --git a/vendor/maennchen/zipstream-php/guides/FlySystem.rst b/vendor/maennchen/zipstream-php/guides/FlySystem.rst index 0243f2482..4e6c6fb82 100644 --- a/vendor/maennchen/zipstream-php/guides/FlySystem.rst +++ b/vendor/maennchen/zipstream-php/guides/FlySystem.rst @@ -14,20 +14,21 @@ default one, and pass it to Flysystem ``putStream`` method. // the content is lost when closing the stream / opening another one $tempStream = fopen('php://memory', 'w+'); - // Init Options - $zipStreamOptions = new Archive(); - $zipStreamOptions->setOutputStream($tempStream); - // Create Zip Archive - $zipStream = new ZipStream('test.zip', $zipStreamOptions); + $zipStream = new ZipStream( + outputStream: $tempStream, + outputName: 'test.zip', + ); $zipStream->addFile('test.txt', 'text'); $zipStream->finish(); - // Store File (see Flysystem documentation, and all its framework integration) - $adapter = new Local(__DIR__.'/path/to/folder'); // Can be any adapter (AWS, Google, Ftp, etc.) + // Store File + // (see Flysystem documentation, and all its framework integration) + // Can be any adapter (AWS, Google, Ftp, etc.) + $adapter = new Local(__DIR__.'/path/to/folder'); $filesystem = new Filesystem($adapter); - $filesystem->putStream('test.zip', $tempStream) + $filesystem->writeStream('test.zip', $tempStream) // Close Stream - fclose($tempStream); \ No newline at end of file + fclose($tempStream); diff --git a/vendor/maennchen/zipstream-php/guides/Options.rst b/vendor/maennchen/zipstream-php/guides/Options.rst index eabaa6f34..5e92e94d6 100644 --- a/vendor/maennchen/zipstream-php/guides/Options.rst +++ b/vendor/maennchen/zipstream-php/guides/Options.rst @@ -2,60 +2,65 @@ Available options =============== Here is the full list of options available to you. You can also have a look at -``src/Option/Archive.php`` file. - -First, an instance of ``ZipStream\Option\Archive`` needs to be created, and -after that you use setters methods to modify the values. +``src/ZipStream.php`` file. .. code-block:: php + use ZipStream\ZipStream; - use ZipStream\Option\Archive as ArchiveOptions; require_once 'vendor/autoload.php'; - $opt = new ArchiveOptions(); + $zip = new ZipStream( + // Define output stream + // (argument is eiter a resource or implementing + // `Psr\Http\Message\StreamInterface`) + // + // Setup with `psr/http-message` & `guzzlehttp/psr7` dependencies + // required when using `Psr\Http\Message\StreamInterface`. + outputStream: $filePointer, - // Define output stream (argument is of type resource) - $opt->setOutputStream($fd); + // Set the deflate level (default is 6; use -1 to disable it) + defaultDeflateLevel: 6, - // Set the deflate level (default is 6; use -1 to disable it) - $opt->setDeflateLevel(6); + // Add a comment to the zip file + comment: 'This is a comment.', - // Add a comment to the zip file - $opt->setComment('This is a comment.'); + // Send http headers (default is true) + sendHttpHeaders: false, - // Size, in bytes, of the largest file to try and load into memory (used by addFileFromPath()). Large files may also be compressed differently; see the 'largeFileMethod' option. - $opt->setLargeFileSize(30000000); + // HTTP Content-Disposition. + // Defaults to 'attachment', where FILENAME is the specified filename. + // Note that this does nothing if you are not sending HTTP headers. + contentDisposition: 'attachment', - // How to handle large files. Legal values are STORE (the default), or DEFLATE. Store sends the file raw and is significantly faster, while DEFLATE compresses the file and is much, much slower. Note that deflate must compress the file twice and is extremely slow. - $opt->setLargeFileMethod(ZipStream\Option\Method::STORE()); - $opt->setLargeFileMethod(ZipStream\Option\Method::DEFLATE()); + // Output Name for HTTP Content-Disposition + // Defaults to no name + outputName: "example.zip", - // Send http headers (default is false) - $opt->setSendHttpHeaders(false); + // HTTP Content-Type. + // Defaults to 'application/x-zip'. + // Note that this does nothing if you are not sending HTTP headers. + contentType: 'application/x-zip', - // HTTP Content-Disposition. Defaults to 'attachment', where FILENAME is the specified filename. Note that this does nothing if you are not sending HTTP headers. - $opt->setContentDisposition('attachment'); + // Set the function called for setting headers. + // Default is the `header()` of PHP + httpHeaderCallback: header(...), - // Set the content type (does nothing if you are not sending HTTP headers) - $opt->setContentType('application/x-zip'); + // Enable streaming files with single read where general purpose bit 3 + // indicates local file header contain zero values in crc and size + // fields, these appear only after file contents in data descriptor + // block. + // Set to true if your input stream is remote + // (used with addFileFromStream()). + // Default is false. + defaultEnableZeroHeader: false, - // Set the function called for setting headers. Default is the `header()` of PHP - $opt->setHttpHeaderCallback('header'); + // Enable zip64 extension, allowing very large archives + // (> 4Gb or file count > 64k) + // Default is true + enableZip64: true, - // Enable streaming files with single read where general purpose bit 3 indicates local file header contain zero values in crc and size fields, these appear only after file contents in data descriptor block. Default is false. Set to true if your input stream is remote (used with addFileFromStream()). - $opt->setZeroHeader(false); - - // Enable reading file stat for determining file size. When a 32-bit system reads file size that is over 2 GB, invalid value appears in file size due to integer overflow. Should be disabled on 32-bit systems with method addFileFromPath if any file may exceed 2 GB. In this case file will be read in blocks and correct size will be determined from content. Default is true. - $opt->setStatFiles(true); - - // Enable zip64 extension, allowing very large archives (> 4Gb or file count > 64k) - // default is true - $opt->setEnableZip64(true); - - // Flush output buffer after every write - // default is false - $opt->setFlushOutput(true); - - // Now that everything is set you can pass the options to the ZipStream instance - $zip = new ZipStream('example.zip', $opt); + // Flush output buffer after every write + // Default is false + flushOutput: true, + ); diff --git a/vendor/maennchen/zipstream-php/guides/PSR7Streams.rst b/vendor/maennchen/zipstream-php/guides/PSR7Streams.rst index 4b4ca4b34..22af71d4a 100644 --- a/vendor/maennchen/zipstream-php/guides/PSR7Streams.rst +++ b/vendor/maennchen/zipstream-php/guides/PSR7Streams.rst @@ -12,7 +12,10 @@ Example --------------- .. code-block:: php - + $stream = $response->getBody(); // add a file named 'streamfile.txt' from the content of the stream - $zip->addFileFromPsr7Stream('streamfile.txt', $stream); + $zip->addFileFromPsr7Stream( + fileName: 'streamfile.txt', + stream: $stream, + ); diff --git a/vendor/maennchen/zipstream-php/guides/StreamOutput.rst b/vendor/maennchen/zipstream-php/guides/StreamOutput.rst index 1a0495fae..9f3165b75 100644 --- a/vendor/maennchen/zipstream-php/guides/StreamOutput.rst +++ b/vendor/maennchen/zipstream-php/guides/StreamOutput.rst @@ -5,9 +5,9 @@ Stream to S3 Bucket --------------- .. code-block:: php + use Aws\S3\S3Client; use Aws\Credentials\CredentialProvider; - use ZipStream\Option\Archive; use ZipStream\ZipStream; $bucket = 'your bucket name'; @@ -21,13 +21,19 @@ Stream to S3 Bucket $zipFile = fopen("s3://$bucket/example.zip", 'w'); - $options = new Archive(); - $options->setEnableZip64(false); - $options->setOutputStream($zipFile); + $zip = new ZipStream( + enableZip64: false, + outputStream: $zipFile, + ); - $zip = new ZipStream(null, $options); - $zip->addFile('file1.txt', 'File1 data'); - $zip->addFile('file2.txt', 'File2 data'); + $zip->addFile( + fileName: 'file1.txt', + data: 'File1 data', + ); + $zip->addFile( + fileName: 'file2.txt', + data: 'File2 data', + ); $zip->finish(); - fclose($zipFile); \ No newline at end of file + fclose($zipFile); diff --git a/vendor/maennchen/zipstream-php/guides/Symfony.rst b/vendor/maennchen/zipstream-php/guides/Symfony.rst index 18f905958..902552c92 100644 --- a/vendor/maennchen/zipstream-php/guides/Symfony.rst +++ b/vendor/maennchen/zipstream-php/guides/Symfony.rst @@ -31,7 +31,7 @@ stored in an AWS S3 bucket by key: */ public function zipStreamAction() { - //sample test file on s3 + // sample test file on s3 $s3keys = array( "ziptestfolder/file1.txt" ); @@ -39,18 +39,18 @@ stored in an AWS S3 bucket by key: $s3Client = $this->get('app.amazon.s3'); //s3client service $s3Client->registerStreamWrapper(); //required - //using StreamedResponse to wrap ZipStream functionality for files on AWS s3. + // using StreamedResponse to wrap ZipStream functionality + // for files on AWS s3. $response = new StreamedResponse(function() use($s3keys, $s3Client) { // Define suitable options for ZipStream Archive. - $options = new \ZipStream\Option\Archive(); - $options->setContentType('application/octet-stream'); // this is needed to prevent issues with truncated zip files - $options->setZeroHeader(true); - $options->setComment('test zip file.'); - //initialise zipstream with output zip filename and options. - $zip = new ZipStream\ZipStream('test.zip', $options); + $zip = new ZipStream\ZipStream( + outputName: 'test.zip', + defaultEnableZeroHeader: true, + contentType: 'application/octet-stream', + ); //loop keys - useful for multiple files foreach ($s3keys as $key) { @@ -58,15 +58,19 @@ stored in an AWS S3 bucket by key: //file using the same name. $fileName = basename($key); - //concatenate s3path. - $bucket = 'bucketname'; //replace with your bucket name or get from parameters file. + // concatenate s3path. + // replace with your bucket name or get from parameters file. + $bucket = 'bucketname'; $s3path = "s3://" . $bucket . "/" . $key; //addFileFromStream if ($streamRead = fopen($s3path, 'r')) { - $zip->addFileFromStream($fileName, $streamRead); + $zip->addFileFromStream( + fileName: $fileName, + stream: $streamRead, + ); } else { - die('Could not open stream for reading'); + die('Could not open stream for reading'); } } @@ -123,4 +127,4 @@ You need to add correct permissions 's3' => ['ACL' => 'public-read'], ]); - fopen($path, 'w', null, $outputContext); \ No newline at end of file + fopen($path, 'w', null, $outputContext); diff --git a/vendor/maennchen/zipstream-php/guides/index.rst b/vendor/maennchen/zipstream-php/guides/index.rst index 67f504b25..4583ca58e 100644 --- a/vendor/maennchen/zipstream-php/guides/index.rst +++ b/vendor/maennchen/zipstream-php/guides/index.rst @@ -22,11 +22,20 @@ Installation Simply add a dependency on ``maennchen/zipstream-php`` to your project's ``composer.json`` file if you use Composer to manage the dependencies of your -project. Use following command to add the package to your project's dependencies: +project. Use following command to add the package to your project's +dependencies: .. code-block:: sh composer require maennchen/zipstream-php +If you want to use``addFileFromPsr7Stream``` +(``Psr\Http\Message\StreamInterface``) or use a stream instead of a +``resource`` as ``outputStream``, the following dependencies must be installed +as well: + +.. code-block:: sh + composer require psr/http-message guzzlehttp/psr7 + If ``composer install`` yields the following error, your installation is missing the `mbstring extension `_, either `install it `_ @@ -52,25 +61,42 @@ Here's a simple example: // Autoload the dependencies require 'vendor/autoload.php'; - // enable output of HTTP headers - $options = new ZipStream\Option\Archive(); - $options->setSendHttpHeaders(true); - // create a new zipstream object - $zip = new ZipStream\ZipStream('example.zip', $options); + $zip = new ZipStream\ZipStream( + outputName: 'example.zip', + + // enable output of HTTP headers + sendHttpHeaders: true, + ); // create a file named 'hello.txt' - $zip->addFile('hello.txt', 'This is the contents of hello.txt'); + $zip->addFile( + fileName: 'hello.txt', + data: 'This is the contents of hello.txt', + ); // add a file named 'some_image.jpg' from a local file 'path/to/image.jpg' - $zip->addFileFromPath('some_image.jpg', 'path/to/image.jpg'); + $zip->addFileFromPath( + fileName: 'some_image.jpg', + path: 'path/to/image.jpg', + ); // add a file named 'goodbye.txt' from an open stream resource - $fp = tmpfile(); - fwrite($fp, 'The quick brown fox jumped over the lazy dog.'); - rewind($fp); - $zip->addFileFromStream('goodbye.txt', $fp); - fclose($fp); + $filePointer = tmpfile(); + fwrite($filePointer, 'The quick brown fox jumped over the lazy dog.'); + rewind($filePointer); + $zip->addFileFromStream( + fileName: 'goodbye.txt', + stream: $filePointer, + ); + fclose($filePointer); + + // add a file named 'streamfile.txt' from the body of a `guzzle` response + // Setup with `psr/http-message` & `guzzlehttp/psr7` dependencies required. + $zip->addFileFromPsr7Stream( + fileName: 'streamfile.txt', + stream: $response->getBody(), + ); // finish the zip stream $zip->finish(); diff --git a/vendor/maennchen/zipstream-php/phpunit.xml.dist b/vendor/maennchen/zipstream-php/phpunit.xml.dist index 8a2f3188f..1b02a3af8 100644 --- a/vendor/maennchen/zipstream-php/phpunit.xml.dist +++ b/vendor/maennchen/zipstream-php/phpunit.xml.dist @@ -1,14 +1,15 @@ - - - - src - - + + test + + + src + + diff --git a/vendor/maennchen/zipstream-php/psalm.xml b/vendor/maennchen/zipstream-php/psalm.xml index 4e4c4f607..5d050d14a 100644 --- a/vendor/maennchen/zipstream-php/psalm.xml +++ b/vendor/maennchen/zipstream-php/psalm.xml @@ -1,9 +1,12 @@ @@ -11,43 +14,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/vendor/maennchen/zipstream-php/src/Bigint.php b/vendor/maennchen/zipstream-php/src/Bigint.php deleted file mode 100644 index f2565e980..000000000 --- a/vendor/maennchen/zipstream-php/src/Bigint.php +++ /dev/null @@ -1,174 +0,0 @@ -fillBytes($value, 0, 8); - } - - /** - * Get an instance - * - * @param int $value - * @return Bigint - */ - public static function init(int $value = 0): self - { - return new self($value); - } - - /** - * Fill bytes from low to high - * - * @param int $low - * @param int $high - * @return Bigint - */ - public static function fromLowHigh(int $low, int $high): self - { - $bigint = new self(); - $bigint->fillBytes($low, 0, 4); - $bigint->fillBytes($high, 4, 4); - return $bigint; - } - - /** - * Get high 32 - * - * @return int - */ - public function getHigh32(): int - { - return $this->getValue(4, 4); - } - - /** - * Get value from bytes array - * - * @param int $end - * @param int $length - * @return int - */ - public function getValue(int $end = 0, int $length = 8): int - { - $result = 0; - for ($i = $end + $length - 1; $i >= $end; $i--) { - $result <<= 8; - $result |= $this->bytes[$i]; - } - return $result; - } - - /** - * Get low FF - * - * @param bool $force - * @return float - */ - public function getLowFF(bool $force = false): float - { - if ($force || $this->isOver32()) { - return (float)0xFFFFFFFF; - } - return (float)$this->getLow32(); - } - - /** - * Check if is over 32 - * - * @psalm-suppress ArgumentTypeCoercion - * @param bool $force - * @return bool - */ - public function isOver32(bool $force = false): bool - { - // value 0xFFFFFFFF already needs a Zip64 header - return $force || - max(array_slice($this->bytes, 4, 4)) > 0 || - min(array_slice($this->bytes, 0, 4)) === 0xFF; - } - - /** - * Get low 32 - * - * @return int - */ - public function getLow32(): int - { - return $this->getValue(0, 4); - } - - /** - * Get hexadecimal - * - * @return string - */ - public function getHex64(): string - { - $result = '0x'; - for ($i = 7; $i >= 0; $i--) { - $result .= sprintf('%02X', $this->bytes[$i]); - } - return $result; - } - - /** - * Add - * - * @param Bigint $other - * @return Bigint - */ - public function add(self $other): self - { - $result = clone $this; - $overflow = false; - for ($i = 0; $i < 8; $i++) { - $result->bytes[$i] += $other->bytes[$i]; - if ($overflow) { - $result->bytes[$i]++; - $overflow = false; - } - if ($result->bytes[$i] & 0x100) { - $overflow = true; - $result->bytes[$i] &= 0xFF; - } - } - if ($overflow) { - throw new OverflowException(); - } - return $result; - } - - /** - * Fill the bytes field with int - * - * @param int $value - * @param int $start - * @param int $count - * @return void - */ - protected function fillBytes(int $value, int $start, int $count): void - { - for ($i = 0; $i < $count; $i++) { - $this->bytes[$start + $i] = $i >= PHP_INT_SIZE ? 0 : $value & 0xFF; - $value >>= 8; - } - } -} diff --git a/vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php b/vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php new file mode 100644 index 000000000..ffcfc6e97 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/CentralDirectoryFileHeader.php @@ -0,0 +1,52 @@ +value), + new PackField(format: 'V', value: Time::dateTimeToDosTime($lastModificationDateTime)), + new PackField(format: 'V', value: $crc32), + new PackField(format: 'V', value: $compressedSize), + new PackField(format: 'V', value: $uncompressedSize), + new PackField(format: 'v', value: strlen($fileName)), + new PackField(format: 'v', value: strlen($extraField)), + new PackField(format: 'v', value: strlen($fileComment)), + new PackField(format: 'v', value: $diskNumberStart), + new PackField(format: 'v', value: $internalFileAttributes), + new PackField(format: 'V', value: $externalFileAttributes), + new PackField(format: 'V', value: $relativeOffsetOfLocalHeader), + ) . $fileName . $extraField . $fileComment; + } +} diff --git a/vendor/maennchen/zipstream-php/src/CompressionMethod.php b/vendor/maennchen/zipstream-php/src/CompressionMethod.php new file mode 100644 index 000000000..51e436370 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/CompressionMethod.php @@ -0,0 +1,106 @@ +format(DateTimeInterface::ATOM) . " can't be represented as DOS time / date."); + } +} diff --git a/vendor/maennchen/zipstream-php/src/Exception/EncodingException.php b/vendor/maennchen/zipstream-php/src/Exception/EncodingException.php deleted file mode 100644 index 5b0267d2f..000000000 --- a/vendor/maennchen/zipstream-php/src/Exception/EncodingException.php +++ /dev/null @@ -1,14 +0,0 @@ -resource = $resource; + parent::__construct('Function ' . $function . 'failed on resource.'); + } +} diff --git a/vendor/maennchen/zipstream-php/src/Exception/SimulationFileUnknownException.php b/vendor/maennchen/zipstream-php/src/Exception/SimulationFileUnknownException.php new file mode 100644 index 000000000..717c1aafe --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/Exception/SimulationFileUnknownException.php @@ -0,0 +1,19 @@ +fileName = self::filterFilename($fileName); + $this->checkEncoding(); - /** - * @var Bigint - */ - public $len; + if ($this->enableZeroHeader) { + $this->generalPurposeBitFlag |= GeneralPurposeBitFlag::ZERO_HEADER; + } - /** - * @var Bigint - */ - public $zlen; - - /** @var int */ - public $crc; - - /** - * @var Bigint - */ - public $hlen; - - /** - * @var Bigint - */ - public $ofs; - - /** - * @var int - */ - public $bits; - - /** - * @var Version - */ - public $version; - - /** - * @var ZipStream - */ - public $zip; - - /** - * @var resource - */ - private $deflate; - - /** - * @var HashContext - */ - private $hash; - - /** - * @var Method - */ - private $method; - - /** - * @var Bigint - */ - private $totalLength; - - public function __construct(ZipStream $zip, string $name, ?FileOptions $opt = null) - { - $this->zip = $zip; - - $this->name = $name; - $this->opt = $opt ?: new FileOptions(); - $this->method = $this->opt->getMethod(); - $this->version = Version::STORE(); - $this->ofs = new Bigint(); + $this->version = $this->compressionMethod === CompressionMethod::DEFLATE ? Version::DEFLATE : Version::STORE; } - public function processPath(string $path): void + public function cloneSimulationExecution(): self { - if (!is_readable($path)) { - if (!file_exists($path)) { - throw new FileNotFoundException($path); - } - throw new FileNotReadableException($path); - } - if ($this->zip->isLargeFile($path) === false) { - $data = file_get_contents($path); - $this->processData($data); + return new self( + $this->fileName, + $this->dataCallback, + OperationMode::NORMAL, + $this->startOffset, + $this->compressionMethod, + $this->comment, + $this->lastModificationDateTime, + $this->deflateLevel, + $this->maxSize, + $this->exactSize, + $this->enableZip64, + $this->enableZeroHeader, + $this->send, + $this->recordSentBytes, + ); + } + + public function process(): string + { + $forecastSize = $this->forecastSize(); + + if ($this->enableZeroHeader) { + // No calculation required + } elseif ($this->isSimulation() && $forecastSize) { + $this->uncompressedSize = $forecastSize; + $this->compressedSize = $forecastSize; } else { - $this->method = $this->zip->opt->getLargeFileMethod(); - - $stream = new Stream(fopen($path, 'rb')); - $this->processStream($stream); - $stream->close(); + $this->readStream(send: false); + if (rewind($this->unpackStream()) === false) { + throw new ResourceActionException('rewind', $this->unpackStream()); + } } + + $this->addFileHeader(); + + $detectedSize = $forecastSize ?? $this->compressedSize; + + if ( + $this->isSimulation() && + $detectedSize > 0 + ) { + ($this->recordSentBytes)($detectedSize); + } else { + $this->readStream(send: true); + } + + $this->addFileFooter(); + return $this->getCdrFile(); } - public function processData(string $data): void + /** + * @return resource + */ + private function unpackStream() { - $this->len = new Bigint(strlen($data)); - $this->crc = crc32($data); - - // compress data if needed - if ($this->method->equals(Method::DEFLATE())) { - $data = gzdeflate($data); + if ($this->stream) { + return $this->stream; } - $this->zlen = new Bigint(strlen($data)); - $this->addFileHeader(); - $this->zip->send($data); - $this->addFileFooter(); + if ($this->operationMode === OperationMode::SIMULATE_STRICT) { + throw new SimulationFileUnknownException(); + } + + $this->stream = ($this->dataCallback)(); + + if (!$this->enableZeroHeader && !stream_get_meta_data($this->stream)['seekable']) { + throw new StreamNotSeekableException(); + } + if (!( + str_contains(stream_get_meta_data($this->stream)['mode'], 'r') + || str_contains(stream_get_meta_data($this->stream)['mode'], 'w+') + || str_contains(stream_get_meta_data($this->stream)['mode'], 'a+') + || str_contains(stream_get_meta_data($this->stream)['mode'], 'x+') + || str_contains(stream_get_meta_data($this->stream)['mode'], 'c+') + )) { + throw new StreamNotReadableException(); + } + + return $this->stream; + } + + private function forecastSize(): ?int + { + if ($this->compressionMethod !== CompressionMethod::STORE) { + return null; + } + if ($this->exactSize) { + return $this->exactSize; + } + $fstat = fstat($this->unpackStream()); + if (!$fstat || !array_key_exists('size', $fstat) || $fstat['size'] < 1) { + return null; + } + + if ($this->maxSize !== null && $this->maxSize < $fstat['size']) { + return $this->maxSize; + } + + return $fstat['size']; } /** * Create and send zip header for this file. - * - * @return void - * @throws \ZipStream\Exception\EncodingException */ - public function addFileHeader(): void + private function addFileHeader(): void { - $name = static::filterFilename($this->name); + $forceEnableZip64 = $this->enableZeroHeader && $this->enableZip64; - // calculate name length - $nameLength = strlen($name); + $footer = $this->buildZip64ExtraBlock($forceEnableZip64); - // create dos timestamp - $time = static::dosTime($this->opt->getTime()->getTimestamp()); + $zip64Enabled = $footer !== ''; - $comment = $this->opt->getComment(); - - if (!mb_check_encoding($name, 'ASCII') || - !mb_check_encoding($comment, 'ASCII')) { - // Sets Bit 11: Language encoding flag (EFS). If this bit is set, - // the filename and comment fields for this file - // MUST be encoded using UTF-8. (see APPENDIX D) - if (mb_check_encoding($name, 'UTF-8') && - mb_check_encoding($comment, 'UTF-8')) { - $this->bits |= self::BIT_EFS_UTF8; - } + if($zip64Enabled) { + $this->version = Version::ZIP64; } - if ($this->method->equals(Method::DEFLATE())) { - $this->version = Version::DEFLATE(); + if ($this->generalPurposeBitFlag & GeneralPurposeBitFlag::EFS) { + // Put the tricky entry to + // force Linux unzip to lookup EFS flag. + $footer .= Zs\ExtendedInformationExtraField::generate(); } - $force = (bool)($this->bits & self::BIT_ZERO_HEADER) && - $this->zip->opt->isEnableZip64(); + $data = LocalFileHeader::generate( + versionNeededToExtract: $this->version->value, + generalPurposeBitFlag: $this->generalPurposeBitFlag, + compressionMethod: $this->compressionMethod, + lastModificationDateTime: $this->lastModificationDateTime, + crc32UncompressedData: $this->crc, + compressedSize: $zip64Enabled + ? 0xFFFFFFFF + : $this->compressedSize, + uncompressedSize: $zip64Enabled + ? 0xFFFFFFFF + : $this->uncompressedSize, + fileName: $this->fileName, + extraField: $footer, + ); - $footer = $this->buildZip64ExtraBlock($force); - // If this file will start over 4GB limit in ZIP file, - // CDR record will have to use Zip64 extension to describe offset - // to keep consistency we use the same value here - if ($this->zip->ofs->isOver32()) { - $this->version = Version::ZIP64(); - } - - $fields = [ - ['V', ZipStream::FILE_HEADER_SIGNATURE], - ['v', $this->version->getValue()], // Version needed to Extract - ['v', $this->bits], // General purpose bit flags - data descriptor flag set - ['v', $this->method->getValue()], // Compression method - ['V', $time], // Timestamp (DOS Format) - ['V', $this->crc], // CRC32 of data (0 -> moved to data descriptor footer) - ['V', $this->zlen->getLowFF($force)], // Length of compressed data (forced to 0xFFFFFFFF for zero header) - ['V', $this->len->getLowFF($force)], // Length of original data (forced to 0xFFFFFFFF for zero header) - ['v', $nameLength], // Length of filename - ['v', strlen($footer)], // Extra data (see above) - ]; - - // pack fields and calculate "total" length - $header = ZipStream::packFields($fields); - - // print header and filename - $data = $header . $name . $footer; - $this->zip->send($data); - - // save header length - $this->hlen = Bigint::init(strlen($data)); + ($this->send)($data); } /** * Strip characters that are not legal in Windows filenames * to prevent compatibility issues - * - * @param string $filename Unprocessed filename - * @return string */ - public static function filterFilename(string $filename): string - { + private static function filterFilename( + /** + * Unprocessed filename + */ + string $fileName + ): string { // strip leading slashes from file name // (fixes bug in windows archive viewer) - $filename = preg_replace('/^\\/+/', '', $filename); + $fileName = ltrim($fileName, '/'); - return str_replace(['\\', ':', '*', '?', '"', '<', '>', '|'], '_', $filename); + return str_replace(['\\', ':', '*', '?', '"', '<', '>', '|'], '_', $fileName); } - /** - * Create and send data descriptor footer for this file. - * - * @return void - */ - public function addFileFooter(): void + private function checkEncoding(): void { - if ($this->bits & self::BIT_ZERO_HEADER) { - // compressed and uncompressed size - $sizeFormat = 'V'; - if ($this->zip->opt->isEnableZip64()) { - $sizeFormat = 'P'; + // Sets Bit 11: Language encoding flag (EFS). If this bit is set, + // the filename and comment fields for this file + // MUST be encoded using UTF-8. (see APPENDIX D) + if (mb_check_encoding($this->fileName, 'UTF-8') && + mb_check_encoding($this->comment, 'UTF-8')) { + $this->generalPurposeBitFlag |= GeneralPurposeBitFlag::EFS; + } + } + + private function buildZip64ExtraBlock(bool $force = false): string + { + $outputZip64ExtraBlock = false; + + $originalSize = null; + if ($force || $this->uncompressedSize > 0xFFFFFFFF) { + $outputZip64ExtraBlock = true; + $originalSize = $this->uncompressedSize; + } + + $compressedSize = null; + if ($force || $this->compressedSize > 0xFFFFFFFF) { + $outputZip64ExtraBlock = true; + $compressedSize = $this->compressedSize; + } + + // If this file will start over 4GB limit in ZIP file, + // CDR record will have to use Zip64 extension to describe offset + // to keep consistency we use the same value here + $relativeHeaderOffset = null; + if ($this->startOffset > 0xFFFFFFFF) { + $outputZip64ExtraBlock = true; + $relativeHeaderOffset = $this->startOffset; + } + + if (!$outputZip64ExtraBlock) { + return ''; + } + + if (!$this->enableZip64) { + throw new OverflowException(); + } + + return Zip64\ExtendedInformationExtraField::generate( + originalSize: $originalSize, + compressedSize: $compressedSize, + relativeHeaderOffset: $relativeHeaderOffset, + diskStartNumber: null, + ); + } + + private function addFileFooter(): void + { + if (($this->compressedSize > 0xFFFFFFFF || $this->uncompressedSize > 0xFFFFFFFF) && $this->version !== Version::ZIP64) { + throw new OverflowException(); + } + + if (!$this->enableZeroHeader) { + return; + } + + if ($this->version === Version::ZIP64) { + $footer = Zip64\DataDescriptor::generate( + crc32UncompressedData: $this->crc, + compressedSize: $this->compressedSize, + uncompressedSize: $this->uncompressedSize, + ); + } else { + $footer = DataDescriptor::generate( + crc32UncompressedData: $this->crc, + compressedSize: $this->compressedSize, + uncompressedSize: $this->uncompressedSize, + ); + } + + ($this->send)($footer); + } + + private function readStream(bool $send): void + { + $this->compressedSize = 0; + $this->uncompressedSize = 0; + $hash = hash_init('crc32b'); + + $deflate = $this->compressionInit(); + + while ( + !feof($this->unpackStream()) && + ($this->maxSize === null || $this->uncompressedSize < $this->maxSize) && + ($this->exactSize === null || $this->uncompressedSize < $this->exactSize) + ) { + $readLength = min( + ($this->maxSize ?? PHP_INT_MAX) - $this->uncompressedSize, + ($this->exactSize ?? PHP_INT_MAX) - $this->uncompressedSize, + self::CHUNKED_READ_BLOCK_SIZE + ); + + $data = fread($this->unpackStream(), $readLength); + + hash_update($hash, $data); + + $this->uncompressedSize += strlen($data); + + if ($deflate) { + $data = deflate_add( + $deflate, + $data, + feof($this->unpackStream()) ? ZLIB_FINISH : ZLIB_NO_FLUSH + ); } - $fields = [ - ['V', ZipStream::DATA_DESCRIPTOR_SIGNATURE], - ['V', $this->crc], // CRC32 - [$sizeFormat, $this->zlen], // Length of compressed data - [$sizeFormat, $this->len], // Length of original data - ]; - $footer = ZipStream::packFields($fields); - $this->zip->send($footer); - } else { - $footer = ''; + $this->compressedSize += strlen($data); + + if ($send) { + ($this->send)($data); + } } - $this->totalLength = $this->hlen->add($this->zlen)->add(Bigint::init(strlen($footer))); - $this->zip->addToCdr($this); + + if ($this->exactSize && $this->uncompressedSize !== $this->exactSize) { + throw new FileSizeIncorrectException(expectedSize: $this->exactSize, actualSize: $this->uncompressedSize); + } + + $this->crc = hexdec(hash_final($hash)); } - public function processStream(StreamInterface $stream): void + private function compressionInit(): ?DeflateContext { - $this->zlen = new Bigint(); - $this->len = new Bigint(); + switch($this->compressionMethod) { + case CompressionMethod::STORE: + // Noting to do + return null; + case CompressionMethod::DEFLATE: + $deflateContext = deflate_init( + ZLIB_ENCODING_RAW, + ['level' => $this->deflateLevel] + ); - if ($this->zip->opt->isZeroHeader()) { - $this->processStreamWithZeroHeader($stream); - } else { - $this->processStreamWithComputedHeader($stream); + if (!$deflateContext) { + // @codeCoverageIgnoreStart + throw new RuntimeException("Can't initialize deflate context."); + // @codeCoverageIgnoreEnd + } + + // False positive, resource is no longer returned from this function + return $deflateContext; + default: + // @codeCoverageIgnoreStart + throw new RuntimeException('Unsupported Compression Method ' . print_r($this->compressionMethod, true)); + // @codeCoverageIgnoreEnd } } - /** - * Send CDR record for specified file. - * - * @return string - */ - public function getCdrFile(): string + private function getCdrFile(): string { - $name = static::filterFilename($this->name); - - // get attributes - $comment = $this->opt->getComment(); - - // get dos timestamp - $time = static::dosTime($this->opt->getTime()->getTimestamp()); - $footer = $this->buildZip64ExtraBlock(); - $fields = [ - ['V', ZipStream::CDR_FILE_SIGNATURE], // Central file header signature - ['v', ZipStream::ZIP_VERSION_MADE_BY], // Made by version - ['v', $this->version->getValue()], // Extract by version - ['v', $this->bits], // General purpose bit flags - data descriptor flag set - ['v', $this->method->getValue()], // Compression method - ['V', $time], // Timestamp (DOS Format) - ['V', $this->crc], // CRC32 - ['V', $this->zlen->getLowFF()], // Compressed Data Length - ['V', $this->len->getLowFF()], // Original Data Length - ['v', strlen($name)], // Length of filename - ['v', strlen($footer)], // Extra data len (see above) - ['v', strlen($comment)], // Length of comment - ['v', 0], // Disk number - ['v', 0], // Internal File Attributes - ['V', 32], // External File Attributes - ['V', $this->ofs->getLowFF()], // Relative offset of local header - ]; - - // pack fields, then append name and comment - $header = ZipStream::packFields($fields); - - return $header . $name . $footer . $comment; + return CentralDirectoryFileHeader::generate( + versionMadeBy: ZipStream::ZIP_VERSION_MADE_BY, + versionNeededToExtract:$this->version->value, + generalPurposeBitFlag: $this->generalPurposeBitFlag, + compressionMethod: $this->compressionMethod, + lastModificationDateTime: $this->lastModificationDateTime, + crc32: $this->crc, + compressedSize: $this->compressedSize > 0xFFFFFFFF + ? 0xFFFFFFFF + : $this->compressedSize, + uncompressedSize: $this->uncompressedSize > 0xFFFFFFFF + ? 0xFFFFFFFF + : $this->uncompressedSize, + fileName: $this->fileName, + extraField: $footer, + fileComment: $this->comment, + diskNumberStart: 0, + internalFileAttributes: 0, + externalFileAttributes: 32, + relativeOffsetOfLocalHeader: $this->startOffset > 0xFFFFFFFF + ? 0xFFFFFFFF + : $this->startOffset, + ); } - /** - * @return Bigint - */ - public function getTotalLength(): Bigint + private function isSimulation(): bool { - return $this->totalLength; - } - - /** - * Convert a UNIX timestamp to a DOS timestamp. - * - * @param int $when - * @return int DOS Timestamp - */ - final protected static function dosTime(int $when): int - { - // get date array for timestamp - $d = getdate($when); - - // set lower-bound on dates - if ($d['year'] < 1980) { - $d = [ - 'year' => 1980, - 'mon' => 1, - 'mday' => 1, - 'hours' => 0, - 'minutes' => 0, - 'seconds' => 0, - ]; - } - - // remove extra years from 1980 - $d['year'] -= 1980; - - // return date string - return - ($d['year'] << 25) | - ($d['mon'] << 21) | - ($d['mday'] << 16) | - ($d['hours'] << 11) | - ($d['minutes'] << 5) | - ($d['seconds'] >> 1); - } - - protected function buildZip64ExtraBlock(bool $force = false): string - { - $fields = []; - if ($this->len->isOver32($force)) { - $fields[] = ['P', $this->len]; // Length of original data - } - - if ($this->len->isOver32($force)) { - $fields[] = ['P', $this->zlen]; // Length of compressed data - } - - if ($this->ofs->isOver32()) { - $fields[] = ['P', $this->ofs]; // Offset of local header record - } - - if (!empty($fields)) { - if (!$this->zip->opt->isEnableZip64()) { - throw new OverflowException(); - } - - array_unshift( - $fields, - ['v', 0x0001], // 64 bit extension - ['v', count($fields) * 8] // Length of data block - ); - $this->version = Version::ZIP64(); - } - - if ($this->bits & self::BIT_EFS_UTF8) { - // Put the tricky entry to - // force Linux unzip to lookup EFS flag. - $fields[] = ['v', 0x5653]; // Choose 'ZS' for proprietary usage - $fields[] = ['v', 0x0000]; // zero length - } - - return ZipStream::packFields($fields); - } - - protected function processStreamWithZeroHeader(StreamInterface $stream): void - { - $this->bits |= self::BIT_ZERO_HEADER; - $this->addFileHeader(); - $this->readStream($stream, self::COMPUTE | self::SEND); - $this->addFileFooter(); - } - - protected function readStream(StreamInterface $stream, ?int $options = null): void - { - $this->deflateInit(); - $total = 0; - $size = $this->opt->getSize(); - while (!$stream->eof() && ($size === 0 || $total < $size)) { - $data = $stream->read(self::CHUNKED_READ_BLOCK_SIZE); - $total += strlen($data); - if ($size > 0 && $total > $size) { - $data = substr($data, 0, strlen($data)-($total - $size)); - } - $this->deflateData($stream, $data, $options); - if ($options & self::SEND) { - $this->zip->send($data); - } - } - $this->deflateFinish($options); - } - - protected function deflateInit(): void - { - $hash = hash_init(self::HASH_ALGORITHM); - $this->hash = $hash; - if ($this->method->equals(Method::DEFLATE())) { - $this->deflate = deflate_init( - ZLIB_ENCODING_RAW, - ['level' => $this->opt->getDeflateLevel()] - ); - } - } - - protected function deflateData(StreamInterface $stream, string &$data, ?int $options = null): void - { - if ($options & self::COMPUTE) { - $this->len = $this->len->add(Bigint::init(strlen($data))); - hash_update($this->hash, $data); - } - if ($this->deflate) { - $data = deflate_add( - $this->deflate, - $data, - $stream->eof() - ? ZLIB_FINISH - : ZLIB_NO_FLUSH - ); - } - if ($options & self::COMPUTE) { - $this->zlen = $this->zlen->add(Bigint::init(strlen($data))); - } - } - - protected function deflateFinish(?int $options = null): void - { - if ($options & self::COMPUTE) { - $this->crc = hexdec(hash_final($this->hash)); - } - } - - protected function processStreamWithComputedHeader(StreamInterface $stream): void - { - $this->readStream($stream, self::COMPUTE); - $stream->rewind(); - - $this->addFileHeader(); - $this->readStream($stream, self::SEND); - $this->addFileFooter(); + return $this->operationMode === OperationMode::SIMULATE_LAX || $this->operationMode === OperationMode::SIMULATE_STRICT; } } diff --git a/vendor/maennchen/zipstream-php/src/GeneralPurposeBitFlag.php b/vendor/maennchen/zipstream-php/src/GeneralPurposeBitFlag.php new file mode 100644 index 000000000..23a66d889 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/GeneralPurposeBitFlag.php @@ -0,0 +1,89 @@ +value), + new PackField(format: 'V', value: Time::dateTimeToDosTime($lastModificationDateTime)), + new PackField(format: 'V', value: $crc32UncompressedData), + new PackField(format: 'V', value: $compressedSize), + new PackField(format: 'V', value: $uncompressedSize), + new PackField(format: 'v', value: strlen($fileName)), + new PackField(format: 'v', value: strlen($extraField)), + ) . $fileName . $extraField; + } +} diff --git a/vendor/maennchen/zipstream-php/src/OperationMode.php b/vendor/maennchen/zipstream-php/src/OperationMode.php new file mode 100644 index 000000000..dd650f070 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/OperationMode.php @@ -0,0 +1,35 @@ + 4 GB or file count > 64k) - * - * @var bool - */ - private $enableZip64 = true; - - /** - * Enable streaming files with single read where - * general purpose bit 3 indicates local file header - * contain zero values in crc and size fields, - * these appear only after file contents - * in data descriptor block. - * - * @var bool - */ - private $zeroHeader = false; - - /** - * Enable reading file stat for determining file size. - * When a 32-bit system reads file size that is - * over 2 GB, invalid value appears in file size - * due to integer overflow. Should be disabled on - * 32-bit systems with method addFileFromPath - * if any file may exceed 2 GB. In this case file - * will be read in blocks and correct size will be - * determined from content. - * - * @var bool - */ - private $statFiles = true; - - /** - * Enable flush after every write to output stream. - * @var bool - */ - private $flushOutput = false; - - /** - * HTTP Content-Disposition. Defaults to - * 'attachment', where - * FILENAME is the specified filename. - * - * Note that this does nothing if you are - * not sending HTTP headers. - * - * @var string - */ - private $contentDisposition = 'attachment'; - - /** - * Note that this does nothing if you are - * not sending HTTP headers. - * - * @var string - */ - private $contentType = 'application/x-zip'; - - /** - * @var int - */ - private $deflateLevel = 6; - - /** - * @var StreamInterface|resource - */ - private $outputStream; - - /** - * Options constructor. - */ - public function __construct() - { - $this->largeFileMethod = Method::STORE(); - $this->outputStream = fopen('php://output', 'wb'); - } - - public function getComment(): string - { - return $this->comment; - } - - public function setComment(string $comment): void - { - $this->comment = $comment; - } - - public function getLargeFileSize(): int - { - return $this->largeFileSize; - } - - public function setLargeFileSize(int $largeFileSize): void - { - $this->largeFileSize = $largeFileSize; - } - - public function getLargeFileMethod(): Method - { - return $this->largeFileMethod; - } - - public function setLargeFileMethod(Method $largeFileMethod): void - { - $this->largeFileMethod = $largeFileMethod; - } - - public function isSendHttpHeaders(): bool - { - return $this->sendHttpHeaders; - } - - public function setSendHttpHeaders(bool $sendHttpHeaders): void - { - $this->sendHttpHeaders = $sendHttpHeaders; - } - - public function getHttpHeaderCallback(): callable - { - return $this->httpHeaderCallback; - } - - public function setHttpHeaderCallback(callable $httpHeaderCallback): void - { - $this->httpHeaderCallback = $httpHeaderCallback; - } - - public function isEnableZip64(): bool - { - return $this->enableZip64; - } - - public function setEnableZip64(bool $enableZip64): void - { - $this->enableZip64 = $enableZip64; - } - - public function isZeroHeader(): bool - { - return $this->zeroHeader; - } - - public function setZeroHeader(bool $zeroHeader): void - { - $this->zeroHeader = $zeroHeader; - } - - public function isFlushOutput(): bool - { - return $this->flushOutput; - } - - public function setFlushOutput(bool $flushOutput): void - { - $this->flushOutput = $flushOutput; - } - - public function isStatFiles(): bool - { - return $this->statFiles; - } - - public function setStatFiles(bool $statFiles): void - { - $this->statFiles = $statFiles; - } - - public function getContentDisposition(): string - { - return $this->contentDisposition; - } - - public function setContentDisposition(string $contentDisposition): void - { - $this->contentDisposition = $contentDisposition; - } - - public function getContentType(): string - { - return $this->contentType; - } - - public function setContentType(string $contentType): void - { - $this->contentType = $contentType; - } - - /** - * @return StreamInterface|resource - */ - public function getOutputStream() - { - return $this->outputStream; - } - - /** - * @param StreamInterface|resource $outputStream - */ - public function setOutputStream($outputStream): void - { - $this->outputStream = $outputStream; - } - - /** - * @return int - */ - public function getDeflateLevel(): int - { - return $this->deflateLevel; - } - - /** - * @param int $deflateLevel - */ - public function setDeflateLevel(int $deflateLevel): void - { - $this->deflateLevel = $deflateLevel; - } -} diff --git a/vendor/maennchen/zipstream-php/src/Option/File.php b/vendor/maennchen/zipstream-php/src/Option/File.php deleted file mode 100644 index 37e37ced6..000000000 --- a/vendor/maennchen/zipstream-php/src/Option/File.php +++ /dev/null @@ -1,122 +0,0 @@ -deflateLevel = $this->deflateLevel ?: $archiveOptions->getDeflateLevel(); - $this->time = $this->time ?: new DateTime(); - } - - /** - * @return string - */ - public function getComment(): string - { - return $this->comment; - } - - /** - * @param string $comment - */ - public function setComment(string $comment): void - { - $this->comment = $comment; - } - - /** - * @return Method - */ - public function getMethod(): Method - { - return $this->method ?: Method::DEFLATE(); - } - - /** - * @param Method $method - */ - public function setMethod(Method $method): void - { - $this->method = $method; - } - - /** - * @return int - */ - public function getDeflateLevel(): int - { - return $this->deflateLevel ?: Archive::DEFAULT_DEFLATE_LEVEL; - } - - /** - * @param int $deflateLevel - */ - public function setDeflateLevel(int $deflateLevel): void - { - $this->deflateLevel = $deflateLevel; - } - - /** - * @return DateTimeInterface - */ - public function getTime(): DateTimeInterface - { - return $this->time; - } - - /** - * @param DateTimeInterface $time - */ - public function setTime(DateTimeInterface $time): void - { - $this->time = $time; - } - - /** - * @return int - */ - public function getSize(): int - { - return $this->size; - } - - /** - * @param int $size - */ - public function setSize(int $size): void - { - $this->size = $size; - } -} diff --git a/vendor/maennchen/zipstream-php/src/Option/Method.php b/vendor/maennchen/zipstream-php/src/Option/Method.php deleted file mode 100644 index 0dfce1baf..000000000 --- a/vendor/maennchen/zipstream-php/src/Option/Method.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -class Method extends Enum -{ - public const STORE = 0x00; - - public const DEFLATE = 0x08; -} diff --git a/vendor/maennchen/zipstream-php/src/Option/Version.php b/vendor/maennchen/zipstream-php/src/Option/Version.php deleted file mode 100644 index f3daa852d..000000000 --- a/vendor/maennchen/zipstream-php/src/Option/Version.php +++ /dev/null @@ -1,27 +0,0 @@ - - */ -class Version extends Enum -{ - public const STORE = 0x000A; // 1.00 - - public const DEFLATE = 0x0014; // 2.00 - - public const ZIP64 = 0x002D; // 4.50 -} diff --git a/vendor/maennchen/zipstream-php/src/PackField.php b/vendor/maennchen/zipstream-php/src/PackField.php new file mode 100644 index 000000000..3370dd8d0 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/PackField.php @@ -0,0 +1,57 @@ +format; + }, ''); + + $args = array_map(function (self $field) { + switch($field->format) { + case 'V': + if ($field->value > self::MAX_V) { + throw new RuntimeException(print_r($field->value, true) . ' is larger than 32 bits'); + } + break; + case 'v': + if ($field->value > self::MAX_v) { + throw new RuntimeException(print_r($field->value, true) . ' is larger than 16 bits'); + } + break; + case 'P': break; + default: + break; + } + + return $field->value; + }, $fields); + + return pack($fmt, ...$args); + } +} diff --git a/vendor/maennchen/zipstream-php/src/Stream.php b/vendor/maennchen/zipstream-php/src/Stream.php deleted file mode 100644 index d80e70f6a..000000000 --- a/vendor/maennchen/zipstream-php/src/Stream.php +++ /dev/null @@ -1,265 +0,0 @@ -stream = $stream; - } - - /** - * Reads all data from the stream into a string, from the beginning to end. - * - * This method MUST attempt to seek to the beginning of the stream before - * reading data and read the stream until the end is reached. - * - * Warning: This could attempt to load a large amount of data into memory. - * - * This method MUST NOT raise an exception in order to conform with PHP's - * string casting operations. - * - * @see http://php.net/manual/en/language.oop5.magic.php#object.tostring - * @return string - */ - public function __toString(): string - { - try { - $this->seek(0); - } catch (RuntimeException $e) { - } - return (string) stream_get_contents($this->stream); - } - - /** - * Closes the stream and any underlying resources. - * - * @return void - */ - public function close(): void - { - if (is_resource($this->stream)) { - fclose($this->stream); - } - $this->detach(); - } - - /** - * Separates any underlying resources from the stream. - * - * After the stream has been detached, the stream is in an unusable state. - * - * @return resource|null Underlying PHP stream, if any - */ - public function detach() - { - $result = $this->stream; - $this->stream = null; - return $result; - } - - /** - * Seek to a position in the stream. - * - * @link http://www.php.net/manual/en/function.fseek.php - * @param int $offset Stream offset - * @param int $whence Specifies how the cursor position will be calculated - * based on the seek offset. Valid values are identical to the built-in - * PHP $whence values for `fseek()`. SEEK_SET: Set position equal to - * offset bytes SEEK_CUR: Set position to current location plus offset - * SEEK_END: Set position to end-of-stream plus offset. - * @throws RuntimeException on failure. - */ - public function seek($offset, $whence = SEEK_SET): void - { - if (!$this->isSeekable()) { - throw new RuntimeException(); - } - if (fseek($this->stream, $offset, $whence) !== 0) { - throw new RuntimeException(); - } - } - - /** - * Returns whether or not the stream is seekable. - * - * @return bool - */ - public function isSeekable(): bool - { - return (bool)$this->getMetadata('seekable'); - } - - /** - * Get stream metadata as an associative array or retrieve a specific key. - * - * The keys returned are identical to the keys returned from PHP's - * stream_get_meta_data() function. - * - * @link http://php.net/manual/en/function.stream-get-meta-data.php - * @param string $key Specific metadata to retrieve. - * @return array|mixed|null Returns an associative array if no key is - * provided. Returns a specific key value if a key is provided and the - * value is found, or null if the key is not found. - */ - public function getMetadata($key = null) - { - $metadata = stream_get_meta_data($this->stream); - return $key !== null ? @$metadata[$key] : $metadata; - } - - /** - * Get the size of the stream if known. - * - * @return int|null Returns the size in bytes if known, or null if unknown. - */ - public function getSize(): ?int - { - $stats = fstat($this->stream); - return $stats['size']; - } - - /** - * Returns the current position of the file read/write pointer - * - * @return int Position of the file pointer - * @throws RuntimeException on error. - */ - public function tell(): int - { - $position = ftell($this->stream); - if ($position === false) { - throw new RuntimeException(); - } - return $position; - } - - /** - * Returns true if the stream is at the end of the stream. - * - * @return bool - */ - public function eof(): bool - { - return feof($this->stream); - } - - /** - * Seek to the beginning of the stream. - * - * If the stream is not seekable, this method will raise an exception; - * otherwise, it will perform a seek(0). - * - * @see seek() - * @link http://www.php.net/manual/en/function.fseek.php - * @throws RuntimeException on failure. - */ - public function rewind(): void - { - $this->seek(0); - } - - /** - * Write data to the stream. - * - * @param string $string The string that is to be written. - * @return int Returns the number of bytes written to the stream. - * @throws RuntimeException on failure. - */ - public function write($string): int - { - if (!$this->isWritable()) { - throw new RuntimeException(); - } - if (fwrite($this->stream, $string) === false) { - throw new RuntimeException(); - } - return mb_strlen($string); - } - - /** - * Returns whether or not the stream is writable. - * - * @return bool - */ - public function isWritable(): bool - { - $mode = $this->getMetadata('mode'); - if (!is_string($mode)) { - throw new RuntimeException('Could not get stream mode from metadata!'); - } - return preg_match('/[waxc+]/', $mode) === 1; - } - - /** - * Read data from the stream. - * - * @param int $length Read up to $length bytes from the object and return - * them. Fewer than $length bytes may be returned if underlying stream - * call returns fewer bytes. - * @return string Returns the data read from the stream, or an empty string - * if no bytes are available. - * @throws RuntimeException if an error occurs. - */ - public function read($length): string - { - if (!$this->isReadable()) { - throw new RuntimeException(); - } - $result = fread($this->stream, $length); - if ($result === false) { - throw new RuntimeException(); - } - return $result; - } - - /** - * Returns whether or not the stream is readable. - * - * @return bool - */ - public function isReadable(): bool - { - $mode = $this->getMetadata('mode'); - if (!is_string($mode)) { - throw new RuntimeException('Could not get stream mode from metadata!'); - } - return preg_match('/[r+]/', $mode) === 1; - } - - /** - * Returns the remaining contents in a string - * - * @return string - * @throws RuntimeException if unable to read or an error occurs while - * reading. - */ - public function getContents(): string - { - if (!$this->isReadable()) { - throw new RuntimeException(); - } - $result = stream_get_contents($this->stream); - if ($result === false) { - throw new RuntimeException(); - } - return $result; - } -} diff --git a/vendor/maennchen/zipstream-php/src/Time.php b/vendor/maennchen/zipstream-php/src/Time.php new file mode 100644 index 000000000..4bfba3cc5 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/Time.php @@ -0,0 +1,45 @@ +getTimestamp() < $dosMinimumDate->getTimestamp()) { + throw new DosTimeOverflowException(dateTime: $dateTime); + } + + $dateTime = DateTimeImmutable::createFromInterface($dateTime)->sub(new DateInterval('P1980Y')); + + ['year' => $year, + 'mon' => $month, + 'mday' => $day, + 'hours' => $hour, + 'minutes' => $minute, + 'seconds' => $second + ] = getdate($dateTime->getTimestamp()); + + return + ($year << 25) | + ($month << 21) | + ($day << 16) | + ($hour << 11) | + ($minute << 5) | + ($second >> 1); + } +} diff --git a/vendor/maennchen/zipstream-php/src/Version.php b/vendor/maennchen/zipstream-php/src/Version.php new file mode 100644 index 000000000..c014f8a10 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/Version.php @@ -0,0 +1,12 @@ +addFile('some_file.gif', $data); + * ```php + * // add first file + * $zip->addFile(fileName: 'world.txt', data: 'Hello World'); * - * * add second file - * $data = file_get_contents('some_file.gif'); - * $zip->addFile('another_file.png', $data); + * // add second file + * $zip->addFile(fileName: 'moon.txt', data: 'Hello Moon'); + * ``` * * 3. Finish the zip stream: * - * $zip->finish(); + * ```php + * $zip->finish(); + * ``` * * You can also add an archive comment, add comments to individual files, * and adjust the timestamp of files. See the API documentation for each * method below for additional information. * - * Example: + * ## Example * - * // create a new zip stream object - * $zip = new ZipStream('some_files.zip'); + * ```php + * // create a new zip stream object + * $zip = new ZipStream(outputName: 'some_files.zip'); * - * // list of local files - * $files = array('foo.txt', 'bar.jpg'); + * // list of local files + * $files = array('foo.txt', 'bar.jpg'); * - * // read and add each file to the archive - * foreach ($files as $path) - * $zip->addFile($path, file_get_contents($path)); + * // read and add each file to the archive + * foreach ($files as $path) + * $zip->addFileFormPath(fileName: $path, $path); * - * // write archive footer to stream - * $zip->finish(); + * // write archive footer to stream + * $zip->finish(); + * ``` */ class ZipStream { @@ -80,529 +89,776 @@ class ZipStream * Here we are using 6 for the OS, indicating OS/2 H.P.F.S. * to prevent file permissions issues upon extract (see #84) * 0x603 is 00000110 00000011 in binary, so 6 and 3 + * + * @internal */ public const ZIP_VERSION_MADE_BY = 0x603; - /** - * The following signatures end with 0x4b50, which in ASCII is PK, - * the initials of the inventor Phil Katz. - * See https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers - */ - public const FILE_HEADER_SIGNATURE = 0x04034b50; + private bool $ready = true; - public const CDR_FILE_SIGNATURE = 0x02014b50; - - public const CDR_EOF_SIGNATURE = 0x06054b50; - - public const DATA_DESCRIPTOR_SIGNATURE = 0x08074b50; - - public const ZIP64_CDR_EOF_SIGNATURE = 0x06064b50; - - public const ZIP64_CDR_LOCATOR_SIGNATURE = 0x07064b50; + private int $offset = 0; /** - * Global Options - * - * @var ArchiveOptions + * @var string[] */ - public $opt; + private array $centralDirectoryRecords = []; /** - * @var array + * @var resource */ - public $files = []; + private $outputStream; + + private readonly Closure $httpHeaderCallback; /** - * @var Bigint + * @var File[] */ - public $cdr_ofs; - - /** - * @var Bigint - */ - public $ofs; - - /** - * @var bool - */ - protected $need_headers; - - /** - * @var null|String - */ - protected $output_name; + private array $recordedSimulation = []; /** * Create a new ZipStream object. * - * Parameters: + * ##### Examples * - * @param String $name - Name of output file (optional). - * @param ArchiveOptions $opt - Archive Options + * ```php + * // create a new zip file named 'foo.zip' + * $zip = new ZipStream(outputName: 'foo.zip'); * - * Large File Support: + * // create a new zip file named 'bar.zip' with a comment + * $zip = new ZipStream( + * outputName: 'bar.zip', + * comment: 'this is a comment for the zip file.', + * ); + * ``` * - * By default, the method addFileFromPath() will send send files - * larger than 20 megabytes along raw rather than attempting to - * compress them. You can change both the maximum size and the - * compression behavior using the largeFile* options above, with the - * following caveats: + * @param OperationMode $operationMode + * The mode can be used to switch between `NORMAL` and `SIMULATION_*` modes. + * For details see the `OperationMode` documentation. * - * * For "small" files (e.g. files smaller than largeFileSize), the - * memory use can be up to twice that of the actual file. In other - * words, adding a 10 megabyte file to the archive could potentially - * occupy 20 megabytes of memory. + * Default to `NORMAL`. * - * * Enabling compression on large files (e.g. files larger than - * large_file_size) is extremely slow, because ZipStream has to pass - * over the large file once to calculate header information, and then - * again to compress and send the actual data. + * @param string $comment + * Archive Level Comment * - * Examples: + * @param StreamInterface|resource|null $outputStream + * Override the output of the archive to a different target. * - * // create a new zip file named 'foo.zip' - * $zip = new ZipStream('foo.zip'); + * By default the archive is sent to `STDOUT`. * - * // create a new zip file named 'bar.zip' with a comment - * $opt->setComment = 'this is a comment for the zip file.'; - * $zip = new ZipStream('bar.zip', $opt); + * @param CompressionMethod $defaultCompressionMethod + * How to handle file compression. Legal values are + * `CompressionMethod::DEFLATE` (the default), or + * `CompressionMethod::STORE`. `STORE` sends the file raw and is + * significantly faster, while `DEFLATE` compresses the file and + * is much, much slower. * - * Notes: + * @param int $defaultDeflateLevel + * Default deflation level. Only relevant if `compressionMethod` + * is `DEFLATE`. * - * In order to let this library send HTTP headers, a filename must be given - * _and_ the option `sendHttpHeaders` must be `true`. This behavior is to - * allow software to send its own headers (including the filename), and - * still use this library. + * See details of [`deflate_init`](https://www.php.net/manual/en/function.deflate-init.php#refsect1-function.deflate-init-parameters) + * + * @param bool $enableZip64 + * Enable Zip64 extension, supporting very large + * archives (any size > 4 GB or file count > 64k) + * + * @param bool $defaultEnableZeroHeader + * Enable streaming files with single read. + * + * When the zero header is set, the file is streamed into the output + * and the size & checksum are added at the end of the file. This is the + * fastest method and uses the least memory. Unfortunately not all + * ZIP clients fully support this and can lead to clients reporting + * the generated ZIP files as corrupted in combination with other + * circumstances. (Zip64 enabled, using UTF8 in comments / names etc.) + * + * When the zero header is not set, the length & checksum need to be + * defined before the file is actually added. To prevent loading all + * the data into memory, the data has to be read twice. If the data + * which is added is not seekable, this call will fail. + * + * @param bool $sendHttpHeaders + * Boolean indicating whether or not to send + * the HTTP headers for this file. + * + * @param ?Closure $httpHeaderCallback + * The method called to send HTTP headers + * + * @param string|null $outputName + * The name of the created archive. + * + * Only relevant if `$sendHttpHeaders = true`. + * + * @param string $contentDisposition + * HTTP Content-Disposition + * + * Only relevant if `sendHttpHeaders = true`. + * + * @param string $contentType + * HTTP Content Type + * + * Only relevant if `sendHttpHeaders = true`. + * + * @param bool $flushOutput + * Enable flush after every write to output stream. + * + * @return self */ - public function __construct(?string $name = null, ?ArchiveOptions $opt = null) - { - $this->opt = $opt ?: new ArchiveOptions(); - - $this->output_name = $name; - $this->need_headers = $name && $this->opt->isSendHttpHeaders(); - - $this->cdr_ofs = new Bigint(); - $this->ofs = new Bigint(); + public function __construct( + private OperationMode $operationMode = OperationMode::NORMAL, + private readonly string $comment = '', + $outputStream = null, + private readonly CompressionMethod $defaultCompressionMethod = CompressionMethod::DEFLATE, + private readonly int $defaultDeflateLevel = 6, + private readonly bool $enableZip64 = true, + private readonly bool $defaultEnableZeroHeader = true, + private bool $sendHttpHeaders = true, + ?Closure $httpHeaderCallback = null, + private readonly ?string $outputName = null, + private readonly string $contentDisposition = 'attachment', + private readonly string $contentType = 'application/x-zip', + private bool $flushOutput = false, + ) { + $this->outputStream = self::normalizeStream($outputStream); + $this->httpHeaderCallback = $httpHeaderCallback ?? header(...); } /** - * addFile - * * Add a file to the archive. * - * @param String $name - path of file in archive (including directory). - * @param String $data - contents of file - * @param FileOptions $options + * ##### File Options * - * File Options: - * time - Last-modified timestamp (seconds since the epoch) of - * this file. Defaults to the current time. - * comment - Comment related to this file. - * method - Storage method for file ("store" or "deflate") + * See {@see addFileFromPsr7Stream()} * - * Examples: + * ##### Examples * - * // add a file named 'foo.txt' - * $data = file_get_contents('foo.txt'); - * $zip->addFile('foo.txt', $data); + * ```php + * // add a file named 'world.txt' + * $zip->addFile(fileName: 'world.txt', data: 'Hello World!'); * - * // add a file named 'bar.jpg' with a comment and a last-modified - * // time of two hours ago - * $data = file_get_contents('bar.jpg'); - * $opt->setTime = time() - 2 * 3600; - * $opt->setComment = 'this is a comment about bar.jpg'; - * $zip->addFile('bar.jpg', $data, $opt); + * // add a file named 'bar.jpg' with a comment and a last-modified + * // time of two hours ago + * $zip->addFile( + * fileName: 'bar.jpg', + * data: $data, + * comment: 'this is a comment about bar.jpg', + * lastModificationDateTime: new DateTime('2 hours ago'), + * ); + * ``` + * + * @param string $data + * + * contents of file */ - public function addFile(string $name, string $data, ?FileOptions $options = null): void - { - $options = $options ?: new FileOptions(); - $options->defaultTo($this->opt); - - $file = new File($this, $name, $options); - $file->processData($data); + public function addFile( + string $fileName, + string $data, + string $comment = '', + ?CompressionMethod $compressionMethod = null, + ?int $deflateLevel = null, + ?DateTimeInterface $lastModificationDateTime = null, + ?int $maxSize = null, + ?int $exactSize = null, + ?bool $enableZeroHeader = null, + ): void { + $this->addFileFromCallback( + fileName: $fileName, + callback: fn () => $data, + comment: $comment, + compressionMethod: $compressionMethod, + deflateLevel: $deflateLevel, + lastModificationDateTime: $lastModificationDateTime, + maxSize: $maxSize, + exactSize: $exactSize, + enableZeroHeader: $enableZeroHeader, + ); } /** - * addFileFromPath - * * Add a file at path to the archive. * - * Note that large files may be compressed differently than smaller - * files; see the "Large File Support" section above for more - * information. + * ##### File Options * - * @param String $name - name of file in archive (including directory path). - * @param String $path - path to file on disk (note: paths should be encoded using - * UNIX-style forward slashes -- e.g '/path/to/some/file'). - * @param FileOptions $options + * See {@see addFileFromPsr7Stream()} * - * File Options: - * time - Last-modified timestamp (seconds since the epoch) of - * this file. Defaults to the current time. - * comment - Comment related to this file. - * method - Storage method for file ("store" or "deflate") + * ###### Examples * - * Examples: + * ```php + * // add a file named 'foo.txt' from the local file '/tmp/foo.txt' + * $zip->addFileFromPath( + * fileName: 'foo.txt', + * path: '/tmp/foo.txt', + * ); * - * // add a file named 'foo.txt' from the local file '/tmp/foo.txt' - * $zip->addFileFromPath('foo.txt', '/tmp/foo.txt'); + * // add a file named 'bigfile.rar' from the local file + * // '/usr/share/bigfile.rar' with a comment and a last-modified + * // time of two hours ago + * $zip->addFile( + * fileName: 'bigfile.rar', + * path: '/usr/share/bigfile.rar', + * comment: 'this is a comment about bigfile.rar', + * lastModificationDateTime: new DateTime('2 hours ago'), + * ); + * ``` * - * // add a file named 'bigfile.rar' from the local file - * // '/usr/share/bigfile.rar' with a comment and a last-modified - * // time of two hours ago - * $path = '/usr/share/bigfile.rar'; - * $opt->setTime = time() - 2 * 3600; - * $opt->setComment = 'this is a comment about bar.jpg'; - * $zip->addFileFromPath('bigfile.rar', $path, $opt); - * - * @return void * @throws \ZipStream\Exception\FileNotFoundException * @throws \ZipStream\Exception\FileNotReadableException */ - public function addFileFromPath(string $name, string $path, ?FileOptions $options = null): void - { - $options = $options ?: new FileOptions(); - $options->defaultTo($this->opt); + public function addFileFromPath( + /** + * name of file in archive (including directory path). + */ + string $fileName, - $file = new File($this, $name, $options); - $file->processPath($path); + /** + * path to file on disk (note: paths should be encoded using + * UNIX-style forward slashes -- e.g '/path/to/some/file'). + */ + string $path, + string $comment = '', + ?CompressionMethod $compressionMethod = null, + ?int $deflateLevel = null, + ?DateTimeInterface $lastModificationDateTime = null, + ?int $maxSize = null, + ?int $exactSize = null, + ?bool $enableZeroHeader = null, + ): void { + if (!is_readable($path)) { + if (!file_exists($path)) { + throw new FileNotFoundException($path); + } + throw new FileNotReadableException($path); + } + + if ($fileTime = filemtime($path)) { + $lastModificationDateTime ??= (new DateTimeImmutable())->setTimestamp($fileTime); + } + + $this->addFileFromCallback( + fileName: $fileName, + callback: function () use ($path) { + + $stream = fopen($path, 'rb'); + + if (!$stream) { + // @codeCoverageIgnoreStart + throw new ResourceActionException('fopen'); + // @codeCoverageIgnoreEnd + } + + return $stream; + }, + comment: $comment, + compressionMethod: $compressionMethod, + deflateLevel: $deflateLevel, + lastModificationDateTime: $lastModificationDateTime, + maxSize: $maxSize, + exactSize: $exactSize, + enableZeroHeader: $enableZeroHeader, + ); } /** - * addFileFromStream + * Add an open stream (resource) to the archive. * - * Add an open stream to the archive. + * ##### File Options * - * @param String $name - path of file in archive (including directory). - * @param resource $stream - contents of file as a stream resource - * @param FileOptions $options + * See {@see addFileFromPsr7Stream()} * - * File Options: - * time - Last-modified timestamp (seconds since the epoch) of - * this file. Defaults to the current time. - * comment - Comment related to this file. + * ##### Examples * - * Examples: + * ```php + * // create a temporary file stream and write text to it + * $filePointer = tmpfile(); + * fwrite($filePointer, 'The quick brown fox jumped over the lazy dog.'); * - * // create a temporary file stream and write text to it - * $fp = tmpfile(); - * fwrite($fp, 'The quick brown fox jumped over the lazy dog.'); + * // add a file named 'streamfile.txt' from the content of the stream + * $archive->addFileFromStream( + * fileName: 'streamfile.txt', + * stream: $filePointer, + * ); + * ``` * - * // add a file named 'streamfile.txt' from the content of the stream - * $x->addFileFromStream('streamfile.txt', $fp); - * - * @return void + * @param resource $stream contents of file as a stream resource */ - public function addFileFromStream(string $name, $stream, ?FileOptions $options = null): void - { - $options = $options ?: new FileOptions(); - $options->defaultTo($this->opt); - - $file = new File($this, $name, $options); - $file->processStream(new Stream($stream)); + public function addFileFromStream( + string $fileName, + $stream, + string $comment = '', + ?CompressionMethod $compressionMethod = null, + ?int $deflateLevel = null, + ?DateTimeInterface $lastModificationDateTime = null, + ?int $maxSize = null, + ?int $exactSize = null, + ?bool $enableZeroHeader = null, + ): void { + $this->addFileFromCallback( + fileName: $fileName, + callback: fn () => $stream, + comment: $comment, + compressionMethod: $compressionMethod, + deflateLevel: $deflateLevel, + lastModificationDateTime: $lastModificationDateTime, + maxSize: $maxSize, + exactSize: $exactSize, + enableZeroHeader: $enableZeroHeader, + ); } /** - * addFileFromPsr7Stream - * * Add an open stream to the archive. * - * @param String $name - path of file in archive (including directory). - * @param StreamInterface $stream - contents of file as a stream resource - * @param FileOptions $options + * ##### Examples * - * File Options: - * time - Last-modified timestamp (seconds since the epoch) of - * this file. Defaults to the current time. - * comment - Comment related to this file. + * ```php + * $stream = $response->getBody(); + * // add a file named 'streamfile.txt' from the content of the stream + * $archive->addFileFromPsr7Stream( + * fileName: 'streamfile.txt', + * stream: $stream, + * ); + * ``` * - * Examples: + * @param string $fileName + * path of file in archive (including directory) * - * $stream = $response->getBody(); - * // add a file named 'streamfile.txt' from the content of the stream - * $x->addFileFromPsr7Stream('streamfile.txt', $stream); + * @param StreamInterface $stream + * contents of file as a stream resource * - * @return void + * @param string $comment + * ZIP comment for this file + * + * @param ?CompressionMethod $compressionMethod + * Override `defaultCompressionMethod` + * + * See {@see __construct()} + * + * @param ?int $deflateLevel + * Override `defaultDeflateLevel` + * + * See {@see __construct()} + * + * @param ?DateTimeInterface $lastModificationDateTime + * Set last modification time of file. + * + * Default: `now` + * + * @param ?int $maxSize + * Only read `maxSize` bytes from file. + * + * The file is considered done when either reaching `EOF` + * or the `maxSize`. + * + * @param ?int $exactSize + * Read exactly `exactSize` bytes from file. + * If `EOF` is reached before reading `exactSize` bytes, an error will be + * thrown. The parameter allows for faster size calculations if the `stream` + * does not support `fstat` size or is slow and otherwise known beforehand. + * + * @param ?bool $enableZeroHeader + * Override `defaultEnableZeroHeader` + * + * See {@see __construct()} */ public function addFileFromPsr7Stream( - string $name, + string $fileName, StreamInterface $stream, - ?FileOptions $options = null + string $comment = '', + ?CompressionMethod $compressionMethod = null, + ?int $deflateLevel = null, + ?DateTimeInterface $lastModificationDateTime = null, + ?int $maxSize = null, + ?int $exactSize = null, + ?bool $enableZeroHeader = null, ): void { - $options = $options ?: new FileOptions(); - $options->defaultTo($this->opt); - - $file = new File($this, $name, $options); - $file->processStream($stream); + $this->addFileFromCallback( + fileName: $fileName, + callback: fn () => $stream, + comment: $comment, + compressionMethod: $compressionMethod, + deflateLevel: $deflateLevel, + lastModificationDateTime: $lastModificationDateTime, + maxSize: $maxSize, + exactSize: $exactSize, + enableZeroHeader: $enableZeroHeader, + ); } /** - * finish + * Add a file based on a callback. * + * This is useful when you want to simulate a lot of files without keeping + * all of the file handles open at the same time. + * + * ##### Examples + * + * ```php + * foreach($files as $name => $size) { + * $archive->addFileFromPsr7Stream( + * fileName: 'streamfile.txt', + * exactSize: $size, + * callback: function() use($name): Psr\Http\Message\StreamInterface { + * $response = download($name); + * return $response->getBody(); + * } + * ); + * } + * ``` + * + * @param string $fileName + * path of file in archive (including directory) + * + * @param Closure $callback + * @psalm-param Closure(): (resource|StreamInterface|string) $callback + * A callback to get the file contents in the shape of a PHP stream, + * a Psr StreamInterface implementation, or a string. + * + * @param string $comment + * ZIP comment for this file + * + * @param ?CompressionMethod $compressionMethod + * Override `defaultCompressionMethod` + * + * See {@see __construct()} + * + * @param ?int $deflateLevel + * Override `defaultDeflateLevel` + * + * See {@see __construct()} + * + * @param ?DateTimeInterface $lastModificationDateTime + * Set last modification time of file. + * + * Default: `now` + * + * @param ?int $maxSize + * Only read `maxSize` bytes from file. + * + * The file is considered done when either reaching `EOF` + * or the `maxSize`. + * + * @param ?int $exactSize + * Read exactly `exactSize` bytes from file. + * If `EOF` is reached before reading `exactSize` bytes, an error will be + * thrown. The parameter allows for faster size calculations if the `stream` + * does not support `fstat` size or is slow and otherwise known beforehand. + * + * @param ?bool $enableZeroHeader + * Override `defaultEnableZeroHeader` + * + * See {@see __construct()} + */ + public function addFileFromCallback( + string $fileName, + Closure $callback, + string $comment = '', + ?CompressionMethod $compressionMethod = null, + ?int $deflateLevel = null, + ?DateTimeInterface $lastModificationDateTime = null, + ?int $maxSize = null, + ?int $exactSize = null, + ?bool $enableZeroHeader = null, + ): void { + $file = new File( + dataCallback: function () use ($callback, $maxSize) { + $data = $callback(); + + if(is_resource($data)) { + return $data; + } + + if($data instanceof StreamInterface) { + return StreamWrapper::getResource($data); + } + + + $stream = fopen('php://memory', 'rw+'); + if ($stream === false) { + // @codeCoverageIgnoreStart + throw new ResourceActionException('fopen'); + // @codeCoverageIgnoreEnd + } + if ($maxSize !== null && fwrite($stream, $data, $maxSize) === false) { + // @codeCoverageIgnoreStart + throw new ResourceActionException('fwrite', $stream); + // @codeCoverageIgnoreEnd + } elseif (fwrite($stream, $data) === false) { + // @codeCoverageIgnoreStart + throw new ResourceActionException('fwrite', $stream); + // @codeCoverageIgnoreEnd + } + if (rewind($stream) === false) { + // @codeCoverageIgnoreStart + throw new ResourceActionException('rewind', $stream); + // @codeCoverageIgnoreEnd + } + + return $stream; + + }, + send: $this->send(...), + recordSentBytes: $this->recordSentBytes(...), + operationMode: $this->operationMode, + fileName: $fileName, + startOffset: $this->offset, + compressionMethod: $compressionMethod ?? $this->defaultCompressionMethod, + comment: $comment, + deflateLevel: $deflateLevel ?? $this->defaultDeflateLevel, + lastModificationDateTime: $lastModificationDateTime ?? new DateTimeImmutable(), + maxSize: $maxSize, + exactSize: $exactSize, + enableZip64: $this->enableZip64, + enableZeroHeader: $enableZeroHeader ?? $this->defaultEnableZeroHeader, + ); + + if($this->operationMode !== OperationMode::NORMAL) { + $this->recordedSimulation[] = $file; + } + + $this->centralDirectoryRecords[] = $file->process(); + } + + /** + * Add a directory to the archive. + * + * ##### File Options + * + * See {@see addFileFromPsr7Stream()} + * + * ##### Examples + * + * ```php + * // add a directory named 'world/' + * $zip->addFile(fileName: 'world/'); + * ``` + */ + public function addDirectory( + string $fileName, + string $comment = '', + ?DateTimeInterface $lastModificationDateTime = null, + ): void { + if (!str_ends_with($fileName, '/')) { + $fileName .= '/'; + } + + $this->addFile( + fileName: $fileName, + data: '', + comment: $comment, + compressionMethod: CompressionMethod::STORE, + deflateLevel: null, + lastModificationDateTime: $lastModificationDateTime, + maxSize: 0, + exactSize: 0, + enableZeroHeader: false, + ); + } + + /** + * Executes a previously calculated simulation. + * + * ##### Example + * + * ```php + * $zip = new ZipStream( + * outputName: 'foo.zip', + * operationMode: OperationMode::SIMULATE_STRICT, + * ); + * + * $zip->addFile('test.txt', 'Hello World'); + * + * $size = $zip->finish(); + * + * header('Content-Length: '. $size); + * + * $zip->executeSimulation(); + * ``` + */ + public function executeSimulation(): void + { + if($this->operationMode !== OperationMode::NORMAL) { + throw new RuntimeException('Zip simulation is not finished.'); + } + + foreach($this->recordedSimulation as $file) { + $this->centralDirectoryRecords[] = $file->cloneSimulationExecution()->process(); + } + + $this->finish(); + } + + /** * Write zip footer to stream. * - * Example: + * The clase is left in an unusable state after `finish`. * - * // add a list of files to the archive - * $files = array('foo.txt', 'bar.jpg'); - * foreach ($files as $path) - * $zip->addFile($path, file_get_contents($path)); + * ##### Example * - * // write footer to stream - * $zip->finish(); - * @return void - * - * @throws OverflowException + * ```php + * // write footer to stream + * $zip->finish(); + * ``` */ - public function finish(): void + public function finish(): int { + $centralDirectoryStartOffsetOnDisk = $this->offset; + $sizeOfCentralDirectory = 0; + // add trailing cdr file records - foreach ($this->files as $cdrFile) { - $this->send($cdrFile); - $this->cdr_ofs = $this->cdr_ofs->add(Bigint::init(strlen($cdrFile))); + foreach ($this->centralDirectoryRecords as $centralDirectoryRecord) { + $this->send($centralDirectoryRecord); + $sizeOfCentralDirectory += strlen($centralDirectoryRecord); } // Add 64bit headers (if applicable) - if (count($this->files) >= 0xFFFF || - $this->cdr_ofs->isOver32() || - $this->ofs->isOver32()) { - if (!$this->opt->isEnableZip64()) { + if (count($this->centralDirectoryRecords) >= 0xFFFF || + $centralDirectoryStartOffsetOnDisk > 0xFFFFFFFF || + $sizeOfCentralDirectory > 0xFFFFFFFF) { + if (!$this->enableZip64) { throw new OverflowException(); } - $this->addCdr64Eof(); - $this->addCdr64Locator(); + $this->send(Zip64\EndOfCentralDirectory::generate( + versionMadeBy: self::ZIP_VERSION_MADE_BY, + versionNeededToExtract: Version::ZIP64->value, + numberOfThisDisk: 0, + numberOfTheDiskWithCentralDirectoryStart: 0, + numberOfCentralDirectoryEntriesOnThisDisk: count($this->centralDirectoryRecords), + numberOfCentralDirectoryEntries: count($this->centralDirectoryRecords), + sizeOfCentralDirectory: $sizeOfCentralDirectory, + centralDirectoryStartOffsetOnDisk: $centralDirectoryStartOffsetOnDisk, + extensibleDataSector: '', + )); + + $this->send(Zip64\EndOfCentralDirectoryLocator::generate( + numberOfTheDiskWithZip64CentralDirectoryStart: 0x00, + zip64centralDirectoryStartOffsetOnDisk: $centralDirectoryStartOffsetOnDisk + $sizeOfCentralDirectory, + totalNumberOfDisks: 1, + )); } // add trailing cdr eof record - $this->addCdrEof(); + $numberOfCentralDirectoryEntries = min(count($this->centralDirectoryRecords), 0xFFFF); + $this->send(EndOfCentralDirectory::generate( + numberOfThisDisk: 0x00, + numberOfTheDiskWithCentralDirectoryStart: 0x00, + numberOfCentralDirectoryEntriesOnThisDisk: $numberOfCentralDirectoryEntries, + numberOfCentralDirectoryEntries: $numberOfCentralDirectoryEntries, + sizeOfCentralDirectory: min($sizeOfCentralDirectory, 0xFFFFFFFF), + centralDirectoryStartOffsetOnDisk: min($centralDirectoryStartOffsetOnDisk, 0xFFFFFFFF), + zipFileComment: $this->comment, + )); + + $size = $this->offset; // The End $this->clear(); + + return $size; } /** - * Create a format string and argument list for pack(), then call - * pack() and return the result. - * - * @param array $fields - * @return string + * @param StreamInterface|resource|null $outputStream + * @return resource */ - public static function packFields(array $fields): string + private static function normalizeStream($outputStream) { - $fmt = ''; - $args = []; - - // populate format string and argument list - foreach ($fields as [$format, $value]) { - if ($format === 'P') { - $fmt .= 'VV'; - if ($value instanceof Bigint) { - $args[] = $value->getLow32(); - $args[] = $value->getHigh32(); - } else { - $args[] = $value; - $args[] = 0; - } - } else { - if ($value instanceof Bigint) { - $value = $value->getLow32(); - } - $fmt .= $format; - $args[] = $value; - } + if ($outputStream instanceof StreamInterface) { + return StreamWrapper::getResource($outputStream); } + if (is_resource($outputStream)) { + return $outputStream; + } + return fopen('php://output', 'wb'); + } - // prepend format string to argument list - array_unshift($args, $fmt); - - // build output string from header and compressed data - return pack(...$args); + /** + * Record sent bytes + */ + private function recordSentBytes(int $sentBytes): void + { + $this->offset += $sentBytes; } /** * Send string, sending HTTP headers if necessary. * Flush output after write if configure option is set. - * - * @param String $str - * @return void */ - public function send(string $str): void + private function send(string $data): void { - if ($this->need_headers) { + if (!$this->ready) { + throw new RuntimeException('Archive is already finished'); + } + + if ($this->operationMode === OperationMode::NORMAL && $this->sendHttpHeaders) { $this->sendHttpHeaders(); - } - $this->need_headers = false; - - $outputStream = $this->opt->getOutputStream(); - - if ($outputStream instanceof StreamInterface) { - $outputStream->write($str); - } else { - fwrite($outputStream, $str); + $this->sendHttpHeaders = false; } - if ($this->opt->isFlushOutput()) { - // flush output buffer if it is on and flushable - $status = ob_get_status(); - if (isset($status['flags']) && ($status['flags'] & PHP_OUTPUT_HANDLER_FLUSHABLE)) { - ob_flush(); + $this->recordSentBytes(strlen($data)); + + if ($this->operationMode === OperationMode::NORMAL) { + if (fwrite($this->outputStream, $data) === false) { + throw new ResourceActionException('fwrite', $this->outputStream); } - // Flush system buffers after flushing userspace output buffer - flush(); + if ($this->flushOutput) { + // flush output buffer if it is on and flushable + $status = ob_get_status(); + if (isset($status['flags']) && is_int($status['flags']) && ($status['flags'] & PHP_OUTPUT_HANDLER_FLUSHABLE)) { + ob_flush(); + } + + // Flush system buffers after flushing userspace output buffer + flush(); + } } } - /** - * Is this file larger than large_file_size? - * - * @param string $path - * @return bool - */ - public function isLargeFile(string $path): bool - { - if (!$this->opt->isStatFiles()) { - return false; - } - $stat = stat($path); - return $stat['size'] > $this->opt->getLargeFileSize(); - } - - /** - * Save file attributes for trailing CDR record. - * - * @param File $file - * @return void - */ - public function addToCdr(File $file): void - { - $file->ofs = $this->ofs; - $this->ofs = $this->ofs->add($file->getTotalLength()); - $this->files[] = $file->getCdrFile(); - } - - /** - * Send ZIP64 CDR EOF (Central Directory Record End-of-File) record. - * - * @return void - */ - protected function addCdr64Eof(): void - { - $num_files = count($this->files); - $cdr_length = $this->cdr_ofs; - $cdr_offset = $this->ofs; - - $fields = [ - ['V', static::ZIP64_CDR_EOF_SIGNATURE], // ZIP64 end of central file header signature - ['P', 44], // Length of data below this header (length of block - 12) = 44 - ['v', static::ZIP_VERSION_MADE_BY], // Made by version - ['v', Version::ZIP64], // Extract by version - ['V', 0x00], // disk number - ['V', 0x00], // no of disks - ['P', $num_files], // no of entries on disk - ['P', $num_files], // no of entries in cdr - ['P', $cdr_length], // CDR size - ['P', $cdr_offset], // CDR offset - ]; - - $ret = static::packFields($fields); - $this->send($ret); - } - - /** + /** * Send HTTP headers for this stream. - * - * @return void */ - protected function sendHttpHeaders(): void + private function sendHttpHeaders(): void { // grab content disposition - $disposition = $this->opt->getContentDisposition(); + $disposition = $this->contentDisposition; - if ($this->output_name) { + if ($this->outputName) { // Various different browsers dislike various characters here. Strip them all for safety. - $safe_output = trim(str_replace(['"', "'", '\\', ';', "\n", "\r"], '', $this->output_name)); + $safeOutput = trim(str_replace(['"', "'", '\\', ';', "\n", "\r"], '', $this->outputName)); // Check if we need to UTF-8 encode the filename - $urlencoded = rawurlencode($safe_output); + $urlencoded = rawurlencode($safeOutput); $disposition .= "; filename*=UTF-8''{$urlencoded}"; } $headers = [ - 'Content-Type' => $this->opt->getContentType(), + 'Content-Type' => $this->contentType, 'Content-Disposition' => $disposition, 'Pragma' => 'public', 'Cache-Control' => 'public, must-revalidate', 'Content-Transfer-Encoding' => 'binary', ]; - $call = $this->opt->getHttpHeaderCallback(); foreach ($headers as $key => $val) { - $call("$key: $val"); + ($this->httpHeaderCallback)("$key: $val"); } } - /** - * Send ZIP64 CDR Locator (Central Directory Record Locator) record. - * - * @return void - */ - protected function addCdr64Locator(): void - { - $cdr_offset = $this->ofs->add($this->cdr_ofs); - - $fields = [ - ['V', static::ZIP64_CDR_LOCATOR_SIGNATURE], // ZIP64 end of central file header signature - ['V', 0x00], // Disc number containing CDR64EOF - ['P', $cdr_offset], // CDR offset - ['V', 1], // Total number of disks - ]; - - $ret = static::packFields($fields); - $this->send($ret); - } - - /** - * Send CDR EOF (Central Directory Record End-of-File) record. - * - * @return void - */ - protected function addCdrEof(): void - { - $num_files = count($this->files); - $cdr_length = $this->cdr_ofs; - $cdr_offset = $this->ofs; - - // grab comment (if specified) - $comment = $this->opt->getComment(); - - $fields = [ - ['V', static::CDR_EOF_SIGNATURE], // end of central file header signature - ['v', 0x00], // disk number - ['v', 0x00], // no of disks - ['v', min($num_files, 0xFFFF)], // no of entries on disk - ['v', min($num_files, 0xFFFF)], // no of entries in cdr - ['V', $cdr_length->getLowFF()], // CDR size - ['V', $cdr_offset->getLowFF()], // CDR offset - ['v', strlen($comment)], // Zip Comment size - ]; - - $ret = static::packFields($fields) . $comment; - $this->send($ret); - } - /** * Clear all internal variables. Note that the stream object is not * usable after this. - * - * @return void */ - protected function clear(): void + private function clear(): void { - $this->files = []; - $this->ofs = new Bigint(); - $this->cdr_ofs = new Bigint(); - $this->opt = new ArchiveOptions(); + $this->centralDirectoryRecords = []; + $this->offset = 0; + + if($this->operationMode === OperationMode::NORMAL) { + $this->ready = false; + $this->recordedSimulation = []; + } else { + $this->operationMode = OperationMode::NORMAL; + } } } diff --git a/vendor/maennchen/zipstream-php/src/Zs/ExtendedInformationExtraField.php b/vendor/maennchen/zipstream-php/src/Zs/ExtendedInformationExtraField.php new file mode 100644 index 000000000..bf621bc09 --- /dev/null +++ b/vendor/maennchen/zipstream-php/src/Zs/ExtendedInformationExtraField.php @@ -0,0 +1,23 @@ +fail("File {$filePath} must contain {$needle}"); + } + + protected function assertFileDoesNotContain(string $filePath, string $needle): void + { + $last = ''; + + $handle = fopen($filePath, 'r'); + while (!feof($handle)) { + $line = fgets($handle, 1024); + + if(str_contains($last . $line, $needle)) { + fclose($handle); + + $this->fail("File {$filePath} must not contain {$needle}"); + } + + $last = $line; + } + + fclose($handle); + } +} diff --git a/vendor/maennchen/zipstream-php/test/BigintTest.php b/vendor/maennchen/zipstream-php/test/BigintTest.php deleted file mode 100644 index 4d26fcd0b..000000000 --- a/vendor/maennchen/zipstream-php/test/BigintTest.php +++ /dev/null @@ -1,66 +0,0 @@ -assertSame('0x0000000012345678', $bigint->getHex64()); - $this->assertSame(0x12345678, $bigint->getLow32()); - $this->assertSame(0, $bigint->getHigh32()); - } - - public function testConstructLarge(): void - { - $bigint = new Bigint(0x87654321); - $this->assertSame('0x0000000087654321', $bigint->getHex64()); - $this->assertSame('87654321', bin2hex(pack('N', $bigint->getLow32()))); - $this->assertSame(0, $bigint->getHigh32()); - } - - public function testAddSmallValue(): void - { - $bigint = new Bigint(1); - $bigint = $bigint->add(Bigint::init(2)); - $this->assertSame(3, $bigint->getLow32()); - $this->assertFalse($bigint->isOver32()); - $this->assertTrue($bigint->isOver32(true)); - $this->assertSame($bigint->getLowFF(), (float)$bigint->getLow32()); - $this->assertSame($bigint->getLowFF(true), (float)0xFFFFFFFF); - } - - public function testAddWithOverflowAtLowestByte(): void - { - $bigint = new Bigint(0xFF); - $bigint = $bigint->add(Bigint::init(0x01)); - $this->assertSame(0x100, $bigint->getLow32()); - } - - public function testAddWithOverflowAtInteger32(): void - { - $bigint = new Bigint(0xFFFFFFFE); - $this->assertFalse($bigint->isOver32()); - $bigint = $bigint->add(Bigint::init(0x01)); - $this->assertTrue($bigint->isOver32()); - $bigint = $bigint->add(Bigint::init(0x01)); - $this->assertSame('0x0000000100000000', $bigint->getHex64()); - $this->assertTrue($bigint->isOver32()); - $this->assertSame((float)0xFFFFFFFF, $bigint->getLowFF()); - } - - public function testAddWithOverflowAtInteger64(): void - { - $bigint = Bigint::fromLowHigh(0xFFFFFFFF, 0xFFFFFFFF); - $this->assertSame('0xFFFFFFFFFFFFFFFF', $bigint->getHex64()); - $this->expectException(OverflowException::class); - $bigint->add(Bigint::init(1)); - } -} diff --git a/vendor/maennchen/zipstream-php/test/CentralDirectoryFileHeaderTest.php b/vendor/maennchen/zipstream-php/test/CentralDirectoryFileHeaderTest.php new file mode 100644 index 000000000..5457b4f44 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/CentralDirectoryFileHeaderTest.php @@ -0,0 +1,60 @@ +assertSame( + bin2hex($header), + '504b0102' . // 4 bytes; central file header signature + '0306' . // 2 bytes; version made by + '2d00' . // 2 bytes; version needed to extract + '2222' . // 2 bytes; general purpose bit flag + '0800' . // 2 bytes; compression method + '2008' . // 2 bytes; last mod file time + '2154' . // 2 bytes; last mod file date + '11111111' . // 4 bytes; crc-32 + '77777777' . // 4 bytes; compressed size + '99999999' . // 4 bytes; uncompressed size + '0800' . // 2 bytes; file name length (n) + '0c00' . // 2 bytes; extra field length (m) + '0c00' . // 2 bytes; file comment length (o) + '0000' . // 2 bytes; disk number start + '0000' . // 2 bytes; internal file attributes + '20000000' . // 4 bytes; external file attributes + '34120000' . // 4 bytes; relative offset of local header + '746573742e706e67' . // n bytes; file name + '736f6d6520636f6e74656e74' . // m bytes; extra field + '736f6d6520636f6d6d656e74' // o bytes; file comment + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/DataDescriptorTest.php b/vendor/maennchen/zipstream-php/test/DataDescriptorTest.php new file mode 100644 index 000000000..cc886c74b --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/DataDescriptorTest.php @@ -0,0 +1,26 @@ +assertSame( + bin2hex(DataDescriptor::generate( + crc32UncompressedData: 0x11111111, + compressedSize: 0x77777777, + uncompressedSize: 0x99999999, + )), + '504b0708' . // 4 bytes; Optional data descriptor signature = 0x08074b50 + '11111111' . // 4 bytes; CRC-32 of uncompressed data + '77777777' . // 4 bytes; Compressed size + '99999999' // 4 bytes; Uncompressed size + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/EndOfCentralDirectoryTest.php b/vendor/maennchen/zipstream-php/test/EndOfCentralDirectoryTest.php new file mode 100644 index 000000000..be0a90743 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/EndOfCentralDirectoryTest.php @@ -0,0 +1,35 @@ +assertSame( + bin2hex(EndOfCentralDirectory::generate( + numberOfThisDisk: 0x00, + numberOfTheDiskWithCentralDirectoryStart: 0x00, + numberOfCentralDirectoryEntriesOnThisDisk: 0x10, + numberOfCentralDirectoryEntries: 0x10, + sizeOfCentralDirectory: 0x22, + centralDirectoryStartOffsetOnDisk: 0x33, + zipFileComment: 'foo', + )), + '504b0506' . // 4 bytes; end of central dir signature 0x06054b50 + '0000' . // 2 bytes; number of this disk + '0000' . // 2 bytes; number of the disk with the start of the central directory + '1000' . // 2 bytes; total number of entries in the central directory on this disk + '1000' . // 2 bytes; total number of entries in the central directory + '22000000' . // 4 bytes; size of the central directory + '33000000' . // 4 bytes; offset of start of central directory with respect to the starting disk number + '0300' . // 2 bytes; .ZIP file comment length + bin2hex('foo') + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/EndlessCycleStream.php b/vendor/maennchen/zipstream-php/test/EndlessCycleStream.php new file mode 100644 index 000000000..4f1cf5c32 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/EndlessCycleStream.php @@ -0,0 +1,106 @@ +detach(); + } + + /** + * @return null + */ + public function detach() + { + return; + } + + public function getSize(): ?int + { + return null; + } + + public function tell(): int + { + return $this->offset; + } + + public function eof(): bool + { + return false; + } + + public function isSeekable(): bool + { + return true; + } + + public function seek(int $offset, int $whence = SEEK_SET): void + { + switch($whence) { + case SEEK_SET: + $this->offset = $offset; + break; + case SEEK_CUR: + $this->offset += $offset; + break; + case SEEK_END: + throw new RuntimeException('Infinite Stream!'); + break; + } + } + + public function rewind(): void + { + $this->seek(0); + } + + public function isWritable(): bool + { + return false; + } + + public function write(string $string): int + { + throw new RuntimeException('Not writeable'); + } + + public function isReadable(): bool + { + return true; + } + + public function read(int $length): string + { + $this->offset += $length; + return substr(str_repeat($this->toRepeat, (int) ceil($length / strlen($this->toRepeat))), 0, $length); + } + + public function getContents(): string + { + throw new RuntimeException('Infinite Stream!'); + } + + public function getMetadata(?string $key = null): array|null + { + return $key !== null ? null : []; + } +} diff --git a/vendor/maennchen/zipstream-php/test/FaultInjectionResource.php b/vendor/maennchen/zipstream-php/test/FaultInjectionResource.php new file mode 100644 index 000000000..3d4440e8a --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/FaultInjectionResource.php @@ -0,0 +1,141 @@ +context); + + if (!isset($options[self::NAME]['injectFaults'])) { + return false; + } + + $this->mode = $mode; + $this->injectFaults = $options[self::NAME]['injectFaults']; + + if ($this->shouldFail(__FUNCTION__)) { + return false; + } + + return true; + } + + public function stream_write(string $data) + { + if ($this->shouldFail(__FUNCTION__)) { + return false; + } + return true; + } + + public function stream_eof() + { + return true; + } + + public function stream_seek(int $offset, int $whence): bool + { + if ($this->shouldFail(__FUNCTION__)) { + return false; + } + + return true; + } + + public function stream_tell(): int + { + if ($this->shouldFail(__FUNCTION__)) { + return false; + } + + return 0; + } + + public static function register(): void + { + if (!in_array(self::NAME, stream_get_wrappers(), true)) { + stream_wrapper_register(self::NAME, __CLASS__); + } + } + + public function stream_stat(): array + { + static $modeMap = [ + 'r' => 33060, + 'rb' => 33060, + 'r+' => 33206, + 'w' => 33188, + 'wb' => 33188, + ]; + + return [ + 'dev' => 0, + 'ino' => 0, + 'mode' => $modeMap[$this->mode], + 'nlink' => 0, + 'uid' => 0, + 'gid' => 0, + 'rdev' => 0, + 'size' => 0, + 'atime' => 0, + 'mtime' => 0, + 'ctime' => 0, + 'blksize' => 0, + 'blocks' => 0, + ]; + } + + public function url_stat(string $path, int $flags): array + { + return [ + 'dev' => 0, + 'ino' => 0, + 'mode' => 0, + 'nlink' => 0, + 'uid' => 0, + 'gid' => 0, + 'rdev' => 0, + 'size' => 0, + 'atime' => 0, + 'mtime' => 0, + 'ctime' => 0, + 'blksize' => 0, + 'blocks' => 0, + ]; + } + + private static function createStreamContext(array $injectFaults) + { + return stream_context_create([ + self::NAME => ['injectFaults' => $injectFaults], + ]); + } + + private function shouldFail(string $function): bool + { + return in_array($function, $this->injectFaults, true); + } +} diff --git a/vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php b/vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php new file mode 100644 index 000000000..196dd0fe3 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/LocalFileHeaderTest.php @@ -0,0 +1,47 @@ +assertSame( + bin2hex((string) $header), + '504b0304' . // 4 bytes; Local file header signature + '2d00' . // 2 bytes; Version needed to extract (minimum) + '2222' . // 2 bytes; General purpose bit flag + '0800' . // 2 bytes; Compression method; e.g. none = 0, DEFLATE = 8 + '2008' . // 2 bytes; File last modification time + '2154' . // 2 bytes; File last modification date + '11111111' . // 4 bytes; CRC-32 of uncompressed data + '77777777' . // 4 bytes; Compressed size (or 0xffffffff for ZIP64) + '99999999' . // 4 bytes; Uncompressed size (or 0xffffffff for ZIP64) + '0800' . // 2 bytes; File name length (n) + '0c00' . // 2 bytes; Extra field length (m) + '746573742e706e67' . // n bytes; File name + '736f6d6520636f6e74656e74' // m bytes; Extra field + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/PackFieldTest.php b/vendor/maennchen/zipstream-php/test/PackFieldTest.php new file mode 100644 index 000000000..ecd66bac7 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/PackFieldTest.php @@ -0,0 +1,42 @@ +assertSame( + bin2hex(PackField::pack(new PackField(format: 'v', value: 0x1122))), + '2211', + ); + } + + public function testOverflow2(): void + { + $this->expectException(RuntimeException::class); + + PackField::pack(new PackField(format: 'v', value: 0xFFFFF)); + } + + public function testOverflow4(): void + { + $this->expectException(RuntimeException::class); + + PackField::pack(new PackField(format: 'V', value: 0xFFFFFFFFF)); + } + + public function testUnknownOperator(): void + { + $this->assertSame( + bin2hex(PackField::pack(new PackField(format: 'a', value: 0x1122))), + '34', + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/ResourceStream.php b/vendor/maennchen/zipstream-php/test/ResourceStream.php new file mode 100644 index 000000000..8a414719a --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/ResourceStream.php @@ -0,0 +1,160 @@ +isSeekable()) { + $this->seek(0); + } + return (string) stream_get_contents($this->stream); + } + + public function close(): void + { + $stream = $this->detach(); + if ($stream) { + fclose($stream); + } + } + + public function detach() + { + $result = $this->stream; + // According to the interface, the stream is left in an unusable state; + /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ + $this->stream = null; + return $result; + } + + public function seek(int $offset, int $whence = SEEK_SET): void + { + if (!$this->isSeekable()) { + throw new RuntimeException(); + } + if (fseek($this->stream, $offset, $whence) !== 0) { + // @codeCoverageIgnoreStart + throw new RuntimeException(); + // @codeCoverageIgnoreEnd + } + } + + public function isSeekable(): bool + { + return (bool)$this->getMetadata('seekable'); + } + + public function getMetadata(?string $key = null) + { + $metadata = stream_get_meta_data($this->stream); + return $key !== null ? @$metadata[$key] : $metadata; + } + + public function getSize(): ?int + { + $stats = fstat($this->stream); + return $stats['size']; + } + + public function tell(): int + { + $position = ftell($this->stream); + if ($position === false) { + // @codeCoverageIgnoreStart + throw new RuntimeException(); + // @codeCoverageIgnoreEnd + } + return $position; + } + + public function eof(): bool + { + return feof($this->stream); + } + + public function rewind(): void + { + $this->seek(0); + } + + public function write(string $string): int + { + if (!$this->isWritable()) { + throw new RuntimeException(); + } + if (fwrite($this->stream, $string) === false) { + // @codeCoverageIgnoreStart + throw new RuntimeException(); + // @codeCoverageIgnoreEnd + } + return strlen($string); + } + + public function isWritable(): bool + { + $mode = $this->getMetadata('mode'); + if (!is_string($mode)) { + // @codeCoverageIgnoreStart + throw new RuntimeException('Could not get stream mode from metadata!'); + // @codeCoverageIgnoreEnd + } + return preg_match('/[waxc+]/', $mode) === 1; + } + + public function read(int $length): string + { + if (!$this->isReadable()) { + throw new RuntimeException(); + } + $result = fread($this->stream, $length); + if ($result === false) { + // @codeCoverageIgnoreStart + throw new RuntimeException(); + // @codeCoverageIgnoreEnd + } + return $result; + } + + public function isReadable(): bool + { + $mode = $this->getMetadata('mode'); + if (!is_string($mode)) { + // @codeCoverageIgnoreStart + throw new RuntimeException('Could not get stream mode from metadata!'); + // @codeCoverageIgnoreEnd + } + return preg_match('/[r+]/', $mode) === 1; + } + + public function getContents(): string + { + if (!$this->isReadable()) { + throw new RuntimeException(); + } + $result = stream_get_contents($this->stream); + if ($result === false) { + // @codeCoverageIgnoreStart + throw new RuntimeException(); + // @codeCoverageIgnoreEnd + } + return $result; + } +} diff --git a/vendor/maennchen/zipstream-php/test/TimeTest.php b/vendor/maennchen/zipstream-php/test/TimeTest.php new file mode 100644 index 000000000..25aed277f --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/TimeTest.php @@ -0,0 +1,35 @@ +assertSame( + Time::dateTimeToDosTime(new DateTimeImmutable('2014-11-17T17:46:08Z')), + 1165069764 + ); + + // January 1 1980 - DOS Epoch. + $this->assertSame( + Time::dateTimeToDosTime(new DateTimeImmutable('1980-01-01T00:00:00+00:00')), + 2162688 + ); + } + + public function testTooEarlyDateToDosTime(): void + { + $this->expectException(DosTimeOverflowException::class); + + // January 1 1980 is the minimum DOS Epoch. + Time::dateTimeToDosTime(new DateTimeImmutable('1970-01-01T00:00:00+00:00')); + } +} diff --git a/vendor/maennchen/zipstream-php/test/Util.php b/vendor/maennchen/zipstream-php/test/Util.php new file mode 100644 index 000000000..4ec743e7c --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/Util.php @@ -0,0 +1,135 @@ +cmdExists('hexdump')) { + return ''; + } + + $output = []; + + if (!exec("hexdump -C \"$path\" | head -n 50", $output)) { + return ''; + } + + return "\nHexdump:\n" . implode("\n", $output); + } + + protected function validateAndExtractZip(string $zipPath): string + { + $tmpDir = $this->getTmpDir(); + + $zipArchive = new ZipArchive(); + $result = $zipArchive->open($zipPath); + + if ($result !== true) { + $codeName = $this->zipArchiveOpenErrorCodeName($result); + $debugInformation = $this->dumpZipContents($zipPath); + + $this->fail("Failed to open {$zipPath}. Code: $result ($codeName)$debugInformation"); + + return $tmpDir; + } + + $this->assertSame(0, $zipArchive->status); + $this->assertSame(0, $zipArchive->statusSys); + + $zipArchive->extractTo($tmpDir); + $zipArchive->close(); + + return $tmpDir; + } + + protected function zipArchiveOpenErrorCodeName(int $code): string + { + switch($code) { + case ZipArchive::ER_EXISTS: return 'ER_EXISTS'; + case ZipArchive::ER_INCONS: return 'ER_INCONS'; + case ZipArchive::ER_INVAL: return 'ER_INVAL'; + case ZipArchive::ER_MEMORY: return 'ER_MEMORY'; + case ZipArchive::ER_NOENT: return 'ER_NOENT'; + case ZipArchive::ER_NOZIP: return 'ER_NOZIP'; + case ZipArchive::ER_OPEN: return 'ER_OPEN'; + case ZipArchive::ER_READ: return 'ER_READ'; + case ZipArchive::ER_SEEK: return 'ER_SEEK'; + default: return 'unknown'; + } + } + + protected function getTmpDir(): string + { + $tmp = tempnam(sys_get_temp_dir(), 'zipstreamtest'); + unlink($tmp); + mkdir($tmp) or $this->fail('Failed to make directory'); + + return $tmp; + } + + /** + * @return string[] + */ + protected function getRecursiveFileList(string $path, bool $includeDirectories = false): array + { + $data = []; + $path = (string)realpath($path); + $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); + + $pathLen = strlen($path); + foreach ($files as $file) { + $filePath = $file->getRealPath(); + + if (is_dir($filePath) && !$includeDirectories) { + continue; + } + + $data[] = substr($filePath, $pathLen + 1); + } + + sort($data); + + return $data; + } +} diff --git a/vendor/maennchen/zipstream-php/test/Zip64/DataDescriptorTest.php b/vendor/maennchen/zipstream-php/test/Zip64/DataDescriptorTest.php new file mode 100644 index 000000000..49fb2ccb2 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/Zip64/DataDescriptorTest.php @@ -0,0 +1,28 @@ +assertSame( + bin2hex($descriptor), + '504b0708' . // 4 bytes; Optional data descriptor signature = 0x08074b50 + '11111111' . // 4 bytes; CRC-32 of uncompressed data + '6666666677777777' . // 8 bytes; Compressed size + '8888888899999999' // 8 bytes; Uncompressed size + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/Zip64/EndOfCentralDirectoryLocatorTest.php b/vendor/maennchen/zipstream-php/test/Zip64/EndOfCentralDirectoryLocatorTest.php new file mode 100644 index 000000000..271a29862 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/Zip64/EndOfCentralDirectoryLocatorTest.php @@ -0,0 +1,28 @@ +assertSame( + bin2hex($descriptor), + '504b0607' . // 4 bytes; zip64 end of central dir locator signature - 0x07064b50 + '11111111' . // 4 bytes; number of the disk with the start of the zip64 end of central directory + '3333333322222222' . // 28 bytes; relative offset of the zip64 end of central directory record + '44444444' // 4 bytes;total number of disks + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/Zip64/EndOfCentralDirectoryTest.php b/vendor/maennchen/zipstream-php/test/Zip64/EndOfCentralDirectoryTest.php new file mode 100644 index 000000000..b86fb1781 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/Zip64/EndOfCentralDirectoryTest.php @@ -0,0 +1,41 @@ +assertSame( + bin2hex($descriptor), + '504b0606' . // 4 bytes;zip64 end of central dir signature - 0x06064b50 + '2f00000000000000' . // 8 bytes; size of zip64 end of central directory record + '3333' . // 2 bytes; version made by + '4444' . // 2 bytes; version needed to extract + '55555555' . // 4 bytes; number of this disk + '66666666' . // 4 bytes; number of the disk with the start of the central directory + '8888888877777777' . // 8 bytes; total number of entries in the central directory on this disk + 'aaaaaaaa99999999' . // 8 bytes; total number of entries in the central directory + 'ccccccccbbbbbbbb' . // 8 bytes; size of the central directory + 'eeeeeeeedddddddd' . // 8 bytes; offset of start of central directory with respect to the starting disk number + bin2hex('foo') + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/Zip64/ExtendedInformationExtraFieldTest.php b/vendor/maennchen/zipstream-php/test/Zip64/ExtendedInformationExtraFieldTest.php new file mode 100644 index 000000000..904783d86 --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/Zip64/ExtendedInformationExtraFieldTest.php @@ -0,0 +1,42 @@ +assertSame( + bin2hex($extraField), + '0100' . // 2 bytes; Tag for this "extra" block type + '1c00' . // 2 bytes; Size of this "extra" block + '6666666677777777' . // 8 bytes; Original uncompressed file size + '8888888899999999' . // 8 bytes; Size of compressed data + '1111111122222222' . // 8 bytes; Offset of local header record + '33333333' // 4 bytes; Number of the disk on which this file starts + ); + } + + public function testSerializesEmptyCorrectly(): void + { + $extraField = ExtendedInformationExtraField::generate(); + + $this->assertSame( + bin2hex($extraField), + '0100' . // 2 bytes; Tag for this "extra" block type + '0000' // 2 bytes; Size of this "extra" block + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/ZipStreamTest.php b/vendor/maennchen/zipstream-php/test/ZipStreamTest.php index 0aa65357d..6e6902025 100644 --- a/vendor/maennchen/zipstream-php/test/ZipStreamTest.php +++ b/vendor/maennchen/zipstream-php/test/ZipStreamTest.php @@ -2,72 +2,42 @@ declare(strict_types=1); -namespace ZipStreamTest; +namespace ZipStream\Test; +use DateTimeImmutable; use GuzzleHttp\Psr7\Response; +use GuzzleHttp\Psr7\StreamWrapper; use org\bovigo\vfs\vfsStream; use PHPUnit\Framework\TestCase; -use RecursiveDirectoryIterator; -use RecursiveIteratorIterator; -use ReflectionClass; +use Psr\Http\Message\StreamInterface; +use RuntimeException; use ZipArchive; -use ZipStream\File; -use ZipStream\Option\Archive as ArchiveOptions; -use ZipStream\Option\File as FileOptions; -use ZipStream\Option\Method; -use ZipStream\Stream; +use ZipStream\CompressionMethod; +use ZipStream\Exception\FileNotFoundException; +use ZipStream\Exception\FileNotReadableException; +use ZipStream\Exception\FileSizeIncorrectException; +use ZipStream\Exception\OverflowException; +use ZipStream\Exception\ResourceActionException; +use ZipStream\Exception\SimulationFileUnknownException; +use ZipStream\Exception\StreamNotReadableException; +use ZipStream\Exception\StreamNotSeekableException; +use ZipStream\OperationMode; +use ZipStream\PackField; use ZipStream\ZipStream; -/** - * Test Class for the Main ZipStream CLass - */ class ZipStreamTest extends TestCase { - public function testFileNotFoundException(): void - { - $this->expectException(\ZipStream\Exception\FileNotFoundException::class); - // Get ZipStream Object - $zip = new ZipStream(); - - // Trigger error by adding a file which doesn't exist - $zip->addFileFromPath('foobar.php', '/foo/bar/foobar.php'); - } - - public function testFileNotReadableException(): void - { - // create new virtual filesystem - $root = vfsStream::setup('vfs'); - // create a virtual file with no permissions - $file = vfsStream::newFile('foo.txt', 0)->at($root)->setContent('bar'); - $zip = new ZipStream(); - $this->expectException(\ZipStream\Exception\FileNotReadableException::class); - $zip->addFileFromPath('foo.txt', $file->url()); - } - - public function testDostime(): void - { - // Allows testing of protected method - $class = new ReflectionClass(File::class); - $method = $class->getMethod('dostime'); - $method->setAccessible(true); - - $this->assertSame($method->invoke(null, 1416246368), 1165069764); - - // January 1 1980 - DOS Epoch. - $this->assertSame($method->invoke(null, 315532800), 2162688); - - // January 1 1970 -> January 1 1980 due to minimum DOS Epoch. @todo Throw Exception? - $this->assertSame($method->invoke(null, 0), 2162688); - } + use Util; + use Assertions; public function testAddFile(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); $zip->addFile('sample.txt', 'Sample String Data'); $zip->addFile('test/sample.txt', 'More Simple Sample Data'); @@ -88,10 +58,10 @@ class ZipStreamTest extends TestCase { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); $name = 'árvíztűrő tükörfúrógép.txt'; $content = 'Sample String Data'; @@ -100,10 +70,7 @@ class ZipStreamTest extends TestCase 'from Hungarian language in lowercase. ' . 'In uppercase: ÁÍŰŐÜÖÚÓÉ'; - $fileOptions = new FileOptions(); - $fileOptions->setComment($comment); - - $zip->addFile($name, $content, $fileOptions); + $zip->addFile(fileName: $name, data: $content, comment: $comment); $zip->finish(); fclose($stream); @@ -113,19 +80,19 @@ class ZipStreamTest extends TestCase $this->assertSame([$name], $files); $this->assertStringEqualsFile($tmpDir . '/' . $name, $content); - $zipArch = new ZipArchive(); - $zipArch->open($tmp); - $this->assertSame($comment, $zipArch->getCommentName($name)); + $zipArchive = new ZipArchive(); + $zipArchive->open($tmp); + $this->assertSame($comment, $zipArchive->getCommentName($name)); } public function testAddFileUtf8NameNonUtfComment(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); $name = 'á.txt'; $content = 'any'; @@ -137,10 +104,8 @@ class ZipStreamTest extends TestCase // nearly CP850 (DOS-Latin-1) $guessComment = mb_convert_encoding($comment, 'UTF-8', 'CP850'); - $fileOptions = new FileOptions(); - $fileOptions->setComment($comment); + $zip->addFile(fileName: $name, data: $content, comment: $comment); - $zip->addFile($name, $content, $fileOptions); $zip->finish(); fclose($stream); @@ -150,93 +115,49 @@ class ZipStreamTest extends TestCase $this->assertSame($comment, $zipArch->getCommentName($name, ZipArchive::FL_ENC_RAW)); } - public function testAddFileNonUtf8NameUtfComment(): void - { - [$tmp, $stream] = $this->getTmpFileStream(); - - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); - - $name = mb_convert_encoding('á.txt', 'ISO-8859-2', 'UTF-8'); - $content = 'any'; - $comment = 'á'; - - // @see https://libzip.org/documentation/zip_get_name.html - // - // mb_convert_encoding hasn't CP437. - // nearly CP850 (DOS-Latin-1) - $guessName = mb_convert_encoding($name, 'UTF-8', 'CP850'); - - $fileOptions = new FileOptions(); - $fileOptions->setComment($comment); - - $zip->addFile($name, $content, $fileOptions); - $zip->finish(); - fclose($stream); - - $tmpDir = $this->validateAndExtractZip($tmp); - - $files = $this->getRecursiveFileList($tmpDir); - - $this->assertNotSame([$name], $files); - $this->assertSame([$guessName], $files); - $this->assertStringEqualsFile($tmpDir . '/' . $guessName, $content); - - $zipArch = new ZipArchive(); - $zipArch->open($tmp); - $this->assertSame($guessName, $zipArch->getNameIndex(0)); - $this->assertSame($name, $zipArch->getNameIndex(0, ZipArchive::FL_ENC_RAW)); - $this->assertSame($comment, $zipArch->getCommentName($guessName)); - } - public function testAddFileWithStorageMethod(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); - $zip = new ZipStream(null, $options); - - $fileOptions = new FileOptions(); - $fileOptions->setMethod(Method::STORE()); - - $zip->addFile('sample.txt', 'Sample String Data', $fileOptions); - $zip->addFile('test/sample.txt', 'More Simple Sample Data'); + $zip->addFile(fileName: 'sample.txt', data: 'Sample String Data', compressionMethod: CompressionMethod::STORE); + $zip->addFile(fileName: 'test/sample.txt', data: 'More Simple Sample Data'); $zip->finish(); fclose($stream); - $zipArch = new ZipArchive(); - $zipArch->open($tmp); + $zipArchive = new ZipArchive(); + $zipArchive->open($tmp); - $sample1 = $zipArch->statName('sample.txt'); - $sample12 = $zipArch->statName('test/sample.txt'); - $this->assertSame($sample1['comp_method'], Method::STORE); - $this->assertSame($sample12['comp_method'], Method::DEFLATE); + $sample1 = $zipArchive->statName('sample.txt'); + $sample12 = $zipArchive->statName('test/sample.txt'); + $this->assertSame($sample1['comp_method'], CompressionMethod::STORE->value); + $this->assertSame($sample12['comp_method'], CompressionMethod::DEFLATE->value); - $zipArch->close(); + $zipArchive->close(); } public function testAddFileFromPath(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); [$tmpExample, $streamExample] = $this->getTmpFileStream(); fwrite($streamExample, 'Sample String Data'); fclose($streamExample); - $zip->addFileFromPath('sample.txt', $tmpExample); + $zip->addFileFromPath(fileName: 'sample.txt', path: $tmpExample); [$tmpExample, $streamExample] = $this->getTmpFileStream(); fwrite($streamExample, 'More Simple Sample Data'); fclose($streamExample); - $zip->addFileFromPath('test/sample.txt', $tmpExample); + $zip->addFileFromPath(fileName: 'test/sample.txt', path: $tmpExample); $zip->finish(); fclose($stream); @@ -250,22 +171,57 @@ class ZipStreamTest extends TestCase $this->assertStringEqualsFile($tmpDir . '/test/sample.txt', 'More Simple Sample Data'); } + public function testAddFileFromPathFileNotFoundException(): void + { + $this->expectException(FileNotFoundException::class); + + [, $stream] = $this->getTmpFileStream(); + + // Get ZipStream Object + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); + + // Trigger error by adding a file which doesn't exist + $zip->addFileFromPath(fileName: 'foobar.php', path: '/foo/bar/foobar.php'); + } + + public function testAddFileFromPathFileNotReadableException(): void + { + $this->expectException(FileNotReadableException::class); + + + [, $stream] = $this->getTmpFileStream(); + + + // create new virtual filesystem + $root = vfsStream::setup('vfs'); + // create a virtual file with no permissions + $file = vfsStream::newFile('foo.txt', 0)->at($root)->setContent('bar'); + + // Get ZipStream Object + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); + + $zip->addFileFromPath('foo.txt', $file->url()); + } + public function testAddFileFromPathWithStorageMethod(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); - - $fileOptions = new FileOptions(); - $fileOptions->setMethod(Method::STORE()); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); [$tmpExample, $streamExample] = $this->getTmpFileStream(); fwrite($streamExample, 'Sample String Data'); fclose($streamExample); - $zip->addFileFromPath('sample.txt', $tmpExample, $fileOptions); + $zip->addFileFromPath(fileName: 'sample.txt', path: $tmpExample, compressionMethod: CompressionMethod::STORE); [$tmpExample, $streamExample] = $this->getTmpFileStream(); fwrite($streamExample, 'More Simple Sample Data'); @@ -275,29 +231,31 @@ class ZipStreamTest extends TestCase $zip->finish(); fclose($stream); - $zipArch = new ZipArchive(); - $zipArch->open($tmp); + $zipArchive = new ZipArchive(); + $zipArchive->open($tmp); - $sample1 = $zipArch->statName('sample.txt'); - $this->assertSame(Method::STORE, $sample1['comp_method']); + $sample1 = $zipArchive->statName('sample.txt'); + $this->assertSame(CompressionMethod::STORE->value, $sample1['comp_method']); - $sample2 = $zipArch->statName('test/sample.txt'); - $this->assertSame(Method::DEFLATE, $sample2['comp_method']); + $sample2 = $zipArchive->statName('test/sample.txt'); + $this->assertSame(CompressionMethod::DEFLATE->value, $sample2['comp_method']); - $zipArch->close(); + $zipArchive->close(); } public function testAddLargeFileFromPath(): void { - $methods = [Method::DEFLATE(), Method::STORE()]; - $falseTrue = [false, true]; - foreach ($methods as $method) { - foreach ($falseTrue as $zeroHeader) { - foreach ($falseTrue as $zip64) { - if ($zeroHeader && $method->equals(Method::DEFLATE())) { + foreach ([CompressionMethod::DEFLATE, CompressionMethod::STORE] as $compressionMethod) { + foreach ([false, true] as $zeroHeader) { + foreach ([false, true] as $zip64) { + if ($zeroHeader && $compressionMethod === CompressionMethod::DEFLATE) { continue; } - $this->addLargeFileFileFromPath($method, $zeroHeader, $zip64); + $this->addLargeFileFileFromPath( + compressionMethod: $compressionMethod, + zeroHeader: $zeroHeader, + zip64: $zip64 + ); } } } @@ -307,26 +265,23 @@ class ZipStreamTest extends TestCase { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); // In this test we can't use temporary stream to feed data // because zlib.deflate filter gives empty string before PHP 7 // it works fine with file stream $streamExample = fopen(__FILE__, 'rb'); $zip->addFileFromStream('sample.txt', $streamExample); -// fclose($streamExample); - - $fileOptions = new FileOptions(); - $fileOptions->setMethod(Method::STORE()); + fclose($streamExample); $streamExample2 = fopen('php://temp', 'wb+'); fwrite($streamExample2, 'More Simple Sample Data'); rewind($streamExample2); // move the pointer back to the beginning of file. - $zip->addFileFromStream('test/sample.txt', $streamExample2, $fileOptions); -// fclose($streamExample2); + $zip->addFileFromStream('test/sample.txt', $streamExample2); //, $fileOptions); + fclose($streamExample2); $zip->finish(); fclose($stream); @@ -340,61 +295,162 @@ class ZipStreamTest extends TestCase $this->assertStringEqualsFile($tmpDir . '/test/sample.txt', 'More Simple Sample Data'); } - public function testAddFileFromStreamWithStorageMethod(): void + public function testAddFileFromStreamUnreadableInput(): void + { + $this->expectException(StreamNotReadableException::class); + + [, $stream] = $this->getTmpFileStream(); + [$tmpInput] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); + + $streamUnreadable = fopen($tmpInput, 'w'); + + $zip->addFileFromStream('sample.json', $streamUnreadable); + } + + public function testAddFileFromStreamBrokenOutputWrite(): void + { + $this->expectException(ResourceActionException::class); + + $outputStream = FaultInjectionResource::getResource(['stream_write']); + + $zip = new ZipStream( + outputStream: $outputStream, + sendHttpHeaders: false, + ); + + $zip->addFile('sample.txt', 'foobar'); + } + + public function testAddFileFromStreamBrokenInputRewind(): void + { + $this->expectException(ResourceActionException::class); + + [,$stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + defaultEnableZeroHeader: false, + ); + + $fileStream = FaultInjectionResource::getResource(['stream_seek']); + + $zip->addFileFromStream('sample.txt', $fileStream, maxSize: 0); + } + + public function testAddFileFromStreamUnseekableInputWithoutZeroHeader(): void + { + $this->expectException(StreamNotSeekableException::class); + + [, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + defaultEnableZeroHeader: false, + ); + + if (file_exists('/dev/null')) { + $streamUnseekable = fopen('/dev/null', 'w+'); + } elseif (file_exists('NUL')) { + $streamUnseekable = fopen('NUL', 'w+'); + } else { + $this->markTestSkipped('Needs file /dev/null'); + } + + $zip->addFileFromStream('sample.txt', $streamUnseekable, maxSize: 2); + } + + public function testAddFileFromStreamUnseekableInputWithZeroHeader(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + defaultEnableZeroHeader: true, + defaultCompressionMethod: CompressionMethod::STORE, + ); - $zip = new ZipStream(null, $options); + $streamUnseekable = StreamWrapper::getResource(new class ('test') extends EndlessCycleStream { + public function isSeekable(): bool + { + return false; + } - $fileOptions = new FileOptions(); - $fileOptions->setMethod(Method::STORE()); + public function seek(int $offset, int $whence = SEEK_SET): void + { + throw new RuntimeException('Not seekable'); + } + }); - $streamExample = fopen('php://temp', 'wb+'); - fwrite($streamExample, 'Sample String Data'); - rewind($streamExample); // move the pointer back to the beginning of file. - $zip->addFileFromStream('sample.txt', $streamExample, $fileOptions); -// fclose($streamExample); - - $streamExample2 = fopen('php://temp', 'bw+'); - fwrite($streamExample2, 'More Simple Sample Data'); - rewind($streamExample2); // move the pointer back to the beginning of file. - $zip->addFileFromStream('test/sample.txt', $streamExample2); -// fclose($streamExample2); + $zip->addFileFromStream('sample.txt', $streamUnseekable, maxSize: 7); $zip->finish(); fclose($stream); - $zipArch = new ZipArchive(); - $zipArch->open($tmp); + $tmpDir = $this->validateAndExtractZip($tmp); - $sample1 = $zipArch->statName('sample.txt'); - $this->assertSame(Method::STORE, $sample1['comp_method']); + $files = $this->getRecursiveFileList($tmpDir); + $this->assertSame(['sample.txt'], $files); - $sample2 = $zipArch->statName('test/sample.txt'); - $this->assertSame(Method::DEFLATE, $sample2['comp_method']); + $this->assertSame(filesize($tmpDir . '/sample.txt'), 7); + } - $zipArch->close(); + public function testAddFileFromStreamWithStorageMethod(): void + { + [$tmp, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); + + $streamExample = fopen('php://temp', 'wb+'); + fwrite($streamExample, 'Sample String Data'); + rewind($streamExample); // move the pointer back to the beginning of file. + $zip->addFileFromStream('sample.txt', $streamExample, compressionMethod: CompressionMethod::STORE); + fclose($streamExample); + + $streamExample2 = fopen('php://temp', 'bw+'); + fwrite($streamExample2, 'More Simple Sample Data'); + rewind($streamExample2); // move the pointer back to the beginning of file. + $zip->addFileFromStream('test/sample.txt', $streamExample2, compressionMethod: CompressionMethod::DEFLATE); + fclose($streamExample2); + + $zip->finish(); + fclose($stream); + + $zipArchive = new ZipArchive(); + $zipArchive->open($tmp); + + $sample1 = $zipArchive->statName('sample.txt'); + $this->assertSame(CompressionMethod::STORE->value, $sample1['comp_method']); + + $sample2 = $zipArchive->statName('test/sample.txt'); + $this->assertSame(CompressionMethod::DEFLATE->value, $sample2['comp_method']); + + $zipArchive->close(); } public function testAddFileFromPsr7Stream(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); $body = 'Sample String Data'; $response = new Response(200, [], $body); - $fileOptions = new FileOptions(); - $fileOptions->setMethod(Method::STORE()); - - $zip->addFileFromPsr7Stream('sample.json', $response->getBody(), $fileOptions); + $zip->addFileFromPsr7Stream('sample.json', $response->getBody()); $zip->finish(); fclose($stream); @@ -405,23 +461,295 @@ class ZipStreamTest extends TestCase $this->assertStringEqualsFile($tmpDir . '/sample.json', $body); } + /** + * @group slow + */ + public function testAddLargeFileFromPsr7Stream(): void + { + [$tmp, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: true, + ); + + $zip->addFileFromPsr7Stream( + fileName: 'sample.json', + stream: new EndlessCycleStream('0'), + maxSize: 0x100000000, + compressionMethod: CompressionMethod::STORE, + lastModificationDateTime: new DateTimeImmutable('2022-01-01 01:01:01Z'), + ); + $zip->finish(); + fclose($stream); + + $tmpDir = $this->validateAndExtractZip($tmp); + + $files = $this->getRecursiveFileList($tmpDir); + $this->assertSame(['sample.json'], $files); + $this->assertFileIsReadable($tmpDir . '/sample.json'); + $this->assertStringStartsWith('000000', file_get_contents(filename: $tmpDir . '/sample.json', length: 20)); + } + + public function testContinueFinishedZip(): void + { + $this->expectException(RuntimeException::class); + + [, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); + $zip->finish(); + + $zip->addFile('sample.txt', '1234'); + } + + /** + * @group slow + */ + public function testManyFilesWithoutZip64(): void + { + $this->expectException(OverflowException::class); + + [, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: false, + ); + + for ($i = 0; $i <= 0xFFFF; $i++) { + $zip->addFile('sample' . $i, ''); + } + + $zip->finish(); + } + + /** + * @group slow + */ + public function testManyFilesWithZip64(): void + { + [$tmp, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: true, + ); + + for ($i = 0; $i <= 0xFFFF; $i++) { + $zip->addFile('sample' . $i, ''); + } + + $zip->finish(); + + $tmpDir = $this->validateAndExtractZip($tmp); + + $files = $this->getRecursiveFileList($tmpDir); + + $this->assertSame(count($files), 0x10000); + } + + /** + * @group slow + */ + public function testLongZipWithout64(): void + { + $this->expectException(OverflowException::class); + + [, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: false, + defaultCompressionMethod: CompressionMethod::STORE, + ); + + for ($i = 0; $i < 4; $i++) { + $zip->addFileFromPsr7Stream( + fileName: 'sample' . $i, + stream: new EndlessCycleStream('0'), + maxSize: 0xFFFFFFFF, + compressionMethod: CompressionMethod::STORE, + lastModificationDateTime: new DateTimeImmutable('2022-01-01 01:01:01Z'), + ); + } + } + + /** + * @group slow + */ + public function testLongZipWith64(): void + { + [$tmp, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: true, + defaultCompressionMethod: CompressionMethod::STORE, + ); + + for ($i = 0; $i < 4; $i++) { + $zip->addFileFromPsr7Stream( + fileName: 'sample' . $i, + stream: new EndlessCycleStream('0'), + maxSize: 0x5FFFFFFF, + compressionMethod: CompressionMethod::STORE, + lastModificationDateTime: new DateTimeImmutable('2022-01-01 01:01:01Z'), + ); + } + + $zip->finish(); + fclose($stream); + + $tmpDir = $this->validateAndExtractZip($tmp); + + $files = $this->getRecursiveFileList($tmpDir); + $this->assertSame(['sample0', 'sample1', 'sample2', 'sample3'], $files); + } + + /** + * @group slow + */ + public function testAddLargeFileWithoutZip64WithZeroHeader(): void + { + $this->expectException(OverflowException::class); + + [, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: false, + defaultEnableZeroHeader: true, + ); + + $zip->addFileFromPsr7Stream( + fileName: 'sample.json', + stream: new EndlessCycleStream('0'), + maxSize: 0x100000000, + compressionMethod: CompressionMethod::STORE, + lastModificationDateTime: new DateTimeImmutable('2022-01-01 01:01:01Z'), + ); + } + + /** + * @group slow + */ + public function testAddsZip64HeaderWhenNeeded(): void + { + [$tmp, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: true, + defaultEnableZeroHeader: false, + ); + + $zip->addFileFromPsr7Stream( + fileName: 'sample.json', + stream: new EndlessCycleStream('0'), + maxSize: 0x100000000, + compressionMethod: CompressionMethod::STORE, + lastModificationDateTime: new DateTimeImmutable('2022-01-01 01:01:01Z'), + ); + + $zip->finish(); + + $tmpDir = $this->validateAndExtractZip($tmp); + $files = $this->getRecursiveFileList($tmpDir); + + $this->assertSame(['sample.json'], $files); + $this->assertFileContains($tmp, PackField::pack( + new PackField(format: 'V', value: 0x06064b50) + )); + } + + /** + * @group slow + */ + public function testDoesNotAddZip64HeaderWhenNotNeeded(): void + { + [$tmp, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: true, + defaultEnableZeroHeader: false, + ); + + $zip->addFileFromPsr7Stream( + fileName: 'sample.json', + stream: new EndlessCycleStream('0'), + maxSize: 0x10, + compressionMethod: CompressionMethod::STORE, + lastModificationDateTime: new DateTimeImmutable('2022-01-01 01:01:01Z'), + ); + + $zip->finish(); + + $tmpDir = $this->validateAndExtractZip($tmp); + $files = $this->getRecursiveFileList($tmpDir); + + $this->assertSame(['sample.json'], $files); + $this->assertFileDoesNotContain($tmp, PackField::pack( + new PackField(format: 'V', value: 0x06064b50) + )); + } + + /** + * @group slow + */ + public function testAddLargeFileWithoutZip64WithoutZeroHeader(): void + { + $this->expectException(OverflowException::class); + + [, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + enableZip64: false, + defaultEnableZeroHeader: false, + ); + + $zip->addFileFromPsr7Stream( + fileName: 'sample.json', + stream: new EndlessCycleStream('0'), + maxSize: 0x100000000, + compressionMethod: CompressionMethod::STORE, + lastModificationDateTime: new DateTimeImmutable('2022-01-01 01:01:01Z'), + ); + } + public function testAddFileFromPsr7StreamWithOutputToPsr7Stream(): void { [$tmp, $resource] = $this->getTmpFileStream(); - $psr7OutputStream = new Stream($resource); + $psr7OutputStream = new ResourceStream($resource); - $options = new ArchiveOptions(); - $options->setOutputStream($psr7OutputStream); - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $psr7OutputStream, + sendHttpHeaders: false, + ); $body = 'Sample String Data'; $response = new Response(200, [], $body); - $fileOptions = new FileOptions(); - $fileOptions->setMethod(Method::STORE()); - - $zip->addFileFromPsr7Stream('sample.json', $response->getBody(), $fileOptions); + $zip->addFileFromPsr7Stream( + fileName: 'sample.json', + stream: $response->getBody(), + compressionMethod: CompressionMethod::STORE, + ); $zip->finish(); $psr7OutputStream->close(); @@ -436,10 +764,10 @@ class ZipStreamTest extends TestCase { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); $body = 'Sample String Data'; $fileSize = strlen($body); @@ -447,10 +775,12 @@ class ZipStreamTest extends TestCase $fakePadding = "\0\0\0\0\0\0"; $response = new Response(200, [], $body . $fakePadding); - $fileOptions = new FileOptions(); - $fileOptions->setMethod(Method::STORE()); - $fileOptions->setSize($fileSize); - $zip->addFileFromPsr7Stream('sample.json', $response->getBody(), $fileOptions); + $zip->addFileFromPsr7Stream( + fileName: 'sample.json', + stream: $response->getBody(), + compressionMethod: CompressionMethod::STORE, + maxSize: $fileSize + ); $zip->finish(); fclose($stream); @@ -461,15 +791,46 @@ class ZipStreamTest extends TestCase $this->assertStringEqualsFile($tmpDir . '/sample.json', $body); } + public function testCreateArchiveHeaders(): void + { + [, $stream] = $this->getTmpFileStream(); + + $headers = []; + + $httpHeaderCallback = function (string $header) use (&$headers) { + $headers[] = $header; + }; + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: true, + outputName: 'example.zip', + httpHeaderCallback: $httpHeaderCallback, + ); + + $zip->addFile( + fileName: 'sample.json', + data: 'foo', + ); + $zip->finish(); + fclose($stream); + + $this->assertContains('Content-Type: application/x-zip', $headers); + $this->assertContains("Content-Disposition: attachment; filename*=UTF-8''example.zip", $headers); + $this->assertContains('Pragma: public', $headers); + $this->assertContains('Cache-Control: public, must-revalidate', $headers); + $this->assertContains('Content-Transfer-Encoding: binary', $headers); + } + public function testCreateArchiveWithFlushOptionSet(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - $options->setFlushOutput(true); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + flushOutput: true, + sendHttpHeaders: false, + ); $zip->addFile('sample.txt', 'Sample String Data'); $zip->addFile('test/sample.txt', 'More Simple Sample Data'); @@ -494,11 +855,11 @@ class ZipStreamTest extends TestCase [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - $options->setFlushOutput(true); - - $zip = new ZipStream(null, $options); + $zip = new ZipStream( + outputStream: $stream, + flushOutput: true, + sendHttpHeaders: false, + ); $zip->addFile('sample.txt', 'Sample String Data'); @@ -512,87 +873,391 @@ class ZipStreamTest extends TestCase ob_start(); } - /** - * @return array - */ - protected function getTmpFileStream(): array - { - $tmp = tempnam(sys_get_temp_dir(), 'zipstreamtest'); - $stream = fopen($tmp, 'wb+'); - - return [$tmp, $stream]; - } - - /** - * @param string $tmp - * @return string - */ - protected function validateAndExtractZip($tmp): string - { - $tmpDir = $this->getTmpDir(); - - $zipArch = new ZipArchive(); - $res = $zipArch->open($tmp); - - if ($res !== true) { - $this->fail("Failed to open {$tmp}. Code: $res"); - - return $tmpDir; - } - - $this->assertSame(0, $zipArch->status); - $this->assertSame(0, $zipArch->statusSys); - - $zipArch->extractTo($tmpDir); - $zipArch->close(); - - return $tmpDir; - } - - protected function getTmpDir(): string - { - $tmp = tempnam(sys_get_temp_dir(), 'zipstreamtest'); - unlink($tmp); - mkdir($tmp) or $this->fail('Failed to make directory'); - - return $tmp; - } - - /** - * @param string $path - * @return string[] - */ - protected function getRecursiveFileList(string $path): array - { - $data = []; - $path = (string)realpath($path); - $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); - - $pathLen = strlen($path); - foreach ($files as $file) { - $filePath = $file->getRealPath(); - if (!is_dir($filePath)) { - $data[] = substr($filePath, $pathLen + 1); - } - } - - sort($data); - - return $data; - } - - protected function addLargeFileFileFromPath($method, $zeroHeader, $zip64): void + public function testAddEmptyDirectory(): void { [$tmp, $stream] = $this->getTmpFileStream(); - $options = new ArchiveOptions(); - $options->setOutputStream($stream); - $options->setLargeFileMethod($method); - $options->setLargeFileSize(5); - $options->setZeroHeader($zeroHeader); - $options->setEnableZip64($zip64); + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + ); - $zip = new ZipStream(null, $options); + $zip->addDirectory('foo'); + + $zip->finish(); + fclose($stream); + + $tmpDir = $this->validateAndExtractZip($tmp); + + $files = $this->getRecursiveFileList($tmpDir, includeDirectories: true); + + $this->assertContains('foo', $files); + + $this->assertFileExists($tmpDir . DIRECTORY_SEPARATOR . 'foo'); + $this->assertDirectoryExists($tmpDir . DIRECTORY_SEPARATOR . 'foo'); + } + + public function testAddFileSimulate(): void + { + [, $stream] = $this->getTmpFileStream(); + + $create = function (OperationMode $operationMode) use ($stream): int { + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: $operationMode, + defaultEnableZeroHeader: true, + outputStream: $stream, + ); + + $zip->addFile('sample.txt', 'Sample String Data'); + $zip->addFile('test/sample.txt', 'More Simple Sample Data'); + + return $zip->finish(); + }; + + + $sizeExpected = $create(OperationMode::NORMAL); + $sizeActual = $create(OperationMode::SIMULATE_LAX); + + $this->assertEquals($sizeExpected, $sizeActual); + } + + public function testAddFileSimulateWithMaxSize(): void + { + [, $stream] = $this->getTmpFileStream(); + + $create = function (OperationMode $operationMode) use ($stream): int { + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: $operationMode, + defaultCompressionMethod: CompressionMethod::STORE, + defaultEnableZeroHeader: true, + outputStream: $stream, + ); + + $zip->addFile('sample.txt', 'Sample String Data', maxSize: 0); + + return $zip->finish(); + }; + + + $sizeExpected = $create(OperationMode::NORMAL); + $sizeActual = $create(OperationMode::SIMULATE_LAX); + + $this->assertEquals($sizeExpected, $sizeActual); + } + + public function testAddFileSimulateWithFstat(): void + { + [, $stream] = $this->getTmpFileStream(); + + $create = function (OperationMode $operationMode) use ($stream): int { + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: $operationMode, + defaultCompressionMethod: CompressionMethod::STORE, + defaultEnableZeroHeader: true, + outputStream: $stream, + ); + + $zip->addFile('sample.txt', 'Sample String Data'); + $zip->addFile('test/sample.txt', 'More Simple Sample Data'); + + return $zip->finish(); + }; + + + $sizeExpected = $create(OperationMode::NORMAL); + $sizeActual = $create(OperationMode::SIMULATE_LAX); + + $this->assertEquals($sizeExpected, $sizeActual); + } + + public function testAddFileSimulateWithExactSizeZero(): void + { + [, $stream] = $this->getTmpFileStream(); + + $create = function (OperationMode $operationMode) use ($stream): int { + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: $operationMode, + defaultCompressionMethod: CompressionMethod::STORE, + defaultEnableZeroHeader: true, + outputStream: $stream, + ); + + $zip->addFile('sample.txt', 'Sample String Data', exactSize: 18); + + return $zip->finish(); + }; + + + $sizeExpected = $create(OperationMode::NORMAL); + $sizeActual = $create(OperationMode::SIMULATE_LAX); + + $this->assertEquals($sizeExpected, $sizeActual); + } + + public function testAddFileSimulateWithExactSizeInitial(): void + { + [, $stream] = $this->getTmpFileStream(); + + $create = function (OperationMode $operationMode) use ($stream): int { + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: $operationMode, + defaultCompressionMethod: CompressionMethod::STORE, + defaultEnableZeroHeader: false, + outputStream: $stream, + ); + + $zip->addFile('sample.txt', 'Sample String Data', exactSize: 18); + + return $zip->finish(); + }; + + $sizeExpected = $create(OperationMode::NORMAL); + $sizeActual = $create(OperationMode::SIMULATE_LAX); + + $this->assertEquals($sizeExpected, $sizeActual); + } + + public function testAddFileSimulateWithZeroSizeInFstat(): void + { + [, $stream] = $this->getTmpFileStream(); + + $create = function (OperationMode $operationMode) use ($stream): int { + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: $operationMode, + defaultCompressionMethod: CompressionMethod::STORE, + defaultEnableZeroHeader: false, + outputStream: $stream, + ); + + $zip->addFileFromPsr7Stream('sample.txt', new class () implements StreamInterface { + public $pos = 0; + + public function __toString(): string + { + return 'test'; + } + + public function close(): void + { + } + + public function detach() + { + } + + public function getSize(): ?int + { + return null; + } + + public function tell(): int + { + return $this->pos; + } + + public function eof(): bool + { + return $this->pos >= 4; + } + + public function isSeekable(): bool + { + return true; + } + + public function seek(int $offset, int $whence = SEEK_SET): void + { + $this->pos = $offset; + } + + public function rewind(): void + { + $this->pos = 0; + } + + public function isWritable(): bool + { + return false; + } + + public function write(string $string): int + { + return 0; + } + + public function isReadable(): bool + { + return true; + } + + public function read(int $length): string + { + $data = substr('test', $this->pos, $length); + $this->pos += strlen($data); + return $data; + } + + public function getContents(): string + { + return $this->read(4); + } + + public function getMetadata(?string $key = null) + { + return $key !== null ? null : []; + } + }); + + return $zip->finish(); + }; + + $sizeExpected = $create(OperationMode::NORMAL); + $sizeActual = $create(OperationMode::SIMULATE_LAX); + + + $this->assertEquals($sizeExpected, $sizeActual); + } + + public function testAddFileSimulateWithWrongExactSize(): void + { + $this->expectException(FileSizeIncorrectException::class); + + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: OperationMode::SIMULATE_LAX, + ); + + $zip->addFile('sample.txt', 'Sample String Data', exactSize: 1000); + } + + public function testAddFileSimulateStrictZero(): void + { + $this->expectException(SimulationFileUnknownException::class); + + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: OperationMode::SIMULATE_STRICT, + defaultEnableZeroHeader: true + ); + + $zip->addFile('sample.txt', 'Sample String Data'); + } + + public function testAddFileSimulateStrictInitial(): void + { + $this->expectException(SimulationFileUnknownException::class); + + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: OperationMode::SIMULATE_STRICT, + defaultEnableZeroHeader: false + ); + + $zip->addFile('sample.txt', 'Sample String Data'); + } + + public function testAddFileCallbackStrict(): void + { + $this->expectException(SimulationFileUnknownException::class); + + $zip = new ZipStream( + sendHttpHeaders: false, + operationMode: OperationMode::SIMULATE_STRICT, + defaultEnableZeroHeader: false + ); + + $zip->addFileFromCallback('sample.txt', callback: function () { + return ''; + }); + } + + public function testAddFileCallbackLax(): void + { + + $zip = new ZipStream( + operationMode: OperationMode::SIMULATE_LAX, + defaultEnableZeroHeader: false, + sendHttpHeaders: false, + ); + + $zip->addFileFromCallback('sample.txt', callback: function () { + return 'Sample String Data'; + }); + + $size = $zip->finish(); + + $this->assertEquals($size, 142); + } + + public function testExecuteSimulation(): void + { + [$tmp, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + operationMode: OperationMode::SIMULATE_LAX, + defaultEnableZeroHeader: false, + sendHttpHeaders: false, + outputStream: $stream, + ); + + $zip->addFileFromCallback( + 'sample.txt', + exactSize: 18, + callback: function () { + return 'Sample String Data'; + } + ); + + $size = $zip->finish(); + + $this->assertEquals(filesize($tmp), 0); + + $zip->executeSimulation(); + fclose($stream); + + clearstatcache(); + + $this->assertEquals(filesize($tmp), $size); + + $tmpDir = $this->validateAndExtractZip($tmp); + + $files = $this->getRecursiveFileList($tmpDir); + $this->assertSame(['sample.txt'], $files); + } + + public function testExecuteSimulationBeforeFinish(): void + { + $this->expectException(RuntimeException::class); + + + [, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + operationMode: OperationMode::SIMULATE_LAX, + defaultEnableZeroHeader: false, + sendHttpHeaders: false, + outputStream: $stream, + ); + + $zip->executeSimulation(); + } + + private function addLargeFileFileFromPath(CompressionMethod $compressionMethod, $zeroHeader, $zip64): void + { + [$tmp, $stream] = $this->getTmpFileStream(); + + $zip = new ZipStream( + outputStream: $stream, + sendHttpHeaders: false, + defaultEnableZeroHeader: $zeroHeader, + enableZip64: $zip64, + ); [$tmpExample, $streamExample] = $this->getTmpFileStream(); for ($i = 0; $i <= 10000; $i++) { @@ -614,6 +1279,6 @@ class ZipStreamTest extends TestCase $files = $this->getRecursiveFileList($tmpDir); $this->assertSame(['sample.txt'], $files); - $this->assertSame(sha1_file($tmpDir . '/sample.txt'), $shaExample, "SHA-1 Mismatch Method: {$method}"); + $this->assertSame(sha1_file($tmpDir . '/sample.txt'), $shaExample, "SHA-1 Mismatch Method: {$compressionMethod->value}"); } } diff --git a/vendor/maennchen/zipstream-php/test/Zs/ExtendedInformationExtraFieldTest.php b/vendor/maennchen/zipstream-php/test/Zs/ExtendedInformationExtraFieldTest.php new file mode 100644 index 000000000..2b8dbed4a --- /dev/null +++ b/vendor/maennchen/zipstream-php/test/Zs/ExtendedInformationExtraFieldTest.php @@ -0,0 +1,22 @@ +assertSame( + bin2hex((string) $extraField), + '5356' . // 2 bytes; Tag for this "extra" block type + '0000' // 2 bytes; TODO: Document + ); + } +} diff --git a/vendor/maennchen/zipstream-php/test/bug/BugHonorFileTimeTest.php b/vendor/maennchen/zipstream-php/test/bug/BugHonorFileTimeTest.php deleted file mode 100644 index 05de4fe26..000000000 --- a/vendor/maennchen/zipstream-php/test/bug/BugHonorFileTimeTest.php +++ /dev/null @@ -1,40 +0,0 @@ -setOutputStream(fopen('php://memory', 'wb')); - $fileOpt->setTime(clone $expectedTime); - - $zip = new ZipStream(null, $archiveOpt); - - $zip->addFile('sample.txt', 'Sample', $fileOpt); - - $zip->finish(); - - $this->assertEquals($expectedTime, $fileOpt->getTime()); - } -} diff --git a/vendor/myclabs/php-enum/LICENSE b/vendor/myclabs/php-enum/LICENSE deleted file mode 100644 index 2a8cf22ec..000000000 --- a/vendor/myclabs/php-enum/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 My C-Labs - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and -associated documentation files (the "Software"), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT -NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/myclabs/php-enum/README.md b/vendor/myclabs/php-enum/README.md deleted file mode 100644 index 1e4d1ff42..000000000 --- a/vendor/myclabs/php-enum/README.md +++ /dev/null @@ -1,138 +0,0 @@ -# PHP Enum implementation inspired from SplEnum - -[![Build Status](https://travis-ci.org/myclabs/php-enum.png?branch=master)](https://travis-ci.org/myclabs/php-enum) -[![Latest Stable Version](https://poser.pugx.org/myclabs/php-enum/version.png)](https://packagist.org/packages/myclabs/php-enum) -[![Total Downloads](https://poser.pugx.org/myclabs/php-enum/downloads.png)](https://packagist.org/packages/myclabs/php-enum) -[![psalm](https://shepherd.dev/github/myclabs/php-enum/coverage.svg)](https://shepherd.dev/github/myclabs/php-enum) - -Maintenance for this project is [supported via Tidelift](https://tidelift.com/subscription/pkg/packagist-myclabs-php-enum?utm_source=packagist-myclabs-php-enum&utm_medium=referral&utm_campaign=readme). - -## Why? - -First, and mainly, `SplEnum` is not integrated to PHP, you have to install the extension separately. - -Using an enum instead of class constants provides the following advantages: - -- You can use an enum as a parameter type: `function setAction(Action $action) {` -- You can use an enum as a return type: `function getAction() : Action {` -- You can enrich the enum with methods (e.g. `format`, `parse`, …) -- You can extend the enum to add new values (make your enum `final` to prevent it) -- You can get a list of all the possible values (see below) - -This Enum class is not intended to replace class constants, but only to be used when it makes sense. - -## Installation - -``` -composer require myclabs/php-enum -``` - -## Declaration - -```php -use MyCLabs\Enum\Enum; - -/** - * Action enum - */ -final class Action extends Enum -{ - private const VIEW = 'view'; - private const EDIT = 'edit'; -} -``` - -## Usage - -```php -$action = Action::VIEW(); - -// or with a dynamic key: -$action = Action::$key(); -// or with a dynamic value: -$action = Action::from($value); -// or -$action = new Action($value); -``` - -As you can see, static methods are automatically implemented to provide quick access to an enum value. - -One advantage over using class constants is to be able to use an enum as a parameter type: - -```php -function setAction(Action $action) { - // ... -} -``` - -## Documentation - -- `__construct()` The constructor checks that the value exist in the enum -- `__toString()` You can `echo $myValue`, it will display the enum value (value of the constant) -- `getValue()` Returns the current value of the enum -- `getKey()` Returns the key of the current value on Enum -- `equals()` Tests whether enum instances are equal (returns `true` if enum values are equal, `false` otherwise) - -Static methods: - -- `from()` Creates an Enum instance, checking that the value exist in the enum -- `toArray()` method Returns all possible values as an array (constant name in key, constant value in value) -- `keys()` Returns the names (keys) of all constants in the Enum class -- `values()` Returns instances of the Enum class of all Enum constants (constant name in key, Enum instance in value) -- `isValid()` Check if tested value is valid on enum set -- `isValidKey()` Check if tested key is valid on enum set -- `assertValidValue()` Assert the value is valid on enum set, throwing exception otherwise -- `search()` Return key for searched value - -### Static methods - -```php -final class Action extends Enum -{ - private const VIEW = 'view'; - private const EDIT = 'edit'; -} - -// Static method: -$action = Action::VIEW(); -$action = Action::EDIT(); -``` - -Static method helpers are implemented using [`__callStatic()`](http://www.php.net/manual/en/language.oop5.overloading.php#object.callstatic). - -If you care about IDE autocompletion, you can either implement the static methods yourself: - -```php -final class Action extends Enum -{ - private const VIEW = 'view'; - - /** - * @return Action - */ - public static function VIEW() { - return new Action(self::VIEW); - } -} -``` - -or you can use phpdoc (this is supported in PhpStorm for example): - -```php -/** - * @method static Action VIEW() - * @method static Action EDIT() - */ -final class Action extends Enum -{ - private const VIEW = 'view'; - private const EDIT = 'edit'; -} -``` - -## Related projects - -- [Doctrine enum mapping](https://github.com/acelaya/doctrine-enum-type) -- [Symfony ParamConverter integration](https://github.com/Ex3v/MyCLabsEnumParamConverter) -- [PHPStan integration](https://github.com/timeweb/phpstan-enum) -- [Yii2 enum mapping](https://github.com/KartaviK/yii2-enum) diff --git a/vendor/myclabs/php-enum/SECURITY.md b/vendor/myclabs/php-enum/SECURITY.md deleted file mode 100644 index 84fd4e320..000000000 --- a/vendor/myclabs/php-enum/SECURITY.md +++ /dev/null @@ -1,11 +0,0 @@ -# Security Policy - -## Supported Versions - -Only the latest stable release is supported. - -## Reporting a Vulnerability - -To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). - -Tidelift will coordinate the fix and disclosure. diff --git a/vendor/myclabs/php-enum/composer.json b/vendor/myclabs/php-enum/composer.json deleted file mode 100644 index 924f924bb..000000000 --- a/vendor/myclabs/php-enum/composer.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "myclabs/php-enum", - "type": "library", - "description": "PHP Enum implementation", - "keywords": ["enum"], - "homepage": "http://github.com/myclabs/php-enum", - "license": "MIT", - "authors": [ - { - "name": "PHP Enum contributors", - "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" - } - ], - "autoload": { - "psr-4": { - "MyCLabs\\Enum\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "MyCLabs\\Tests\\Enum\\": "tests/" - } - }, - "require": { - "php": "^7.3 || ^8.0", - "ext-json": "*" - }, - "require-dev": { - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "1.*", - "vimeo/psalm": "^4.6.2" - } -} diff --git a/vendor/myclabs/php-enum/psalm.xml b/vendor/myclabs/php-enum/psalm.xml deleted file mode 100644 index ff06b66ed..000000000 --- a/vendor/myclabs/php-enum/psalm.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/myclabs/php-enum/src/Enum.php b/vendor/myclabs/php-enum/src/Enum.php deleted file mode 100644 index 89064eba7..000000000 --- a/vendor/myclabs/php-enum/src/Enum.php +++ /dev/null @@ -1,318 +0,0 @@ - - * @author Daniel Costa - * @author Mirosław Filip - * - * @psalm-template T - * @psalm-immutable - * @psalm-consistent-constructor - */ -abstract class Enum implements \JsonSerializable -{ - /** - * Enum value - * - * @var mixed - * @psalm-var T - */ - protected $value; - - /** - * Enum key, the constant name - * - * @var string - */ - private $key; - - /** - * Store existing constants in a static cache per object. - * - * - * @var array - * @psalm-var array> - */ - protected static $cache = []; - - /** - * Cache of instances of the Enum class - * - * @var array - * @psalm-var array> - */ - protected static $instances = []; - - /** - * Creates a new value of some type - * - * @psalm-pure - * @param mixed $value - * - * @psalm-param T $value - * @throws \UnexpectedValueException if incompatible type is given. - */ - public function __construct($value) - { - if ($value instanceof static) { - /** @psalm-var T */ - $value = $value->getValue(); - } - - /** @psalm-suppress ImplicitToStringCast assertValidValueReturningKey returns always a string but psalm has currently an issue here */ - $this->key = static::assertValidValueReturningKey($value); - - /** @psalm-var T */ - $this->value = $value; - } - - /** - * This method exists only for the compatibility reason when deserializing a previously serialized version - * that didn't had the key property - */ - public function __wakeup() - { - /** @psalm-suppress DocblockTypeContradiction key can be null when deserializing an enum without the key */ - if ($this->key === null) { - /** - * @psalm-suppress InaccessibleProperty key is not readonly as marked by psalm - * @psalm-suppress PossiblyFalsePropertyAssignmentValue deserializing a case that was removed - */ - $this->key = static::search($this->value); - } - } - - /** - * @param mixed $value - * @return static - */ - public static function from($value): self - { - $key = static::assertValidValueReturningKey($value); - - return self::__callStatic($key, []); - } - - /** - * @psalm-pure - * @return mixed - * @psalm-return T - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns the enum key (i.e. the constant name). - * - * @psalm-pure - * @return string - */ - public function getKey() - { - return $this->key; - } - - /** - * @psalm-pure - * @psalm-suppress InvalidCast - * @return string - */ - public function __toString() - { - return (string)$this->value; - } - - /** - * Determines if Enum should be considered equal with the variable passed as a parameter. - * Returns false if an argument is an object of different class or not an object. - * - * This method is final, for more information read https://github.com/myclabs/php-enum/issues/4 - * - * @psalm-pure - * @psalm-param mixed $variable - * @return bool - */ - final public function equals($variable = null): bool - { - return $variable instanceof self - && $this->getValue() === $variable->getValue() - && static::class === \get_class($variable); - } - - /** - * Returns the names (keys) of all constants in the Enum class - * - * @psalm-pure - * @psalm-return list - * @return array - */ - public static function keys() - { - return \array_keys(static::toArray()); - } - - /** - * Returns instances of the Enum class of all Enum constants - * - * @psalm-pure - * @psalm-return array - * @return static[] Constant name in key, Enum instance in value - */ - public static function values() - { - $values = array(); - - /** @psalm-var T $value */ - foreach (static::toArray() as $key => $value) { - $values[$key] = new static($value); - } - - return $values; - } - - /** - * Returns all possible values as an array - * - * @psalm-pure - * @psalm-suppress ImpureStaticProperty - * - * @psalm-return array - * @return array Constant name in key, constant value in value - */ - public static function toArray() - { - $class = static::class; - - if (!isset(static::$cache[$class])) { - /** @psalm-suppress ImpureMethodCall this reflection API usage has no side-effects here */ - $reflection = new \ReflectionClass($class); - /** @psalm-suppress ImpureMethodCall this reflection API usage has no side-effects here */ - static::$cache[$class] = $reflection->getConstants(); - } - - return static::$cache[$class]; - } - - /** - * Check if is valid enum value - * - * @param $value - * @psalm-param mixed $value - * @psalm-pure - * @psalm-assert-if-true T $value - * @return bool - */ - public static function isValid($value) - { - return \in_array($value, static::toArray(), true); - } - - /** - * Asserts valid enum value - * - * @psalm-pure - * @psalm-assert T $value - * @param mixed $value - */ - public static function assertValidValue($value): void - { - self::assertValidValueReturningKey($value); - } - - /** - * Asserts valid enum value - * - * @psalm-pure - * @psalm-assert T $value - * @param mixed $value - * @return string - */ - private static function assertValidValueReturningKey($value): string - { - if (false === ($key = static::search($value))) { - throw new \UnexpectedValueException("Value '$value' is not part of the enum " . static::class); - } - - return $key; - } - - /** - * Check if is valid enum key - * - * @param $key - * @psalm-param string $key - * @psalm-pure - * @return bool - */ - public static function isValidKey($key) - { - $array = static::toArray(); - - return isset($array[$key]) || \array_key_exists($key, $array); - } - - /** - * Return key for value - * - * @param mixed $value - * - * @psalm-param mixed $value - * @psalm-pure - * @return string|false - */ - public static function search($value) - { - return \array_search($value, static::toArray(), true); - } - - /** - * Returns a value when called statically like so: MyEnum::SOME_VALUE() given SOME_VALUE is a class constant - * - * @param string $name - * @param array $arguments - * - * @return static - * @throws \BadMethodCallException - * - * @psalm-pure - */ - public static function __callStatic($name, $arguments) - { - $class = static::class; - if (!isset(self::$instances[$class][$name])) { - $array = static::toArray(); - if (!isset($array[$name]) && !\array_key_exists($name, $array)) { - $message = "No static method or enum constant '$name' in class " . static::class; - throw new \BadMethodCallException($message); - } - return self::$instances[$class][$name] = new static($array[$name]); - } - return clone self::$instances[$class][$name]; - } - - /** - * Specify data which should be serialized to JSON. This method returns data that can be serialized by json_encode() - * natively. - * - * @return mixed - * @link http://php.net/manual/en/jsonserializable.jsonserialize.php - * @psalm-pure - */ - #[\ReturnTypeWillChange] - public function jsonSerialize() - { - return $this->getValue(); - } -} diff --git a/vendor/myclabs/php-enum/src/PHPUnit/Comparator.php b/vendor/myclabs/php-enum/src/PHPUnit/Comparator.php deleted file mode 100644 index 302bf80eb..000000000 --- a/vendor/myclabs/php-enum/src/PHPUnit/Comparator.php +++ /dev/null @@ -1,54 +0,0 @@ -register(new \MyCLabs\Enum\PHPUnit\Comparator()); - */ -final class Comparator extends \SebastianBergmann\Comparator\Comparator -{ - public function accepts($expected, $actual) - { - return $expected instanceof Enum && ( - $actual instanceof Enum || $actual === null - ); - } - - /** - * @param Enum $expected - * @param Enum|null $actual - * - * @return void - */ - public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false) - { - if ($expected->equals($actual)) { - return; - } - - throw new ComparisonFailure( - $expected, - $actual, - $this->formatEnum($expected), - $this->formatEnum($actual), - false, - 'Failed asserting that two Enums are equal.' - ); - } - - private function formatEnum(Enum $enum = null) - { - if ($enum === null) { - return "null"; - } - - return get_class($enum)."::{$enum->getKey()}()"; - } -} diff --git a/vendor/nesbot/carbon/.phpstorm.meta.php b/vendor/nesbot/carbon/.phpstorm.meta.php new file mode 100644 index 000000000..bd7c7e0e7 --- /dev/null +++ b/vendor/nesbot/carbon/.phpstorm.meta.php @@ -0,0 +1,10 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\MessageFormatter; + +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +if (!class_exists(LazyMessageFormatter::class, false)) { + abstract class LazyMessageFormatter implements MessageFormatterInterface + { + public function format(string $message, string $locale, array $parameters = []): string + { + return $this->formatter->format( + $message, + $this->transformLocale($locale), + $parameters + ); + } + } +} diff --git a/vendor/nesbot/carbon/lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php b/vendor/nesbot/carbon/lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php new file mode 100644 index 000000000..cbd890d5b --- /dev/null +++ b/vendor/nesbot/carbon/lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\MessageFormatter; + +use Symfony\Component\Translation\Formatter\ChoiceMessageFormatterInterface; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +if (!class_exists(LazyMessageFormatter::class, false)) { + abstract class LazyMessageFormatter implements MessageFormatterInterface, ChoiceMessageFormatterInterface + { + abstract protected function transformLocale(?string $locale): ?string; + + public function format($message, $locale, array $parameters = []) + { + return $this->formatter->format( + $message, + $this->transformLocale($locale), + $parameters + ); + } + + public function choiceFormat($message, $number, $locale, array $parameters = []) + { + return $this->formatter->choiceFormat($message, $number, $locale, $parameters); + } + } +} diff --git a/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php b/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php new file mode 100644 index 000000000..ba7cf6320 --- /dev/null +++ b/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroBuiltin.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\BetterReflection\Reflection; +use ReflectionMethod; + +if (!class_exists(AbstractReflectionMacro::class, false)) { + abstract class AbstractReflectionMacro extends AbstractMacro + { + /** + * {@inheritdoc} + */ + public function getReflection(): ?ReflectionMethod + { + if ($this->reflectionFunction instanceof Reflection\ReflectionMethod) { + return new Reflection\Adapter\ReflectionMethod($this->reflectionFunction); + } + + return $this->reflectionFunction instanceof ReflectionMethod + ? $this->reflectionFunction + : null; + } + } +} diff --git a/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php b/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php new file mode 100644 index 000000000..bd4c8e804 --- /dev/null +++ b/vendor/nesbot/carbon/lazy/Carbon/PHPStan/AbstractMacroStatic.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\BetterReflection\Reflection; +use ReflectionMethod; + +if (!class_exists(AbstractReflectionMacro::class, false)) { + abstract class AbstractReflectionMacro extends AbstractMacro + { + /** + * {@inheritdoc} + */ + public function getReflection(): ?Reflection\Adapter\ReflectionMethod + { + if ($this->reflectionFunction instanceof Reflection\Adapter\ReflectionMethod) { + return $this->reflectionFunction; + } + + if ($this->reflectionFunction instanceof Reflection\ReflectionMethod) { + return new Reflection\Adapter\ReflectionMethod($this->reflectionFunction); + } + + return $this->reflectionFunction instanceof ReflectionMethod + ? new Reflection\Adapter\ReflectionMethod( + Reflection\ReflectionMethod::createFromName( + $this->reflectionFunction->getDeclaringClass()->getName(), + $this->reflectionFunction->getName() + ) + ) + : null; + } + } +} diff --git a/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php b/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php new file mode 100644 index 000000000..f615b3a64 --- /dev/null +++ b/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroStrongType.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +if (!class_exists(LazyMacro::class, false)) { + abstract class LazyMacro extends AbstractReflectionMacro + { + /** + * {@inheritdoc} + */ + public function getFileName(): ?string + { + $file = $this->reflectionFunction->getFileName(); + + return (($file ? realpath($file) : null) ?: $file) ?: null; + } + + /** + * {@inheritdoc} + */ + public function getStartLine(): ?int + { + return $this->reflectionFunction->getStartLine(); + } + + /** + * {@inheritdoc} + */ + public function getEndLine(): ?int + { + return $this->reflectionFunction->getEndLine(); + } + } +} diff --git a/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php b/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php new file mode 100644 index 000000000..bf64c1dd9 --- /dev/null +++ b/vendor/nesbot/carbon/lazy/Carbon/PHPStan/MacroWeakType.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +if (!class_exists(LazyMacro::class, false)) { + abstract class LazyMacro extends AbstractReflectionMacro + { + /** + * {@inheritdoc} + * + * @return string|false + */ + public function getFileName() + { + $file = $this->reflectionFunction->getFileName(); + + return (($file ? realpath($file) : null) ?: $file) ?: null; + } + + /** + * {@inheritdoc} + * + * @return int|false + */ + public function getStartLine() + { + return $this->reflectionFunction->getStartLine(); + } + + /** + * {@inheritdoc} + * + * @return int|false + */ + public function getEndLine() + { + return $this->reflectionFunction->getEndLine(); + } + } +} diff --git a/vendor/nesbot/carbon/lazy/Carbon/TranslatorStrongType.php b/vendor/nesbot/carbon/lazy/Carbon/TranslatorStrongType.php new file mode 100644 index 000000000..d35308a66 --- /dev/null +++ b/vendor/nesbot/carbon/lazy/Carbon/TranslatorStrongType.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Symfony\Component\Translation\MessageCatalogueInterface; + +if (!class_exists(LazyTranslator::class, false)) { + class LazyTranslator extends AbstractTranslator implements TranslatorStrongTypeInterface + { + public function trans(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string + { + return $this->translate($id, $parameters, $domain, $locale); + } + + public function getFromCatalogue(MessageCatalogueInterface $catalogue, string $id, string $domain = 'messages') + { + $messages = $this->getPrivateProperty($catalogue, 'messages'); + + if (isset($messages[$domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX][$id])) { + return $messages[$domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX][$id]; + } + + if (isset($messages[$domain][$id])) { + return $messages[$domain][$id]; + } + + $fallbackCatalogue = $this->getPrivateProperty($catalogue, 'fallbackCatalogue'); + + if ($fallbackCatalogue !== null) { + return $this->getFromCatalogue($fallbackCatalogue, $id, $domain); + } + + return $id; + } + + private function getPrivateProperty($instance, string $field) + { + return (function (string $field) { + return $this->$field; + })->call($instance, $field); + } + } +} diff --git a/vendor/nesbot/carbon/lazy/Carbon/TranslatorWeakType.php b/vendor/nesbot/carbon/lazy/Carbon/TranslatorWeakType.php new file mode 100644 index 000000000..94dbdc30a --- /dev/null +++ b/vendor/nesbot/carbon/lazy/Carbon/TranslatorWeakType.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +if (!class_exists(LazyTranslator::class, false)) { + class LazyTranslator extends AbstractTranslator + { + /** + * Returns the translation. + * + * @param string|null $id + * @param array $parameters + * @param string|null $domain + * @param string|null $locale + * + * @return string + */ + public function trans($id, array $parameters = [], $domain = null, $locale = null) + { + return $this->translate($id, $parameters, $domain, $locale); + } + } +} diff --git a/vendor/nesbot/carbon/readme.md b/vendor/nesbot/carbon/readme.md new file mode 100644 index 000000000..057327a5c --- /dev/null +++ b/vendor/nesbot/carbon/readme.md @@ -0,0 +1,155 @@ +# Carbon + +[![Latest Stable Version](https://img.shields.io/packagist/v/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon) +[![Total Downloads](https://img.shields.io/packagist/dt/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon) +[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbriannesbitt%2FCarbon%2Fbadge&style=flat-square&label=Build&logo=none)](https://github.com/briannesbitt/Carbon/actions) +[![codecov.io](https://img.shields.io/codecov/c/github/briannesbitt/Carbon.svg?style=flat-square)](https://codecov.io/github/briannesbitt/Carbon?branch=master) +[![Tidelift](https://tidelift.com/badges/github/briannesbitt/Carbon)](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme) + +An international PHP extension for DateTime. [https://carbon.nesbot.com](https://carbon.nesbot.com) + +```php +toDateTimeString()); +printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); //implicit __toString() +$tomorrow = Carbon::now()->addDay(); +$lastWeek = Carbon::now()->subWeek(); +$nextSummerOlympics = Carbon::createFromDate(2016)->addYears(4); + +$officialDate = Carbon::now()->toRfc2822String(); + +$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age; + +$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London'); + +$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT'); + +// Don't really want this to happen so mock now +Carbon::setTestNow(Carbon::createFromDate(2000, 1, 1)); + +// comparisons are always done in UTC +if (Carbon::now()->gte($internetWillBlowUpOn)) { + die(); +} + +// Phew! Return to normal behaviour +Carbon::setTestNow(); + +if (Carbon::now()->isWeekend()) { + echo 'Party!'; +} +// Over 200 languages (and over 500 regional variants) supported: +echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago' +echo Carbon::now()->subMinutes(2)->locale('zh_CN')->diffForHumans(); // '2分钟前' +echo Carbon::parse('2019-07-23 14:51')->isoFormat('LLLL'); // 'Tuesday, July 23, 2019 2:51 PM' +echo Carbon::parse('2019-07-23 14:51')->locale('fr_FR')->isoFormat('LLLL'); // 'mardi 23 juillet 2019 14:51' + +// ... but also does 'from now', 'after' and 'before' +// rolling up to seconds, minutes, hours, days, months, years + +$daysSinceEpoch = Carbon::createFromTimestamp(0)->diffInDays(); +``` + +[Get supported nesbot/carbon with the Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme) + +## Installation + +### With Composer + +``` +$ composer require nesbot/carbon +``` + +```json +{ + "require": { + "nesbot/carbon": "^2.16" + } +} +``` + +```php + + +### Translators + +[Thanks to people helping us to translate Carbon in so many languages](https://carbon.nesbot.com/contribute/translators/) + +### Sponsors + +Support this project by becoming a sponsor. Your logo will show up here with a link to your website. + + +CasinoHex Canada +Casino-portugal.pt +Slots City +Probukmacher +Игровые автоматы +inkedin +Онлайн казино України +AzuraCast +Triplebyte +GitHub Sponsors +Salesforce + + +[[Become a sponsor via OpenCollective](https://opencollective.com/Carbon#sponsor)] + + + + +[[Become a sponsor via GitHub](https://github.com/sponsors/kylekatarnls)] + +### Backers + +Thank you to all our backers! 🙏 + + + +[[Become a backer](https://opencollective.com/Carbon#backer)] + +## Carbon for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of ``Carbon`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/vendor/nesbot/carbon/sponsors.php b/vendor/nesbot/carbon/sponsors.php new file mode 100644 index 000000000..4f6d994ee --- /dev/null +++ b/vendor/nesbot/carbon/sponsors.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Carbon\CarbonImmutable; + +require_once __DIR__.'/vendor/autoload.php'; + +function getOpenCollectiveSponsors(): string +{ + $members = json_decode(file_get_contents('https://opencollective.com/carbon/members/all.json'), true); + $sixMonthsAgo = CarbonImmutable::parse('now - 6 months')->format('Y-m-d h:i'); + + $list = array_filter($members, static function ($member) use ($sixMonthsAgo) { + return ($member['lastTransactionAmount'] > 3 || $member['isActive']) && + $member['role'] === 'BACKER' && + $member['type'] !== 'USER' && + ($member['totalAmountDonated'] > 100 || $member['lastTransactionAt'] > $sixMonthsAgo || $member['isActive'] && $member['lastTransactionAmount'] >= 30); + }); + + $list = array_map(static function (array $member) { + $createdAt = CarbonImmutable::parse($member['createdAt']); + $lastTransactionAt = CarbonImmutable::parse($member['lastTransactionAt']); + + if ($createdAt->format('d H:i:s.u') > $lastTransactionAt->format('d H:i:s.u')) { + $createdAt = $createdAt + ->setDay($lastTransactionAt->day) + ->modify($lastTransactionAt->format('H:i:s.u')); + } + + $monthlyContribution = (float) ($member['totalAmountDonated'] / ceil($createdAt->floatDiffInMonths())); + + if ( + $lastTransactionAt->isAfter('last month') && + $member['lastTransactionAmount'] > $monthlyContribution + ) { + $monthlyContribution = (float) $member['lastTransactionAmount']; + } + + $yearlyContribution = (float) ($member['totalAmountDonated'] / max(1, $createdAt->floatDiffInYears())); + $status = null; + + if ($monthlyContribution > 29) { + $status = 'sponsor'; + } elseif ($monthlyContribution > 3 || $yearlyContribution > 20) { + $status = 'backer'; + } elseif ($member['totalAmountDonated'] > 0) { + $status = 'helper'; + } + + return array_merge($member, [ + 'star' => ($monthlyContribution > 98 || $yearlyContribution > 500), + 'status' => $status, + 'monthlyContribution' => $monthlyContribution, + 'yearlyContribution' => $yearlyContribution, + ]); + }, $list); + + usort($list, static function (array $a, array $b) { + return ($b['monthlyContribution'] <=> $a['monthlyContribution']) + ?: ($b['totalAmountDonated'] <=> $a['totalAmountDonated']); + }); + + return implode('', array_map(static function (array $member) { + $href = htmlspecialchars($member['website'] ?? $member['profile']); + $src = $member['image'] ?? (strtr($member['profile'], ['https://opencollective.com/' => 'https://images.opencollective.com/']).'/avatar/256.png'); + [$x, $y] = @getimagesize($src) ?: [0, 0]; + $validImage = ($x && $y); + $src = $validImage ? htmlspecialchars($src) : 'https://opencollective.com/static/images/default-guest-logo.svg'; + $height = 64; + $width = $validImage ? round($x * $height / $y) : $height; + $href .= (strpos($href, '?') === false ? '?' : '&').'utm_source=opencollective&utm_medium=github&utm_campaign=Carbon'; + $title = htmlspecialchars(($member['description'] ?? null) ?: $member['name']); + $alt = htmlspecialchars($member['name']); + + return "\n".''. + ''.$alt.''. + ''; + }, $list))."\n"; +} + +file_put_contents('readme.md', preg_replace_callback( + '/()[\s\S]+()/', + static function (array $match) { + return $match[1].getOpenCollectiveSponsors().$match[2]; + }, + file_get_contents('readme.md') +)); diff --git a/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php b/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php new file mode 100644 index 000000000..8b8fe089e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/AbstractTranslator.php @@ -0,0 +1,398 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\MessageFormatter\MessageFormatterMapper; +use Closure; +use ReflectionException; +use ReflectionFunction; +use Symfony\Component\Translation; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; +use Symfony\Component\Translation\Loader\ArrayLoader; + +abstract class AbstractTranslator extends Translation\Translator +{ + /** + * Translator singletons for each language. + * + * @var array + */ + protected static $singletons = []; + + /** + * List of custom localized messages. + * + * @var array + */ + protected $messages = []; + + /** + * List of custom directories that contain translation files. + * + * @var string[] + */ + protected $directories = []; + + /** + * Set to true while constructing. + * + * @var bool + */ + protected $initializing = false; + + /** + * List of locales aliases. + * + * @var array + */ + protected $aliases = [ + 'me' => 'sr_Latn_ME', + 'scr' => 'sh', + ]; + + /** + * Return a singleton instance of Translator. + * + * @param string|null $locale optional initial locale ("en" - english by default) + * + * @return static + */ + public static function get($locale = null) + { + $locale = $locale ?: 'en'; + $key = static::class === Translator::class ? $locale : static::class.'|'.$locale; + + if (!isset(static::$singletons[$key])) { + static::$singletons[$key] = new static($locale); + } + + return static::$singletons[$key]; + } + + public function __construct($locale, MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false) + { + parent::setLocale($locale); + $this->initializing = true; + $this->directories = [__DIR__.'/Lang']; + $this->addLoader('array', new ArrayLoader()); + parent::__construct($locale, new MessageFormatterMapper($formatter), $cacheDir, $debug); + $this->initializing = false; + } + + /** + * Returns the list of directories translation files are searched in. + * + * @return array + */ + public function getDirectories(): array + { + return $this->directories; + } + + /** + * Set list of directories translation files are searched in. + * + * @param array $directories new directories list + * + * @return $this + */ + public function setDirectories(array $directories) + { + $this->directories = $directories; + + return $this; + } + + /** + * Add a directory to the list translation files are searched in. + * + * @param string $directory new directory + * + * @return $this + */ + public function addDirectory(string $directory) + { + $this->directories[] = $directory; + + return $this; + } + + /** + * Remove a directory from the list translation files are searched in. + * + * @param string $directory directory path + * + * @return $this + */ + public function removeDirectory(string $directory) + { + $search = rtrim(strtr($directory, '\\', '/'), '/'); + + return $this->setDirectories(array_filter($this->getDirectories(), function ($item) use ($search) { + return rtrim(strtr($item, '\\', '/'), '/') !== $search; + })); + } + + /** + * Reset messages of a locale (all locale if no locale passed). + * Remove custom messages and reload initial messages from matching + * file in Lang directory. + * + * @param string|null $locale + * + * @return bool + */ + public function resetMessages($locale = null) + { + if ($locale === null) { + $this->messages = []; + + return true; + } + + foreach ($this->getDirectories() as $directory) { + $data = @include sprintf('%s/%s.php', rtrim($directory, '\\/'), $locale); + + if ($data !== false) { + $this->messages[$locale] = $data; + $this->addResource('array', $this->messages[$locale], $locale); + + return true; + } + } + + return false; + } + + /** + * Returns the list of files matching a given locale prefix (or all if empty). + * + * @param string $prefix prefix required to filter result + * + * @return array + */ + public function getLocalesFiles($prefix = '') + { + $files = []; + + foreach ($this->getDirectories() as $directory) { + $directory = rtrim($directory, '\\/'); + + foreach (glob("$directory/$prefix*.php") as $file) { + $files[] = $file; + } + } + + return array_unique($files); + } + + /** + * Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * + * @param string $prefix prefix required to filter result + * + * @return array + */ + public function getAvailableLocales($prefix = '') + { + $locales = []; + foreach ($this->getLocalesFiles($prefix) as $file) { + $locales[] = substr($file, strrpos($file, '/') + 1, -4); + } + + return array_unique(array_merge($locales, array_keys($this->messages))); + } + + protected function translate(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string + { + if ($domain === null) { + $domain = 'messages'; + } + + $catalogue = $this->getCatalogue($locale); + $format = $this instanceof TranslatorStrongTypeInterface + ? $this->getFromCatalogue($catalogue, (string) $id, $domain) + : $this->getCatalogue($locale)->get((string) $id, $domain); // @codeCoverageIgnore + + if ($format instanceof Closure) { + // @codeCoverageIgnoreStart + try { + $count = (new ReflectionFunction($format))->getNumberOfRequiredParameters(); + } catch (ReflectionException $exception) { + $count = 0; + } + // @codeCoverageIgnoreEnd + + return $format( + ...array_values($parameters), + ...array_fill(0, max(0, $count - \count($parameters)), null) + ); + } + + return parent::trans($id, $parameters, $domain, $locale); + } + + /** + * Init messages language from matching file in Lang directory. + * + * @param string $locale + * + * @return bool + */ + protected function loadMessagesFromFile($locale) + { + return isset($this->messages[$locale]) || $this->resetMessages($locale); + } + + /** + * Set messages of a locale and take file first if present. + * + * @param string $locale + * @param array $messages + * + * @return $this + */ + public function setMessages($locale, $messages) + { + $this->loadMessagesFromFile($locale); + $this->addResource('array', $messages, $locale); + $this->messages[$locale] = array_merge( + $this->messages[$locale] ?? [], + $messages + ); + + return $this; + } + + /** + * Set messages of the current locale and take file first if present. + * + * @param array $messages + * + * @return $this + */ + public function setTranslations($messages) + { + return $this->setMessages($this->getLocale(), $messages); + } + + /** + * Get messages of a locale, if none given, return all the + * languages. + * + * @param string|null $locale + * + * @return array + */ + public function getMessages($locale = null) + { + return $locale === null ? $this->messages : $this->messages[$locale]; + } + + /** + * Set the current translator locale and indicate if the source locale file exists + * + * @param string $locale locale ex. en + * + * @return bool + */ + public function setLocale($locale) + { + $locale = preg_replace_callback('/[-_]([a-z]{2,}|\d{2,})/', function ($matches) { + // _2-letters or YUE is a region, _3+-letters is a variant + $upper = strtoupper($matches[1]); + + if ($upper === 'YUE' || $upper === 'ISO' || \strlen($upper) < 3) { + return "_$upper"; + } + + return '_'.ucfirst($matches[1]); + }, strtolower($locale)); + + $previousLocale = $this->getLocale(); + + if ($previousLocale === $locale && isset($this->messages[$locale])) { + return true; + } + + unset(static::$singletons[$previousLocale]); + + if ($locale === 'auto') { + $completeLocale = setlocale(LC_TIME, '0'); + $locale = preg_replace('/^([^_.-]+).*$/', '$1', $completeLocale); + $locales = $this->getAvailableLocales($locale); + + $completeLocaleChunks = preg_split('/[_.-]+/', $completeLocale); + + $getScore = function ($language) use ($completeLocaleChunks) { + return self::compareChunkLists($completeLocaleChunks, preg_split('/[_.-]+/', $language)); + }; + + usort($locales, function ($first, $second) use ($getScore) { + return $getScore($second) <=> $getScore($first); + }); + + $locale = $locales[0]; + } + + if (isset($this->aliases[$locale])) { + $locale = $this->aliases[$locale]; + } + + // If subtag (ex: en_CA) first load the macro (ex: en) to have a fallback + if (str_contains($locale, '_') && + $this->loadMessagesFromFile($macroLocale = preg_replace('/^([^_]+).*$/', '$1', $locale)) + ) { + parent::setLocale($macroLocale); + } + + if (!$this->loadMessagesFromFile($locale) && !$this->initializing) { + return false; + } + + parent::setLocale($locale); + + return true; + } + + /** + * Show locale on var_dump(). + * + * @return array + */ + public function __debugInfo() + { + return [ + 'locale' => $this->getLocale(), + ]; + } + + private static function compareChunkLists($referenceChunks, $chunks) + { + $score = 0; + + foreach ($referenceChunks as $index => $chunk) { + if (!isset($chunks[$index])) { + $score++; + + continue; + } + + if (strtolower($chunks[$index]) === strtolower($chunk)) { + $score += 10; + } + } + + return $score; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Carbon.php b/vendor/nesbot/carbon/src/Carbon/Carbon.php new file mode 100644 index 000000000..e32569ae3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Carbon.php @@ -0,0 +1,523 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Traits\Date; +use Carbon\Traits\DeprecatedProperties; +use DateTime; +use DateTimeInterface; +use DateTimeZone; + +/** + * A simple API extension for DateTime. + * + * @mixin DeprecatedProperties + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method $this years(int $value) Set current instance year to the given value. + * @method $this year(int $value) Set current instance year to the given value. + * @method $this setYears(int $value) Set current instance year to the given value. + * @method $this setYear(int $value) Set current instance year to the given value. + * @method $this months(int $value) Set current instance month to the given value. + * @method $this month(int $value) Set current instance month to the given value. + * @method $this setMonths(int $value) Set current instance month to the given value. + * @method $this setMonth(int $value) Set current instance month to the given value. + * @method $this days(int $value) Set current instance day to the given value. + * @method $this day(int $value) Set current instance day to the given value. + * @method $this setDays(int $value) Set current instance day to the given value. + * @method $this setDay(int $value) Set current instance day to the given value. + * @method $this hours(int $value) Set current instance hour to the given value. + * @method $this hour(int $value) Set current instance hour to the given value. + * @method $this setHours(int $value) Set current instance hour to the given value. + * @method $this setHour(int $value) Set current instance hour to the given value. + * @method $this minutes(int $value) Set current instance minute to the given value. + * @method $this minute(int $value) Set current instance minute to the given value. + * @method $this setMinutes(int $value) Set current instance minute to the given value. + * @method $this setMinute(int $value) Set current instance minute to the given value. + * @method $this seconds(int $value) Set current instance second to the given value. + * @method $this second(int $value) Set current instance second to the given value. + * @method $this setSeconds(int $value) Set current instance second to the given value. + * @method $this setSecond(int $value) Set current instance second to the given value. + * @method $this millis(int $value) Set current instance millisecond to the given value. + * @method $this milli(int $value) Set current instance millisecond to the given value. + * @method $this setMillis(int $value) Set current instance millisecond to the given value. + * @method $this setMilli(int $value) Set current instance millisecond to the given value. + * @method $this milliseconds(int $value) Set current instance millisecond to the given value. + * @method $this millisecond(int $value) Set current instance millisecond to the given value. + * @method $this setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method $this setMillisecond(int $value) Set current instance millisecond to the given value. + * @method $this micros(int $value) Set current instance microsecond to the given value. + * @method $this micro(int $value) Set current instance microsecond to the given value. + * @method $this setMicros(int $value) Set current instance microsecond to the given value. + * @method $this setMicro(int $value) Set current instance microsecond to the given value. + * @method $this microseconds(int $value) Set current instance microsecond to the given value. + * @method $this microsecond(int $value) Set current instance microsecond to the given value. + * @method $this setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method $this setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method $this addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method $this addYear() Add one year to the instance (using date interval). + * @method $this subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method $this subYear() Sub one year to the instance (using date interval). + * @method $this addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method $this subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method $this addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method $this addMonth() Add one month to the instance (using date interval). + * @method $this subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method $this subMonth() Sub one month to the instance (using date interval). + * @method $this addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method $this addDay() Add one day to the instance (using date interval). + * @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method $this subDay() Sub one day to the instance (using date interval). + * @method $this addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method $this addHour() Add one hour to the instance (using date interval). + * @method $this subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method $this subHour() Sub one hour to the instance (using date interval). + * @method $this addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method $this addMinute() Add one minute to the instance (using date interval). + * @method $this subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method $this subMinute() Sub one minute to the instance (using date interval). + * @method $this addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method $this addSecond() Add one second to the instance (using date interval). + * @method $this subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method $this subSecond() Sub one second to the instance (using date interval). + * @method $this addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMilli() Add one millisecond to the instance (using date interval). + * @method $this subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMilli() Sub one millisecond to the instance (using date interval). + * @method $this addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMillisecond() Add one millisecond to the instance (using date interval). + * @method $this subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMillisecond() Sub one millisecond to the instance (using date interval). + * @method $this addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMicro() Add one microsecond to the instance (using date interval). + * @method $this subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMicro() Sub one microsecond to the instance (using date interval). + * @method $this addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMicrosecond() Add one microsecond to the instance (using date interval). + * @method $this subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method $this addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method $this addMillennium() Add one millennium to the instance (using date interval). + * @method $this subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method $this subMillennium() Sub one millennium to the instance (using date interval). + * @method $this addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method $this addCentury() Add one century to the instance (using date interval). + * @method $this subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method $this subCentury() Sub one century to the instance (using date interval). + * @method $this addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method $this subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method $this addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method $this addDecade() Add one decade to the instance (using date interval). + * @method $this subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method $this subDecade() Sub one decade to the instance (using date interval). + * @method $this addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method $this subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method $this addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method $this addQuarter() Add one quarter to the instance (using date interval). + * @method $this subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method $this subQuarter() Sub one quarter to the instance (using date interval). + * @method $this addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method $this subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method $this addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method $this addWeek() Add one week to the instance (using date interval). + * @method $this subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method $this subWeek() Sub one week to the instance (using date interval). + * @method $this addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method $this addWeekday() Add one weekday to the instance (using date interval). + * @method $this subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method $this subWeekday() Sub one weekday to the instance (using date interval). + * @method $this addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMicro() Add one microsecond to the instance (using timestamp). + * @method $this subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method $this addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method $this subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method $this addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMilli() Add one millisecond to the instance (using timestamp). + * @method $this subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method $this addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method $this subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method $this addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealSecond() Add one second to the instance (using timestamp). + * @method $this subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method $this addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMinute() Add one minute to the instance (using timestamp). + * @method $this subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method $this addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method $this addRealHour() Add one hour to the instance (using timestamp). + * @method $this subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method $this subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method $this addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method $this addRealDay() Add one day to the instance (using timestamp). + * @method $this subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method $this subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method $this addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method $this addRealWeek() Add one week to the instance (using timestamp). + * @method $this subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method $this subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method $this addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMonth() Add one month to the instance (using timestamp). + * @method $this subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method $this addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method $this addRealQuarter() Add one quarter to the instance (using timestamp). + * @method $this subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method $this subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method $this addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method $this addRealYear() Add one year to the instance (using timestamp). + * @method $this subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method $this subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method $this addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method $this addRealDecade() Add one decade to the instance (using timestamp). + * @method $this subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method $this subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method $this addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method $this addRealCentury() Add one century to the instance (using timestamp). + * @method $this subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method $this subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method $this addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMillennium() Add one millennium to the instance (using timestamp). + * @method $this subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method static static|false createFromFormat(string $format, string $time, DateTimeZone|string|false|null $timezone = null) Parse a string into a new Carbon object according to the specified format. + * @method static static __set_state(array $array) https://php.net/manual/en/datetime.set-state.php + * + * + */ +class Carbon extends DateTime implements CarbonInterface +{ + use Date; + + /** + * Returns true if the current class/instance is mutable. + * + * @return bool + */ + public static function isMutable() + { + return true; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php b/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php new file mode 100644 index 000000000..1ce967b25 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use DateTimeInterface; + +interface CarbonConverterInterface +{ + public function convertDate(DateTimeInterface $dateTime, bool $negated = false): CarbonInterface; +} diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php b/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php new file mode 100644 index 000000000..4c9c1cfef --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php @@ -0,0 +1,582 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Traits\Date; +use Carbon\Traits\DeprecatedProperties; +use DateTimeImmutable; +use DateTimeInterface; +use DateTimeZone; + +/** + * A simple API extension for DateTimeImmutable. + * + * @mixin DeprecatedProperties + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method CarbonImmutable years(int $value) Set current instance year to the given value. + * @method CarbonImmutable year(int $value) Set current instance year to the given value. + * @method CarbonImmutable setYears(int $value) Set current instance year to the given value. + * @method CarbonImmutable setYear(int $value) Set current instance year to the given value. + * @method CarbonImmutable months(int $value) Set current instance month to the given value. + * @method CarbonImmutable month(int $value) Set current instance month to the given value. + * @method CarbonImmutable setMonths(int $value) Set current instance month to the given value. + * @method CarbonImmutable setMonth(int $value) Set current instance month to the given value. + * @method CarbonImmutable days(int $value) Set current instance day to the given value. + * @method CarbonImmutable day(int $value) Set current instance day to the given value. + * @method CarbonImmutable setDays(int $value) Set current instance day to the given value. + * @method CarbonImmutable setDay(int $value) Set current instance day to the given value. + * @method CarbonImmutable hours(int $value) Set current instance hour to the given value. + * @method CarbonImmutable hour(int $value) Set current instance hour to the given value. + * @method CarbonImmutable setHours(int $value) Set current instance hour to the given value. + * @method CarbonImmutable setHour(int $value) Set current instance hour to the given value. + * @method CarbonImmutable minutes(int $value) Set current instance minute to the given value. + * @method CarbonImmutable minute(int $value) Set current instance minute to the given value. + * @method CarbonImmutable setMinutes(int $value) Set current instance minute to the given value. + * @method CarbonImmutable setMinute(int $value) Set current instance minute to the given value. + * @method CarbonImmutable seconds(int $value) Set current instance second to the given value. + * @method CarbonImmutable second(int $value) Set current instance second to the given value. + * @method CarbonImmutable setSeconds(int $value) Set current instance second to the given value. + * @method CarbonImmutable setSecond(int $value) Set current instance second to the given value. + * @method CarbonImmutable millis(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable milli(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMillis(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMilli(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable milliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable millisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable setMillisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonImmutable micros(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable micro(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicros(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicro(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable microseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable microsecond(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method CarbonImmutable addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addYear() Add one year to the instance (using date interval). + * @method CarbonImmutable subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subYear() Sub one year to the instance (using date interval). + * @method CarbonImmutable addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMonth() Add one month to the instance (using date interval). + * @method CarbonImmutable subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMonth() Sub one month to the instance (using date interval). + * @method CarbonImmutable addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addDay() Add one day to the instance (using date interval). + * @method CarbonImmutable subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subDay() Sub one day to the instance (using date interval). + * @method CarbonImmutable addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addHour() Add one hour to the instance (using date interval). + * @method CarbonImmutable subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subHour() Sub one hour to the instance (using date interval). + * @method CarbonImmutable addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMinute() Add one minute to the instance (using date interval). + * @method CarbonImmutable subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMinute() Sub one minute to the instance (using date interval). + * @method CarbonImmutable addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addSecond() Add one second to the instance (using date interval). + * @method CarbonImmutable subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subSecond() Sub one second to the instance (using date interval). + * @method CarbonImmutable addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMilli() Add one millisecond to the instance (using date interval). + * @method CarbonImmutable subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMilli() Sub one millisecond to the instance (using date interval). + * @method CarbonImmutable addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMillisecond() Add one millisecond to the instance (using date interval). + * @method CarbonImmutable subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMillisecond() Sub one millisecond to the instance (using date interval). + * @method CarbonImmutable addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMicro() Add one microsecond to the instance (using date interval). + * @method CarbonImmutable subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMicro() Sub one microsecond to the instance (using date interval). + * @method CarbonImmutable addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMicrosecond() Add one microsecond to the instance (using date interval). + * @method CarbonImmutable subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method CarbonImmutable addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addMillennium() Add one millennium to the instance (using date interval). + * @method CarbonImmutable subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subMillennium() Sub one millennium to the instance (using date interval). + * @method CarbonImmutable addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addCentury() Add one century to the instance (using date interval). + * @method CarbonImmutable subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subCentury() Sub one century to the instance (using date interval). + * @method CarbonImmutable addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addDecade() Add one decade to the instance (using date interval). + * @method CarbonImmutable subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subDecade() Sub one decade to the instance (using date interval). + * @method CarbonImmutable addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addQuarter() Add one quarter to the instance (using date interval). + * @method CarbonImmutable subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subQuarter() Sub one quarter to the instance (using date interval). + * @method CarbonImmutable addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonImmutable addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonImmutable addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addWeek() Add one week to the instance (using date interval). + * @method CarbonImmutable subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subWeek() Sub one week to the instance (using date interval). + * @method CarbonImmutable addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable addWeekday() Add one weekday to the instance (using date interval). + * @method CarbonImmutable subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonImmutable subWeekday() Sub one weekday to the instance (using date interval). + * @method CarbonImmutable addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMicro() Add one microsecond to the instance (using timestamp). + * @method CarbonImmutable subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonImmutable addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method CarbonImmutable subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonImmutable addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMilli() Add one millisecond to the instance (using timestamp). + * @method CarbonImmutable subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonImmutable addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method CarbonImmutable subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonImmutable addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealSecond() Add one second to the instance (using timestamp). + * @method CarbonImmutable subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method CarbonImmutable addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMinute() Add one minute to the instance (using timestamp). + * @method CarbonImmutable subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method CarbonImmutable addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealHour() Add one hour to the instance (using timestamp). + * @method CarbonImmutable subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method CarbonImmutable addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealDay() Add one day to the instance (using timestamp). + * @method CarbonImmutable subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method CarbonImmutable addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealWeek() Add one week to the instance (using timestamp). + * @method CarbonImmutable subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method CarbonImmutable addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMonth() Add one month to the instance (using timestamp). + * @method CarbonImmutable subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method CarbonImmutable addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealQuarter() Add one quarter to the instance (using timestamp). + * @method CarbonImmutable subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method CarbonImmutable addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealYear() Add one year to the instance (using timestamp). + * @method CarbonImmutable subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method CarbonImmutable addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealDecade() Add one decade to the instance (using timestamp). + * @method CarbonImmutable subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method CarbonImmutable addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealCentury() Add one century to the instance (using timestamp). + * @method CarbonImmutable subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method CarbonImmutable addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable addRealMillennium() Add one millennium to the instance (using timestamp). + * @method CarbonImmutable subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonImmutable subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method CarbonImmutable roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonImmutable roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonImmutable floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonImmutable floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonImmutable ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonImmutable ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonImmutable roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonImmutable roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonImmutable floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonImmutable floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonImmutable ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonImmutable ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonImmutable roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonImmutable roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonImmutable floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonImmutable floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonImmutable ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonImmutable ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonImmutable roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonImmutable roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonImmutable floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonImmutable floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonImmutable ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonImmutable ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonImmutable roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonImmutable roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonImmutable floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonImmutable floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonImmutable ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonImmutable ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonImmutable roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonImmutable roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonImmutable floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonImmutable floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonImmutable ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonImmutable ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonImmutable roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonImmutable roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonImmutable floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonImmutable floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonImmutable ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonImmutable ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonImmutable roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonImmutable roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonImmutable floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonImmutable floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonImmutable ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonImmutable ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonImmutable roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonImmutable roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonImmutable floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonImmutable floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonImmutable ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonImmutable ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonImmutable roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonImmutable roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonImmutable floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonImmutable floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonImmutable ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonImmutable ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonImmutable roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonImmutable roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonImmutable floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonImmutable floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonImmutable ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonImmutable ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonImmutable roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonImmutable roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonImmutable floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonImmutable floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonImmutable ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method CarbonImmutable ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method static static|false createFromFormat(string $format, string $time, DateTimeZone|string|false|null $timezone = null) Parse a string into a new CarbonImmutable object according to the specified format. + * @method static static __set_state(array $array) https://php.net/manual/en/datetime.set-state.php + * + * + */ +class CarbonImmutable extends DateTimeImmutable implements CarbonInterface +{ + use Date { + __clone as dateTraitClone; + } + + public function __clone() + { + $this->dateTraitClone(); + $this->endOfTime = false; + $this->startOfTime = false; + } + + /** + * Create a very old date representing start of time. + * + * @return static + */ + public static function startOfTime(): self + { + $date = static::parse('0001-01-01')->years(self::getStartOfTimeYear()); + $date->startOfTime = true; + + return $date; + } + + /** + * Create a very far date representing end of time. + * + * @return static + */ + public static function endOfTime(): self + { + $date = static::parse('9999-12-31 23:59:59.999999')->years(self::getEndOfTimeYear()); + $date->endOfTime = true; + + return $date; + } + + /** + * @codeCoverageIgnore + */ + private static function getEndOfTimeYear(): int + { + if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) { + return 145261681241552; + } + + // Remove if https://bugs.php.net/bug.php?id=81107 is fixed + if (version_compare(PHP_VERSION, '8.1.0-dev', '>=')) { + return 1118290769066902787; + } + + return PHP_INT_MAX; + } + + /** + * @codeCoverageIgnore + */ + private static function getStartOfTimeYear(): int + { + if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) { + return -135908816449551; + } + + // Remove if https://bugs.php.net/bug.php?id=81107 is fixed + if (version_compare(PHP_VERSION, '8.1.0-dev', '>=')) { + return -1118290769066898816; + } + + return max(PHP_INT_MIN, -9223372036854773760); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php b/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php new file mode 100644 index 000000000..d63c4b8af --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php @@ -0,0 +1,5143 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use BadMethodCallException; +use Carbon\Exceptions\BadComparisonUnitException; +use Carbon\Exceptions\ImmutableException; +use Carbon\Exceptions\InvalidDateException; +use Carbon\Exceptions\InvalidFormatException; +use Carbon\Exceptions\UnknownGetterException; +use Carbon\Exceptions\UnknownMethodException; +use Carbon\Exceptions\UnknownSetterException; +use Closure; +use DateInterval; +use DateTime; +use DateTimeImmutable; +use DateTimeInterface; +use DateTimeZone; +use JsonSerializable; +use ReflectionException; +use ReturnTypeWillChange; +use Symfony\Component\Translation\TranslatorInterface; +use Throwable; + +/** + * Common interface for Carbon and CarbonImmutable. + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method CarbonInterface years(int $value) Set current instance year to the given value. + * @method CarbonInterface year(int $value) Set current instance year to the given value. + * @method CarbonInterface setYears(int $value) Set current instance year to the given value. + * @method CarbonInterface setYear(int $value) Set current instance year to the given value. + * @method CarbonInterface months(int $value) Set current instance month to the given value. + * @method CarbonInterface month(int $value) Set current instance month to the given value. + * @method CarbonInterface setMonths(int $value) Set current instance month to the given value. + * @method CarbonInterface setMonth(int $value) Set current instance month to the given value. + * @method CarbonInterface days(int $value) Set current instance day to the given value. + * @method CarbonInterface day(int $value) Set current instance day to the given value. + * @method CarbonInterface setDays(int $value) Set current instance day to the given value. + * @method CarbonInterface setDay(int $value) Set current instance day to the given value. + * @method CarbonInterface hours(int $value) Set current instance hour to the given value. + * @method CarbonInterface hour(int $value) Set current instance hour to the given value. + * @method CarbonInterface setHours(int $value) Set current instance hour to the given value. + * @method CarbonInterface setHour(int $value) Set current instance hour to the given value. + * @method CarbonInterface minutes(int $value) Set current instance minute to the given value. + * @method CarbonInterface minute(int $value) Set current instance minute to the given value. + * @method CarbonInterface setMinutes(int $value) Set current instance minute to the given value. + * @method CarbonInterface setMinute(int $value) Set current instance minute to the given value. + * @method CarbonInterface seconds(int $value) Set current instance second to the given value. + * @method CarbonInterface second(int $value) Set current instance second to the given value. + * @method CarbonInterface setSeconds(int $value) Set current instance second to the given value. + * @method CarbonInterface setSecond(int $value) Set current instance second to the given value. + * @method CarbonInterface millis(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface milli(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMillis(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMilli(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface milliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface millisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMillisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface micros(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface micro(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicros(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicro(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface microseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface microsecond(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addYear() Add one year to the instance (using date interval). + * @method CarbonInterface subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subYear() Sub one year to the instance (using date interval). + * @method CarbonInterface addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMonth() Add one month to the instance (using date interval). + * @method CarbonInterface subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMonth() Sub one month to the instance (using date interval). + * @method CarbonInterface addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addDay() Add one day to the instance (using date interval). + * @method CarbonInterface subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subDay() Sub one day to the instance (using date interval). + * @method CarbonInterface addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addHour() Add one hour to the instance (using date interval). + * @method CarbonInterface subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subHour() Sub one hour to the instance (using date interval). + * @method CarbonInterface addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMinute() Add one minute to the instance (using date interval). + * @method CarbonInterface subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMinute() Sub one minute to the instance (using date interval). + * @method CarbonInterface addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addSecond() Add one second to the instance (using date interval). + * @method CarbonInterface subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subSecond() Sub one second to the instance (using date interval). + * @method CarbonInterface addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMilli() Add one millisecond to the instance (using date interval). + * @method CarbonInterface subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMilli() Sub one millisecond to the instance (using date interval). + * @method CarbonInterface addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMillisecond() Add one millisecond to the instance (using date interval). + * @method CarbonInterface subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMillisecond() Sub one millisecond to the instance (using date interval). + * @method CarbonInterface addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMicro() Add one microsecond to the instance (using date interval). + * @method CarbonInterface subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMicro() Sub one microsecond to the instance (using date interval). + * @method CarbonInterface addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMicrosecond() Add one microsecond to the instance (using date interval). + * @method CarbonInterface subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method CarbonInterface addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMillennium() Add one millennium to the instance (using date interval). + * @method CarbonInterface subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMillennium() Sub one millennium to the instance (using date interval). + * @method CarbonInterface addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addCentury() Add one century to the instance (using date interval). + * @method CarbonInterface subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subCentury() Sub one century to the instance (using date interval). + * @method CarbonInterface addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addDecade() Add one decade to the instance (using date interval). + * @method CarbonInterface subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subDecade() Sub one decade to the instance (using date interval). + * @method CarbonInterface addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addQuarter() Add one quarter to the instance (using date interval). + * @method CarbonInterface subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subQuarter() Sub one quarter to the instance (using date interval). + * @method CarbonInterface addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addWeek() Add one week to the instance (using date interval). + * @method CarbonInterface subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subWeek() Sub one week to the instance (using date interval). + * @method CarbonInterface addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addWeekday() Add one weekday to the instance (using date interval). + * @method CarbonInterface subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subWeekday() Sub one weekday to the instance (using date interval). + * @method CarbonInterface addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMicro() Add one microsecond to the instance (using timestamp). + * @method CarbonInterface subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonInterface addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method CarbonInterface subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonInterface addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMilli() Add one millisecond to the instance (using timestamp). + * @method CarbonInterface subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonInterface addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method CarbonInterface subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonInterface addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealSecond() Add one second to the instance (using timestamp). + * @method CarbonInterface subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method CarbonInterface addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMinute() Add one minute to the instance (using timestamp). + * @method CarbonInterface subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method CarbonInterface addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealHour() Add one hour to the instance (using timestamp). + * @method CarbonInterface subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method CarbonInterface addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealDay() Add one day to the instance (using timestamp). + * @method CarbonInterface subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method CarbonInterface addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealWeek() Add one week to the instance (using timestamp). + * @method CarbonInterface subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method CarbonInterface addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMonth() Add one month to the instance (using timestamp). + * @method CarbonInterface subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method CarbonInterface addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealQuarter() Add one quarter to the instance (using timestamp). + * @method CarbonInterface subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method CarbonInterface addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealYear() Add one year to the instance (using timestamp). + * @method CarbonInterface subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method CarbonInterface addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealDecade() Add one decade to the instance (using timestamp). + * @method CarbonInterface subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method CarbonInterface addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealCentury() Add one century to the instance (using timestamp). + * @method CarbonInterface subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method CarbonInterface addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMillennium() Add one millennium to the instance (using timestamp). + * @method CarbonInterface subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method CarbonInterface roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonInterface roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonInterface floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonInterface floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonInterface ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonInterface ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonInterface roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonInterface roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonInterface floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonInterface floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonInterface ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonInterface ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonInterface roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonInterface roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonInterface floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonInterface floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonInterface ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonInterface ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonInterface roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonInterface roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonInterface floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonInterface floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonInterface ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonInterface ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonInterface roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonInterface roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonInterface floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonInterface floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonInterface ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonInterface ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonInterface roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonInterface roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonInterface floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonInterface floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonInterface ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonInterface ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonInterface roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonInterface roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonInterface floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonInterface floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonInterface ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonInterface ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonInterface roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonInterface roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonInterface floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonInterface floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonInterface ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonInterface ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonInterface roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonInterface roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonInterface floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonInterface floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonInterface ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonInterface ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonInterface roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonInterface roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonInterface floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonInterface floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonInterface ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonInterface ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonInterface roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonInterface roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonInterface floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonInterface floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonInterface ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonInterface ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonInterface roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonInterface roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonInterface floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonInterface floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonInterface ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method CarbonInterface ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * + * + */ +interface CarbonInterface extends DateTimeInterface, JsonSerializable +{ + /** + * Diff wording options(expressed in octal). + */ + public const NO_ZERO_DIFF = 01; + public const JUST_NOW = 02; + public const ONE_DAY_WORDS = 04; + public const TWO_DAY_WORDS = 010; + public const SEQUENTIAL_PARTS_ONLY = 020; + public const ROUND = 040; + public const FLOOR = 0100; + public const CEIL = 0200; + + /** + * Diff syntax options. + */ + public const DIFF_ABSOLUTE = 1; // backward compatibility with true + public const DIFF_RELATIVE_AUTO = 0; // backward compatibility with false + public const DIFF_RELATIVE_TO_NOW = 2; + public const DIFF_RELATIVE_TO_OTHER = 3; + + /** + * Translate string options. + */ + public const TRANSLATE_MONTHS = 1; + public const TRANSLATE_DAYS = 2; + public const TRANSLATE_UNITS = 4; + public const TRANSLATE_MERIDIEM = 8; + public const TRANSLATE_DIFF = 0x10; + public const TRANSLATE_ALL = self::TRANSLATE_MONTHS | self::TRANSLATE_DAYS | self::TRANSLATE_UNITS | self::TRANSLATE_MERIDIEM | self::TRANSLATE_DIFF; + + /** + * The day constants. + */ + public const SUNDAY = 0; + public const MONDAY = 1; + public const TUESDAY = 2; + public const WEDNESDAY = 3; + public const THURSDAY = 4; + public const FRIDAY = 5; + public const SATURDAY = 6; + + /** + * The month constants. + * These aren't used by Carbon itself but exist for + * convenience sake alone. + */ + public const JANUARY = 1; + public const FEBRUARY = 2; + public const MARCH = 3; + public const APRIL = 4; + public const MAY = 5; + public const JUNE = 6; + public const JULY = 7; + public const AUGUST = 8; + public const SEPTEMBER = 9; + public const OCTOBER = 10; + public const NOVEMBER = 11; + public const DECEMBER = 12; + + /** + * Number of X in Y. + */ + public const YEARS_PER_MILLENNIUM = 1000; + public const YEARS_PER_CENTURY = 100; + public const YEARS_PER_DECADE = 10; + public const MONTHS_PER_YEAR = 12; + public const MONTHS_PER_QUARTER = 3; + public const QUARTERS_PER_YEAR = 4; + public const WEEKS_PER_YEAR = 52; + public const WEEKS_PER_MONTH = 4; + public const DAYS_PER_YEAR = 365; + public const DAYS_PER_WEEK = 7; + public const HOURS_PER_DAY = 24; + public const MINUTES_PER_HOUR = 60; + public const SECONDS_PER_MINUTE = 60; + public const MILLISECONDS_PER_SECOND = 1000; + public const MICROSECONDS_PER_MILLISECOND = 1000; + public const MICROSECONDS_PER_SECOND = 1000000; + + /** + * Special settings to get the start of week from current locale culture. + */ + public const WEEK_DAY_AUTO = 'auto'; + + /** + * RFC7231 DateTime format. + * + * @var string + */ + public const RFC7231_FORMAT = 'D, d M Y H:i:s \G\M\T'; + + /** + * Default format to use for __toString method when type juggling occurs. + * + * @var string + */ + public const DEFAULT_TO_STRING_FORMAT = 'Y-m-d H:i:s'; + + /** + * Format for converting mocked time, includes microseconds. + * + * @var string + */ + public const MOCK_DATETIME_FORMAT = 'Y-m-d H:i:s.u'; + + /** + * Pattern detection for ->isoFormat and ::createFromIsoFormat. + * + * @var string + */ + public const ISO_FORMAT_REGEXP = '(O[YMDHhms]|[Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY?|g{1,5}|G{1,5}|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?)'; + + // + + /** + * Dynamically handle calls to the class. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws UnknownMethodException|BadMethodCallException|ReflectionException|Throwable + * + * @return mixed + */ + public function __call($method, $parameters); + + /** + * Dynamically handle calls to the class. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws BadMethodCallException + * + * @return mixed + */ + public static function __callStatic($method, $parameters); + + /** + * Update constructedObjectId on cloned. + */ + public function __clone(); + + /** + * Create a new Carbon instance. + * + * Please see the testing aids section (specifically static::setTestNow()) + * for more on the possibility of this constructor returning a test instance. + * + * @param DateTimeInterface|string|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + */ + public function __construct($time = null, $tz = null); + + /** + * Show truthy properties on var_dump(). + * + * @return array + */ + public function __debugInfo(); + + /** + * Get a part of the Carbon object + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return string|int|bool|DateTimeZone|null + */ + public function __get($name); + + /** + * Check if an attribute exists on the object + * + * @param string $name + * + * @return bool + */ + public function __isset($name); + + /** + * Set a part of the Carbon object + * + * @param string $name + * @param string|int|DateTimeZone $value + * + * @throws UnknownSetterException|ReflectionException + * + * @return void + */ + public function __set($name, $value); + + /** + * The __set_state handler. + * + * @param string|array $dump + * + * @return static + */ + #[ReturnTypeWillChange] + public static function __set_state($dump); + + /** + * Returns the list of properties to dump on serialize() called on. + * + * Only used by PHP < 7.4. + * + * @return array + */ + public function __sleep(); + + /** + * Format the instance as a string using the set format + * + * @example + * ``` + * echo Carbon::now(); // Carbon instances can be cast to string + * ``` + * + * @return string + */ + public function __toString(); + + /** + * Add given units or interval to the current instance. + * + * @example $date->add('hour', 3) + * @example $date->add(15, 'days') + * @example $date->add(CarbonInterval::days(4)) + * + * @param string|DateInterval|Closure|CarbonConverterInterface $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + #[ReturnTypeWillChange] + public function add($unit, $value = 1, $overflow = null); + + /** + * Add seconds to the instance using timestamp. Positive $value travels + * forward while negative $value travels into the past. + * + * @param string $unit + * @param int $value + * + * @return static + */ + public function addRealUnit($unit, $value = 1); + + /** + * Add given units to the current instance. + * + * @param string $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function addUnit($unit, $value = 1, $overflow = null); + + /** + * Add any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value amount to add to the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function addUnitNoOverflow($valueUnit, $value, $overflowUnit); + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given to now + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single part) + * @param int $options human diff options + * + * @return string + */ + public function ago($syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Modify the current instance to the average of a given instance (default now) and the current instance + * (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date + * + * @return static + */ + public function average($date = null); + + /** + * Clone the current instance if it's mutable. + * + * This method is convenient to ensure you don't mutate the initial object + * but avoid to make a useless copy of it if it's already immutable. + * + * @return static + */ + public function avoidMutation(); + + /** + * Determines if the instance is between two others. + * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', false); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function between($date1, $date2, $equal = true): bool; + + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenExcluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-25', '2018-08-01'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenExcluded($date1, $date2): bool; + + /** + * Determines if the instance is between two others, bounds included. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenIncluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-25', '2018-08-01'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenIncluded($date1, $date2): bool; + + /** + * Returns either day of week + time (e.g. "Last Friday at 3:30 PM") if reference time is within 7 days, + * or a calendar date (e.g. "10/29/2017") otherwise. + * + * Language, date and time formats will change according to the current locale. + * + * @param Carbon|\DateTimeInterface|string|null $referenceTime + * @param array $formats + * + * @return string + */ + public function calendar($referenceTime = null, array $formats = []); + + /** + * Checks if the (date)time string is in a given format and valid to create a + * new instance. + * + * @example + * ``` + * Carbon::canBeCreatedFromFormat('11:12:45', 'h:i:s'); // true + * Carbon::canBeCreatedFromFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function canBeCreatedFromFormat($date, $format); + + /** + * Return the Carbon instance passed through, a now instance in the same timezone + * if null given or parse the input if string given. + * + * @param Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|DateTimeInterface|string|null $date + * + * @return static + */ + public function carbonize($date = null); + + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DateTimeInterface + */ + public function cast(string $className); + + /** + * Ceil the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * + * @return CarbonInterface + */ + public function ceil($precision = 1); + + /** + * Ceil the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int $precision + * + * @return CarbonInterface + */ + public function ceilUnit($unit, $precision = 1); + + /** + * Ceil the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function ceilWeek($weekStartsAt = null); + + /** + * Similar to native modify() method of DateTime but can handle more grammars. + * + * @example + * ``` + * echo Carbon::now()->change('next 2pm'); + * ``` + * + * @link https://php.net/manual/en/datetime.modify.php + * + * @param string $modifier + * + * @return static|false + */ + public function change($modifier); + + /** + * Cleanup properties attached to the public scope of DateTime when a dump of the date is requested. + * foreach ($date as $_) {} + * serializer($date) + * var_export($date) + * get_object_vars($date) + */ + public function cleanupDumpProperties(); + + /** + * @alias copy + * + * Get a copy of the instance. + * + * @return static + */ + public function clone(); + + /** + * Get the closest date from the instance (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return static + */ + public function closest($date1, $date2); + + /** + * Get a copy of the instance. + * + * @return static + */ + public function copy(); + + /** + * Create a new Carbon instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values will + * be used. + * + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * @param DateTimeInterface|int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null); + + /** + * Create a Carbon instance from just a date. The time portion is set to now. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromDate($year = null, $month = null, $day = null, $tz = null); + + /** + * Create a Carbon instance from a specific format. + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + #[ReturnTypeWillChange] + public static function createFromFormat($format, $time, $tz = null); + + /** + * Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()). + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz optional timezone + * @param string|null $locale locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use) + * @param \Symfony\Component\Translation\TranslatorInterface $translator optional custom translator to use for macro-formats + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null); + + /** + * Create a Carbon instance from a specific format and a string in a given language. + * + * @param string $format Datetime format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromLocaleFormat($format, $locale, $time, $tz = null); + + /** + * Create a Carbon instance from a specific ISO format and a string in a given language. + * + * @param string $format Datetime ISO format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromLocaleIsoFormat($format, $locale, $time, $tz = null); + + /** + * Create a Carbon instance from just a time. The date portion is set to today. + * + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null); + + /** + * Create a Carbon instance from a time string. The date portion is set to today. + * + * @param string $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromTimeString($time, $tz = null); + + /** + * Create a Carbon instance from a timestamp and set the timezone (use default one if not specified). + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * @param \DateTimeZone|string|null $tz + * + * @return static + */ + public static function createFromTimestamp($timestamp, $tz = null); + + /** + * Create a Carbon instance from a timestamp in milliseconds. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * @param \DateTimeZone|string|null $tz + * + * @return static + */ + public static function createFromTimestampMs($timestamp, $tz = null); + + /** + * Create a Carbon instance from a timestamp in milliseconds. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * + * @return static + */ + public static function createFromTimestampMsUTC($timestamp); + + /** + * Create a Carbon instance from an timestamp keeping the timezone to UTC. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * + * @return static + */ + public static function createFromTimestampUTC($timestamp); + + /** + * Create a Carbon instance from just a date. The time portion is set to midnight. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createMidnightDate($year = null, $month = null, $day = null, $tz = null); + + /** + * Create a new safe Carbon instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values will + * be used. + * + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * If one of the set values is not valid, an InvalidDateException + * will be thrown. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidDateException + * + * @return static|false + */ + public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null); + + /** + * Create a new Carbon instance from a specific date and time using strict validation. + * + * @see create() + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null); + + /** + * Get/set the day of year. + * + * @param int|null $value new value for day of year if using as setter. + * + * @return static|int + */ + public function dayOfYear($value = null); + + /** + * Get the difference as a CarbonInterval instance. + * Return relative interval (negative if $absolute flag is not set to true and the given date is before + * current one). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return CarbonInterval + */ + public function diffAsCarbonInterval($date = null, $absolute = true, array $skip = []); + + /** + * Get the difference by the given interval using a filter closure. + * + * @param CarbonInterval $ci An interval to traverse by + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null, $absolute = true); + + /** + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @example + * ``` + * echo Carbon::tomorrow()->diffForHumans() . "\n"; + * echo Carbon::tomorrow()->diffForHumans(['parts' => 2]) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(['parts' => 3, 'join' => true]) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday()) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday(), ['short' => true]) . "\n"; + * ``` + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'skip' entry, list of units to skip (array of strings or a single string, + * ` it can be the unit name (singular or plural) or its shortcut + * ` (y, m, w, d, h, min, s, ms, µs). + * - 'aUnit' entry, prefer "an hour" over "1 hour" if true + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * - 'minimumUnit' entry determines the smallest unit of time to display can be long or + * ` short form of the units, e.g. 'hour' or 'h' (default value: s) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Get the difference in days rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInDays($date = null, $absolute = true); + + /** + * Get the difference in days using a filter closure rounded down. + * + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInDaysFiltered(Closure $callback, $date = null, $absolute = true); + + /** + * Get the difference in hours rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInHours($date = null, $absolute = true); + + /** + * Get the difference in hours using a filter closure rounded down. + * + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInHoursFiltered(Closure $callback, $date = null, $absolute = true); + + /** + * Get the difference in microseconds. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMicroseconds($date = null, $absolute = true); + + /** + * Get the difference in milliseconds rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMilliseconds($date = null, $absolute = true); + + /** + * Get the difference in minutes rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMinutes($date = null, $absolute = true); + + /** + * Get the difference in months rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMonths($date = null, $absolute = true); + + /** + * Get the difference in quarters rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInQuarters($date = null, $absolute = true); + + /** + * Get the difference in hours rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealHours($date = null, $absolute = true); + + /** + * Get the difference in microseconds using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMicroseconds($date = null, $absolute = true); + + /** + * Get the difference in milliseconds rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMilliseconds($date = null, $absolute = true); + + /** + * Get the difference in minutes rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMinutes($date = null, $absolute = true); + + /** + * Get the difference in seconds using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealSeconds($date = null, $absolute = true); + + /** + * Get the difference in seconds rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInSeconds($date = null, $absolute = true); + + /** + * Get the difference in weekdays rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeekdays($date = null, $absolute = true); + + /** + * Get the difference in weekend days using a filter rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeekendDays($date = null, $absolute = true); + + /** + * Get the difference in weeks rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeeks($date = null, $absolute = true); + + /** + * Get the difference in years + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInYears($date = null, $absolute = true); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOption + */ + public static function disableHumanDiffOption($humanDiffOption); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOption + */ + public static function enableHumanDiffOption($humanDiffOption); + + /** + * Modify to end of current given unit. + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOf('month') + * ->endOf('week', Carbon::FRIDAY); + * ``` + * + * @param string $unit + * @param array $params + * + * @return static + */ + public function endOf($unit, ...$params); + + /** + * Resets the date to end of the century and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfCentury(); + * ``` + * + * @return static + */ + public function endOfCentury(); + + /** + * Resets the time to 23:59:59.999999 end of day + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfDay(); + * ``` + * + * @return static + */ + public function endOfDay(); + + /** + * Resets the date to end of the decade and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfDecade(); + * ``` + * + * @return static + */ + public function endOfDecade(); + + /** + * Modify to end of current hour, minutes and seconds become 59 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfHour(); + * ``` + * + * @return static + */ + public function endOfHour(); + + /** + * Resets the date to end of the millennium and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMillennium(); + * ``` + * + * @return static + */ + public function endOfMillennium(); + + /** + * Modify to end of current minute, seconds become 59 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMinute(); + * ``` + * + * @return static + */ + public function endOfMinute(); + + /** + * Resets the date to end of the month and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMonth(); + * ``` + * + * @return static + */ + public function endOfMonth(); + + /** + * Resets the date to end of the quarter and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfQuarter(); + * ``` + * + * @return static + */ + public function endOfQuarter(); + + /** + * Modify to end of current second, microseconds become 999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->endOfSecond() + * ->format('H:i:s.u'); + * ``` + * + * @return static + */ + public function endOfSecond(); + + /** + * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->endOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek(Carbon::SATURDAY) . "\n"; + * ``` + * + * @param int $weekEndsAt optional start allow you to specify the day of week to use to end the week + * + * @return static + */ + public function endOfWeek($weekEndsAt = null); + + /** + * Resets the date to end of the year and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfYear(); + * ``` + * + * @return static + */ + public function endOfYear(); + + /** + * Determines if the instance is equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->eq(Carbon::parse('2018-07-25 12:45:16')); // true + * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see equalTo() + * + * @return bool + */ + public function eq($date): bool; + + /** + * Determines if the instance is equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->equalTo(Carbon::parse('2018-07-25 12:45:16')); // true + * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function equalTo($date): bool; + + /** + * Set the current locale to the given, execute the passed function, reset the locale to previous one, + * then return the result of the closure (or null if the closure was void). + * + * @param string $locale locale ex. en + * @param callable $func + * + * @return mixed + */ + public static function executeWithLocale($locale, $func); + + /** + * Get the farthest date from the instance (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return static + */ + public function farthest($date1, $date2); + + /** + * Modify to the first occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * first day of the current month. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek + * + * @return static + */ + public function firstOfMonth($dayOfWeek = null); + + /** + * Modify to the first occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * first day of the current quarter. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function firstOfQuarter($dayOfWeek = null); + + /** + * Modify to the first occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * first day of the current year. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function firstOfYear($dayOfWeek = null); + + /** + * Get the difference in days as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInDays($date = null, $absolute = true); + + /** + * Get the difference in hours as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInHours($date = null, $absolute = true); + + /** + * Get the difference in minutes as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInMinutes($date = null, $absolute = true); + + /** + * Get the difference in months as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInMonths($date = null, $absolute = true); + + /** + * Get the difference in days as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealDays($date = null, $absolute = true); + + /** + * Get the difference in hours as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealHours($date = null, $absolute = true); + + /** + * Get the difference in minutes as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealMinutes($date = null, $absolute = true); + + /** + * Get the difference in months as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealMonths($date = null, $absolute = true); + + /** + * Get the difference in seconds as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealSeconds($date = null, $absolute = true); + + /** + * Get the difference in weeks as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealWeeks($date = null, $absolute = true); + + /** + * Get the difference in year as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealYears($date = null, $absolute = true); + + /** + * Get the difference in seconds as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInSeconds($date = null, $absolute = true); + + /** + * Get the difference in weeks as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInWeeks($date = null, $absolute = true); + + /** + * Get the difference in year as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInYears($date = null, $absolute = true); + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * + * @return CarbonInterface + */ + public function floor($precision = 1); + + /** + * Truncate the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int $precision + * + * @return CarbonInterface + */ + public function floorUnit($unit, $precision = 1); + + /** + * Truncate the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function floorWeek($weekStartsAt = null); + + /** + * Format the instance with the current locale. You can set the current + * locale using setlocale() https://php.net/setlocale. + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat() instead. + * Deprecated since 2.55.0 + * + * @param string $format + * + * @return string + */ + public function formatLocalized($format); + + /** + * @alias diffForHumans + * + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function from($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Get the difference in a human readable format in the current locale from current + * instance to now. + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function fromNow($syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Create an instance from a serialized string. + * + * @param string $value + * + * @throws InvalidFormatException + * + * @return static + */ + public static function fromSerialized($value); + + /** + * Register a custom macro. + * + * @param object|callable $macro + * @param int $priority marco with higher priority is tried first + * + * @return void + */ + public static function genericMacro($macro, $priority = 0); + + /** + * Get a part of the Carbon object + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return string|int|bool|DateTimeZone|null + */ + public function get($name); + + /** + * Returns the alternative number for a given date property if available in the current locale. + * + * @param string $key date property + * + * @return string + */ + public function getAltNumber(string $key): string; + + /** + * Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * + * @return array + */ + public static function getAvailableLocales(); + + /** + * Returns list of Language object for each available locale. This object allow you to get the ISO name, native + * name, region and variant of the locale. + * + * @return Language[] + */ + public static function getAvailableLocalesInfo(); + + /** + * Returns list of calendar formats for ISO formatting. + * + * @param string|null $locale current locale used if null + * + * @return array + */ + public function getCalendarFormats($locale = null); + + /** + * Get the days of the week + * + * @return array + */ + public static function getDays(); + + /** + * Return the number of days since the start of the week (using the current locale or the first parameter + * if explicitly given). + * + * @param int|null $weekStartsAt optional start allow you to specify the day of week to use to start the week, + * if not provided, start of week is inferred from the locale + * (Sunday for en_US, Monday for de_DE, etc.) + * + * @return int + */ + public function getDaysFromStartOfWeek(?int $weekStartsAt = null): int; + + /** + * Get the fallback locale. + * + * @see https://symfony.com/doc/current/components/translation.html#fallback-locales + * + * @return string|null + */ + public static function getFallbackLocale(); + + /** + * List of replacements from date() format to isoFormat(). + * + * @return array + */ + public static function getFormatsToIsoReplacements(); + + /** + * Return default humanDiff() options (merged flags as integer). + * + * @return int + */ + public static function getHumanDiffOptions(); + + /** + * Returns list of locale formats for ISO formatting. + * + * @param string|null $locale current locale used if null + * + * @return array + */ + public function getIsoFormats($locale = null); + + /** + * Returns list of locale units for ISO formatting. + * + * @return array + */ + public static function getIsoUnits(); + + /** + * {@inheritdoc} + * + * @return array + */ + #[ReturnTypeWillChange] + public static function getLastErrors(); + + /** + * Get the raw callable macro registered globally or locally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public function getLocalMacro($name); + + /** + * Get the translator of the current instance or the default if none set. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + public function getLocalTranslator(); + + /** + * Get the current translator locale. + * + * @return string + */ + public static function getLocale(); + + /** + * Get the raw callable macro registered globally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public static function getMacro($name); + + /** + * get midday/noon hour + * + * @return int + */ + public static function getMidDayAt(); + + /** + * Returns the offset hour and minute formatted with +/- and a given separator (":" by default). + * For example, if the time zone is 9 hours 30 minutes, you'll get "+09:30", with "@@" as first + * argument, "+09@@30", with "" as first argument, "+0930". Negative offset will return something + * like "-12:00". + * + * @param string $separator string to place between hours and minutes (":" by default) + * + * @return string + */ + public function getOffsetString($separator = ':'); + + /** + * Returns a unit of the instance padded with 0 by default or any other string if specified. + * + * @param string $unit Carbon unit name + * @param int $length Length of the output (2 by default) + * @param string $padString String to use for padding ("0" by default) + * @param int $padType Side(s) to pad (STR_PAD_LEFT by default) + * + * @return string + */ + public function getPaddedUnit($unit, $length = 2, $padString = '0', $padType = 0); + + /** + * Returns a timestamp rounded with the given precision (6 by default). + * + * @example getPreciseTimestamp() 1532087464437474 (microsecond maximum precision) + * @example getPreciseTimestamp(6) 1532087464437474 + * @example getPreciseTimestamp(5) 153208746443747 (1/100000 second precision) + * @example getPreciseTimestamp(4) 15320874644375 (1/10000 second precision) + * @example getPreciseTimestamp(3) 1532087464437 (millisecond precision) + * @example getPreciseTimestamp(2) 153208746444 (1/100 second precision) + * @example getPreciseTimestamp(1) 15320874644 (1/10 second precision) + * @example getPreciseTimestamp(0) 1532087464 (second precision) + * @example getPreciseTimestamp(-1) 153208746 (10 second precision) + * @example getPreciseTimestamp(-2) 15320875 (100 second precision) + * + * @param int $precision + * + * @return float + */ + public function getPreciseTimestamp($precision = 6); + + /** + * Returns current local settings. + * + * @return array + */ + public function getSettings(); + + /** + * Get the Carbon instance (real or mock) to be returned when a "now" + * instance is created. + * + * @return Closure|static the current instance used for testing + */ + public static function getTestNow(); + + /** + * Return a format from H:i to H:i:s.u according to given unit precision. + * + * @param string $unitPrecision "minute", "second", "millisecond" or "microsecond" + * + * @return string + */ + public static function getTimeFormatByPrecision($unitPrecision); + + /** + * Returns the timestamp with millisecond precision. + * + * @return int + */ + public function getTimestampMs(); + + /** + * Get the translation of the current week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * @param string $keySuffix "", "_short" or "_min" + * @param string|null $defaultValue default value if translation missing + * + * @return string + */ + public function getTranslatedDayName($context = null, $keySuffix = '', $defaultValue = null); + + /** + * Get the translation of the current abbreviated week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedMinDayName($context = null); + + /** + * Get the translation of the current month day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * @param string $keySuffix "" or "_short" + * @param string|null $defaultValue default value if translation missing + * + * @return string + */ + public function getTranslatedMonthName($context = null, $keySuffix = '', $defaultValue = null); + + /** + * Get the translation of the current short week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedShortDayName($context = null); + + /** + * Get the translation of the current short month day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedShortMonthName($context = null); + + /** + * Returns raw translation message for a given key. + * + * @param string $key key to find + * @param string|null $locale current locale used if null + * @param string|null $default default value if translation returns the key + * @param \Symfony\Component\Translation\TranslatorInterface $translator an optional translator to use + * + * @return string + */ + public function getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null); + + /** + * Returns raw translation message for a given key. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator the translator to use + * @param string $key key to find + * @param string|null $locale current locale used if null + * @param string|null $default default value if translation returns the key + * + * @return string + */ + public static function getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null); + + /** + * Get the default translator instance in use. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + public static function getTranslator(); + + /** + * Get the last day of week + * + * @return int + */ + public static function getWeekEndsAt(); + + /** + * Get the first day of week + * + * @return int + */ + public static function getWeekStartsAt(); + + /** + * Get weekend days + * + * @return array + */ + public static function getWeekendDays(); + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function greaterThan($date): bool; + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function greaterThanOrEqualTo($date): bool; + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThan() + * + * @return bool + */ + public function gt($date): bool; + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThanOrEqualTo() + * + * @return bool + */ + public function gte($date): bool; + + /** + * Checks if the (date)time string is in a given format. + * + * @example + * ``` + * Carbon::hasFormat('11:12:45', 'h:i:s'); // true + * Carbon::hasFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function hasFormat($date, $format); + + /** + * Checks if the (date)time string is in a given format. + * + * @example + * ``` + * Carbon::hasFormatWithModifiers('31/08/2015', 'd#m#Y'); // true + * Carbon::hasFormatWithModifiers('31/08/2015', 'm#d#Y'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function hasFormatWithModifiers($date, $format): bool; + + /** + * Checks if macro is registered globally or locally. + * + * @param string $name + * + * @return bool + */ + public function hasLocalMacro($name); + + /** + * Return true if the current instance has its own translator. + * + * @return bool + */ + public function hasLocalTranslator(); + + /** + * Checks if macro is registered globally. + * + * @param string $name + * + * @return bool + */ + public static function hasMacro($name); + + /** + * Determine if a time string will produce a relative date. + * + * @param string $time + * + * @return bool true if time match a relative date, false if absolute or invalid time string + */ + public static function hasRelativeKeywords($time); + + /** + * Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * + * @return bool true if there is a test instance, otherwise false + */ + public static function hasTestNow(); + + /** + * Create a Carbon instance from a DateTime one. + * + * @param DateTimeInterface $date + * + * @return static + */ + public static function instance($date); + + /** + * Returns true if the current date matches the given string. + * + * @example + * ``` + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2018')); // false + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('06-02')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06-02')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('Sunday')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('June')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:45')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:00')); // false + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12h')); // true + * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3pm')); // true + * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3am')); // false + * ``` + * + * @param string $tester day name, month name, hour, date, etc. as string + * + * @return bool + */ + public function is(string $tester); + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThan() + * + * @return bool + */ + public function isAfter($date): bool; + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThan() + * + * @return bool + */ + public function isBefore($date): bool; + + /** + * Determines if the instance is between two others + * + * @example + * ``` + * Carbon::parse('2018-07-25')->isBetween('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01', false); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function isBetween($date1, $date2, $equal = true): bool; + + /** + * Check if its the birthday. Compares the date/month values of the two dates. + * + * @example + * ``` + * Carbon::now()->subYears(5)->isBirthday(); // true + * Carbon::now()->subYears(5)->subDay()->isBirthday(); // false + * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-05')); // true + * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-06')); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use current day. + * + * @return bool + */ + public function isBirthday($date = null); + + /** + * Determines if the instance is in the current unit given. + * + * @example + * ``` + * Carbon::now()->isCurrentUnit('hour'); // true + * Carbon::now()->subHours(2)->isCurrentUnit('hour'); // false + * ``` + * + * @param string $unit The unit to test. + * + * @throws BadMethodCallException + * + * @return bool + */ + public function isCurrentUnit($unit); + + /** + * Checks if this day is a specific day of the week. + * + * @example + * ``` + * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::WEDNESDAY); // true + * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::FRIDAY); // false + * Carbon::parse('2019-07-17')->isDayOfWeek('Wednesday'); // true + * Carbon::parse('2019-07-17')->isDayOfWeek('Friday'); // false + * ``` + * + * @param int $dayOfWeek + * + * @return bool + */ + public function isDayOfWeek($dayOfWeek); + + /** + * Check if the instance is end of day. + * + * @example + * ``` + * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:58.999999')->isEndOfDay(); // false + * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(true); // true + * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(true); // false + * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(true); // false + * ``` + * + * @param bool $checkMicroseconds check time at microseconds precision + * + * @return bool + */ + public function isEndOfDay($checkMicroseconds = false); + + /** + * Returns true if the date was created using CarbonImmutable::endOfTime() + * + * @return bool + */ + public function isEndOfTime(): bool; + + /** + * Determines if the instance is in the future, ie. greater (after) than now. + * + * @example + * ``` + * Carbon::now()->addHours(5)->isFuture(); // true + * Carbon::now()->subHours(5)->isFuture(); // false + * ``` + * + * @return bool + */ + public function isFuture(); + + /** + * Returns true if the current class/instance is immutable. + * + * @return bool + */ + public static function isImmutable(); + + /** + * Check if today is the last day of the Month + * + * @example + * ``` + * Carbon::parse('2019-02-28')->isLastOfMonth(); // true + * Carbon::parse('2019-03-28')->isLastOfMonth(); // false + * Carbon::parse('2019-03-30')->isLastOfMonth(); // false + * Carbon::parse('2019-03-31')->isLastOfMonth(); // true + * Carbon::parse('2019-04-30')->isLastOfMonth(); // true + * ``` + * + * @return bool + */ + public function isLastOfMonth(); + + /** + * Determines if the instance is a leap year. + * + * @example + * ``` + * Carbon::parse('2020-01-01')->isLeapYear(); // true + * Carbon::parse('2019-01-01')->isLeapYear(); // false + * ``` + * + * @return bool + */ + public function isLeapYear(); + + /** + * Determines if the instance is a long year (using ISO 8601 year). + * + * @example + * ``` + * Carbon::parse('2015-01-01')->isLongIsoYear(); // true + * Carbon::parse('2016-01-01')->isLongIsoYear(); // true + * Carbon::parse('2016-01-03')->isLongIsoYear(); // false + * Carbon::parse('2019-12-29')->isLongIsoYear(); // false + * Carbon::parse('2019-12-30')->isLongIsoYear(); // true + * ``` + * + * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates + * + * @return bool + */ + public function isLongIsoYear(); + + /** + * Determines if the instance is a long year (using calendar year). + * + * ⚠️ This method completely ignores month and day to use the numeric year number, + * it's not correct if the exact date matters. For instance as `2019-12-30` is already + * in the first week of the 2020 year, if you want to know from this date if ISO week + * year 2020 is a long year, use `isLongIsoYear` instead. + * + * @example + * ``` + * Carbon::create(2015)->isLongYear(); // true + * Carbon::create(2016)->isLongYear(); // false + * ``` + * + * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates + * + * @return bool + */ + public function isLongYear(); + + /** + * Check if the instance is midday. + * + * @example + * ``` + * Carbon::parse('2019-02-28 11:59:59.999999')->isMidday(); // false + * Carbon::parse('2019-02-28 12:00:00')->isMidday(); // true + * Carbon::parse('2019-02-28 12:00:00.999999')->isMidday(); // true + * Carbon::parse('2019-02-28 12:00:01')->isMidday(); // false + * ``` + * + * @return bool + */ + public function isMidday(); + + /** + * Check if the instance is start of day / midnight. + * + * @example + * ``` + * Carbon::parse('2019-02-28 00:00:00')->isMidnight(); // true + * Carbon::parse('2019-02-28 00:00:00.999999')->isMidnight(); // true + * Carbon::parse('2019-02-28 00:00:01')->isMidnight(); // false + * ``` + * + * @return bool + */ + public function isMidnight(); + + /** + * Returns true if a property can be changed via setter. + * + * @param string $unit + * + * @return bool + */ + public static function isModifiableUnit($unit); + + /** + * Returns true if the current class/instance is mutable. + * + * @return bool + */ + public static function isMutable(); + + /** + * Determines if the instance is in the past, ie. less (before) than now. + * + * @example + * ``` + * Carbon::now()->subHours(5)->isPast(); // true + * Carbon::now()->addHours(5)->isPast(); // false + * ``` + * + * @return bool + */ + public function isPast(); + + /** + * Compares the formatted values of the two dates. + * + * @example + * ``` + * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-12-13')); // true + * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-06-14')); // false + * ``` + * + * @param string $format date formats to compare. + * @param \Carbon\Carbon|\DateTimeInterface|string|null $date instance to compare with or null to use current day. + * + * @return bool + */ + public function isSameAs($format, $date = null); + + /** + * Checks if the passed in date is in the same month as the instance´s month. + * + * @example + * ``` + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-01-01')); // true + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-02-01')); // false + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01')); // false + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01'), false); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use the current date. + * @param bool $ofSameYear Check if it is the same month in the same year. + * + * @return bool + */ + public function isSameMonth($date = null, $ofSameYear = true); + + /** + * Checks if the passed in date is in the same quarter as the instance quarter (and year if needed). + * + * @example + * ``` + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-03-01')); // true + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-04-01')); // false + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01')); // false + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01'), false); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|string|null $date The instance to compare with or null to use current day. + * @param bool $ofSameYear Check if it is the same month in the same year. + * + * @return bool + */ + public function isSameQuarter($date = null, $ofSameYear = true); + + /** + * Determines if the instance is in the current unit given. + * + * @example + * ``` + * Carbon::parse('2019-01-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // true + * Carbon::parse('2018-12-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // false + * ``` + * + * @param string $unit singular unit string + * @param \Carbon\Carbon|\DateTimeInterface|null $date instance to compare with or null to use current day. + * + * @throws BadComparisonUnitException + * + * @return bool + */ + public function isSameUnit($unit, $date = null); + + /** + * Check if the instance is start of day / midnight. + * + * @example + * ``` + * Carbon::parse('2019-02-28 00:00:00')->isStartOfDay(); // true + * Carbon::parse('2019-02-28 00:00:00.999999')->isStartOfDay(); // true + * Carbon::parse('2019-02-28 00:00:01')->isStartOfDay(); // false + * Carbon::parse('2019-02-28 00:00:00.000000')->isStartOfDay(true); // true + * Carbon::parse('2019-02-28 00:00:00.000012')->isStartOfDay(true); // false + * ``` + * + * @param bool $checkMicroseconds check time at microseconds precision + * + * @return bool + */ + public function isStartOfDay($checkMicroseconds = false); + + /** + * Returns true if the date was created using CarbonImmutable::startOfTime() + * + * @return bool + */ + public function isStartOfTime(): bool; + + /** + * Returns true if the strict mode is globally in use, false else. + * (It can be overridden in specific instances.) + * + * @return bool + */ + public static function isStrictModeEnabled(); + + /** + * Determines if the instance is today. + * + * @example + * ``` + * Carbon::today()->isToday(); // true + * Carbon::tomorrow()->isToday(); // false + * ``` + * + * @return bool + */ + public function isToday(); + + /** + * Determines if the instance is tomorrow. + * + * @example + * ``` + * Carbon::tomorrow()->isTomorrow(); // true + * Carbon::yesterday()->isTomorrow(); // false + * ``` + * + * @return bool + */ + public function isTomorrow(); + + /** + * Determines if the instance is a weekday. + * + * @example + * ``` + * Carbon::parse('2019-07-14')->isWeekday(); // false + * Carbon::parse('2019-07-15')->isWeekday(); // true + * ``` + * + * @return bool + */ + public function isWeekday(); + + /** + * Determines if the instance is a weekend day. + * + * @example + * ``` + * Carbon::parse('2019-07-14')->isWeekend(); // true + * Carbon::parse('2019-07-15')->isWeekend(); // false + * ``` + * + * @return bool + */ + public function isWeekend(); + + /** + * Determines if the instance is yesterday. + * + * @example + * ``` + * Carbon::yesterday()->isYesterday(); // true + * Carbon::tomorrow()->isYesterday(); // false + * ``` + * + * @return bool + */ + public function isYesterday(); + + /** + * Format in the current language using ISO replacement patterns. + * + * @param string $format + * @param string|null $originalFormat provide context if a chunk has been passed alone + * + * @return string + */ + public function isoFormat(string $format, ?string $originalFormat = null): string; + + /** + * Get/set the week number using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $week + * @param int|null $dayOfWeek + * @param int|null $dayOfYear + * + * @return int|static + */ + public function isoWeek($week = null, $dayOfWeek = null, $dayOfYear = null); + + /** + * Set/get the week number of year using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $year if null, act as a getter, if not null, set the year and return current instance. + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int|static + */ + public function isoWeekYear($year = null, $dayOfWeek = null, $dayOfYear = null); + + /** + * Get/set the ISO weekday from 1 (Monday) to 7 (Sunday). + * + * @param int|null $value new value for weekday if using as setter. + * + * @return static|int + */ + public function isoWeekday($value = null); + + /** + * Get the number of weeks of the current week-year using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int + */ + public function isoWeeksInYear($dayOfWeek = null, $dayOfYear = null); + + /** + * Prepare the object for JSON serialization. + * + * @return array|string + */ + #[ReturnTypeWillChange] + public function jsonSerialize(); + + /** + * Modify to the last occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * last day of the current month. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek + * + * @return static + */ + public function lastOfMonth($dayOfWeek = null); + + /** + * Modify to the last occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * last day of the current quarter. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function lastOfQuarter($dayOfWeek = null); + + /** + * Modify to the last occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * last day of the current year. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function lastOfYear($dayOfWeek = null); + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function lessThan($date): bool; + + /** + * Determines if the instance is less (before) or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function lessThanOrEqualTo($date): bool; + + /** + * Get/set the locale for the current instance. + * + * @param string|null $locale + * @param string ...$fallbackLocales + * + * @return $this|string + */ + public function locale(?string $locale = null, ...$fallbackLocales); + + /** + * Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow). + * Support is considered enabled if the 3 words are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffOneDayWords($locale); + + /** + * Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffSyntax($locale); + + /** + * Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow). + * Support is considered enabled if the 2 words are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffTwoDayWords($locale); + + /** + * Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasPeriodSyntax($locale); + + /** + * Returns true if the given locale is internally supported and has short-units support. + * Support is considered enabled if either year, day or hour has a short variant translated. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasShortUnits($locale); + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThan() + * + * @return bool + */ + public function lt($date): bool; + + /** + * Determines if the instance is less (before) or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThanOrEqualTo() + * + * @return bool + */ + public function lte($date): bool; + + /** + * Register a custom macro. + * + * @example + * ``` + * $userSettings = [ + * 'locale' => 'pt', + * 'timezone' => 'America/Sao_Paulo', + * ]; + * Carbon::macro('userFormat', function () use ($userSettings) { + * return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar(); + * }); + * echo Carbon::yesterday()->hours(11)->userFormat(); + * ``` + * + * @param string $name + * @param object|callable $macro + * + * @return void + */ + public static function macro($name, $macro); + + /** + * Make a Carbon instance from given variable if possible. + * + * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * + * @param mixed $var + * + * @throws InvalidFormatException + * + * @return static|null + */ + public static function make($var); + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return static + */ + public function max($date = null); + + /** + * Create a Carbon instance for the greatest supported date. + * + * @return static + */ + public static function maxValue(); + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see max() + * + * @return static + */ + public function maximum($date = null); + + /** + * Return the meridiem of the current time in the current locale. + * + * @param bool $isLower if true, returns lowercase variant if available in the current locale. + * + * @return string + */ + public function meridiem(bool $isLower = false): string; + + /** + * Modify to midday, default to self::$midDayAt + * + * @return static + */ + public function midDay(); + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return static + */ + public function min($date = null); + + /** + * Create a Carbon instance for the lowest supported date. + * + * @return static + */ + public static function minValue(); + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see min() + * + * @return static + */ + public function minimum($date = null); + + /** + * Mix another object into the class. + * + * @example + * ``` + * Carbon::mixin(new class { + * public function addMoon() { + * return function () { + * return $this->addDays(30); + * }; + * } + * public function subMoon() { + * return function () { + * return $this->subDays(30); + * }; + * } + * }); + * $fullMoon = Carbon::create('2018-12-22'); + * $nextFullMoon = $fullMoon->addMoon(); + * $blackMoon = Carbon::create('2019-01-06'); + * $previousBlackMoon = $blackMoon->subMoon(); + * echo "$nextFullMoon\n"; + * echo "$previousBlackMoon\n"; + * ``` + * + * @param object|string $mixin + * + * @throws ReflectionException + * + * @return void + */ + public static function mixin($mixin); + + /** + * Calls \DateTime::modify if mutable or \DateTimeImmutable::modify else. + * + * @see https://php.net/manual/en/datetime.modify.php + * + * @return static|false + */ + #[ReturnTypeWillChange] + public function modify($modify); + + /** + * Determines if the instance is not equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->ne(Carbon::parse('2018-07-25 12:45:16')); // false + * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see notEqualTo() + * + * @return bool + */ + public function ne($date): bool; + + /** + * Modify to the next occurrence of a given modifier such as a day of + * the week. If no modifier is provided, modify to the next occurrence + * of the current day of the week. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param string|int|null $modifier + * + * @return static|false + */ + public function next($modifier = null); + + /** + * Go forward to the next weekday. + * + * @return static + */ + public function nextWeekday(); + + /** + * Go forward to the next weekend day. + * + * @return static + */ + public function nextWeekendDay(); + + /** + * Determines if the instance is not equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo(Carbon::parse('2018-07-25 12:45:16')); // false + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function notEqualTo($date): bool; + + /** + * Get a Carbon instance for the current date and time. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function now($tz = null); + + /** + * Returns a present instance in the same timezone. + * + * @return static + */ + public function nowWithSameTz(); + + /** + * Modify to the given occurrence of a given day of the week + * in the current month. If the calculated occurrence is outside the scope + * of the current month, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfMonth($nth, $dayOfWeek); + + /** + * Modify to the given occurrence of a given day of the week + * in the current quarter. If the calculated occurrence is outside the scope + * of the current quarter, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfQuarter($nth, $dayOfWeek); + + /** + * Modify to the given occurrence of a given day of the week + * in the current year. If the calculated occurrence is outside the scope + * of the current year, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfYear($nth, $dayOfWeek); + + /** + * Return a property with its ordinal. + * + * @param string $key + * @param string|null $period + * + * @return string + */ + public function ordinal(string $key, ?string $period = null): string; + + /** + * Create a carbon instance from a string. + * + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * + * @param string|DateTimeInterface|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function parse($time = null, $tz = null); + + /** + * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). + * + * @param string $time date/time string in the given language (may also contain English). + * @param string|null $locale if locale is null or not specified, current global locale will be + * used instead. + * @param DateTimeZone|string|null $tz optional timezone for the new instance. + * + * @throws InvalidFormatException + * + * @return static + */ + public static function parseFromLocale($time, $locale = null, $tz = null); + + /** + * Returns standardized plural of a given singular/plural unit name (in English). + * + * @param string $unit + * + * @return string + */ + public static function pluralUnit(string $unit): string; + + /** + * Modify to the previous occurrence of a given modifier such as a day of + * the week. If no dayOfWeek is provided, modify to the previous occurrence + * of the current day of the week. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param string|int|null $modifier + * + * @return static|false + */ + public function previous($modifier = null); + + /** + * Go backward to the previous weekday. + * + * @return static + */ + public function previousWeekday(); + + /** + * Go backward to the previous weekend day. + * + * @return static + */ + public function previousWeekendDay(); + + /** + * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval). + * + * @param \DateTimeInterface|Carbon|CarbonImmutable|null $end period end date + * @param int|\DateInterval|string|null $interval period default interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return CarbonPeriod + */ + public function range($end = null, $interval = null, $unit = null); + + /** + * Call native PHP DateTime/DateTimeImmutable add() method. + * + * @param DateInterval $interval + * + * @return static + */ + public function rawAdd(DateInterval $interval); + + /** + * Create a Carbon instance from a specific format. + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function rawCreateFromFormat($format, $time, $tz = null); + + /** + * @see https://php.net/manual/en/datetime.format.php + * + * @param string $format + * + * @return string + */ + public function rawFormat($format); + + /** + * Create a carbon instance from a string. + * + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * + * @param string|DateTimeInterface|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function rawParse($time = null, $tz = null); + + /** + * Call native PHP DateTime/DateTimeImmutable sub() method. + * + * @param DateInterval $interval + * + * @return static + */ + public function rawSub(DateInterval $interval); + + /** + * Remove all macros and generic macros. + */ + public static function resetMacros(); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Reset the month overflow behavior. + * + * @return void + */ + public static function resetMonthsOverflow(); + + /** + * Reset the format used to the default when type juggling a Carbon instance to a string + * + * @return void + */ + public static function resetToStringFormat(); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Reset the month overflow behavior. + * + * @return void + */ + public static function resetYearsOverflow(); + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * @param string $function + * + * @return CarbonInterface + */ + public function round($precision = 1, $function = 'round'); + + /** + * Round the current instance at the given unit with given precision if specified and the given function. + * + * @param string $unit + * @param float|int $precision + * @param string $function + * + * @return CarbonInterface + */ + public function roundUnit($unit, $precision = 1, $function = 'round'); + + /** + * Round the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function roundWeek($weekStartsAt = null); + + /** + * The number of seconds since midnight. + * + * @return int + */ + public function secondsSinceMidnight(); + + /** + * The number of seconds until 23:59:59. + * + * @return int + */ + public function secondsUntilEndOfDay(); + + /** + * Return a serialized string of the instance. + * + * @return string + */ + public function serialize(); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather transform Carbon object before the serialization. + * + * JSON serialize all Carbon instances using the given callback. + * + * @param callable $callback + * + * @return void + */ + public static function serializeUsing($callback); + + /** + * Set a part of the Carbon object + * + * @param string|array $name + * @param string|int|DateTimeZone $value + * + * @throws ImmutableException|UnknownSetterException + * + * @return $this + */ + public function set($name, $value = null); + + /** + * Set the date with gregorian year, month and day numbers. + * + * @see https://php.net/manual/en/datetime.setdate.php + * + * @param int $year + * @param int $month + * @param int $day + * + * @return static + */ + #[ReturnTypeWillChange] + public function setDate($year, $month, $day); + + /** + * Set the year, month, and date for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date now if null + * + * @return static + */ + public function setDateFrom($date = null); + + /** + * Set the date and time all together. + * + * @param int $year + * @param int $month + * @param int $day + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microseconds + * + * @return static + */ + public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $microseconds = 0); + + /** + * Set the date and time for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date + * + * @return static + */ + public function setDateTimeFrom($date = null); + + /** + * Set the day (keeping the current time) to the start of the week + the number of days passed as the first + * parameter. First day of week is driven by the locale unless explicitly set with the second parameter. + * + * @param int $numberOfDays number of days to add after the start of the current week + * @param int|null $weekStartsAt optional start allow you to specify the day of week to use to start the week, + * if not provided, start of week is inferred from the locale + * (Sunday for en_US, Monday for de_DE, etc.) + * + * @return static + */ + public function setDaysFromStartOfWeek(int $numberOfDays, ?int $weekStartsAt = null); + + /** + * Set the fallback locale. + * + * @see https://symfony.com/doc/current/components/translation.html#fallback-locales + * + * @param string $locale + */ + public static function setFallbackLocale($locale); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOptions + */ + public static function setHumanDiffOptions($humanDiffOptions); + + /** + * Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates. + * + * @see https://php.net/manual/en/datetime.setisodate.php + * + * @param int $year + * @param int $week + * @param int $day + * + * @return static + */ + #[ReturnTypeWillChange] + public function setISODate($year, $week, $day = 1); + + /** + * Set the translator for the current instance. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * + * @return $this + */ + public function setLocalTranslator(TranslatorInterface $translator); + + /** + * Set the current translator locale and indicate if the source locale file exists. + * Pass 'auto' as locale to use closest language from the current LC_TIME locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function setLocale($locale); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider mid-day is always 12pm, then if you need to test if it's an other + * hour, test it explicitly: + * $date->format('G') == 13 + * or to set explicitly to a given hour: + * $date->setTime(13, 0, 0, 0) + * + * Set midday/noon hour + * + * @param int $hour midday hour + * + * @return void + */ + public static function setMidDayAt($hour); + + /** + * Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * + * Only the moment is mocked with setTestNow(), the timezone will still be the one passed + * as parameter of date_default_timezone_get() as a fallback (see setTestNowAndTimezone()). + * + * To clear the test instance call this method using the default + * parameter of null. + * + * /!\ Use this method for unit tests only. + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + */ + public static function setTestNow($testNow = null); + + /** + * Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * + * It will also align default timezone (e.g. call date_default_timezone_set()) with + * the second argument or if null, with the timezone of the given date object. + * + * To clear the test instance call this method using the default + * parameter of null. + * + * /!\ Use this method for unit tests only. + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + */ + public static function setTestNowAndTimezone($testNow = null, $tz = null); + + /** + * Resets the current time of the DateTime object to a different time. + * + * @see https://php.net/manual/en/datetime.settime.php + * + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microseconds + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTime($hour, $minute, $second = 0, $microseconds = 0); + + /** + * Set the hour, minute, second and microseconds for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date now if null + * + * @return static + */ + public function setTimeFrom($date = null); + + /** + * Set the time by time string. + * + * @param string $time + * + * @return static + */ + public function setTimeFromTimeString($time); + + /** + * Set the instance's timestamp. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $unixTimestamp + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTimestamp($unixTimestamp); + + /** + * Set the instance's timezone from a string or object. + * + * @param DateTimeZone|string $value + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTimezone($value); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being cast to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump another string + * format. + * + * Set the default format used when type juggling a Carbon instance to a string. + * + * @param string|Closure|null $format + * + * @return void + */ + public static function setToStringFormat($format); + + /** + * Set the default translator instance to use. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * + * @return void + */ + public static function setTranslator(TranslatorInterface $translator); + + /** + * Set specified unit to new given value. + * + * @param string $unit year, month, day, hour, minute, second or microsecond + * @param int $value new value for given unit + * + * @return static + */ + public function setUnit($unit, $value = null); + + /** + * Set any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value new value for the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function setUnitNoOverflow($valueUnit, $value, $overflowUnit); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use UTF-8 language packages on every machine. + * + * Set if UTF8 will be used for localized date/time. + * + * @param bool $utf8 + */ + public static function setUtf8($utf8); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek + * or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the + * start of week according to current locale selected and implicitly the end of week. + * + * Set the last day of week + * + * @param int|string $day week end day (or 'auto' to get the day before the first day of week + * from Carbon::getLocale() culture). + * + * @return void + */ + public static function setWeekEndsAt($day); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the + * 'first_day_of_week' locale setting to change the start of week according to current locale + * selected and implicitly the end of week. + * + * Set the first day of week + * + * @param int|string $day week start day (or 'auto' to get the first day of week from Carbon::getLocale() culture). + * + * @return void + */ + public static function setWeekStartsAt($day); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider week-end is always saturday and sunday, and if you have some custom + * week-end days to handle, give to those days an other name and create a macro for them: + * + * ``` + * Carbon::macro('isDayOff', function ($date) { + * return $date->isSunday() || $date->isMonday(); + * }); + * Carbon::macro('isNotDayOff', function ($date) { + * return !$date->isDayOff(); + * }); + * if ($someDate->isDayOff()) ... + * if ($someDate->isNotDayOff()) ... + * // Add 5 not-off days + * $count = 5; + * while ($someDate->isDayOff() || ($count-- > 0)) { + * $someDate->addDay(); + * } + * ``` + * + * Set weekend days + * + * @param array $days + * + * @return void + */ + public static function setWeekendDays($days); + + /** + * Set specific options. + * - strictMode: true|false|null + * - monthOverflow: true|false|null + * - yearOverflow: true|false|null + * - humanDiffOptions: int|null + * - toStringFormat: string|Closure|null + * - toJsonFormat: string|Closure|null + * - locale: string|null + * - timezone: \DateTimeZone|string|int|null + * - macros: array|null + * - genericMacros: array|null + * + * @param array $settings + * + * @return $this|static + */ + public function settings(array $settings); + + /** + * Set the instance's timezone from a string or object and add/subtract the offset difference. + * + * @param DateTimeZone|string $value + * + * @return static + */ + public function shiftTimezone($value); + + /** + * Get the month overflow global behavior (can be overridden in specific instances). + * + * @return bool + */ + public static function shouldOverflowMonths(); + + /** + * Get the month overflow global behavior (can be overridden in specific instances). + * + * @return bool + */ + public static function shouldOverflowYears(); + + /** + * @alias diffForHumans + * + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + */ + public function since($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Returns standardized singular of a given singular/plural unit name (in English). + * + * @param string $unit + * + * @return string + */ + public static function singularUnit(string $unit): string; + + /** + * Modify to start of current given unit. + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOf('month') + * ->endOf('week', Carbon::FRIDAY); + * ``` + * + * @param string $unit + * @param array $params + * + * @return static + */ + public function startOf($unit, ...$params); + + /** + * Resets the date to the first day of the century and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfCentury(); + * ``` + * + * @return static + */ + public function startOfCentury(); + + /** + * Resets the time to 00:00:00 start of day + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfDay(); + * ``` + * + * @return static + */ + public function startOfDay(); + + /** + * Resets the date to the first day of the decade and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfDecade(); + * ``` + * + * @return static + */ + public function startOfDecade(); + + /** + * Modify to start of current hour, minutes and seconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfHour(); + * ``` + * + * @return static + */ + public function startOfHour(); + + /** + * Resets the date to the first day of the millennium and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMillennium(); + * ``` + * + * @return static + */ + public function startOfMillennium(); + + /** + * Modify to start of current minute, seconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMinute(); + * ``` + * + * @return static + */ + public function startOfMinute(); + + /** + * Resets the date to the first day of the month and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMonth(); + * ``` + * + * @return static + */ + public function startOfMonth(); + + /** + * Resets the date to the first day of the quarter and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfQuarter(); + * ``` + * + * @return static + */ + public function startOfQuarter(); + + /** + * Modify to start of current second, microseconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOfSecond() + * ->format('H:i:s.u'); + * ``` + * + * @return static + */ + public function startOfSecond(); + + /** + * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->startOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek(Carbon::SUNDAY) . "\n"; + * ``` + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return static + */ + public function startOfWeek($weekStartsAt = null); + + /** + * Resets the date to the first day of the year and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfYear(); + * ``` + * + * @return static + */ + public function startOfYear(); + + /** + * Subtract given units or interval to the current instance. + * + * @example $date->sub('hour', 3) + * @example $date->sub(15, 'days') + * @example $date->sub(CarbonInterval::days(4)) + * + * @param string|DateInterval|Closure|CarbonConverterInterface $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + #[ReturnTypeWillChange] + public function sub($unit, $value = 1, $overflow = null); + + public function subRealUnit($unit, $value = 1); + + /** + * Subtract given units to the current instance. + * + * @param string $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function subUnit($unit, $value = 1, $overflow = null); + + /** + * Subtract any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value amount to subtract to the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function subUnitNoOverflow($valueUnit, $value, $overflowUnit); + + /** + * Subtract given units or interval to the current instance. + * + * @see sub() + * + * @param string|DateInterval $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function subtract($unit, $value = 1, $overflow = null); + + /** + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @return string + */ + public function timespan($other = null, $timezone = null); + + /** + * Set the instance's timestamp. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $unixTimestamp + * + * @return static + */ + public function timestamp($unixTimestamp); + + /** + * @alias setTimezone + * + * @param DateTimeZone|string $value + * + * @return static + */ + public function timezone($value); + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given (or now if null given) to current instance. + * + * When comparing a value in the past to default now: + * 1 hour from now + * 5 months from now + * + * When comparing a value in the future to default now: + * 1 hour ago + * 5 months ago + * + * When comparing a value in the past to another value: + * 1 hour after + * 5 months after + * + * When comparing a value in the future to another value: + * 1 hour before + * 5 months before + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function to($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Get default array representation. + * + * @example + * ``` + * var_dump(Carbon::now()->toArray()); + * ``` + * + * @return array + */ + public function toArray(); + + /** + * Format the instance as ATOM + * + * @example + * ``` + * echo Carbon::now()->toAtomString(); + * ``` + * + * @return string + */ + public function toAtomString(); + + /** + * Format the instance as COOKIE + * + * @example + * ``` + * echo Carbon::now()->toCookieString(); + * ``` + * + * @return string + */ + public function toCookieString(); + + /** + * @alias toDateTime + * + * Return native DateTime PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDate()); + * ``` + * + * @return DateTime + */ + public function toDate(); + + /** + * Format the instance as date + * + * @example + * ``` + * echo Carbon::now()->toDateString(); + * ``` + * + * @return string + */ + public function toDateString(); + + /** + * Return native DateTime PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDateTime()); + * ``` + * + * @return DateTime + */ + public function toDateTime(); + + /** + * Return native toDateTimeImmutable PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDateTimeImmutable()); + * ``` + * + * @return DateTimeImmutable + */ + public function toDateTimeImmutable(); + + /** + * Format the instance as date and time T-separated with no timezone + * + * @example + * ``` + * echo Carbon::now()->toDateTimeLocalString(); + * echo "\n"; + * echo Carbon::now()->toDateTimeLocalString('minute'); // You can specify precision among: minute, second, millisecond and microsecond + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toDateTimeLocalString($unitPrecision = 'second'); + + /** + * Format the instance as date and time + * + * @example + * ``` + * echo Carbon::now()->toDateTimeString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toDateTimeString($unitPrecision = 'second'); + + /** + * Format the instance with day, date and time + * + * @example + * ``` + * echo Carbon::now()->toDayDateTimeString(); + * ``` + * + * @return string + */ + public function toDayDateTimeString(); + + /** + * Format the instance as a readable date + * + * @example + * ``` + * echo Carbon::now()->toFormattedDateString(); + * ``` + * + * @return string + */ + public function toFormattedDateString(); + + /** + * Format the instance with the day, and a readable date + * + * @example + * ``` + * echo Carbon::now()->toFormattedDayDateString(); + * ``` + * + * @return string + */ + public function toFormattedDayDateString(): string; + + /** + * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept: + * 1977-04-22T01:00:00-05:00). + * + * @example + * ``` + * echo Carbon::now('America/Toronto')->toISOString() . "\n"; + * echo Carbon::now('America/Toronto')->toISOString(true) . "\n"; + * ``` + * + * @param bool $keepOffset Pass true to keep the date offset. Else forced to UTC. + * + * @return null|string + */ + public function toISOString($keepOffset = false); + + /** + * Return a immutable copy of the instance. + * + * @return CarbonImmutable + */ + public function toImmutable(); + + /** + * Format the instance as ISO8601 + * + * @example + * ``` + * echo Carbon::now()->toIso8601String(); + * ``` + * + * @return string + */ + public function toIso8601String(); + + /** + * Convert the instance to UTC and return as Zulu ISO8601 + * + * @example + * ``` + * echo Carbon::now()->toIso8601ZuluString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toIso8601ZuluString($unitPrecision = 'second'); + + /** + * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z) with UTC timezone. + * + * @example + * ``` + * echo Carbon::now('America/Toronto')->toJSON(); + * ``` + * + * @return null|string + */ + public function toJSON(); + + /** + * Return a mutable copy of the instance. + * + * @return Carbon + */ + public function toMutable(); + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given to now + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single part) + * @param int $options human diff options + * + * @return string + */ + public function toNow($syntax = null, $short = false, $parts = 1, $options = null); + + /** + * Get default object representation. + * + * @example + * ``` + * var_dump(Carbon::now()->toObject()); + * ``` + * + * @return object + */ + public function toObject(); + + /** + * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval). + * + * @param \DateTimeInterface|Carbon|CarbonImmutable|int|null $end period end date or recurrences count if int + * @param int|\DateInterval|string|null $interval period default interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return CarbonPeriod + */ + public function toPeriod($end = null, $interval = null, $unit = null); + + /** + * Format the instance as RFC1036 + * + * @example + * ``` + * echo Carbon::now()->toRfc1036String(); + * ``` + * + * @return string + */ + public function toRfc1036String(); + + /** + * Format the instance as RFC1123 + * + * @example + * ``` + * echo Carbon::now()->toRfc1123String(); + * ``` + * + * @return string + */ + public function toRfc1123String(); + + /** + * Format the instance as RFC2822 + * + * @example + * ``` + * echo Carbon::now()->toRfc2822String(); + * ``` + * + * @return string + */ + public function toRfc2822String(); + + /** + * Format the instance as RFC3339 + * + * @param bool $extended + * + * @example + * ``` + * echo Carbon::now()->toRfc3339String() . "\n"; + * echo Carbon::now()->toRfc3339String(true) . "\n"; + * ``` + * + * @return string + */ + public function toRfc3339String($extended = false); + + /** + * Format the instance as RFC7231 + * + * @example + * ``` + * echo Carbon::now()->toRfc7231String(); + * ``` + * + * @return string + */ + public function toRfc7231String(); + + /** + * Format the instance as RFC822 + * + * @example + * ``` + * echo Carbon::now()->toRfc822String(); + * ``` + * + * @return string + */ + public function toRfc822String(); + + /** + * Format the instance as RFC850 + * + * @example + * ``` + * echo Carbon::now()->toRfc850String(); + * ``` + * + * @return string + */ + public function toRfc850String(); + + /** + * Format the instance as RSS + * + * @example + * ``` + * echo Carbon::now()->toRssString(); + * ``` + * + * @return string + */ + public function toRssString(); + + /** + * Returns english human readable complete date string. + * + * @example + * ``` + * echo Carbon::now()->toString(); + * ``` + * + * @return string + */ + public function toString(); + + /** + * Format the instance as time + * + * @example + * ``` + * echo Carbon::now()->toTimeString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toTimeString($unitPrecision = 'second'); + + /** + * Format the instance as W3C + * + * @example + * ``` + * echo Carbon::now()->toW3cString(); + * ``` + * + * @return string + */ + public function toW3cString(); + + /** + * Create a Carbon instance for today. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function today($tz = null); + + /** + * Create a Carbon instance for tomorrow. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function tomorrow($tz = null); + + /** + * Translate using translation string or callback available. + * + * @param string $key + * @param array $parameters + * @param string|int|float|null $number + * @param \Symfony\Component\Translation\TranslatorInterface|null $translator + * @param bool $altNumbers + * + * @return string + */ + public function translate(string $key, array $parameters = [], $number = null, ?TranslatorInterface $translator = null, bool $altNumbers = false): string; + + /** + * Returns the alternative number for a given integer if available in the current locale. + * + * @param int $number + * + * @return string + */ + public function translateNumber(int $number): string; + + /** + * Translate a time string from a locale to an other. + * + * @param string $timeString date/time/duration string to translate (may also contain English) + * @param string|null $from input locale of the $timeString parameter (`Carbon::getLocale()` by default) + * @param string|null $to output locale of the result returned (`"en"` by default) + * @param int $mode specify what to translate with options: + * - self::TRANSLATE_ALL (default) + * - CarbonInterface::TRANSLATE_MONTHS + * - CarbonInterface::TRANSLATE_DAYS + * - CarbonInterface::TRANSLATE_UNITS + * - CarbonInterface::TRANSLATE_MERIDIEM + * You can use pipe to group: CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS + * + * @return string + */ + public static function translateTimeString($timeString, $from = null, $to = null, $mode = self::TRANSLATE_ALL); + + /** + * Translate a time string from the current locale (`$date->locale()`) to an other. + * + * @param string $timeString time string to translate + * @param string|null $to output locale of the result returned ("en" by default) + * + * @return string + */ + public function translateTimeStringTo($timeString, $to = null); + + /** + * Translate using translation string or callback available. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * @param string $key + * @param array $parameters + * @param null $number + * + * @return string + */ + public static function translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null): string; + + /** + * Format as ->format() do (using date replacements patterns from https://php.net/manual/en/function.date.php) + * but translate words whenever possible (months, day names, etc.) using the current locale. + * + * @param string $format + * + * @return string + */ + public function translatedFormat(string $format): string; + + /** + * Set the timezone or returns the timezone name if no arguments passed. + * + * @param DateTimeZone|string $value + * + * @return static|string + */ + public function tz($value = null); + + /** + * @alias getTimestamp + * + * Returns the UNIX timestamp for the current date. + * + * @return int + */ + public function unix(); + + /** + * @alias to + * + * Get the difference in a human readable format in the current locale from an other + * instance given (or now if null given) to current instance. + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function until($other = null, $syntax = null, $short = false, $parts = 1, $options = null); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Indicates if months should be calculated with overflow. + * + * @param bool $monthsOverflow + * + * @return void + */ + public static function useMonthsOverflow($monthsOverflow = true); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * Enable the strict mode (or disable with passing false). + * + * @param bool $strictModeEnabled + */ + public static function useStrictMode($strictModeEnabled = true); + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Indicates if years should be calculated with overflow. + * + * @param bool $yearsOverflow + * + * @return void + */ + public static function useYearsOverflow($yearsOverflow = true); + + /** + * Set the instance's timezone to UTC. + * + * @return static + */ + public function utc(); + + /** + * Returns the minutes offset to UTC if no arguments passed, else set the timezone with given minutes shift passed. + * + * @param int|null $minuteOffset + * + * @return int|static + */ + public function utcOffset(?int $minuteOffset = null); + + /** + * Returns the milliseconds timestamps used amongst other by Date javascript objects. + * + * @return float + */ + public function valueOf(); + + /** + * Get/set the week number using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $week + * @param int|null $dayOfWeek + * @param int|null $dayOfYear + * + * @return int|static + */ + public function week($week = null, $dayOfWeek = null, $dayOfYear = null); + + /** + * Set/get the week number of year using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $year if null, act as a getter, if not null, set the year and return current instance. + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int|static + */ + public function weekYear($year = null, $dayOfWeek = null, $dayOfYear = null); + + /** + * Get/set the weekday from 0 (Sunday) to 6 (Saturday). + * + * @param int|null $value new value for weekday if using as setter. + * + * @return static|int + */ + public function weekday($value = null); + + /** + * Get the number of weeks of the current week-year using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int + */ + public function weeksInYear($dayOfWeek = null, $dayOfYear = null); + + /** + * Temporarily sets a static date to be used within the callback. + * Using setTestNow to set the date, executing the callback, then + * clearing the test instance. + * + * /!\ Use this method for unit tests only. + * + * @template T + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + * @param Closure(): T $callback + * + * @return mixed + * @phpstan-return T + */ + public static function withTestNow($testNow, $callback); + + /** + * Create a Carbon instance for yesterday. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function yesterday($tz = null); + + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php b/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php new file mode 100644 index 000000000..9eb49c028 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php @@ -0,0 +1,2844 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\BadFluentConstructorException; +use Carbon\Exceptions\BadFluentSetterException; +use Carbon\Exceptions\InvalidCastException; +use Carbon\Exceptions\InvalidIntervalException; +use Carbon\Exceptions\ParseErrorException; +use Carbon\Exceptions\UnitNotConfiguredException; +use Carbon\Exceptions\UnknownGetterException; +use Carbon\Exceptions\UnknownSetterException; +use Carbon\Exceptions\UnknownUnitException; +use Carbon\Traits\IntervalRounding; +use Carbon\Traits\IntervalStep; +use Carbon\Traits\MagicParameter; +use Carbon\Traits\Mixin; +use Carbon\Traits\Options; +use Carbon\Traits\ToStringFormat; +use Closure; +use DateInterval; +use DateMalformedIntervalStringException; +use DateTimeInterface; +use DateTimeZone; +use Exception; +use ReflectionException; +use ReturnTypeWillChange; +use Throwable; + +/** + * A simple API extension for DateInterval. + * The implementation provides helpers to handle weeks but only days are saved. + * Weeks are calculated based on the total days of the current instance. + * + * @property int $years Total years of the current interval. + * @property int $months Total months of the current interval. + * @property int $weeks Total weeks of the current interval calculated from the days. + * @property int $dayz Total days of the current interval (weeks * 7 + days). + * @property int $hours Total hours of the current interval. + * @property int $minutes Total minutes of the current interval. + * @property int $seconds Total seconds of the current interval. + * @property int $microseconds Total microseconds of the current interval. + * @property int $milliseconds Total milliseconds of the current interval. + * @property int $microExcludeMilli Remaining microseconds without the milliseconds. + * @property int $dayzExcludeWeeks Total days remaining in the final week of the current instance (days % 7). + * @property int $daysExcludeWeeks alias of dayzExcludeWeeks + * @property-read float $totalYears Number of years equivalent to the interval. + * @property-read float $totalMonths Number of months equivalent to the interval. + * @property-read float $totalWeeks Number of weeks equivalent to the interval. + * @property-read float $totalDays Number of days equivalent to the interval. + * @property-read float $totalDayz Alias for totalDays. + * @property-read float $totalHours Number of hours equivalent to the interval. + * @property-read float $totalMinutes Number of minutes equivalent to the interval. + * @property-read float $totalSeconds Number of seconds equivalent to the interval. + * @property-read float $totalMilliseconds Number of milliseconds equivalent to the interval. + * @property-read float $totalMicroseconds Number of microseconds equivalent to the interval. + * @property-read string $locale locale of the current instance + * + * @method static CarbonInterval years($years = 1) Create instance specifying a number of years or modify the number of years if called on an instance. + * @method static CarbonInterval year($years = 1) Alias for years() + * @method static CarbonInterval months($months = 1) Create instance specifying a number of months or modify the number of months if called on an instance. + * @method static CarbonInterval month($months = 1) Alias for months() + * @method static CarbonInterval weeks($weeks = 1) Create instance specifying a number of weeks or modify the number of weeks if called on an instance. + * @method static CarbonInterval week($weeks = 1) Alias for weeks() + * @method static CarbonInterval days($days = 1) Create instance specifying a number of days or modify the number of days if called on an instance. + * @method static CarbonInterval dayz($days = 1) Alias for days() + * @method static CarbonInterval daysExcludeWeeks($days = 1) Create instance specifying a number of days or modify the number of days (keeping the current number of weeks) if called on an instance. + * @method static CarbonInterval dayzExcludeWeeks($days = 1) Alias for daysExcludeWeeks() + * @method static CarbonInterval day($days = 1) Alias for days() + * @method static CarbonInterval hours($hours = 1) Create instance specifying a number of hours or modify the number of hours if called on an instance. + * @method static CarbonInterval hour($hours = 1) Alias for hours() + * @method static CarbonInterval minutes($minutes = 1) Create instance specifying a number of minutes or modify the number of minutes if called on an instance. + * @method static CarbonInterval minute($minutes = 1) Alias for minutes() + * @method static CarbonInterval seconds($seconds = 1) Create instance specifying a number of seconds or modify the number of seconds if called on an instance. + * @method static CarbonInterval second($seconds = 1) Alias for seconds() + * @method static CarbonInterval milliseconds($milliseconds = 1) Create instance specifying a number of milliseconds or modify the number of milliseconds if called on an instance. + * @method static CarbonInterval millisecond($milliseconds = 1) Alias for milliseconds() + * @method static CarbonInterval microseconds($microseconds = 1) Create instance specifying a number of microseconds or modify the number of microseconds if called on an instance. + * @method static CarbonInterval microsecond($microseconds = 1) Alias for microseconds() + * @method $this addYears(int $years) Add given number of years to the current interval + * @method $this subYears(int $years) Subtract given number of years to the current interval + * @method $this addMonths(int $months) Add given number of months to the current interval + * @method $this subMonths(int $months) Subtract given number of months to the current interval + * @method $this addWeeks(int|float $weeks) Add given number of weeks to the current interval + * @method $this subWeeks(int|float $weeks) Subtract given number of weeks to the current interval + * @method $this addDays(int|float $days) Add given number of days to the current interval + * @method $this subDays(int|float $days) Subtract given number of days to the current interval + * @method $this addHours(int|float $hours) Add given number of hours to the current interval + * @method $this subHours(int|float $hours) Subtract given number of hours to the current interval + * @method $this addMinutes(int|float $minutes) Add given number of minutes to the current interval + * @method $this subMinutes(int|float $minutes) Subtract given number of minutes to the current interval + * @method $this addSeconds(int|float $seconds) Add given number of seconds to the current interval + * @method $this subSeconds(int|float $seconds) Subtract given number of seconds to the current interval + * @method $this addMilliseconds(int|float $milliseconds) Add given number of milliseconds to the current interval + * @method $this subMilliseconds(int|float $milliseconds) Subtract given number of milliseconds to the current interval + * @method $this addMicroseconds(int|float $microseconds) Add given number of microseconds to the current interval + * @method $this subMicroseconds(int|float $microseconds) Subtract given number of microseconds to the current interval + * @method $this roundYear(int|float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this roundYears(int|float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this floorYear(int|float $precision = 1) Truncate the current instance year with given precision. + * @method $this floorYears(int|float $precision = 1) Truncate the current instance year with given precision. + * @method $this ceilYear(int|float $precision = 1) Ceil the current instance year with given precision. + * @method $this ceilYears(int|float $precision = 1) Ceil the current instance year with given precision. + * @method $this roundMonth(int|float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this roundMonths(int|float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this floorMonth(int|float $precision = 1) Truncate the current instance month with given precision. + * @method $this floorMonths(int|float $precision = 1) Truncate the current instance month with given precision. + * @method $this ceilMonth(int|float $precision = 1) Ceil the current instance month with given precision. + * @method $this ceilMonths(int|float $precision = 1) Ceil the current instance month with given precision. + * @method $this roundWeek(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundWeeks(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorWeek(int|float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorWeeks(int|float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilWeek(int|float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilWeeks(int|float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundDay(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundDays(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorDay(int|float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorDays(int|float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilDay(int|float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilDays(int|float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundHour(int|float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this roundHours(int|float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this floorHour(int|float $precision = 1) Truncate the current instance hour with given precision. + * @method $this floorHours(int|float $precision = 1) Truncate the current instance hour with given precision. + * @method $this ceilHour(int|float $precision = 1) Ceil the current instance hour with given precision. + * @method $this ceilHours(int|float $precision = 1) Ceil the current instance hour with given precision. + * @method $this roundMinute(int|float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this roundMinutes(int|float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this floorMinute(int|float $precision = 1) Truncate the current instance minute with given precision. + * @method $this floorMinutes(int|float $precision = 1) Truncate the current instance minute with given precision. + * @method $this ceilMinute(int|float $precision = 1) Ceil the current instance minute with given precision. + * @method $this ceilMinutes(int|float $precision = 1) Ceil the current instance minute with given precision. + * @method $this roundSecond(int|float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this roundSeconds(int|float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this floorSecond(int|float $precision = 1) Truncate the current instance second with given precision. + * @method $this floorSeconds(int|float $precision = 1) Truncate the current instance second with given precision. + * @method $this ceilSecond(int|float $precision = 1) Ceil the current instance second with given precision. + * @method $this ceilSeconds(int|float $precision = 1) Ceil the current instance second with given precision. + * @method $this roundMillennium(int|float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this roundMillennia(int|float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this floorMillennium(int|float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this floorMillennia(int|float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this ceilMillennium(int|float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this ceilMillennia(int|float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this roundCentury(int|float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this roundCenturies(int|float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this floorCentury(int|float $precision = 1) Truncate the current instance century with given precision. + * @method $this floorCenturies(int|float $precision = 1) Truncate the current instance century with given precision. + * @method $this ceilCentury(int|float $precision = 1) Ceil the current instance century with given precision. + * @method $this ceilCenturies(int|float $precision = 1) Ceil the current instance century with given precision. + * @method $this roundDecade(int|float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this roundDecades(int|float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this floorDecade(int|float $precision = 1) Truncate the current instance decade with given precision. + * @method $this floorDecades(int|float $precision = 1) Truncate the current instance decade with given precision. + * @method $this ceilDecade(int|float $precision = 1) Ceil the current instance decade with given precision. + * @method $this ceilDecades(int|float $precision = 1) Ceil the current instance decade with given precision. + * @method $this roundQuarter(int|float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this roundQuarters(int|float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this floorQuarter(int|float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this floorQuarters(int|float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this ceilQuarter(int|float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this ceilQuarters(int|float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this roundMillisecond(int|float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this roundMilliseconds(int|float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this floorMillisecond(int|float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this floorMilliseconds(int|float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this ceilMillisecond(int|float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this ceilMilliseconds(int|float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this roundMicrosecond(int|float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this roundMicroseconds(int|float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this floorMicrosecond(int|float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this floorMicroseconds(int|float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this ceilMicrosecond(int|float $precision = 1) Ceil the current instance microsecond with given precision. + * @method $this ceilMicroseconds(int|float $precision = 1) Ceil the current instance microsecond with given precision. + */ +class CarbonInterval extends DateInterval implements CarbonConverterInterface +{ + use IntervalRounding; + use IntervalStep; + use MagicParameter; + use Mixin { + Mixin::mixin as baseMixin; + } + use Options; + use ToStringFormat; + + /** + * Interval spec period designators + */ + public const PERIOD_PREFIX = 'P'; + public const PERIOD_YEARS = 'Y'; + public const PERIOD_MONTHS = 'M'; + public const PERIOD_DAYS = 'D'; + public const PERIOD_TIME_PREFIX = 'T'; + public const PERIOD_HOURS = 'H'; + public const PERIOD_MINUTES = 'M'; + public const PERIOD_SECONDS = 'S'; + + /** + * A translator to ... er ... translate stuff + * + * @var \Symfony\Component\Translation\TranslatorInterface + */ + protected static $translator; + + /** + * @var array|null + */ + protected static $cascadeFactors; + + /** + * @var array + */ + protected static $formats = [ + 'y' => 'y', + 'Y' => 'y', + 'o' => 'y', + 'm' => 'm', + 'n' => 'm', + 'W' => 'weeks', + 'd' => 'd', + 'j' => 'd', + 'z' => 'd', + 'h' => 'h', + 'g' => 'h', + 'H' => 'h', + 'G' => 'h', + 'i' => 'i', + 's' => 's', + 'u' => 'micro', + 'v' => 'milli', + ]; + + /** + * @var array|null + */ + private static $flipCascadeFactors; + + /** + * The registered macros. + * + * @var array + */ + protected static $macros = []; + + /** + * Timezone handler for settings() method. + * + * @var mixed + */ + protected $tzName; + + /** + * Set the instance's timezone from a string or object. + * + * @param \DateTimeZone|string $tzName + * + * @return static + */ + public function setTimezone($tzName) + { + $this->tzName = $tzName; + + return $this; + } + + /** + * @internal + * + * Set the instance's timezone from a string or object and add/subtract the offset difference. + * + * @param \DateTimeZone|string $tzName + * + * @return static + */ + public function shiftTimezone($tzName) + { + $this->tzName = $tzName; + + return $this; + } + + /** + * Mapping of units and factors for cascading. + * + * Should only be modified by changing the factors or referenced constants. + * + * @return array + */ + public static function getCascadeFactors() + { + return static::$cascadeFactors ?: static::getDefaultCascadeFactors(); + } + + protected static function getDefaultCascadeFactors(): array + { + return [ + 'milliseconds' => [Carbon::MICROSECONDS_PER_MILLISECOND, 'microseconds'], + 'seconds' => [Carbon::MILLISECONDS_PER_SECOND, 'milliseconds'], + 'minutes' => [Carbon::SECONDS_PER_MINUTE, 'seconds'], + 'hours' => [Carbon::MINUTES_PER_HOUR, 'minutes'], + 'dayz' => [Carbon::HOURS_PER_DAY, 'hours'], + 'weeks' => [Carbon::DAYS_PER_WEEK, 'dayz'], + 'months' => [Carbon::WEEKS_PER_MONTH, 'weeks'], + 'years' => [Carbon::MONTHS_PER_YEAR, 'months'], + ]; + } + + private static function standardizeUnit($unit) + { + $unit = rtrim($unit, 'sz').'s'; + + return $unit === 'days' ? 'dayz' : $unit; + } + + private static function getFlipCascadeFactors() + { + if (!self::$flipCascadeFactors) { + self::$flipCascadeFactors = []; + + foreach (static::getCascadeFactors() as $to => [$factor, $from]) { + self::$flipCascadeFactors[self::standardizeUnit($from)] = [self::standardizeUnit($to), $factor]; + } + } + + return self::$flipCascadeFactors; + } + + /** + * Set default cascading factors for ->cascade() method. + * + * @param array $cascadeFactors + */ + public static function setCascadeFactors(array $cascadeFactors) + { + self::$flipCascadeFactors = null; + static::$cascadeFactors = $cascadeFactors; + } + + /////////////////////////////////////////////////////////////////// + //////////////////////////// CONSTRUCTORS ///////////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * Create a new CarbonInterval instance. + * + * @param Closure|DateInterval|string|int|null $years + * @param int|null $months + * @param int|null $weeks + * @param int|null $days + * @param int|null $hours + * @param int|null $minutes + * @param int|null $seconds + * @param int|null $microseconds + * + * @throws Exception when the interval_spec (passed as $years) cannot be parsed as an interval. + */ + public function __construct($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null) + { + if ($years instanceof Closure) { + $this->step = $years; + $years = null; + } + + if ($years instanceof DateInterval) { + parent::__construct(static::getDateIntervalSpec($years)); + $this->f = $years->f; + self::copyNegativeUnits($years, $this); + + return; + } + + $spec = $years; + + if (!\is_string($spec) || (float) $years || preg_match('/^[\d.]/', $years)) { + $spec = static::PERIOD_PREFIX; + + $spec .= $years > 0 ? $years.static::PERIOD_YEARS : ''; + $spec .= $months > 0 ? $months.static::PERIOD_MONTHS : ''; + + $specDays = 0; + $specDays += $weeks > 0 ? $weeks * static::getDaysPerWeek() : 0; + $specDays += $days > 0 ? $days : 0; + + $spec .= $specDays > 0 ? $specDays.static::PERIOD_DAYS : ''; + + if ($hours > 0 || $minutes > 0 || $seconds > 0) { + $spec .= static::PERIOD_TIME_PREFIX; + $spec .= $hours > 0 ? $hours.static::PERIOD_HOURS : ''; + $spec .= $minutes > 0 ? $minutes.static::PERIOD_MINUTES : ''; + $spec .= $seconds > 0 ? $seconds.static::PERIOD_SECONDS : ''; + } + + if ($spec === static::PERIOD_PREFIX) { + // Allow the zero interval. + $spec .= '0'.static::PERIOD_YEARS; + } + } + + parent::__construct($spec); + + if ($microseconds !== null) { + $this->f = $microseconds / Carbon::MICROSECONDS_PER_SECOND; + } + } + + /** + * Returns the factor for a given source-to-target couple. + * + * @param string $source + * @param string $target + * + * @return int|float|null + */ + public static function getFactor($source, $target) + { + $source = self::standardizeUnit($source); + $target = self::standardizeUnit($target); + $factors = self::getFlipCascadeFactors(); + + if (isset($factors[$source])) { + [$to, $factor] = $factors[$source]; + + if ($to === $target) { + return $factor; + } + + return $factor * static::getFactor($to, $target); + } + + return null; + } + + /** + * Returns the factor for a given source-to-target couple if set, + * else try to find the appropriate constant as the factor, such as Carbon::DAYS_PER_WEEK. + * + * @param string $source + * @param string $target + * + * @return int|float|null + */ + public static function getFactorWithDefault($source, $target) + { + $factor = self::getFactor($source, $target); + + if ($factor) { + return $factor; + } + + static $defaults = [ + 'month' => ['year' => Carbon::MONTHS_PER_YEAR], + 'week' => ['month' => Carbon::WEEKS_PER_MONTH], + 'day' => ['week' => Carbon::DAYS_PER_WEEK], + 'hour' => ['day' => Carbon::HOURS_PER_DAY], + 'minute' => ['hour' => Carbon::MINUTES_PER_HOUR], + 'second' => ['minute' => Carbon::SECONDS_PER_MINUTE], + 'millisecond' => ['second' => Carbon::MILLISECONDS_PER_SECOND], + 'microsecond' => ['millisecond' => Carbon::MICROSECONDS_PER_MILLISECOND], + ]; + + return $defaults[$source][$target] ?? null; + } + + /** + * Returns current config for days per week. + * + * @return int|float + */ + public static function getDaysPerWeek() + { + return static::getFactor('dayz', 'weeks') ?: Carbon::DAYS_PER_WEEK; + } + + /** + * Returns current config for hours per day. + * + * @return int|float + */ + public static function getHoursPerDay() + { + return static::getFactor('hours', 'dayz') ?: Carbon::HOURS_PER_DAY; + } + + /** + * Returns current config for minutes per hour. + * + * @return int|float + */ + public static function getMinutesPerHour() + { + return static::getFactor('minutes', 'hours') ?: Carbon::MINUTES_PER_HOUR; + } + + /** + * Returns current config for seconds per minute. + * + * @return int|float + */ + public static function getSecondsPerMinute() + { + return static::getFactor('seconds', 'minutes') ?: Carbon::SECONDS_PER_MINUTE; + } + + /** + * Returns current config for microseconds per second. + * + * @return int|float + */ + public static function getMillisecondsPerSecond() + { + return static::getFactor('milliseconds', 'seconds') ?: Carbon::MILLISECONDS_PER_SECOND; + } + + /** + * Returns current config for microseconds per second. + * + * @return int|float + */ + public static function getMicrosecondsPerMillisecond() + { + return static::getFactor('microseconds', 'milliseconds') ?: Carbon::MICROSECONDS_PER_MILLISECOND; + } + + /** + * Create a new CarbonInterval instance from specific values. + * This is an alias for the constructor that allows better fluent + * syntax as it allows you to do CarbonInterval::create(1)->fn() rather than + * (new CarbonInterval(1))->fn(). + * + * @param int $years + * @param int $months + * @param int $weeks + * @param int $days + * @param int $hours + * @param int $minutes + * @param int $seconds + * @param int $microseconds + * + * @throws Exception when the interval_spec (passed as $years) cannot be parsed as an interval. + * + * @return static + */ + public static function create($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null) + { + return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds, $microseconds); + } + + /** + * Parse a string into a new CarbonInterval object according to the specified format. + * + * @example + * ``` + * echo Carboninterval::createFromFormat('H:i', '1:30'); + * ``` + * + * @param string $format Format of the $interval input string + * @param string|null $interval Input string to convert into an interval + * + * @throws \Carbon\Exceptions\ParseErrorException when the $interval cannot be parsed as an interval. + * + * @return static + */ + public static function createFromFormat(string $format, ?string $interval) + { + $instance = new static(0); + $length = mb_strlen($format); + + if (preg_match('/s([,.])([uv])$/', $format, $match)) { + $interval = explode($match[1], $interval); + $index = \count($interval) - 1; + $interval[$index] = str_pad($interval[$index], $match[2] === 'v' ? 3 : 6, '0'); + $interval = implode($match[1], $interval); + } + + $interval = $interval ?? ''; + + for ($index = 0; $index < $length; $index++) { + $expected = mb_substr($format, $index, 1); + $nextCharacter = mb_substr($interval, 0, 1); + $unit = static::$formats[$expected] ?? null; + + if ($unit) { + if (!preg_match('/^-?\d+/', $interval, $match)) { + throw new ParseErrorException('number', $nextCharacter); + } + + $interval = mb_substr($interval, mb_strlen($match[0])); + $instance->$unit += (int) ($match[0]); + + continue; + } + + if ($nextCharacter !== $expected) { + throw new ParseErrorException( + "'$expected'", + $nextCharacter, + 'Allowed substitutes for interval formats are '.implode(', ', array_keys(static::$formats))."\n". + 'See https://php.net/manual/en/function.date.php for their meaning' + ); + } + + $interval = mb_substr($interval, 1); + } + + if ($interval !== '') { + throw new ParseErrorException( + 'end of string', + $interval + ); + } + + return $instance; + } + + /** + * Get a copy of the instance. + * + * @return static + */ + public function copy() + { + $date = new static(0); + $date->copyProperties($this); + $date->step = $this->step; + + return $date; + } + + /** + * Get a copy of the instance. + * + * @return static + */ + public function clone() + { + return $this->copy(); + } + + /** + * Provide static helpers to create instances. Allows CarbonInterval::years(3). + * + * Note: This is done using the magic method to allow static and instance methods to + * have the same names. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @return static|null + */ + public static function __callStatic($method, $parameters) + { + try { + $interval = new static(0); + $localStrictModeEnabled = $interval->localStrictModeEnabled; + $interval->localStrictModeEnabled = true; + + $result = static::hasMacro($method) + ? static::bindMacroContext(null, function () use (&$method, &$parameters, &$interval) { + return $interval->callMacro($method, $parameters); + }) + : $interval->$method(...$parameters); + + $interval->localStrictModeEnabled = $localStrictModeEnabled; + + return $result; + } catch (BadFluentSetterException $exception) { + if (Carbon::isStrictModeEnabled()) { + throw new BadFluentConstructorException($method, 0, $exception); + } + + return null; + } + } + + /** + * Return the current context from inside a macro callee or a new one if static. + * + * @return static + */ + protected static function this() + { + return end(static::$macroContextStack) ?: new static(0); + } + + /** + * Creates a CarbonInterval from string. + * + * Format: + * + * Suffix | Unit | Example | DateInterval expression + * -------|---------|---------|------------------------ + * y | years | 1y | P1Y + * mo | months | 3mo | P3M + * w | weeks | 2w | P2W + * d | days | 28d | P28D + * h | hours | 4h | PT4H + * m | minutes | 12m | PT12M + * s | seconds | 59s | PT59S + * + * e. g. `1w 3d 4h 32m 23s` is converted to 10 days 4 hours 32 minutes and 23 seconds. + * + * Special cases: + * - An empty string will return a zero interval + * - Fractions are allowed for weeks, days, hours and minutes and will be converted + * and rounded to the next smaller value (caution: 0.5w = 4d) + * + * @param string $intervalDefinition + * + * @return static + */ + public static function fromString($intervalDefinition) + { + if (empty($intervalDefinition)) { + return new static(0); + } + + $years = 0; + $months = 0; + $weeks = 0; + $days = 0; + $hours = 0; + $minutes = 0; + $seconds = 0; + $milliseconds = 0; + $microseconds = 0; + + $pattern = '/(\d+(?:\.\d+)?)\h*([^\d\h]*)/i'; + preg_match_all($pattern, $intervalDefinition, $parts, PREG_SET_ORDER); + + while ([$part, $value, $unit] = array_shift($parts)) { + $intValue = (int) $value; + $fraction = (float) $value - $intValue; + + // Fix calculation precision + switch (round($fraction, 6)) { + case 1: + $fraction = 0; + $intValue++; + + break; + case 0: + $fraction = 0; + + break; + } + + switch ($unit === 'µs' ? 'µs' : strtolower($unit)) { + case 'millennia': + case 'millennium': + $years += $intValue * CarbonInterface::YEARS_PER_MILLENNIUM; + + break; + + case 'century': + case 'centuries': + $years += $intValue * CarbonInterface::YEARS_PER_CENTURY; + + break; + + case 'decade': + case 'decades': + $years += $intValue * CarbonInterface::YEARS_PER_DECADE; + + break; + + case 'year': + case 'years': + case 'y': + case 'yr': + case 'yrs': + $years += $intValue; + + break; + + case 'quarter': + case 'quarters': + $months += $intValue * CarbonInterface::MONTHS_PER_QUARTER; + + break; + + case 'month': + case 'months': + case 'mo': + case 'mos': + $months += $intValue; + + break; + + case 'week': + case 'weeks': + case 'w': + $weeks += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getDaysPerWeek(), 'd']; + } + + break; + + case 'day': + case 'days': + case 'd': + $days += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getHoursPerDay(), 'h']; + } + + break; + + case 'hour': + case 'hours': + case 'h': + $hours += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getMinutesPerHour(), 'm']; + } + + break; + + case 'minute': + case 'minutes': + case 'm': + $minutes += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getSecondsPerMinute(), 's']; + } + + break; + + case 'second': + case 'seconds': + case 's': + $seconds += $intValue; + + if ($fraction) { + $parts[] = [null, $fraction * static::getMillisecondsPerSecond(), 'ms']; + } + + break; + + case 'millisecond': + case 'milliseconds': + case 'milli': + case 'ms': + $milliseconds += $intValue; + + if ($fraction) { + $microseconds += round($fraction * static::getMicrosecondsPerMillisecond()); + } + + break; + + case 'microsecond': + case 'microseconds': + case 'micro': + case 'µs': + $microseconds += $intValue; + + break; + + default: + throw new InvalidIntervalException( + sprintf('Invalid part %s in definition %s', $part, $intervalDefinition) + ); + } + } + + return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds, $milliseconds * Carbon::MICROSECONDS_PER_MILLISECOND + $microseconds); + } + + /** + * Creates a CarbonInterval from string using a different locale. + * + * @param string $interval interval string in the given language (may also contain English). + * @param string|null $locale if locale is null or not specified, current global locale will be used instead. + * + * @return static + */ + public static function parseFromLocale($interval, $locale = null) + { + return static::fromString(Carbon::translateTimeString($interval, $locale ?: static::getLocale(), 'en')); + } + + private static function castIntervalToClass(DateInterval $interval, string $className, array $skip = []) + { + $mainClass = DateInterval::class; + + if (!is_a($className, $mainClass, true)) { + throw new InvalidCastException("$className is not a sub-class of $mainClass."); + } + + $microseconds = $interval->f; + $instance = new $className(static::getDateIntervalSpec($interval, false, $skip)); + + if ($microseconds) { + $instance->f = $microseconds; + } + + if ($interval instanceof self && is_a($className, self::class, true)) { + self::copyStep($interval, $instance); + } + + self::copyNegativeUnits($interval, $instance); + + return $instance; + } + + private static function copyNegativeUnits(DateInterval $from, DateInterval $to): void + { + $to->invert = $from->invert; + + foreach (['y', 'm', 'd', 'h', 'i', 's'] as $unit) { + if ($from->$unit < 0) { + $to->$unit *= -1; + } + } + } + + private static function copyStep(self $from, self $to): void + { + $to->setStep($from->getStep()); + } + + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DateInterval + */ + public function cast(string $className) + { + return self::castIntervalToClass($this, $className); + } + + /** + * Create a CarbonInterval instance from a DateInterval one. Can not instance + * DateInterval objects created from DateTime::diff() as you can't externally + * set the $days field. + * + * @param DateInterval $interval + * + * @return static + */ + public static function instance(DateInterval $interval, array $skip = []) + { + return self::castIntervalToClass($interval, static::class, $skip); + } + + /** + * Make a CarbonInterval instance from given variable if possible. + * + * Always return a new instance. Parse only strings and only these likely to be intervals (skip dates + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * + * @param mixed|int|DateInterval|string|Closure|null $interval interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return static|null + */ + public static function make($interval, $unit = null) + { + if ($unit) { + $interval = "$interval ".Carbon::pluralUnit($unit); + } + + if ($interval instanceof DateInterval) { + return static::instance($interval); + } + + if ($interval instanceof Closure) { + return new static($interval); + } + + if (!\is_string($interval)) { + return null; + } + + return static::makeFromString($interval); + } + + protected static function makeFromString(string $interval) + { + $interval = preg_replace('/\s+/', ' ', trim($interval)); + + if (preg_match('/^P[T\d]/', $interval)) { + return new static($interval); + } + + if (preg_match('/^(?:\h*\d+(?:\.\d+)?\h*[a-z]+)+$/i', $interval)) { + return static::fromString($interval); + } + + // @codeCoverageIgnoreStart + try { + /** @var static $interval */ + $interval = static::createFromDateString($interval); + } catch (DateMalformedIntervalStringException $e) { + return null; + } + // @codeCoverageIgnoreEnd + + return !$interval || $interval->isEmpty() ? null : $interval; + } + + protected function resolveInterval($interval) + { + if (!($interval instanceof self)) { + return self::make($interval); + } + + return $interval; + } + + /** + * Sets up a DateInterval from the relative parts of the string. + * + * @param string $time + * + * @return static + * + * @link https://php.net/manual/en/dateinterval.createfromdatestring.php + */ + #[ReturnTypeWillChange] + public static function createFromDateString($time) + { + $interval = @parent::createFromDateString(strtr($time, [ + ',' => ' ', + ' and ' => ' ', + ])); + + if ($interval instanceof DateInterval) { + $interval = static::instance($interval); + } + + return $interval; + } + + /////////////////////////////////////////////////////////////////// + ///////////////////////// GETTERS AND SETTERS ///////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * Get a part of the CarbonInterval object. + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return int|float|string + */ + public function get($name) + { + if (str_starts_with($name, 'total')) { + return $this->total(substr($name, 5)); + } + + switch ($name) { + case 'years': + return $this->y; + + case 'months': + return $this->m; + + case 'dayz': + return $this->d; + + case 'hours': + return $this->h; + + case 'minutes': + return $this->i; + + case 'seconds': + return $this->s; + + case 'milli': + case 'milliseconds': + return (int) (round($this->f * Carbon::MICROSECONDS_PER_SECOND) / Carbon::MICROSECONDS_PER_MILLISECOND); + + case 'micro': + case 'microseconds': + return (int) round($this->f * Carbon::MICROSECONDS_PER_SECOND); + + case 'microExcludeMilli': + return (int) round($this->f * Carbon::MICROSECONDS_PER_SECOND) % Carbon::MICROSECONDS_PER_MILLISECOND; + + case 'weeks': + return (int) ($this->d / (int) static::getDaysPerWeek()); + + case 'daysExcludeWeeks': + case 'dayzExcludeWeeks': + return $this->d % (int) static::getDaysPerWeek(); + + case 'locale': + return $this->getTranslatorLocale(); + + default: + throw new UnknownGetterException($name); + } + } + + /** + * Get a part of the CarbonInterval object. + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return int|float|string + */ + public function __get($name) + { + return $this->get($name); + } + + /** + * Set a part of the CarbonInterval object. + * + * @param string|array $name + * @param int $value + * + * @throws UnknownSetterException + * + * @return $this + */ + public function set($name, $value = null) + { + $properties = \is_array($name) ? $name : [$name => $value]; + + foreach ($properties as $key => $value) { + switch (Carbon::singularUnit(rtrim($key, 'z'))) { + case 'year': + $this->y = $value; + + break; + + case 'month': + $this->m = $value; + + break; + + case 'week': + $this->d = $value * (int) static::getDaysPerWeek(); + + break; + + case 'day': + $this->d = $value; + + break; + + case 'daysexcludeweek': + case 'dayzexcludeweek': + $this->d = $this->weeks * (int) static::getDaysPerWeek() + $value; + + break; + + case 'hour': + $this->h = $value; + + break; + + case 'minute': + $this->i = $value; + + break; + + case 'second': + $this->s = $value; + + break; + + case 'milli': + case 'millisecond': + $this->microseconds = $value * Carbon::MICROSECONDS_PER_MILLISECOND + $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND; + + break; + + case 'micro': + case 'microsecond': + $this->f = $value / Carbon::MICROSECONDS_PER_SECOND; + + break; + + default: + if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) { + throw new UnknownSetterException($key); + } + + $this->$key = $value; + } + } + + return $this; + } + + /** + * Set a part of the CarbonInterval object. + * + * @param string $name + * @param int $value + * + * @throws UnknownSetterException + */ + public function __set($name, $value) + { + $this->set($name, $value); + } + + /** + * Allow setting of weeks and days to be cumulative. + * + * @param int $weeks Number of weeks to set + * @param int $days Number of days to set + * + * @return static + */ + public function weeksAndDays($weeks, $days) + { + $this->dayz = ($weeks * static::getDaysPerWeek()) + $days; + + return $this; + } + + /** + * Returns true if the interval is empty for each unit. + * + * @return bool + */ + public function isEmpty() + { + return $this->years === 0 && + $this->months === 0 && + $this->dayz === 0 && + !$this->days && + $this->hours === 0 && + $this->minutes === 0 && + $this->seconds === 0 && + $this->microseconds === 0; + } + + /** + * Register a custom macro. + * + * @example + * ``` + * CarbonInterval::macro('twice', function () { + * return $this->times(2); + * }); + * echo CarbonInterval::hours(2)->twice(); + * ``` + * + * @param string $name + * @param object|callable $macro + * + * @return void + */ + public static function macro($name, $macro) + { + static::$macros[$name] = $macro; + } + + /** + * Register macros from a mixin object. + * + * @example + * ``` + * CarbonInterval::mixin(new class { + * public function daysToHours() { + * return function () { + * $this->hours += $this->days; + * $this->days = 0; + * + * return $this; + * }; + * } + * public function hoursToDays() { + * return function () { + * $this->days += $this->hours; + * $this->hours = 0; + * + * return $this; + * }; + * } + * }); + * echo CarbonInterval::hours(5)->hoursToDays() . "\n"; + * echo CarbonInterval::days(5)->daysToHours() . "\n"; + * ``` + * + * @param object|string $mixin + * + * @throws ReflectionException + * + * @return void + */ + public static function mixin($mixin) + { + static::baseMixin($mixin); + } + + /** + * Check if macro is registered. + * + * @param string $name + * + * @return bool + */ + public static function hasMacro($name) + { + return isset(static::$macros[$name]); + } + + /** + * Call given macro. + * + * @param string $name + * @param array $parameters + * + * @return mixed + */ + protected function callMacro($name, $parameters) + { + $macro = static::$macros[$name]; + + if ($macro instanceof Closure) { + $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class); + + return ($boundMacro ?: $macro)(...$parameters); + } + + return $macro(...$parameters); + } + + /** + * Allow fluent calls on the setters... CarbonInterval::years(3)->months(5)->day(). + * + * Note: This is done using the magic method to allow static and instance methods to + * have the same names. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws BadFluentSetterException|Throwable + * + * @return static + */ + public function __call($method, $parameters) + { + if (static::hasMacro($method)) { + return static::bindMacroContext($this, function () use (&$method, &$parameters) { + return $this->callMacro($method, $parameters); + }); + } + + $roundedValue = $this->callRoundMethod($method, $parameters); + + if ($roundedValue !== null) { + return $roundedValue; + } + + if (preg_match('/^(?add|sub)(?[A-Z].*)$/', $method, $match)) { + $value = $this->getMagicParameter($parameters, 0, Carbon::pluralUnit($match['unit']), 0); + + return $this->{$match['method']}($value, $match['unit']); + } + + $value = $this->getMagicParameter($parameters, 0, Carbon::pluralUnit($method), 1); + + try { + $this->set($method, $value); + } catch (UnknownSetterException $exception) { + if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) { + throw new BadFluentSetterException($method, 0, $exception); + } + } + + return $this; + } + + protected function getForHumansInitialVariables($syntax, $short) + { + if (\is_array($syntax)) { + return $syntax; + } + + if (\is_int($short)) { + return [ + 'parts' => $short, + 'short' => false, + ]; + } + + if (\is_bool($syntax)) { + return [ + 'short' => $syntax, + 'syntax' => CarbonInterface::DIFF_ABSOLUTE, + ]; + } + + return []; + } + + /** + * @param mixed $syntax + * @param mixed $short + * @param mixed $parts + * @param mixed $options + * + * @return array + */ + protected function getForHumansParameters($syntax = null, $short = false, $parts = -1, $options = null) + { + $optionalSpace = ' '; + $default = $this->getTranslationMessage('list.0') ?? $this->getTranslationMessage('list') ?? ' '; + $join = $default === '' ? '' : ' '; + $altNumbers = false; + $aUnit = false; + $minimumUnit = 's'; + $skip = []; + extract($this->getForHumansInitialVariables($syntax, $short)); + $skip = array_map('strtolower', array_filter((array) $skip, static function ($value) { + return \is_string($value) && $value !== ''; + })); + + if ($syntax === null) { + $syntax = CarbonInterface::DIFF_ABSOLUTE; + } + + if ($parts === -1) { + $parts = INF; + } + + if ($options === null) { + $options = static::getHumanDiffOptions(); + } + + if ($join === false) { + $join = ' '; + } elseif ($join === true) { + $join = [ + $default, + $this->getTranslationMessage('list.1') ?? $default, + ]; + } + + if ($altNumbers && $altNumbers !== true) { + $language = new Language($this->locale); + $altNumbers = \in_array($language->getCode(), (array) $altNumbers, true); + } + + if (\is_array($join)) { + [$default, $last] = $join; + + if ($default !== ' ') { + $optionalSpace = ''; + } + + $join = function ($list) use ($default, $last) { + if (\count($list) < 2) { + return implode('', $list); + } + + $end = array_pop($list); + + return implode($default, $list).$last.$end; + }; + } + + if (\is_string($join)) { + if ($join !== ' ') { + $optionalSpace = ''; + } + + $glue = $join; + $join = function ($list) use ($glue) { + return implode($glue, $list); + }; + } + + $interpolations = [ + ':optional-space' => $optionalSpace, + ]; + + return [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations, $minimumUnit, $skip]; + } + + protected static function getRoundingMethodFromOptions(int $options): ?string + { + if ($options & CarbonInterface::ROUND) { + return 'round'; + } + + if ($options & CarbonInterface::CEIL) { + return 'ceil'; + } + + if ($options & CarbonInterface::FLOOR) { + return 'floor'; + } + + return null; + } + + /** + * Returns interval values as an array where key are the unit names and values the counts. + * + * @return int[] + */ + public function toArray() + { + return [ + 'years' => $this->years, + 'months' => $this->months, + 'weeks' => $this->weeks, + 'days' => $this->daysExcludeWeeks, + 'hours' => $this->hours, + 'minutes' => $this->minutes, + 'seconds' => $this->seconds, + 'microseconds' => $this->microseconds, + ]; + } + + /** + * Returns interval non-zero values as an array where key are the unit names and values the counts. + * + * @return int[] + */ + public function getNonZeroValues() + { + return array_filter($this->toArray(), 'intval'); + } + + /** + * Returns interval values as an array where key are the unit names and values the counts + * from the biggest non-zero one the the smallest non-zero one. + * + * @return int[] + */ + public function getValuesSequence() + { + $nonZeroValues = $this->getNonZeroValues(); + + if ($nonZeroValues === []) { + return []; + } + + $keys = array_keys($nonZeroValues); + $firstKey = $keys[0]; + $lastKey = $keys[\count($keys) - 1]; + $values = []; + $record = false; + + foreach ($this->toArray() as $unit => $count) { + if ($unit === $firstKey) { + $record = true; + } + + if ($record) { + $values[$unit] = $count; + } + + if ($unit === $lastKey) { + $record = false; + } + } + + return $values; + } + + /** + * Get the current interval in a human readable format in the current locale. + * + * @example + * ``` + * echo CarbonInterval::fromString('4d 3h 40m')->forHumans() . "\n"; + * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 2]) . "\n"; + * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 3, 'join' => true]) . "\n"; + * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['short' => true]) . "\n"; + * echo CarbonInterval::fromString('1d 24h')->forHumans(['join' => ' or ']) . "\n"; + * echo CarbonInterval::fromString('1d 24h')->forHumans(['minimumUnit' => 'hour']) . "\n"; + * ``` + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'skip' entry, list of units to skip (array of strings or a single string, + * ` it can be the unit name (singular or plural) or its shortcut + * ` (y, m, w, d, h, min, s, ms, µs). + * - 'aUnit' entry, prefer "an hour" over "1 hour" if true + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'minimumUnit' entry determines the smallest unit of time to display can be long or + * ` short form of the units, e.g. 'hour' or 'h' (default value: s) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: -1: no limits) + * @param int $options human diff options + * + * @throws Exception + * + * @return string + */ + public function forHumans($syntax = null, $short = false, $parts = -1, $options = null) + { + [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations, $minimumUnit, $skip] = $this + ->getForHumansParameters($syntax, $short, $parts, $options); + + $interval = []; + + $syntax = (int) ($syntax ?? CarbonInterface::DIFF_ABSOLUTE); + $absolute = $syntax === CarbonInterface::DIFF_ABSOLUTE; + $relativeToNow = $syntax === CarbonInterface::DIFF_RELATIVE_TO_NOW; + $count = 1; + $unit = $short ? 's' : 'second'; + $isFuture = $this->invert === 1; + $transId = $relativeToNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before'); + $declensionMode = null; + + /** @var \Symfony\Component\Translation\Translator $translator */ + $translator = $this->getLocalTranslator(); + + $handleDeclensions = function ($unit, $count, $index = 0, $parts = 1) use ($interpolations, $transId, $translator, $altNumbers, $absolute, &$declensionMode) { + if (!$absolute) { + $declensionMode = $declensionMode ?? $this->translate($transId.'_mode'); + + if ($this->needsDeclension($declensionMode, $index, $parts)) { + // Some languages have special pluralization for past and future tense. + $key = $unit.'_'.$transId; + $result = $this->translate($key, $interpolations, $count, $translator, $altNumbers); + + if ($result !== $key) { + return $result; + } + } + } + + $result = $this->translate($unit, $interpolations, $count, $translator, $altNumbers); + + if ($result !== $unit) { + return $result; + } + + return null; + }; + + $intervalValues = $this; + $method = static::getRoundingMethodFromOptions($options); + + if ($method) { + $previousCount = INF; + + while ( + \count($intervalValues->getNonZeroValues()) > $parts && + ($count = \count($keys = array_keys($intervalValues->getValuesSequence()))) > 1 + ) { + $index = min($count, $previousCount - 1) - 2; + + if ($index < 0) { + break; + } + + $intervalValues = $this->copy()->roundUnit( + $keys[$index], + 1, + $method + ); + $previousCount = $count; + } + } + + $diffIntervalArray = [ + ['value' => $intervalValues->years, 'unit' => 'year', 'unitShort' => 'y'], + ['value' => $intervalValues->months, 'unit' => 'month', 'unitShort' => 'm'], + ['value' => $intervalValues->weeks, 'unit' => 'week', 'unitShort' => 'w'], + ['value' => $intervalValues->daysExcludeWeeks, 'unit' => 'day', 'unitShort' => 'd'], + ['value' => $intervalValues->hours, 'unit' => 'hour', 'unitShort' => 'h'], + ['value' => $intervalValues->minutes, 'unit' => 'minute', 'unitShort' => 'min'], + ['value' => $intervalValues->seconds, 'unit' => 'second', 'unitShort' => 's'], + ['value' => $intervalValues->milliseconds, 'unit' => 'millisecond', 'unitShort' => 'ms'], + ['value' => $intervalValues->microExcludeMilli, 'unit' => 'microsecond', 'unitShort' => 'µs'], + ]; + + if (!empty($skip)) { + foreach ($diffIntervalArray as $index => &$unitData) { + $nextIndex = $index + 1; + + if ($unitData['value'] && + isset($diffIntervalArray[$nextIndex]) && + \count(array_intersect([$unitData['unit'], $unitData['unit'].'s', $unitData['unitShort']], $skip)) + ) { + $diffIntervalArray[$nextIndex]['value'] += $unitData['value'] * + self::getFactorWithDefault($diffIntervalArray[$nextIndex]['unit'], $unitData['unit']); + $unitData['value'] = 0; + } + } + } + + $transChoice = function ($short, $unitData, $index, $parts) use ($absolute, $handleDeclensions, $translator, $aUnit, $altNumbers, $interpolations) { + $count = $unitData['value']; + + if ($short) { + $result = $handleDeclensions($unitData['unitShort'], $count, $index, $parts); + + if ($result !== null) { + return $result; + } + } elseif ($aUnit) { + $result = $handleDeclensions('a_'.$unitData['unit'], $count, $index, $parts); + + if ($result !== null) { + return $result; + } + } + + if (!$absolute) { + return $handleDeclensions($unitData['unit'], $count, $index, $parts); + } + + return $this->translate($unitData['unit'], $interpolations, $count, $translator, $altNumbers); + }; + + $fallbackUnit = ['second', 's']; + + foreach ($diffIntervalArray as $diffIntervalData) { + if ($diffIntervalData['value'] > 0) { + $unit = $short ? $diffIntervalData['unitShort'] : $diffIntervalData['unit']; + $count = $diffIntervalData['value']; + $interval[] = [$short, $diffIntervalData]; + } elseif ($options & CarbonInterface::SEQUENTIAL_PARTS_ONLY && \count($interval) > 0) { + break; + } + + // break the loop after we get the required number of parts in array + if (\count($interval) >= $parts) { + break; + } + + // break the loop after we have reached the minimum unit + if (\in_array($minimumUnit, [$diffIntervalData['unit'], $diffIntervalData['unitShort']], true)) { + $fallbackUnit = [$diffIntervalData['unit'], $diffIntervalData['unitShort']]; + + break; + } + } + + $actualParts = \count($interval); + + foreach ($interval as $index => &$item) { + $item = $transChoice($item[0], $item[1], $index, $actualParts); + } + + if (\count($interval) === 0) { + if ($relativeToNow && $options & CarbonInterface::JUST_NOW) { + $key = 'diff_now'; + $translation = $this->translate($key, $interpolations, null, $translator); + + if ($translation !== $key) { + return $translation; + } + } + + $count = $options & CarbonInterface::NO_ZERO_DIFF ? 1 : 0; + $unit = $fallbackUnit[$short ? 1 : 0]; + $interval[] = $this->translate($unit, $interpolations, $count, $translator, $altNumbers); + } + + // join the interval parts by a space + $time = $join($interval); + + unset($diffIntervalArray, $interval); + + if ($absolute) { + return $time; + } + + $isFuture = $this->invert === 1; + + $transId = $relativeToNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before'); + + if ($parts === 1) { + if ($relativeToNow && $unit === 'day') { + if ($count === 1 && $options & CarbonInterface::ONE_DAY_WORDS) { + $key = $isFuture ? 'diff_tomorrow' : 'diff_yesterday'; + $translation = $this->translate($key, $interpolations, null, $translator); + + if ($translation !== $key) { + return $translation; + } + } + + if ($count === 2 && $options & CarbonInterface::TWO_DAY_WORDS) { + $key = $isFuture ? 'diff_after_tomorrow' : 'diff_before_yesterday'; + $translation = $this->translate($key, $interpolations, null, $translator); + + if ($translation !== $key) { + return $translation; + } + } + } + + $aTime = $aUnit ? $handleDeclensions('a_'.$unit, $count) : null; + + $time = $aTime ?: $handleDeclensions($unit, $count) ?: $time; + } + + $time = [':time' => $time]; + + return $this->translate($transId, array_merge($time, $interpolations, $time), null, $translator); + } + + /** + * Format the instance as a string using the forHumans() function. + * + * @throws Exception + * + * @return string + */ + public function __toString() + { + $format = $this->localToStringFormat ?? static::$toStringFormat; + + if (!$format) { + return $this->forHumans(); + } + + if ($format instanceof Closure) { + return $format($this); + } + + return $this->format($format); + } + + /** + * Return native DateInterval PHP object matching the current instance. + * + * @example + * ``` + * var_dump(CarbonInterval::hours(2)->toDateInterval()); + * ``` + * + * @return DateInterval + */ + public function toDateInterval() + { + return self::castIntervalToClass($this, DateInterval::class); + } + + /** + * Convert the interval to a CarbonPeriod. + * + * @param DateTimeInterface|string|int ...$params Start date, [end date or recurrences] and optional settings. + * + * @return CarbonPeriod + */ + public function toPeriod(...$params) + { + if ($this->tzName) { + $tz = \is_string($this->tzName) ? new DateTimeZone($this->tzName) : $this->tzName; + + if ($tz instanceof DateTimeZone) { + array_unshift($params, $tz); + } + } + + return CarbonPeriod::create($this, ...$params); + } + + /** + * Invert the interval. + * + * @param bool|int $inverted if a parameter is passed, the passed value cast as 1 or 0 is used + * as the new value of the ->invert property. + * + * @return $this + */ + public function invert($inverted = null) + { + $this->invert = (\func_num_args() === 0 ? !$this->invert : $inverted) ? 1 : 0; + + return $this; + } + + protected function solveNegativeInterval() + { + if (!$this->isEmpty() && $this->years <= 0 && $this->months <= 0 && $this->dayz <= 0 && $this->hours <= 0 && $this->minutes <= 0 && $this->seconds <= 0 && $this->microseconds <= 0) { + $this->years *= -1; + $this->months *= -1; + $this->dayz *= -1; + $this->hours *= -1; + $this->minutes *= -1; + $this->seconds *= -1; + $this->microseconds *= -1; + $this->invert(); + } + + return $this; + } + + /** + * Add the passed interval to the current instance. + * + * @param string|DateInterval $unit + * @param int|float $value + * + * @return $this + */ + public function add($unit, $value = 1) + { + if (is_numeric($unit)) { + [$value, $unit] = [$unit, $value]; + } + + if (\is_string($unit) && !preg_match('/^\s*\d/', $unit)) { + $unit = "$value $unit"; + $value = 1; + } + + $interval = static::make($unit); + + if (!$interval) { + throw new InvalidIntervalException('This type of data cannot be added/subtracted.'); + } + + if ($value !== 1) { + $interval->times($value); + } + + $sign = ($this->invert === 1) !== ($interval->invert === 1) ? -1 : 1; + $this->years += $interval->y * $sign; + $this->months += $interval->m * $sign; + $this->dayz += ($interval->days === false ? $interval->d : $interval->days) * $sign; + $this->hours += $interval->h * $sign; + $this->minutes += $interval->i * $sign; + $this->seconds += $interval->s * $sign; + $this->microseconds += $interval->microseconds * $sign; + + $this->solveNegativeInterval(); + + return $this; + } + + /** + * Subtract the passed interval to the current instance. + * + * @param string|DateInterval $unit + * @param int|float $value + * + * @return $this + */ + public function sub($unit, $value = 1) + { + if (is_numeric($unit)) { + [$value, $unit] = [$unit, $value]; + } + + return $this->add($unit, -(float) $value); + } + + /** + * Subtract the passed interval to the current instance. + * + * @param string|DateInterval $unit + * @param int|float $value + * + * @return $this + */ + public function subtract($unit, $value = 1) + { + return $this->sub($unit, $value); + } + + /** + * Add given parameters to the current interval. + * + * @param int $years + * @param int $months + * @param int|float $weeks + * @param int|float $days + * @param int|float $hours + * @param int|float $minutes + * @param int|float $seconds + * @param int|float $microseconds + * + * @return $this + */ + public function plus( + $years = 0, + $months = 0, + $weeks = 0, + $days = 0, + $hours = 0, + $minutes = 0, + $seconds = 0, + $microseconds = 0 + ): self { + return $this->add(" + $years years $months months $weeks weeks $days days + $hours hours $minutes minutes $seconds seconds $microseconds microseconds + "); + } + + /** + * Add given parameters to the current interval. + * + * @param int $years + * @param int $months + * @param int|float $weeks + * @param int|float $days + * @param int|float $hours + * @param int|float $minutes + * @param int|float $seconds + * @param int|float $microseconds + * + * @return $this + */ + public function minus( + $years = 0, + $months = 0, + $weeks = 0, + $days = 0, + $hours = 0, + $minutes = 0, + $seconds = 0, + $microseconds = 0 + ): self { + return $this->sub(" + $years years $months months $weeks weeks $days days + $hours hours $minutes minutes $seconds seconds $microseconds microseconds + "); + } + + /** + * Multiply current instance given number of times. times() is naive, it multiplies each unit + * (so day can be greater than 31, hour can be greater than 23, etc.) and the result is rounded + * separately for each unit. + * + * Use times() when you want a fast and approximated calculation that does not cascade units. + * + * For a precise and cascaded calculation, + * + * @see multiply() + * + * @param float|int $factor + * + * @return $this + */ + public function times($factor) + { + if ($factor < 0) { + $this->invert = $this->invert ? 0 : 1; + $factor = -$factor; + } + + $this->years = (int) round($this->years * $factor); + $this->months = (int) round($this->months * $factor); + $this->dayz = (int) round($this->dayz * $factor); + $this->hours = (int) round($this->hours * $factor); + $this->minutes = (int) round($this->minutes * $factor); + $this->seconds = (int) round($this->seconds * $factor); + $this->microseconds = (int) round($this->microseconds * $factor); + + return $this; + } + + /** + * Divide current instance by a given divider. shares() is naive, it divides each unit separately + * and the result is rounded for each unit. So 5 hours and 20 minutes shared by 3 becomes 2 hours + * and 7 minutes. + * + * Use shares() when you want a fast and approximated calculation that does not cascade units. + * + * For a precise and cascaded calculation, + * + * @see divide() + * + * @param float|int $divider + * + * @return $this + */ + public function shares($divider) + { + return $this->times(1 / $divider); + } + + protected function copyProperties(self $interval, $ignoreSign = false) + { + $this->years = $interval->years; + $this->months = $interval->months; + $this->dayz = $interval->dayz; + $this->hours = $interval->hours; + $this->minutes = $interval->minutes; + $this->seconds = $interval->seconds; + $this->microseconds = $interval->microseconds; + + if (!$ignoreSign) { + $this->invert = $interval->invert; + } + + return $this; + } + + /** + * Multiply and cascade current instance by a given factor. + * + * @param float|int $factor + * + * @return $this + */ + public function multiply($factor) + { + if ($factor < 0) { + $this->invert = $this->invert ? 0 : 1; + $factor = -$factor; + } + + $yearPart = (int) floor($this->years * $factor); // Split calculation to prevent imprecision + + if ($yearPart) { + $this->years -= $yearPart / $factor; + } + + return $this->copyProperties( + static::create($yearPart) + ->microseconds(abs($this->totalMicroseconds) * $factor) + ->cascade(), + true + ); + } + + /** + * Divide and cascade current instance by a given divider. + * + * @param float|int $divider + * + * @return $this + */ + public function divide($divider) + { + return $this->multiply(1 / $divider); + } + + /** + * Get the interval_spec string of a date interval. + * + * @param DateInterval $interval + * + * @return string + */ + public static function getDateIntervalSpec(DateInterval $interval, bool $microseconds = false, array $skip = []) + { + $date = array_filter([ + static::PERIOD_YEARS => abs($interval->y), + static::PERIOD_MONTHS => abs($interval->m), + static::PERIOD_DAYS => abs($interval->d), + ]); + + if ( + $interval->days >= CarbonInterface::DAYS_PER_WEEK * CarbonInterface::WEEKS_PER_MONTH && + (!isset($date[static::PERIOD_YEARS]) || \count(array_intersect(['y', 'year', 'years'], $skip))) && + (!isset($date[static::PERIOD_MONTHS]) || \count(array_intersect(['m', 'month', 'months'], $skip))) + ) { + $date = [ + static::PERIOD_DAYS => abs($interval->days), + ]; + } + + $seconds = abs($interval->s); + if ($microseconds && $interval->f > 0) { + $seconds = sprintf('%d.%06d', $seconds, abs($interval->f) * 1000000); + } + + $time = array_filter([ + static::PERIOD_HOURS => abs($interval->h), + static::PERIOD_MINUTES => abs($interval->i), + static::PERIOD_SECONDS => $seconds, + ]); + + $specString = static::PERIOD_PREFIX; + + foreach ($date as $key => $value) { + $specString .= $value.$key; + } + + if (\count($time) > 0) { + $specString .= static::PERIOD_TIME_PREFIX; + foreach ($time as $key => $value) { + $specString .= $value.$key; + } + } + + return $specString === static::PERIOD_PREFIX ? 'PT0S' : $specString; + } + + /** + * Get the interval_spec string. + * + * @return string + */ + public function spec(bool $microseconds = false) + { + return static::getDateIntervalSpec($this, $microseconds); + } + + /** + * Comparing 2 date intervals. + * + * @param DateInterval $first + * @param DateInterval $second + * + * @return int + */ + public static function compareDateIntervals(DateInterval $first, DateInterval $second) + { + $current = Carbon::now(); + $passed = $current->avoidMutation()->add($second); + $current->add($first); + + if ($current < $passed) { + return -1; + } + if ($current > $passed) { + return 1; + } + + return 0; + } + + /** + * Comparing with passed interval. + * + * @param DateInterval $interval + * + * @return int + */ + public function compare(DateInterval $interval) + { + return static::compareDateIntervals($this, $interval); + } + + private function invertCascade(array $values) + { + return $this->set(array_map(function ($value) { + return -$value; + }, $values))->doCascade(true)->invert(); + } + + private function doCascade(bool $deep) + { + $originalData = $this->toArray(); + $originalData['milliseconds'] = (int) ($originalData['microseconds'] / static::getMicrosecondsPerMillisecond()); + $originalData['microseconds'] = $originalData['microseconds'] % static::getMicrosecondsPerMillisecond(); + $originalData['weeks'] = (int) ($this->d / static::getDaysPerWeek()); + $originalData['daysExcludeWeeks'] = fmod($this->d, static::getDaysPerWeek()); + unset($originalData['days']); + $newData = $originalData; + $previous = []; + + foreach (self::getFlipCascadeFactors() as $source => [$target, $factor]) { + foreach (['source', 'target'] as $key) { + if ($$key === 'dayz') { + $$key = 'daysExcludeWeeks'; + } + } + + $value = $newData[$source]; + $modulo = fmod($factor + fmod($value, $factor), $factor); + $newData[$source] = $modulo; + $newData[$target] += ($value - $modulo) / $factor; + + $decimalPart = fmod($newData[$source], 1); + + if ($decimalPart !== 0.0) { + $unit = $source; + + foreach ($previous as [$subUnit, $subFactor]) { + $newData[$unit] -= $decimalPart; + $newData[$subUnit] += $decimalPart * $subFactor; + $decimalPart = fmod($newData[$subUnit], 1); + + if ($decimalPart === 0.0) { + break; + } + + $unit = $subUnit; + } + } + + array_unshift($previous, [$source, $factor]); + } + + $positive = null; + + if (!$deep) { + foreach ($newData as $value) { + if ($value) { + if ($positive === null) { + $positive = ($value > 0); + + continue; + } + + if (($value > 0) !== $positive) { + return $this->invertCascade($originalData) + ->solveNegativeInterval(); + } + } + } + } + + return $this->set($newData) + ->solveNegativeInterval(); + } + + /** + * Convert overflowed values into bigger units. + * + * @return $this + */ + public function cascade() + { + return $this->doCascade(false); + } + + public function hasNegativeValues(): bool + { + foreach ($this->toArray() as $value) { + if ($value < 0) { + return true; + } + } + + return false; + } + + public function hasPositiveValues(): bool + { + foreach ($this->toArray() as $value) { + if ($value > 0) { + return true; + } + } + + return false; + } + + /** + * Get amount of given unit equivalent to the interval. + * + * @param string $unit + * + * @throws UnknownUnitException|UnitNotConfiguredException + * + * @return float + */ + public function total($unit) + { + $realUnit = $unit = strtolower($unit); + + if (\in_array($unit, ['days', 'weeks'])) { + $realUnit = 'dayz'; + } elseif (!\in_array($unit, ['microseconds', 'milliseconds', 'seconds', 'minutes', 'hours', 'dayz', 'months', 'years'])) { + throw new UnknownUnitException($unit); + } + + $result = 0; + $cumulativeFactor = 0; + $unitFound = false; + $factors = self::getFlipCascadeFactors(); + $daysPerWeek = (int) static::getDaysPerWeek(); + + $values = [ + 'years' => $this->years, + 'months' => $this->months, + 'weeks' => (int) ($this->d / $daysPerWeek), + 'dayz' => fmod($this->d, $daysPerWeek), + 'hours' => $this->hours, + 'minutes' => $this->minutes, + 'seconds' => $this->seconds, + 'milliseconds' => (int) ($this->microseconds / Carbon::MICROSECONDS_PER_MILLISECOND), + 'microseconds' => $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND, + ]; + + if (isset($factors['dayz']) && $factors['dayz'][0] !== 'weeks') { + $values['dayz'] += $values['weeks'] * $daysPerWeek; + $values['weeks'] = 0; + } + + foreach ($factors as $source => [$target, $factor]) { + if ($source === $realUnit) { + $unitFound = true; + $value = $values[$source]; + $result += $value; + $cumulativeFactor = 1; + } + + if ($factor === false) { + if ($unitFound) { + break; + } + + $result = 0; + $cumulativeFactor = 0; + + continue; + } + + if ($target === $realUnit) { + $unitFound = true; + } + + if ($cumulativeFactor) { + $cumulativeFactor *= $factor; + $result += $values[$target] * $cumulativeFactor; + + continue; + } + + $value = $values[$source]; + + $result = ($result + $value) / $factor; + } + + if (isset($target) && !$cumulativeFactor) { + $result += $values[$target]; + } + + if (!$unitFound) { + throw new UnitNotConfiguredException($unit); + } + + if ($this->invert) { + $result *= -1; + } + + if ($unit === 'weeks') { + $result /= $daysPerWeek; + } + + // Cast as int numbers with no decimal part + return fmod($result, 1) === 0.0 ? (int) $result : $result; + } + + /** + * Determines if the instance is equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see equalTo() + * + * @return bool + */ + public function eq($interval): bool + { + return $this->equalTo($interval); + } + + /** + * Determines if the instance is equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function equalTo($interval): bool + { + $interval = $this->resolveInterval($interval); + + return $interval !== null && $this->totalMicroseconds === $interval->totalMicroseconds; + } + + /** + * Determines if the instance is not equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see notEqualTo() + * + * @return bool + */ + public function ne($interval): bool + { + return $this->notEqualTo($interval); + } + + /** + * Determines if the instance is not equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function notEqualTo($interval): bool + { + return !$this->eq($interval); + } + + /** + * Determines if the instance is greater (longer) than another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see greaterThan() + * + * @return bool + */ + public function gt($interval): bool + { + return $this->greaterThan($interval); + } + + /** + * Determines if the instance is greater (longer) than another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function greaterThan($interval): bool + { + $interval = $this->resolveInterval($interval); + + return $interval === null || $this->totalMicroseconds > $interval->totalMicroseconds; + } + + /** + * Determines if the instance is greater (longer) than or equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see greaterThanOrEqualTo() + * + * @return bool + */ + public function gte($interval): bool + { + return $this->greaterThanOrEqualTo($interval); + } + + /** + * Determines if the instance is greater (longer) than or equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function greaterThanOrEqualTo($interval): bool + { + return $this->greaterThan($interval) || $this->equalTo($interval); + } + + /** + * Determines if the instance is less (shorter) than another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see lessThan() + * + * @return bool + */ + public function lt($interval): bool + { + return $this->lessThan($interval); + } + + /** + * Determines if the instance is less (shorter) than another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function lessThan($interval): bool + { + $interval = $this->resolveInterval($interval); + + return $interval !== null && $this->totalMicroseconds < $interval->totalMicroseconds; + } + + /** + * Determines if the instance is less (shorter) than or equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @see lessThanOrEqualTo() + * + * @return bool + */ + public function lte($interval): bool + { + return $this->lessThanOrEqualTo($interval); + } + + /** + * Determines if the instance is less (shorter) than or equal to another + * + * @param CarbonInterval|DateInterval|mixed $interval + * + * @return bool + */ + public function lessThanOrEqualTo($interval): bool + { + return $this->lessThan($interval) || $this->equalTo($interval); + } + + /** + * Determines if the instance is between two others. + * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * + * @example + * ``` + * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(2)); // true + * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(2), false); // false + * ``` + * + * @param CarbonInterval|DateInterval|mixed $interval1 + * @param CarbonInterval|DateInterval|mixed $interval2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function between($interval1, $interval2, $equal = true): bool + { + return $equal + ? $this->greaterThanOrEqualTo($interval1) && $this->lessThanOrEqualTo($interval2) + : $this->greaterThan($interval1) && $this->lessThan($interval2); + } + + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(2)); // true + * ``` + * + * @param CarbonInterval|DateInterval|mixed $interval1 + * @param CarbonInterval|DateInterval|mixed $interval2 + * + * @return bool + */ + public function betweenIncluded($interval1, $interval2): bool + { + return $this->between($interval1, $interval2, true); + } + + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(2)); // false + * ``` + * + * @param CarbonInterval|DateInterval|mixed $interval1 + * @param CarbonInterval|DateInterval|mixed $interval2 + * + * @return bool + */ + public function betweenExcluded($interval1, $interval2): bool + { + return $this->between($interval1, $interval2, false); + } + + /** + * Determines if the instance is between two others + * + * @example + * ``` + * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(3)); // true + * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::hours(36)); // false + * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(2)); // true + * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(2), false); // false + * ``` + * + * @param CarbonInterval|DateInterval|mixed $interval1 + * @param CarbonInterval|DateInterval|mixed $interval2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function isBetween($interval1, $interval2, $equal = true): bool + { + return $this->between($interval1, $interval2, $equal); + } + + /** + * Round the current instance at the given unit with given precision if specified and the given function. + * + * @param string $unit + * @param float|int|string|DateInterval|null $precision + * @param string $function + * + * @throws Exception + * + * @return $this + */ + public function roundUnit($unit, $precision = 1, $function = 'round') + { + if (static::getCascadeFactors() !== static::getDefaultCascadeFactors()) { + $value = $function($this->total($unit) / $precision) * $precision; + $inverted = $value < 0; + + return $this->copyProperties(self::fromString( + number_format(abs($value), 12, '.', '').' '.$unit + )->invert($inverted)->cascade()); + } + + $base = CarbonImmutable::parse('2000-01-01 00:00:00', 'UTC') + ->roundUnit($unit, $precision, $function); + $next = $base->add($this); + $inverted = $next < $base; + + if ($inverted) { + $next = $base->sub($this); + } + + $this->copyProperties( + $next + ->roundUnit($unit, $precision, $function) + ->diffAsCarbonInterval($base) + ); + + return $this->invert($inverted); + } + + /** + * Truncate the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int|string|DateInterval|null $precision + * + * @throws Exception + * + * @return $this + */ + public function floorUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'floor'); + } + + /** + * Ceil the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int|string|DateInterval|null $precision + * + * @throws Exception + * + * @return $this + */ + public function ceilUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'ceil'); + } + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|DateInterval|null $precision + * @param string $function + * + * @throws Exception + * + * @return $this + */ + public function round($precision = 1, $function = 'round') + { + return $this->roundWith($precision, $function); + } + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|DateInterval|null $precision + * + * @throws Exception + * + * @return $this + */ + public function floor($precision = 1) + { + return $this->round($precision, 'floor'); + } + + /** + * Ceil the current instance second with given precision if specified. + * + * @param float|int|string|DateInterval|null $precision + * + * @throws Exception + * + * @return $this + */ + public function ceil($precision = 1) + { + return $this->round($precision, 'ceil'); + } + + private function needsDeclension(string $mode, int $index, int $parts): bool + { + switch ($mode) { + case 'last': + return $index === $parts - 1; + default: + return true; + } + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php b/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php new file mode 100644 index 000000000..9ddcf61ab --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php @@ -0,0 +1,2718 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\EndLessPeriodException; +use Carbon\Exceptions\InvalidCastException; +use Carbon\Exceptions\InvalidIntervalException; +use Carbon\Exceptions\InvalidPeriodDateException; +use Carbon\Exceptions\InvalidPeriodParameterException; +use Carbon\Exceptions\NotACarbonClassException; +use Carbon\Exceptions\NotAPeriodException; +use Carbon\Exceptions\UnknownGetterException; +use Carbon\Exceptions\UnknownMethodException; +use Carbon\Exceptions\UnreachableException; +use Carbon\Traits\IntervalRounding; +use Carbon\Traits\Mixin; +use Carbon\Traits\Options; +use Carbon\Traits\ToStringFormat; +use Closure; +use Countable; +use DateInterval; +use DatePeriod; +use DateTime; +use DateTimeImmutable; +use DateTimeInterface; +use DateTimeZone; +use InvalidArgumentException; +use Iterator; +use JsonSerializable; +use ReflectionException; +use ReturnTypeWillChange; +use RuntimeException; + +/** + * Substitution of DatePeriod with some modifications and many more features. + * + * @property-read int|float $recurrences number of recurrences (if end not set). + * @property-read bool $include_start_date rather the start date is included in the iteration. + * @property-read bool $include_end_date rather the end date is included in the iteration (if recurrences not set). + * @property-read CarbonInterface $start Period start date. + * @property-read CarbonInterface $current Current date from the iteration. + * @property-read CarbonInterface $end Period end date. + * @property-read CarbonInterval $interval Underlying date interval instance. Always present, one day by default. + * + * @method static static start($date, $inclusive = null) Create instance specifying start date or modify the start date if called on an instance. + * @method static static since($date, $inclusive = null) Alias for start(). + * @method static static sinceNow($inclusive = null) Create instance with start date set to now or set the start date to now if called on an instance. + * @method static static end($date = null, $inclusive = null) Create instance specifying end date or modify the end date if called on an instance. + * @method static static until($date = null, $inclusive = null) Alias for end(). + * @method static static untilNow($inclusive = null) Create instance with end date set to now or set the end date to now if called on an instance. + * @method static static dates($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance. + * @method static static between($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance. + * @method static static recurrences($recurrences = null) Create instance with maximum number of recurrences or modify the number of recurrences if called on an instance. + * @method static static times($recurrences = null) Alias for recurrences(). + * @method static static options($options = null) Create instance with options or modify the options if called on an instance. + * @method static static toggle($options, $state = null) Create instance with options toggled on or off, or toggle options if called on an instance. + * @method static static filter($callback, $name = null) Create instance with filter added to the stack or append a filter if called on an instance. + * @method static static push($callback, $name = null) Alias for filter(). + * @method static static prepend($callback, $name = null) Create instance with filter prepended to the stack or prepend a filter if called on an instance. + * @method static static filters(array $filters = []) Create instance with filters stack or replace the whole filters stack if called on an instance. + * @method static static interval($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static each($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static every($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static step($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static stepBy($interval) Create instance with given date interval or modify the interval if called on an instance. + * @method static static invert() Create instance with inverted date interval or invert the interval if called on an instance. + * @method static static years($years = 1) Create instance specifying a number of years for date interval or replace the interval by the given a number of years if called on an instance. + * @method static static year($years = 1) Alias for years(). + * @method static static months($months = 1) Create instance specifying a number of months for date interval or replace the interval by the given a number of months if called on an instance. + * @method static static month($months = 1) Alias for months(). + * @method static static weeks($weeks = 1) Create instance specifying a number of weeks for date interval or replace the interval by the given a number of weeks if called on an instance. + * @method static static week($weeks = 1) Alias for weeks(). + * @method static static days($days = 1) Create instance specifying a number of days for date interval or replace the interval by the given a number of days if called on an instance. + * @method static static dayz($days = 1) Alias for days(). + * @method static static day($days = 1) Alias for days(). + * @method static static hours($hours = 1) Create instance specifying a number of hours for date interval or replace the interval by the given a number of hours if called on an instance. + * @method static static hour($hours = 1) Alias for hours(). + * @method static static minutes($minutes = 1) Create instance specifying a number of minutes for date interval or replace the interval by the given a number of minutes if called on an instance. + * @method static static minute($minutes = 1) Alias for minutes(). + * @method static static seconds($seconds = 1) Create instance specifying a number of seconds for date interval or replace the interval by the given a number of seconds if called on an instance. + * @method static static second($seconds = 1) Alias for seconds(). + * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method $this roundWeek(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundWeeks(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorWeek(float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorWeeks(float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilWeek(float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilWeeks(float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class CarbonPeriod implements Iterator, Countable, JsonSerializable +{ + use IntervalRounding; + use Mixin { + Mixin::mixin as baseMixin; + } + use Options; + use ToStringFormat; + + /** + * Built-in filter for limit by recurrences. + * + * @var callable + */ + public const RECURRENCES_FILTER = [self::class, 'filterRecurrences']; + + /** + * Built-in filter for limit to an end. + * + * @var callable + */ + public const END_DATE_FILTER = [self::class, 'filterEndDate']; + + /** + * Special value which can be returned by filters to end iteration. Also a filter. + * + * @var callable + */ + public const END_ITERATION = [self::class, 'endIteration']; + + /** + * Exclude start date from iteration. + * + * @var int + */ + public const EXCLUDE_START_DATE = 1; + + /** + * Exclude end date from iteration. + * + * @var int + */ + public const EXCLUDE_END_DATE = 2; + + /** + * Yield CarbonImmutable instances. + * + * @var int + */ + public const IMMUTABLE = 4; + + /** + * Number of maximum attempts before giving up on finding next valid date. + * + * @var int + */ + public const NEXT_MAX_ATTEMPTS = 1000; + + /** + * Number of maximum attempts before giving up on finding end date. + * + * @var int + */ + public const END_MAX_ATTEMPTS = 10000; + + /** + * The registered macros. + * + * @var array + */ + protected static $macros = []; + + /** + * Date class of iteration items. + * + * @var string + */ + protected $dateClass = Carbon::class; + + /** + * Underlying date interval instance. Always present, one day by default. + * + * @var CarbonInterval + */ + protected $dateInterval; + + /** + * True once __construct is finished. + * + * @var bool + */ + protected $constructed = false; + + /** + * Whether current date interval was set by default. + * + * @var bool + */ + protected $isDefaultInterval; + + /** + * The filters stack. + * + * @var array + */ + protected $filters = []; + + /** + * Period start date. Applied on rewind. Always present, now by default. + * + * @var CarbonInterface + */ + protected $startDate; + + /** + * Period end date. For inverted interval should be before the start date. Applied via a filter. + * + * @var CarbonInterface|null + */ + protected $endDate; + + /** + * Limit for number of recurrences. Applied via a filter. + * + * @var int|null + */ + protected $recurrences; + + /** + * Iteration options. + * + * @var int + */ + protected $options; + + /** + * Index of current date. Always sequential, even if some dates are skipped by filters. + * Equal to null only before the first iteration. + * + * @var int + */ + protected $key; + + /** + * Current date. May temporarily hold unaccepted value when looking for a next valid date. + * Equal to null only before the first iteration. + * + * @var CarbonInterface + */ + protected $current; + + /** + * Timezone of current date. Taken from the start date. + * + * @var \DateTimeZone|null + */ + protected $timezone; + + /** + * The cached validation result for current date. + * + * @var bool|string|null + */ + protected $validationResult; + + /** + * Timezone handler for settings() method. + * + * @var mixed + */ + protected $tzName; + + /** + * Make a CarbonPeriod instance from given variable if possible. + * + * @param mixed $var + * + * @return static|null + */ + public static function make($var) + { + try { + return static::instance($var); + } catch (NotAPeriodException $e) { + return static::create($var); + } + } + + /** + * Create a new instance from a DatePeriod or CarbonPeriod object. + * + * @param CarbonPeriod|DatePeriod $period + * + * @return static + */ + public static function instance($period) + { + if ($period instanceof static) { + return $period->copy(); + } + + if ($period instanceof self) { + return new static( + $period->getStartDate(), + $period->getEndDate() ?: $period->getRecurrences(), + $period->getDateInterval(), + $period->getOptions() + ); + } + + if ($period instanceof DatePeriod) { + return new static( + $period->start, + $period->end ?: ($period->recurrences - 1), + $period->interval, + $period->include_start_date ? 0 : static::EXCLUDE_START_DATE + ); + } + + $class = static::class; + $type = \gettype($period); + + throw new NotAPeriodException( + 'Argument 1 passed to '.$class.'::'.__METHOD__.'() '. + 'must be an instance of DatePeriod or '.$class.', '. + ($type === 'object' ? 'instance of '.\get_class($period) : $type).' given.' + ); + } + + /** + * Create a new instance. + * + * @return static + */ + public static function create(...$params) + { + return static::createFromArray($params); + } + + /** + * Create a new instance from an array of parameters. + * + * @param array $params + * + * @return static + */ + public static function createFromArray(array $params) + { + return new static(...$params); + } + + /** + * Create CarbonPeriod from ISO 8601 string. + * + * @param string $iso + * @param int|null $options + * + * @return static + */ + public static function createFromIso($iso, $options = null) + { + $params = static::parseIso8601($iso); + + $instance = static::createFromArray($params); + + if ($options !== null) { + $instance->setOptions($options); + } + + return $instance; + } + + /** + * Return whether given interval contains non zero value of any time unit. + * + * @param \DateInterval $interval + * + * @return bool + */ + protected static function intervalHasTime(DateInterval $interval) + { + return $interval->h || $interval->i || $interval->s || $interval->f; + } + + /** + * Return whether given variable is an ISO 8601 specification. + * + * Note: Check is very basic, as actual validation will be done later when parsing. + * We just want to ensure that variable is not any other type of a valid parameter. + * + * @param mixed $var + * + * @return bool + */ + protected static function isIso8601($var) + { + if (!\is_string($var)) { + return false; + } + + // Match slash but not within a timezone name. + $part = '[a-z]+(?:[_-][a-z]+)*'; + + preg_match("#\b$part/$part\b|(/)#i", $var, $match); + + return isset($match[1]); + } + + /** + * Parse given ISO 8601 string into an array of arguments. + * + * @SuppressWarnings(PHPMD.ElseExpression) + * + * @param string $iso + * + * @return array + */ + protected static function parseIso8601($iso) + { + $result = []; + + $interval = null; + $start = null; + $end = null; + + foreach (explode('/', $iso) as $key => $part) { + if ($key === 0 && preg_match('/^R(\d*|INF)$/', $part, $match)) { + $parsed = \strlen($match[1]) ? (($match[1] !== 'INF') ? (int) $match[1] : INF) : null; + } elseif ($interval === null && $parsed = CarbonInterval::make($part)) { + $interval = $part; + } elseif ($start === null && $parsed = Carbon::make($part)) { + $start = $part; + } elseif ($end === null && $parsed = Carbon::make(static::addMissingParts($start ?? '', $part))) { + $end = $part; + } else { + throw new InvalidPeriodParameterException("Invalid ISO 8601 specification: $iso."); + } + + $result[] = $parsed; + } + + return $result; + } + + /** + * Add missing parts of the target date from the soure date. + * + * @param string $source + * @param string $target + * + * @return string + */ + protected static function addMissingParts($source, $target) + { + $pattern = '/'.preg_replace('/\d+/', '[0-9]+', preg_quote($target, '/')).'$/'; + + $result = preg_replace($pattern, $target, $source, 1, $count); + + return $count ? $result : $target; + } + + /** + * Register a custom macro. + * + * @example + * ``` + * CarbonPeriod::macro('middle', function () { + * return $this->getStartDate()->average($this->getEndDate()); + * }); + * echo CarbonPeriod::since('2011-05-12')->until('2011-06-03')->middle(); + * ``` + * + * @param string $name + * @param object|callable $macro + * + * @return void + */ + public static function macro($name, $macro) + { + static::$macros[$name] = $macro; + } + + /** + * Register macros from a mixin object. + * + * @example + * ``` + * CarbonPeriod::mixin(new class { + * public function addDays() { + * return function ($count = 1) { + * return $this->setStartDate( + * $this->getStartDate()->addDays($count) + * )->setEndDate( + * $this->getEndDate()->addDays($count) + * ); + * }; + * } + * public function subDays() { + * return function ($count = 1) { + * return $this->setStartDate( + * $this->getStartDate()->subDays($count) + * )->setEndDate( + * $this->getEndDate()->subDays($count) + * ); + * }; + * } + * }); + * echo CarbonPeriod::create('2000-01-01', '2000-02-01')->addDays(5)->subDays(3); + * ``` + * + * @param object|string $mixin + * + * @throws ReflectionException + * + * @return void + */ + public static function mixin($mixin) + { + static::baseMixin($mixin); + } + + /** + * Check if macro is registered. + * + * @param string $name + * + * @return bool + */ + public static function hasMacro($name) + { + return isset(static::$macros[$name]); + } + + /** + * Provide static proxy for instance aliases. + * + * @param string $method + * @param array $parameters + * + * @return mixed + */ + public static function __callStatic($method, $parameters) + { + $date = new static(); + + if (static::hasMacro($method)) { + return static::bindMacroContext(null, function () use (&$method, &$parameters, &$date) { + return $date->callMacro($method, $parameters); + }); + } + + return $date->$method(...$parameters); + } + + /** + * CarbonPeriod constructor. + * + * @SuppressWarnings(PHPMD.ElseExpression) + * + * @throws InvalidArgumentException + */ + public function __construct(...$arguments) + { + if (is_a($this->dateClass, DateTimeImmutable::class, true)) { + $this->options = static::IMMUTABLE; + } + + // Parse and assign arguments one by one. First argument may be an ISO 8601 spec, + // which will be first parsed into parts and then processed the same way. + + $argumentsCount = \count($arguments); + + if ($argumentsCount && static::isIso8601($iso = $arguments[0])) { + array_splice($arguments, 0, 1, static::parseIso8601($iso)); + } + + if ($argumentsCount === 1) { + if ($arguments[0] instanceof DatePeriod) { + $arguments = [ + $arguments[0]->start, + $arguments[0]->end ?: ($arguments[0]->recurrences - 1), + $arguments[0]->interval, + $arguments[0]->include_start_date ? 0 : static::EXCLUDE_START_DATE, + ]; + } elseif ($arguments[0] instanceof self) { + $arguments = [ + $arguments[0]->getStartDate(), + $arguments[0]->getEndDate() ?: $arguments[0]->getRecurrences(), + $arguments[0]->getDateInterval(), + $arguments[0]->getOptions(), + ]; + } + } + + foreach ($arguments as $argument) { + $parsedDate = null; + + if ($argument instanceof DateTimeZone) { + $this->setTimezone($argument); + } elseif ($this->dateInterval === null && + ( + (\is_string($argument) && preg_match( + '/^(-?\d(\d(?![\/-])|[^\d\/-]([\/-])?)*|P[T\d].*|(?:\h*\d+(?:\.\d+)?\h*[a-z]+)+)$/i', + $argument + )) || + $argument instanceof DateInterval || + $argument instanceof Closure + ) && + $parsedInterval = @CarbonInterval::make($argument) + ) { + $this->setDateInterval($parsedInterval); + } elseif ($this->startDate === null && $parsedDate = $this->makeDateTime($argument)) { + $this->setStartDate($parsedDate); + } elseif ($this->endDate === null && ($parsedDate = $parsedDate ?? $this->makeDateTime($argument))) { + $this->setEndDate($parsedDate); + } elseif ($this->recurrences === null && $this->endDate === null && is_numeric($argument)) { + $this->setRecurrences($argument); + } elseif ($this->options === null && (\is_int($argument) || $argument === null)) { + $this->setOptions($argument); + } else { + throw new InvalidPeriodParameterException('Invalid constructor parameters.'); + } + } + + if ($this->startDate === null) { + $this->setStartDate(Carbon::now()); + } + + if ($this->dateInterval === null) { + $this->setDateInterval(CarbonInterval::day()); + + $this->isDefaultInterval = true; + } + + if ($this->options === null) { + $this->setOptions(0); + } + + $this->constructed = true; + } + + /** + * Get a copy of the instance. + * + * @return static + */ + public function copy() + { + return clone $this; + } + + /** + * Prepare the instance to be set (self if mutable to be mutated, + * copy if immutable to generate a new instance). + * + * @return static + */ + protected function copyIfImmutable() + { + return $this; + } + + /** + * Get the getter for a property allowing both `DatePeriod` snakeCase and camelCase names. + * + * @param string $name + * + * @return callable|null + */ + protected function getGetter(string $name) + { + switch (strtolower(preg_replace('/[A-Z]/', '_$0', $name))) { + case 'start': + case 'start_date': + return [$this, 'getStartDate']; + case 'end': + case 'end_date': + return [$this, 'getEndDate']; + case 'interval': + case 'date_interval': + return [$this, 'getDateInterval']; + case 'recurrences': + return [$this, 'getRecurrences']; + case 'include_start_date': + return [$this, 'isStartIncluded']; + case 'include_end_date': + return [$this, 'isEndIncluded']; + case 'current': + return [$this, 'current']; + default: + return null; + } + } + + /** + * Get a property allowing both `DatePeriod` snakeCase and camelCase names. + * + * @param string $name + * + * @return bool|CarbonInterface|CarbonInterval|int|null + */ + public function get(string $name) + { + $getter = $this->getGetter($name); + + if ($getter) { + return $getter(); + } + + throw new UnknownGetterException($name); + } + + /** + * Get a property allowing both `DatePeriod` snakeCase and camelCase names. + * + * @param string $name + * + * @return bool|CarbonInterface|CarbonInterval|int|null + */ + public function __get(string $name) + { + return $this->get($name); + } + + /** + * Check if an attribute exists on the object + * + * @param string $name + * + * @return bool + */ + public function __isset(string $name): bool + { + return $this->getGetter($name) !== null; + } + + /** + * @alias copy + * + * Get a copy of the instance. + * + * @return static + */ + public function clone() + { + return clone $this; + } + + /** + * Set the iteration item class. + * + * @param string $dateClass + * + * @return static + */ + public function setDateClass(string $dateClass) + { + if (!is_a($dateClass, CarbonInterface::class, true)) { + throw new NotACarbonClassException($dateClass); + } + + $self = $this->copyIfImmutable(); + $self->dateClass = $dateClass; + + if (is_a($dateClass, Carbon::class, true)) { + $self->options = $self->options & ~static::IMMUTABLE; + } elseif (is_a($dateClass, CarbonImmutable::class, true)) { + $self->options = $self->options | static::IMMUTABLE; + } + + return $self; + } + + /** + * Returns iteration item date class. + * + * @return string + */ + public function getDateClass(): string + { + return $this->dateClass; + } + + /** + * Change the period date interval. + * + * @param DateInterval|string $interval + * + * @throws InvalidIntervalException + * + * @return static + */ + public function setDateInterval($interval) + { + if (!$interval = CarbonInterval::make($interval)) { + throw new InvalidIntervalException('Invalid interval.'); + } + + if ($interval->spec() === 'PT0S' && !$interval->f && !$interval->getStep()) { + throw new InvalidIntervalException('Empty interval is not accepted.'); + } + + $self = $this->copyIfImmutable(); + $self->dateInterval = $interval; + + $self->isDefaultInterval = false; + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Invert the period date interval. + * + * @return static + */ + public function invertDateInterval() + { + return $this->setDateInterval($this->dateInterval->invert()); + } + + /** + * Set start and end date. + * + * @param DateTime|DateTimeInterface|string $start + * @param DateTime|DateTimeInterface|string|null $end + * + * @return static + */ + public function setDates($start, $end) + { + return $this->setStartDate($start)->setEndDate($end); + } + + /** + * Change the period options. + * + * @param int|null $options + * + * @throws InvalidArgumentException + * + * @return static + */ + public function setOptions($options) + { + if (!\is_int($options) && $options !== null) { + throw new InvalidPeriodParameterException('Invalid options.'); + } + + $self = $this->copyIfImmutable(); + $self->options = $options ?: 0; + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Get the period options. + * + * @return int + */ + public function getOptions() + { + return $this->options; + } + + /** + * Toggle given options on or off. + * + * @param int $options + * @param bool|null $state + * + * @throws \InvalidArgumentException + * + * @return static + */ + public function toggleOptions($options, $state = null) + { + if ($state === null) { + $state = ($this->options & $options) !== $options; + } + + return $this->setOptions( + $state ? + $this->options | $options : + $this->options & ~$options + ); + } + + /** + * Toggle EXCLUDE_START_DATE option. + * + * @param bool $state + * + * @return static + */ + public function excludeStartDate($state = true) + { + return $this->toggleOptions(static::EXCLUDE_START_DATE, $state); + } + + /** + * Toggle EXCLUDE_END_DATE option. + * + * @param bool $state + * + * @return static + */ + public function excludeEndDate($state = true) + { + return $this->toggleOptions(static::EXCLUDE_END_DATE, $state); + } + + /** + * Get the underlying date interval. + * + * @return CarbonInterval + */ + public function getDateInterval() + { + return $this->dateInterval->copy(); + } + + /** + * Get start date of the period. + * + * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval. + * + * @return CarbonInterface + */ + public function getStartDate(string $rounding = null) + { + $date = $this->startDate->avoidMutation(); + + return $rounding ? $date->round($this->getDateInterval(), $rounding) : $date; + } + + /** + * Get end date of the period. + * + * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval. + * + * @return CarbonInterface|null + */ + public function getEndDate(string $rounding = null) + { + if (!$this->endDate) { + return null; + } + + $date = $this->endDate->avoidMutation(); + + return $rounding ? $date->round($this->getDateInterval(), $rounding) : $date; + } + + /** + * Get number of recurrences. + * + * @return int|float|null + */ + public function getRecurrences() + { + return $this->recurrences; + } + + /** + * Returns true if the start date should be excluded. + * + * @return bool + */ + public function isStartExcluded() + { + return ($this->options & static::EXCLUDE_START_DATE) !== 0; + } + + /** + * Returns true if the end date should be excluded. + * + * @return bool + */ + public function isEndExcluded() + { + return ($this->options & static::EXCLUDE_END_DATE) !== 0; + } + + /** + * Returns true if the start date should be included. + * + * @return bool + */ + public function isStartIncluded() + { + return !$this->isStartExcluded(); + } + + /** + * Returns true if the end date should be included. + * + * @return bool + */ + public function isEndIncluded() + { + return !$this->isEndExcluded(); + } + + /** + * Return the start if it's included by option, else return the start + 1 period interval. + * + * @return CarbonInterface + */ + public function getIncludedStartDate() + { + $start = $this->getStartDate(); + + if ($this->isStartExcluded()) { + return $start->add($this->getDateInterval()); + } + + return $start; + } + + /** + * Return the end if it's included by option, else return the end - 1 period interval. + * Warning: if the period has no fixed end, this method will iterate the period to calculate it. + * + * @return CarbonInterface + */ + public function getIncludedEndDate() + { + $end = $this->getEndDate(); + + if (!$end) { + return $this->calculateEnd(); + } + + if ($this->isEndExcluded()) { + return $end->sub($this->getDateInterval()); + } + + return $end; + } + + /** + * Add a filter to the stack. + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @param callable $callback + * @param string $name + * + * @return static + */ + public function addFilter($callback, $name = null) + { + $self = $this->copyIfImmutable(); + $tuple = $self->createFilterTuple(\func_get_args()); + + $self->filters[] = $tuple; + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Prepend a filter to the stack. + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @param callable $callback + * @param string $name + * + * @return static + */ + public function prependFilter($callback, $name = null) + { + $self = $this->copyIfImmutable(); + $tuple = $self->createFilterTuple(\func_get_args()); + + array_unshift($self->filters, $tuple); + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Remove a filter by instance or name. + * + * @param callable|string $filter + * + * @return static + */ + public function removeFilter($filter) + { + $self = $this->copyIfImmutable(); + $key = \is_callable($filter) ? 0 : 1; + + $self->filters = array_values(array_filter( + $this->filters, + function ($tuple) use ($key, $filter) { + return $tuple[$key] !== $filter; + } + )); + + $self->updateInternalState(); + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Return whether given instance or name is in the filter stack. + * + * @param callable|string $filter + * + * @return bool + */ + public function hasFilter($filter) + { + $key = \is_callable($filter) ? 0 : 1; + + foreach ($this->filters as $tuple) { + if ($tuple[$key] === $filter) { + return true; + } + } + + return false; + } + + /** + * Get filters stack. + * + * @return array + */ + public function getFilters() + { + return $this->filters; + } + + /** + * Set filters stack. + * + * @param array $filters + * + * @return static + */ + public function setFilters(array $filters) + { + $self = $this->copyIfImmutable(); + $self->filters = $filters; + + $self->updateInternalState(); + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Reset filters stack. + * + * @return static + */ + public function resetFilters() + { + $self = $this->copyIfImmutable(); + $self->filters = []; + + if ($self->endDate !== null) { + $self->filters[] = [static::END_DATE_FILTER, null]; + } + + if ($self->recurrences !== null) { + $self->filters[] = [static::RECURRENCES_FILTER, null]; + } + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Add a recurrences filter (set maximum number of recurrences). + * + * @param int|float|null $recurrences + * + * @throws InvalidArgumentException + * + * @return static + */ + public function setRecurrences($recurrences) + { + if ((!is_numeric($recurrences) && $recurrences !== null) || $recurrences < 0) { + throw new InvalidPeriodParameterException('Invalid number of recurrences.'); + } + + if ($recurrences === null) { + return $this->removeFilter(static::RECURRENCES_FILTER); + } + + /** @var self $self */ + $self = $this->copyIfImmutable(); + $self->recurrences = $recurrences === INF ? INF : (int) $recurrences; + + if (!$self->hasFilter(static::RECURRENCES_FILTER)) { + return $self->addFilter(static::RECURRENCES_FILTER); + } + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Change the period start date. + * + * @param DateTime|DateTimeInterface|string $date + * @param bool|null $inclusive + * + * @throws InvalidPeriodDateException + * + * @return static + */ + public function setStartDate($date, $inclusive = null) + { + if (!$this->isInfiniteDate($date) && !($date = ([$this->dateClass, 'make'])($date))) { + throw new InvalidPeriodDateException('Invalid start date.'); + } + + $self = $this->copyIfImmutable(); + $self->startDate = $date; + + if ($inclusive !== null) { + $self = $self->toggleOptions(static::EXCLUDE_START_DATE, !$inclusive); + } + + return $self; + } + + /** + * Change the period end date. + * + * @param DateTime|DateTimeInterface|string|null $date + * @param bool|null $inclusive + * + * @throws \InvalidArgumentException + * + * @return static + */ + public function setEndDate($date, $inclusive = null) + { + if ($date !== null && !$this->isInfiniteDate($date) && !$date = ([$this->dateClass, 'make'])($date)) { + throw new InvalidPeriodDateException('Invalid end date.'); + } + + if (!$date) { + return $this->removeFilter(static::END_DATE_FILTER); + } + + $self = $this->copyIfImmutable(); + $self->endDate = $date; + + if ($inclusive !== null) { + $self = $self->toggleOptions(static::EXCLUDE_END_DATE, !$inclusive); + } + + if (!$self->hasFilter(static::END_DATE_FILTER)) { + return $self->addFilter(static::END_DATE_FILTER); + } + + $self->handleChangedParameters(); + + return $self; + } + + /** + * Check if the current position is valid. + * + * @return bool + */ + #[ReturnTypeWillChange] + public function valid() + { + return $this->validateCurrentDate() === true; + } + + /** + * Return the current key. + * + * @return int|null + */ + #[ReturnTypeWillChange] + public function key() + { + return $this->valid() + ? $this->key + : null; + } + + /** + * Return the current date. + * + * @return CarbonInterface|null + */ + #[ReturnTypeWillChange] + public function current() + { + return $this->valid() + ? $this->prepareForReturn($this->current) + : null; + } + + /** + * Move forward to the next date. + * + * @throws RuntimeException + * + * @return void + */ + #[ReturnTypeWillChange] + public function next() + { + if ($this->current === null) { + $this->rewind(); + } + + if ($this->validationResult !== static::END_ITERATION) { + $this->key++; + + $this->incrementCurrentDateUntilValid(); + } + } + + /** + * Rewind to the start date. + * + * Iterating over a date in the UTC timezone avoids bug during backward DST change. + * + * @see https://bugs.php.net/bug.php?id=72255 + * @see https://bugs.php.net/bug.php?id=74274 + * @see https://wiki.php.net/rfc/datetime_and_daylight_saving_time + * + * @throws RuntimeException + * + * @return void + */ + #[ReturnTypeWillChange] + public function rewind() + { + $this->key = 0; + $this->current = ([$this->dateClass, 'make'])($this->startDate); + $settings = $this->getSettings(); + + if ($this->hasLocalTranslator()) { + $settings['locale'] = $this->getTranslatorLocale(); + } + + $this->current->settings($settings); + $this->timezone = static::intervalHasTime($this->dateInterval) ? $this->current->getTimezone() : null; + + if ($this->timezone) { + $this->current = $this->current->utc(); + } + + $this->validationResult = null; + + if ($this->isStartExcluded() || $this->validateCurrentDate() === false) { + $this->incrementCurrentDateUntilValid(); + } + } + + /** + * Skip iterations and returns iteration state (false if ended, true if still valid). + * + * @param int $count steps number to skip (1 by default) + * + * @return bool + */ + public function skip($count = 1) + { + for ($i = $count; $this->valid() && $i > 0; $i--) { + $this->next(); + } + + return $this->valid(); + } + + /** + * Format the date period as ISO 8601. + * + * @return string + */ + public function toIso8601String() + { + $parts = []; + + if ($this->recurrences !== null) { + $parts[] = 'R'.$this->recurrences; + } + + $parts[] = $this->startDate->toIso8601String(); + + $parts[] = $this->dateInterval->spec(); + + if ($this->endDate !== null) { + $parts[] = $this->endDate->toIso8601String(); + } + + return implode('/', $parts); + } + + /** + * Convert the date period into a string. + * + * @return string + */ + public function toString() + { + $format = $this->localToStringFormat ?? static::$toStringFormat; + + if ($format instanceof Closure) { + return $format($this); + } + + $translator = ([$this->dateClass, 'getTranslator'])(); + + $parts = []; + + $format = $format ?? ( + !$this->startDate->isStartOfDay() || ($this->endDate && !$this->endDate->isStartOfDay()) + ? 'Y-m-d H:i:s' + : 'Y-m-d' + ); + + if ($this->recurrences !== null) { + $parts[] = $this->translate('period_recurrences', [], $this->recurrences, $translator); + } + + $parts[] = $this->translate('period_interval', [':interval' => $this->dateInterval->forHumans([ + 'join' => true, + ])], null, $translator); + + $parts[] = $this->translate('period_start_date', [':date' => $this->startDate->rawFormat($format)], null, $translator); + + if ($this->endDate !== null) { + $parts[] = $this->translate('period_end_date', [':date' => $this->endDate->rawFormat($format)], null, $translator); + } + + $result = implode(' ', $parts); + + return mb_strtoupper(mb_substr($result, 0, 1)).mb_substr($result, 1); + } + + /** + * Format the date period as ISO 8601. + * + * @return string + */ + public function spec() + { + return $this->toIso8601String(); + } + + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DatePeriod + */ + public function cast(string $className) + { + if (!method_exists($className, 'instance')) { + if (is_a($className, DatePeriod::class, true)) { + return new $className( + $this->rawDate($this->getStartDate()), + $this->getDateInterval(), + $this->getEndDate() ? $this->rawDate($this->getIncludedEndDate()) : $this->getRecurrences(), + $this->isStartExcluded() ? DatePeriod::EXCLUDE_START_DATE : 0 + ); + } + + throw new InvalidCastException("$className has not the instance() method needed to cast the date."); + } + + return $className::instance($this); + } + + /** + * Return native DatePeriod PHP object matching the current instance. + * + * @example + * ``` + * var_dump(CarbonPeriod::create('2021-01-05', '2021-02-15')->toDatePeriod()); + * ``` + * + * @return DatePeriod + */ + public function toDatePeriod() + { + return $this->cast(DatePeriod::class); + } + + /** + * Return `true` if the period has no custom filter and is guaranteed to be endless. + * + * Note that we can't check if a period is endless as soon as it has custom filters + * because filters can emit `CarbonPeriod::END_ITERATION` to stop the iteration in + * a way we can't predict without actually iterating the period. + */ + public function isUnfilteredAndEndLess(): bool + { + foreach ($this->filters as $filter) { + switch ($filter) { + case [static::RECURRENCES_FILTER, null]: + if ($this->recurrences !== null && is_finite($this->recurrences)) { + return false; + } + + break; + + case [static::END_DATE_FILTER, null]: + if ($this->endDate !== null && !$this->endDate->isEndOfTime()) { + return false; + } + + break; + + default: + return false; + } + } + + return true; + } + + /** + * Convert the date period into an array without changing current iteration state. + * + * @return CarbonInterface[] + */ + public function toArray() + { + if ($this->isUnfilteredAndEndLess()) { + throw new EndLessPeriodException("Endless period can't be converted to array nor counted."); + } + + $state = [ + $this->key, + $this->current ? $this->current->avoidMutation() : null, + $this->validationResult, + ]; + + $result = iterator_to_array($this); + + [$this->key, $this->current, $this->validationResult] = $state; + + return $result; + } + + /** + * Count dates in the date period. + * + * @return int + */ + #[ReturnTypeWillChange] + public function count() + { + return \count($this->toArray()); + } + + /** + * Return the first date in the date period. + * + * @return CarbonInterface|null + */ + public function first() + { + if ($this->isUnfilteredAndEndLess()) { + foreach ($this as $date) { + $this->rewind(); + + return $date; + } + + return null; + } + + return ($this->toArray() ?: [])[0] ?? null; + } + + /** + * Return the last date in the date period. + * + * @return CarbonInterface|null + */ + public function last() + { + $array = $this->toArray(); + + return $array ? $array[\count($array) - 1] : null; + } + + /** + * Convert the date period into a string. + * + * @return string + */ + public function __toString() + { + return $this->toString(); + } + + /** + * Add aliases for setters. + * + * CarbonPeriod::days(3)->hours(5)->invert() + * ->sinceNow()->until('2010-01-10') + * ->filter(...) + * ->count() + * + * Note: We use magic method to let static and instance aliases with the same names. + * + * @param string $method + * @param array $parameters + * + * @return mixed + */ + public function __call($method, $parameters) + { + if (static::hasMacro($method)) { + return static::bindMacroContext($this, function () use (&$method, &$parameters) { + return $this->callMacro($method, $parameters); + }); + } + + $roundedValue = $this->callRoundMethod($method, $parameters); + + if ($roundedValue !== null) { + return $roundedValue; + } + + switch ($method) { + case 'start': + case 'since': + self::setDefaultParameters($parameters, [ + [0, 'date', null], + ]); + + return $this->setStartDate(...$parameters); + + case 'sinceNow': + return $this->setStartDate(new Carbon(), ...$parameters); + + case 'end': + case 'until': + self::setDefaultParameters($parameters, [ + [0, 'date', null], + ]); + + return $this->setEndDate(...$parameters); + + case 'untilNow': + return $this->setEndDate(new Carbon(), ...$parameters); + + case 'dates': + case 'between': + self::setDefaultParameters($parameters, [ + [0, 'start', null], + [1, 'end', null], + ]); + + return $this->setDates(...$parameters); + + case 'recurrences': + case 'times': + self::setDefaultParameters($parameters, [ + [0, 'recurrences', null], + ]); + + return $this->setRecurrences(...$parameters); + + case 'options': + self::setDefaultParameters($parameters, [ + [0, 'options', null], + ]); + + return $this->setOptions(...$parameters); + + case 'toggle': + self::setDefaultParameters($parameters, [ + [0, 'options', null], + ]); + + return $this->toggleOptions(...$parameters); + + case 'filter': + case 'push': + return $this->addFilter(...$parameters); + + case 'prepend': + return $this->prependFilter(...$parameters); + + case 'filters': + self::setDefaultParameters($parameters, [ + [0, 'filters', []], + ]); + + return $this->setFilters(...$parameters); + + case 'interval': + case 'each': + case 'every': + case 'step': + case 'stepBy': + return $this->setDateInterval(...$parameters); + + case 'invert': + return $this->invertDateInterval(); + + case 'years': + case 'year': + case 'months': + case 'month': + case 'weeks': + case 'week': + case 'days': + case 'dayz': + case 'day': + case 'hours': + case 'hour': + case 'minutes': + case 'minute': + case 'seconds': + case 'second': + return $this->setDateInterval(( + // Override default P1D when instantiating via fluent setters. + [$this->isDefaultInterval ? new CarbonInterval('PT0S') : $this->dateInterval, $method] + )(...$parameters)); + } + + if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) { + throw new UnknownMethodException($method); + } + + return $this; + } + + /** + * Set the instance's timezone from a string or object and apply it to start/end. + * + * @param \DateTimeZone|string $timezone + * + * @return static + */ + public function setTimezone($timezone) + { + $self = $this->copyIfImmutable(); + $self->tzName = $timezone; + $self->timezone = $timezone; + + if ($self->startDate) { + $self = $self->setStartDate($self->startDate->setTimezone($timezone)); + } + + if ($self->endDate) { + $self = $self->setEndDate($self->endDate->setTimezone($timezone)); + } + + return $self; + } + + /** + * Set the instance's timezone from a string or object and add/subtract the offset difference to start/end. + * + * @param \DateTimeZone|string $timezone + * + * @return static + */ + public function shiftTimezone($timezone) + { + $self = $this->copyIfImmutable(); + $self->tzName = $timezone; + $self->timezone = $timezone; + + if ($self->startDate) { + $self = $self->setStartDate($self->startDate->shiftTimezone($timezone)); + } + + if ($self->endDate) { + $self = $self->setEndDate($self->endDate->shiftTimezone($timezone)); + } + + return $self; + } + + /** + * Returns the end is set, else calculated from start an recurrences. + * + * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval. + * + * @return CarbonInterface + */ + public function calculateEnd(string $rounding = null) + { + if ($end = $this->getEndDate($rounding)) { + return $end; + } + + if ($this->dateInterval->isEmpty()) { + return $this->getStartDate($rounding); + } + + $date = $this->getEndFromRecurrences() ?? $this->iterateUntilEnd(); + + if ($date && $rounding) { + $date = $date->avoidMutation()->round($this->getDateInterval(), $rounding); + } + + return $date; + } + + /** + * @return CarbonInterface|null + */ + private function getEndFromRecurrences() + { + if ($this->recurrences === null) { + throw new UnreachableException( + "Could not calculate period end without either explicit end or recurrences.\n". + "If you're looking for a forever-period, use ->setRecurrences(INF)." + ); + } + + if ($this->recurrences === INF) { + $start = $this->getStartDate(); + + return $start < $start->avoidMutation()->add($this->getDateInterval()) + ? CarbonImmutable::endOfTime() + : CarbonImmutable::startOfTime(); + } + + if ($this->filters === [[static::RECURRENCES_FILTER, null]]) { + return $this->getStartDate()->avoidMutation()->add( + $this->getDateInterval()->times( + $this->recurrences - ($this->isStartExcluded() ? 0 : 1) + ) + ); + } + + return null; + } + + /** + * @return CarbonInterface|null + */ + private function iterateUntilEnd() + { + $attempts = 0; + $date = null; + + foreach ($this as $date) { + if (++$attempts > static::END_MAX_ATTEMPTS) { + throw new UnreachableException( + 'Could not calculate period end after iterating '.static::END_MAX_ATTEMPTS.' times.' + ); + } + } + + return $date; + } + + /** + * Returns true if the current period overlaps the given one (if 1 parameter passed) + * or the period between 2 dates (if 2 parameters passed). + * + * @param CarbonPeriod|\DateTimeInterface|Carbon|CarbonImmutable|string $rangeOrRangeStart + * @param \DateTimeInterface|Carbon|CarbonImmutable|string|null $rangeEnd + * + * @return bool + */ + public function overlaps($rangeOrRangeStart, $rangeEnd = null) + { + $range = $rangeEnd ? static::create($rangeOrRangeStart, $rangeEnd) : $rangeOrRangeStart; + + if (!($range instanceof self)) { + $range = static::create($range); + } + + [$start, $end] = $this->orderCouple($this->getStartDate(), $this->calculateEnd()); + [$rangeStart, $rangeEnd] = $this->orderCouple($range->getStartDate(), $range->calculateEnd()); + + return $end > $rangeStart && $rangeEnd > $start; + } + + /** + * Execute a given function on each date of the period. + * + * @example + * ``` + * Carbon::create('2020-11-29')->daysUntil('2020-12-24')->forEach(function (Carbon $date) { + * echo $date->diffInDays('2020-12-25')." days before Christmas!\n"; + * }); + * ``` + * + * @param callable $callback + */ + public function forEach(callable $callback) + { + foreach ($this as $date) { + $callback($date); + } + } + + /** + * Execute a given function on each date of the period and yield the result of this function. + * + * @example + * ``` + * $period = Carbon::create('2020-11-29')->daysUntil('2020-12-24'); + * echo implode("\n", iterator_to_array($period->map(function (Carbon $date) { + * return $date->diffInDays('2020-12-25').' days before Christmas!'; + * }))); + * ``` + * + * @param callable $callback + * + * @return \Generator + */ + public function map(callable $callback) + { + foreach ($this as $date) { + yield $callback($date); + } + } + + /** + * Determines if the instance is equal to another. + * Warning: if options differ, instances wil never be equal. + * + * @param mixed $period + * + * @see equalTo() + * + * @return bool + */ + public function eq($period): bool + { + return $this->equalTo($period); + } + + /** + * Determines if the instance is equal to another. + * Warning: if options differ, instances wil never be equal. + * + * @param mixed $period + * + * @return bool + */ + public function equalTo($period): bool + { + if (!($period instanceof self)) { + $period = self::make($period); + } + + $end = $this->getEndDate(); + + return $period !== null + && $this->getDateInterval()->eq($period->getDateInterval()) + && $this->getStartDate()->eq($period->getStartDate()) + && ($end ? $end->eq($period->getEndDate()) : $this->getRecurrences() === $period->getRecurrences()) + && ($this->getOptions() & (~static::IMMUTABLE)) === ($period->getOptions() & (~static::IMMUTABLE)); + } + + /** + * Determines if the instance is not equal to another. + * Warning: if options differ, instances wil never be equal. + * + * @param mixed $period + * + * @see notEqualTo() + * + * @return bool + */ + public function ne($period): bool + { + return $this->notEqualTo($period); + } + + /** + * Determines if the instance is not equal to another. + * Warning: if options differ, instances wil never be equal. + * + * @param mixed $period + * + * @return bool + */ + public function notEqualTo($period): bool + { + return !$this->eq($period); + } + + /** + * Determines if the start date is before an other given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsBefore($date = null): bool + { + return $this->getStartDate()->lessThan($this->resolveCarbon($date)); + } + + /** + * Determines if the start date is before or the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsBeforeOrAt($date = null): bool + { + return $this->getStartDate()->lessThanOrEqualTo($this->resolveCarbon($date)); + } + + /** + * Determines if the start date is after an other given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsAfter($date = null): bool + { + return $this->getStartDate()->greaterThan($this->resolveCarbon($date)); + } + + /** + * Determines if the start date is after or the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsAfterOrAt($date = null): bool + { + return $this->getStartDate()->greaterThanOrEqualTo($this->resolveCarbon($date)); + } + + /** + * Determines if the start date is the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function startsAt($date = null): bool + { + return $this->getStartDate()->equalTo($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is before an other given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsBefore($date = null): bool + { + return $this->calculateEnd()->lessThan($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is before or the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsBeforeOrAt($date = null): bool + { + return $this->calculateEnd()->lessThanOrEqualTo($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is after an other given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsAfter($date = null): bool + { + return $this->calculateEnd()->greaterThan($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is after or the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsAfterOrAt($date = null): bool + { + return $this->calculateEnd()->greaterThanOrEqualTo($this->resolveCarbon($date)); + } + + /** + * Determines if the end date is the same as a given date. + * (Rather start/end are included by options is ignored.) + * + * @param mixed $date + * + * @return bool + */ + public function endsAt($date = null): bool + { + return $this->calculateEnd()->equalTo($this->resolveCarbon($date)); + } + + /** + * Return true if start date is now or later. + * (Rather start/end are included by options is ignored.) + * + * @return bool + */ + public function isStarted(): bool + { + return $this->startsBeforeOrAt(); + } + + /** + * Return true if end date is now or later. + * (Rather start/end are included by options is ignored.) + * + * @return bool + */ + public function isEnded(): bool + { + return $this->endsBeforeOrAt(); + } + + /** + * Return true if now is between start date (included) and end date (excluded). + * (Rather start/end are included by options is ignored.) + * + * @return bool + */ + public function isInProgress(): bool + { + return $this->isStarted() && !$this->isEnded(); + } + + /** + * Round the current instance at the given unit with given precision if specified and the given function. + * + * @param string $unit + * @param float|int|string|\DateInterval|null $precision + * @param string $function + * + * @return static + */ + public function roundUnit($unit, $precision = 1, $function = 'round') + { + $self = $this->copyIfImmutable(); + $self = $self->setStartDate($self->getStartDate()->roundUnit($unit, $precision, $function)); + + if ($self->endDate) { + $self = $self->setEndDate($self->getEndDate()->roundUnit($unit, $precision, $function)); + } + + return $self->setDateInterval($self->getDateInterval()->roundUnit($unit, $precision, $function)); + } + + /** + * Truncate the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int|string|\DateInterval|null $precision + * + * @return static + */ + public function floorUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'floor'); + } + + /** + * Ceil the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int|string|\DateInterval|null $precision + * + * @return static + */ + public function ceilUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'ceil'); + } + + /** + * Round the current instance second with given precision if specified (else period interval is used). + * + * @param float|int|string|\DateInterval|null $precision + * @param string $function + * + * @return static + */ + public function round($precision = null, $function = 'round') + { + return $this->roundWith( + $precision ?? $this->getDateInterval()->setLocalTranslator(TranslatorImmutable::get('en'))->forHumans(), + $function + ); + } + + /** + * Round the current instance second with given precision if specified (else period interval is used). + * + * @param float|int|string|\DateInterval|null $precision + * + * @return static + */ + public function floor($precision = null) + { + return $this->round($precision, 'floor'); + } + + /** + * Ceil the current instance second with given precision if specified (else period interval is used). + * + * @param float|int|string|\DateInterval|null $precision + * + * @return static + */ + public function ceil($precision = null) + { + return $this->round($precision, 'ceil'); + } + + /** + * Specify data which should be serialized to JSON. + * + * @link https://php.net/manual/en/jsonserializable.jsonserialize.php + * + * @return CarbonInterface[] + */ + #[ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * Return true if the given date is between start and end. + * + * @param \Carbon\Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|\DateTimeInterface|string|null $date + * + * @return bool + */ + public function contains($date = null): bool + { + $startMethod = 'startsBefore'.($this->isStartIncluded() ? 'OrAt' : ''); + $endMethod = 'endsAfter'.($this->isEndIncluded() ? 'OrAt' : ''); + + return $this->$startMethod($date) && $this->$endMethod($date); + } + + /** + * Return true if the current period follows a given other period (with no overlap). + * For instance, [2019-08-01 -> 2019-08-12] follows [2019-07-29 -> 2019-07-31] + * Note than in this example, follows() would be false if 2019-08-01 or 2019-07-31 was excluded by options. + * + * @param \Carbon\CarbonPeriod|\DatePeriod|string $period + * + * @return bool + */ + public function follows($period, ...$arguments): bool + { + $period = $this->resolveCarbonPeriod($period, ...$arguments); + + return $this->getIncludedStartDate()->equalTo($period->getIncludedEndDate()->add($period->getDateInterval())); + } + + /** + * Return true if the given other period follows the current one (with no overlap). + * For instance, [2019-07-29 -> 2019-07-31] is followed by [2019-08-01 -> 2019-08-12] + * Note than in this example, isFollowedBy() would be false if 2019-08-01 or 2019-07-31 was excluded by options. + * + * @param \Carbon\CarbonPeriod|\DatePeriod|string $period + * + * @return bool + */ + public function isFollowedBy($period, ...$arguments): bool + { + $period = $this->resolveCarbonPeriod($period, ...$arguments); + + return $period->follows($this); + } + + /** + * Return true if the given period either follows or is followed by the current one. + * + * @see follows() + * @see isFollowedBy() + * + * @param \Carbon\CarbonPeriod|\DatePeriod|string $period + * + * @return bool + */ + public function isConsecutiveWith($period, ...$arguments): bool + { + return $this->follows($period, ...$arguments) || $this->isFollowedBy($period, ...$arguments); + } + + /** + * Update properties after removing built-in filters. + * + * @return void + */ + protected function updateInternalState() + { + if (!$this->hasFilter(static::END_DATE_FILTER)) { + $this->endDate = null; + } + + if (!$this->hasFilter(static::RECURRENCES_FILTER)) { + $this->recurrences = null; + } + } + + /** + * Create a filter tuple from raw parameters. + * + * Will create an automatic filter callback for one of Carbon's is* methods. + * + * @param array $parameters + * + * @return array + */ + protected function createFilterTuple(array $parameters) + { + $method = array_shift($parameters); + + if (!$this->isCarbonPredicateMethod($method)) { + return [$method, array_shift($parameters)]; + } + + return [function ($date) use ($method, $parameters) { + return ([$date, $method])(...$parameters); + }, $method]; + } + + /** + * Return whether given callable is a string pointing to one of Carbon's is* methods + * and should be automatically converted to a filter callback. + * + * @param callable $callable + * + * @return bool + */ + protected function isCarbonPredicateMethod($callable) + { + return \is_string($callable) && str_starts_with($callable, 'is') && + (method_exists($this->dateClass, $callable) || ([$this->dateClass, 'hasMacro'])($callable)); + } + + /** + * Recurrences filter callback (limits number of recurrences). + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @param \Carbon\Carbon $current + * @param int $key + * + * @return bool|string + */ + protected function filterRecurrences($current, $key) + { + if ($key < $this->recurrences) { + return true; + } + + return static::END_ITERATION; + } + + /** + * End date filter callback. + * + * @param \Carbon\Carbon $current + * + * @return bool|string + */ + protected function filterEndDate($current) + { + if (!$this->isEndExcluded() && $current == $this->endDate) { + return true; + } + + if ($this->dateInterval->invert ? $current > $this->endDate : $current < $this->endDate) { + return true; + } + + return static::END_ITERATION; + } + + /** + * End iteration filter callback. + * + * @return string + */ + protected function endIteration() + { + return static::END_ITERATION; + } + + /** + * Handle change of the parameters. + */ + protected function handleChangedParameters() + { + if (($this->getOptions() & static::IMMUTABLE) && $this->dateClass === Carbon::class) { + $this->dateClass = CarbonImmutable::class; + } elseif (!($this->getOptions() & static::IMMUTABLE) && $this->dateClass === CarbonImmutable::class) { + $this->dateClass = Carbon::class; + } + + $this->validationResult = null; + } + + /** + * Validate current date and stop iteration when necessary. + * + * Returns true when current date is valid, false if it is not, or static::END_ITERATION + * when iteration should be stopped. + * + * @return bool|string + */ + protected function validateCurrentDate() + { + if ($this->current === null) { + $this->rewind(); + } + + // Check after the first rewind to avoid repeating the initial validation. + return $this->validationResult ?? ($this->validationResult = $this->checkFilters()); + } + + /** + * Check whether current value and key pass all the filters. + * + * @return bool|string + */ + protected function checkFilters() + { + $current = $this->prepareForReturn($this->current); + + foreach ($this->filters as $tuple) { + $result = \call_user_func( + $tuple[0], + $current->avoidMutation(), + $this->key, + $this + ); + + if ($result === static::END_ITERATION) { + return static::END_ITERATION; + } + + if (!$result) { + return false; + } + } + + return true; + } + + /** + * Prepare given date to be returned to the external logic. + * + * @param CarbonInterface $date + * + * @return CarbonInterface + */ + protected function prepareForReturn(CarbonInterface $date) + { + $date = ([$this->dateClass, 'make'])($date); + + if ($this->timezone) { + $date = $date->setTimezone($this->timezone); + } + + return $date; + } + + /** + * Keep incrementing the current date until a valid date is found or the iteration is ended. + * + * @throws RuntimeException + * + * @return void + */ + protected function incrementCurrentDateUntilValid() + { + $attempts = 0; + + do { + $this->current = $this->current->add($this->dateInterval); + + $this->validationResult = null; + + if (++$attempts > static::NEXT_MAX_ATTEMPTS) { + throw new UnreachableException('Could not find next valid date.'); + } + } while ($this->validateCurrentDate() === false); + } + + /** + * Call given macro. + * + * @param string $name + * @param array $parameters + * + * @return mixed + */ + protected function callMacro($name, $parameters) + { + $macro = static::$macros[$name]; + + if ($macro instanceof Closure) { + $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class); + + return ($boundMacro ?: $macro)(...$parameters); + } + + return $macro(...$parameters); + } + + /** + * Return the Carbon instance passed through, a now instance in the same timezone + * if null given or parse the input if string given. + * + * @param \Carbon\Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|\DateTimeInterface|string|null $date + * + * @return \Carbon\CarbonInterface + */ + protected function resolveCarbon($date = null) + { + return $this->getStartDate()->nowWithSameTz()->carbonize($date); + } + + /** + * Resolve passed arguments or DatePeriod to a CarbonPeriod object. + * + * @param mixed $period + * @param mixed ...$arguments + * + * @return static + */ + protected function resolveCarbonPeriod($period, ...$arguments) + { + if ($period instanceof self) { + return $period; + } + + return $period instanceof DatePeriod + ? static::instance($period) + : static::create($period, ...$arguments); + } + + private function orderCouple($first, $second): array + { + return $first > $second ? [$second, $first] : [$first, $second]; + } + + private function makeDateTime($value): ?DateTimeInterface + { + if ($value instanceof DateTimeInterface) { + return $value; + } + + if (\is_string($value)) { + $value = trim($value); + + if (!preg_match('/^P[\dT]/', $value) && + !preg_match('/^R\d/', $value) && + preg_match('/[a-z\d]/i', $value) + ) { + return Carbon::parse($value, $this->tzName); + } + } + + return null; + } + + private function isInfiniteDate($date): bool + { + return $date instanceof CarbonInterface && ($date->isEndOfTime() || $date->isStartOfTime()); + } + + private function rawDate($date): ?DateTimeInterface + { + if ($date === false || $date === null) { + return null; + } + + if ($date instanceof CarbonInterface) { + return $date->isMutable() + ? $date->toDateTime() + : $date->toDateTimeImmutable(); + } + + if (\in_array(\get_class($date), [DateTime::class, DateTimeImmutable::class], true)) { + return $date; + } + + $class = $date instanceof DateTime ? DateTime::class : DateTimeImmutable::class; + + return new $class($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); + } + + private static function setDefaultParameters(array &$parameters, array $defaults): void + { + foreach ($defaults as [$index, $name, $value]) { + if (!\array_key_exists($index, $parameters) && !\array_key_exists($name, $parameters)) { + $parameters[$index] = $value; + } + } + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php b/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php new file mode 100644 index 000000000..cda0733f5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/CarbonPeriodImmutable.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +class CarbonPeriodImmutable extends CarbonPeriod +{ + /** + * Date class of iteration items. + * + * @var string + */ + protected $dateClass = CarbonImmutable::class; + + /** + * Prepare the instance to be set (self if mutable to be mutated, + * copy if immutable to generate a new instance). + * + * @return static + */ + protected function copyIfImmutable() + { + return $this->constructed ? clone $this : $this; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php b/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php new file mode 100644 index 000000000..c81899f1e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php @@ -0,0 +1,320 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\InvalidCastException; +use Carbon\Exceptions\InvalidTimeZoneException; +use DateTimeInterface; +use DateTimeZone; +use Throwable; + +class CarbonTimeZone extends DateTimeZone +{ + public function __construct($timezone = null) + { + parent::__construct(static::getDateTimeZoneNameFromMixed($timezone)); + } + + protected static function parseNumericTimezone($timezone) + { + if ($timezone <= -100 || $timezone >= 100) { + throw new InvalidTimeZoneException('Absolute timezone offset cannot be greater than 100.'); + } + + return ($timezone >= 0 ? '+' : '').ltrim($timezone, '+').':00'; + } + + protected static function getDateTimeZoneNameFromMixed($timezone) + { + if ($timezone === null) { + return date_default_timezone_get(); + } + + if (\is_string($timezone)) { + $timezone = preg_replace('/^\s*([+-]\d+)(\d{2})\s*$/', '$1:$2', $timezone); + } + + if (is_numeric($timezone)) { + return static::parseNumericTimezone($timezone); + } + + return $timezone; + } + + protected static function getDateTimeZoneFromName(&$name) + { + return @timezone_open($name = (string) static::getDateTimeZoneNameFromMixed($name)); + } + + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DateTimeZone + */ + public function cast(string $className) + { + if (!method_exists($className, 'instance')) { + if (is_a($className, DateTimeZone::class, true)) { + return new $className($this->getName()); + } + + throw new InvalidCastException("$className has not the instance() method needed to cast the date."); + } + + return $className::instance($this); + } + + /** + * Create a CarbonTimeZone from mixed input. + * + * @param DateTimeZone|string|int|null $object original value to get CarbonTimeZone from it. + * @param DateTimeZone|string|int|null $objectDump dump of the object for error messages. + * + * @throws InvalidTimeZoneException + * + * @return false|static + */ + public static function instance($object = null, $objectDump = null) + { + $tz = $object; + + if ($tz instanceof static) { + return $tz; + } + + if ($tz === null) { + return new static(); + } + + if (!$tz instanceof DateTimeZone) { + $tz = static::getDateTimeZoneFromName($object); + } + + if ($tz !== false) { + return new static($tz->getName()); + } + + if (Carbon::isStrictModeEnabled()) { + throw new InvalidTimeZoneException('Unknown or bad timezone ('.($objectDump ?: $object).')'); + } + + return false; + } + + /** + * Returns abbreviated name of the current timezone according to DST setting. + * + * @param bool $dst + * + * @return string + */ + public function getAbbreviatedName($dst = false) + { + $name = $this->getName(); + + foreach ($this->listAbbreviations() as $abbreviation => $zones) { + foreach ($zones as $zone) { + if ($zone['timezone_id'] === $name && $zone['dst'] == $dst) { + return $abbreviation; + } + } + } + + return 'unknown'; + } + + /** + * @alias getAbbreviatedName + * + * Returns abbreviated name of the current timezone according to DST setting. + * + * @param bool $dst + * + * @return string + */ + public function getAbbr($dst = false) + { + return $this->getAbbreviatedName($dst); + } + + /** + * Get the offset as string "sHH:MM" (such as "+00:00" or "-12:30"). + * + * @param DateTimeInterface|null $date + * + * @return string + */ + public function toOffsetName(DateTimeInterface $date = null) + { + return static::getOffsetNameFromMinuteOffset( + $this->getOffset($date ?: Carbon::now($this)) / 60 + ); + } + + /** + * Returns a new CarbonTimeZone object using the offset string instead of region string. + * + * @param DateTimeInterface|null $date + * + * @return CarbonTimeZone + */ + public function toOffsetTimeZone(DateTimeInterface $date = null) + { + return new static($this->toOffsetName($date)); + } + + /** + * Returns the first region string (such as "America/Toronto") that matches the current timezone or + * false if no match is found. + * + * @see timezone_name_from_abbr native PHP function. + * + * @param DateTimeInterface|null $date + * @param int $isDst + * + * @return string|false + */ + public function toRegionName(DateTimeInterface $date = null, $isDst = 1) + { + $name = $this->getName(); + $firstChar = substr($name, 0, 1); + + if ($firstChar !== '+' && $firstChar !== '-') { + return $name; + } + + $date = $date ?: Carbon::now($this); + + // Integer construction no longer supported since PHP 8 + // @codeCoverageIgnoreStart + try { + $offset = @$this->getOffset($date) ?: 0; + } catch (Throwable $e) { + $offset = 0; + } + // @codeCoverageIgnoreEnd + + $name = @timezone_name_from_abbr('', $offset, $isDst); + + if ($name) { + return $name; + } + + foreach (timezone_identifiers_list() as $timezone) { + if (Carbon::instance($date)->tz($timezone)->getOffset() === $offset) { + return $timezone; + } + } + + return false; + } + + /** + * Returns a new CarbonTimeZone object using the region string instead of offset string. + * + * @param DateTimeInterface|null $date + * + * @return CarbonTimeZone|false + */ + public function toRegionTimeZone(DateTimeInterface $date = null) + { + $tz = $this->toRegionName($date); + + if ($tz !== false) { + return new static($tz); + } + + if (Carbon::isStrictModeEnabled()) { + throw new InvalidTimeZoneException('Unknown timezone for offset '.$this->getOffset($date ?: Carbon::now($this)).' seconds.'); + } + + return false; + } + + /** + * Cast to string (get timezone name). + * + * @return string + */ + public function __toString() + { + return $this->getName(); + } + + /** + * Return the type number: + * + * Type 1; A UTC offset, such as -0300 + * Type 2; A timezone abbreviation, such as GMT + * Type 3: A timezone identifier, such as Europe/London + */ + public function getType(): int + { + return preg_match('/"timezone_type";i:(\d)/', serialize($this), $match) ? (int) $match[1] : 3; + } + + /** + * Create a CarbonTimeZone from mixed input. + * + * @param DateTimeZone|string|int|null $object + * + * @return false|static + */ + public static function create($object = null) + { + return static::instance($object); + } + + /** + * Create a CarbonTimeZone from int/float hour offset. + * + * @param float $hourOffset number of hour of the timezone shift (can be decimal). + * + * @return false|static + */ + public static function createFromHourOffset(float $hourOffset) + { + return static::createFromMinuteOffset($hourOffset * Carbon::MINUTES_PER_HOUR); + } + + /** + * Create a CarbonTimeZone from int/float minute offset. + * + * @param float $minuteOffset number of total minutes of the timezone shift. + * + * @return false|static + */ + public static function createFromMinuteOffset(float $minuteOffset) + { + return static::instance(static::getOffsetNameFromMinuteOffset($minuteOffset)); + } + + /** + * Convert a total minutes offset into a standardized timezone offset string. + * + * @param float $minutes number of total minutes of the timezone shift. + * + * @return string + */ + public static function getOffsetNameFromMinuteOffset(float $minutes): string + { + $minutes = round($minutes); + $unsignedMinutes = abs($minutes); + + return ($minutes < 0 ? '-' : '+'). + str_pad((string) floor($unsignedMinutes / 60), 2, '0', STR_PAD_LEFT). + ':'. + str_pad((string) ($unsignedMinutes % 60), 2, '0', STR_PAD_LEFT); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php b/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php new file mode 100644 index 000000000..4f35d6c61 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Cli; + +class Invoker +{ + public const CLI_CLASS_NAME = 'Carbon\\Cli'; + + protected function runWithCli(string $className, array $parameters): bool + { + $cli = new $className(); + + return $cli(...$parameters); + } + + public function __invoke(...$parameters): bool + { + if (class_exists(self::CLI_CLASS_NAME)) { + return $this->runWithCli(self::CLI_CLASS_NAME, $parameters); + } + + $function = (($parameters[1] ?? '') === 'install' ? ($parameters[2] ?? null) : null) ?: 'shell_exec'; + $function('composer require carbon-cli/carbon-cli --no-interaction'); + + echo 'Installation succeeded.'; + + return true; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php new file mode 100644 index 000000000..ccc457fcd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +use Doctrine\DBAL\Platforms\AbstractPlatform; + +interface CarbonDoctrineType +{ + public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform); + + public function convertToPHPValue($value, AbstractPlatform $platform); + + public function convertToDatabaseValue($value, AbstractPlatform $platform); +} diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php new file mode 100644 index 000000000..bf476a77e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +use Doctrine\DBAL\Platforms\AbstractPlatform; + +class CarbonImmutableType extends DateTimeImmutableType implements CarbonDoctrineType +{ + /** + * {@inheritdoc} + * + * @return string + */ + public function getName() + { + return 'carbon_immutable'; + } + + /** + * {@inheritdoc} + * + * @return bool + */ + public function requiresSQLCommentHint(AbstractPlatform $platform) + { + return true; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php new file mode 100644 index 000000000..9289d84d3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +use Doctrine\DBAL\Platforms\AbstractPlatform; + +class CarbonType extends DateTimeType implements CarbonDoctrineType +{ + /** + * {@inheritdoc} + * + * @return string + */ + public function getName() + { + return 'carbon'; + } + + /** + * {@inheritdoc} + * + * @return bool + */ + public function requiresSQLCommentHint(AbstractPlatform $platform) + { + return true; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php new file mode 100644 index 000000000..ecfe17e79 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php @@ -0,0 +1,123 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +use Carbon\Carbon; +use Carbon\CarbonInterface; +use DateTimeInterface; +use Doctrine\DBAL\Platforms\AbstractPlatform; +use Doctrine\DBAL\Types\ConversionException; +use Exception; + +/** + * @template T of CarbonInterface + */ +trait CarbonTypeConverter +{ + /** + * @return class-string + */ + protected function getCarbonClassName(): string + { + return Carbon::class; + } + + /** + * @return string + */ + public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform) + { + $precision = $fieldDeclaration['precision'] ?: 10; + + if ($fieldDeclaration['secondPrecision'] ?? false) { + $precision = 0; + } + + if ($precision === 10) { + $precision = DateTimeDefaultPrecision::get(); + } + + $type = parent::getSQLDeclaration($fieldDeclaration, $platform); + + if (!$precision) { + return $type; + } + + if (str_contains($type, '(')) { + return preg_replace('/\(\d+\)/', "($precision)", $type); + } + + [$before, $after] = explode(' ', "$type "); + + return trim("$before($precision) $after"); + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @return T|null + */ + public function convertToPHPValue($value, AbstractPlatform $platform) + { + $class = $this->getCarbonClassName(); + + if ($value === null || is_a($value, $class)) { + return $value; + } + + if ($value instanceof DateTimeInterface) { + return $class::instance($value); + } + + $date = null; + $error = null; + + try { + $date = $class::parse($value); + } catch (Exception $exception) { + $error = $exception; + } + + if (!$date) { + throw ConversionException::conversionFailedFormat( + $value, + $this->getName(), + 'Y-m-d H:i:s.u or any format supported by '.$class.'::parse()', + $error + ); + } + + return $date; + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @return string|null + */ + public function convertToDatabaseValue($value, AbstractPlatform $platform) + { + if ($value === null) { + return $value; + } + + if ($value instanceof DateTimeInterface) { + return $value->format('Y-m-d H:i:s.u'); + } + + throw ConversionException::conversionFailedInvalidType( + $value, + $this->getName(), + ['null', 'DateTime', 'Carbon'] + ); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php new file mode 100644 index 000000000..642fd4135 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Doctrine; + +class DateTimeDefaultPrecision +{ + private static $precision = 6; + + /** + * Change the default Doctrine datetime and datetime_immutable precision. + * + * @param int $precision + */ + public static function set(int $precision): void + { + self::$precision = $precision; + } + + /** + * Get the default Doctrine datetime and datetime_immutable precision. + * + * @return int + */ + public static function get(): int + { + return self::$precision; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php new file mode 100644 index 000000000..499271031 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php @@ -0,0 +1,24 @@ + */ + use CarbonTypeConverter; + + /** + * @return class-string + */ + protected function getCarbonClassName(): string + { + return CarbonImmutable::class; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php b/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php new file mode 100644 index 000000000..29b0bb955 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php @@ -0,0 +1,16 @@ + */ + use CarbonTypeConverter; +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php new file mode 100644 index 000000000..3ca8837d1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use Throwable; + +class BadComparisonUnitException extends UnitException +{ + /** + * The unit. + * + * @var string + */ + protected $unit; + + /** + * Constructor. + * + * @param string $unit + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($unit, $code = 0, Throwable $previous = null) + { + $this->unit = $unit; + + parent::__construct("Bad comparison unit: '$unit'", $code, $previous); + } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php new file mode 100644 index 000000000..2e222e54e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use BadMethodCallException as BaseBadMethodCallException; +use Throwable; + +class BadFluentConstructorException extends BaseBadMethodCallException implements BadMethodCallException +{ + /** + * The method. + * + * @var string + */ + protected $method; + + /** + * Constructor. + * + * @param string $method + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($method, $code = 0, Throwable $previous = null) + { + $this->method = $method; + + parent::__construct(sprintf("Unknown fluent constructor '%s'.", $method), $code, $previous); + } + + /** + * Get the method. + * + * @return string + */ + public function getMethod(): string + { + return $this->method; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php new file mode 100644 index 000000000..4ceaa2ef0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use BadMethodCallException as BaseBadMethodCallException; +use Throwable; + +class BadFluentSetterException extends BaseBadMethodCallException implements BadMethodCallException +{ + /** + * The setter. + * + * @var string + */ + protected $setter; + + /** + * Constructor. + * + * @param string $setter + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($setter, $code = 0, Throwable $previous = null) + { + $this->setter = $setter; + + parent::__construct(sprintf("Unknown fluent setter '%s'", $setter), $code, $previous); + } + + /** + * Get the setter. + * + * @return string + */ + public function getSetter(): string + { + return $this->setter; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php new file mode 100644 index 000000000..108206d3e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +interface BadMethodCallException extends Exception +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php new file mode 100644 index 000000000..e10492693 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/EndLessPeriodException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use RuntimeException as BaseRuntimeException; + +final class EndLessPeriodException extends BaseRuntimeException implements RuntimeException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php new file mode 100644 index 000000000..8ad747e75 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +interface Exception +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php new file mode 100644 index 000000000..db334c6c9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use RuntimeException as BaseRuntimeException; +use Throwable; + +class ImmutableException extends BaseRuntimeException implements RuntimeException +{ + /** + * The value. + * + * @var string + */ + protected $value; + + /** + * Constructor. + * + * @param string $value the immutable type/value + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($value, $code = 0, Throwable $previous = null) + { + $this->value = $value; + parent::__construct("$value is immutable.", $code, $previous); + } + + /** + * Get the value. + * + * @return string + */ + public function getValue(): string + { + return $this->value; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php new file mode 100644 index 000000000..5b013cd50 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +interface InvalidArgumentException extends Exception +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php new file mode 100644 index 000000000..a421401f6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidCastException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php new file mode 100644 index 000000000..c9ecb6b06 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php @@ -0,0 +1,67 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class InvalidDateException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The invalid field. + * + * @var string + */ + private $field; + + /** + * The invalid value. + * + * @var mixed + */ + private $value; + + /** + * Constructor. + * + * @param string $field + * @param mixed $value + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($field, $value, $code = 0, Throwable $previous = null) + { + $this->field = $field; + $this->value = $value; + parent::__construct($field.' : '.$value.' is not a valid value.', $code, $previous); + } + + /** + * Get the invalid field. + * + * @return string + */ + public function getField() + { + return $this->field; + } + + /** + * Get the invalid value. + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php new file mode 100644 index 000000000..92d55fe35 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidFormatException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php new file mode 100644 index 000000000..69cf4128a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidIntervalException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php new file mode 100644 index 000000000..9bd84a96d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidPeriodDateException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php new file mode 100644 index 000000000..cf2c90240 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidPeriodParameterException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php new file mode 100644 index 000000000..f72595583 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidTimeZoneException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php new file mode 100644 index 000000000..2c8ec9ba0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class InvalidTypeException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php new file mode 100644 index 000000000..7a87632c4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use Carbon\CarbonInterface; +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class NotACarbonClassException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The className. + * + * @var string + */ + protected $className; + + /** + * Constructor. + * + * @param string $className + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($className, $code = 0, Throwable $previous = null) + { + $this->className = $className; + + parent::__construct(sprintf('Given class does not implement %s: %s', CarbonInterface::class, $className), $code, $previous); + } + + /** + * Get the className. + * + * @return string + */ + public function getClassName(): string + { + return $this->className; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php new file mode 100644 index 000000000..4edd7a484 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class NotAPeriodException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php new file mode 100644 index 000000000..f2c546843 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class NotLocaleAwareException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * Constructor. + * + * @param mixed $object + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($object, $code = 0, Throwable $previous = null) + { + $dump = \is_object($object) ? \get_class($object) : \gettype($object); + + parent::__construct("$dump does neither implements Symfony\Contracts\Translation\LocaleAwareInterface nor getLocale() method.", $code, $previous); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php new file mode 100644 index 000000000..2c586d0b7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php @@ -0,0 +1,101 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +// This will extends OutOfRangeException instead of InvalidArgumentException since 3.0.0 +// use OutOfRangeException as BaseOutOfRangeException; + +class OutOfRangeException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The unit or name of the value. + * + * @var string + */ + private $unit; + + /** + * The range minimum. + * + * @var mixed + */ + private $min; + + /** + * The range maximum. + * + * @var mixed + */ + private $max; + + /** + * The invalid value. + * + * @var mixed + */ + private $value; + + /** + * Constructor. + * + * @param string $unit + * @param mixed $min + * @param mixed $max + * @param mixed $value + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($unit, $min, $max, $value, $code = 0, Throwable $previous = null) + { + $this->unit = $unit; + $this->min = $min; + $this->max = $max; + $this->value = $value; + + parent::__construct("$unit must be between $min and $max, $value given", $code, $previous); + } + + /** + * @return mixed + */ + public function getMax() + { + return $this->max; + } + + /** + * @return mixed + */ + public function getMin() + { + return $this->min; + } + + /** + * @return mixed + */ + public function getUnit() + { + return $this->unit; + } + + /** + * @return mixed + */ + public function getValue() + { + return $this->value; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php new file mode 100644 index 000000000..5416fd149 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php @@ -0,0 +1,88 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class ParseErrorException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The expected. + * + * @var string + */ + protected $expected; + + /** + * The actual. + * + * @var string + */ + protected $actual; + + /** + * The help message. + * + * @var string + */ + protected $help; + + /** + * Constructor. + * + * @param string $expected + * @param string $actual + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($expected, $actual, $help = '', $code = 0, Throwable $previous = null) + { + $this->expected = $expected; + $this->actual = $actual; + $this->help = $help; + + $actual = $actual === '' ? 'data is missing' : "get '$actual'"; + + parent::__construct(trim("Format expected $expected but $actual\n$help"), $code, $previous); + } + + /** + * Get the expected. + * + * @return string + */ + public function getExpected(): string + { + return $this->expected; + } + + /** + * Get the actual. + * + * @return string + */ + public function getActual(): string + { + return $this->actual; + } + + /** + * Get the help message. + * + * @return string + */ + public function getHelp(): string + { + return $this->help; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php new file mode 100644 index 000000000..ad196f79d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +interface RuntimeException extends Exception +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php new file mode 100644 index 000000000..ee99953b4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; + +class UnitException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php new file mode 100644 index 000000000..0e7230563 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use Throwable; + +class UnitNotConfiguredException extends UnitException +{ + /** + * The unit. + * + * @var string + */ + protected $unit; + + /** + * Constructor. + * + * @param string $unit + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($unit, $code = 0, Throwable $previous = null) + { + $this->unit = $unit; + + parent::__construct("Unit $unit have no configuration to get total from other units.", $code, $previous); + } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php new file mode 100644 index 000000000..5c504975a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class UnknownGetterException extends BaseInvalidArgumentException implements InvalidArgumentException +{ + /** + * The getter. + * + * @var string + */ + protected $getter; + + /** + * Constructor. + * + * @param string $getter getter name + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($getter, $code = 0, Throwable $previous = null) + { + $this->getter = $getter; + + parent::__construct("Unknown getter '$getter'", $code, $previous); + } + + /** + * Get the getter. + * + * @return string + */ + public function getGetter(): string + { + return $this->getter; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php new file mode 100644 index 000000000..75273a706 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use BadMethodCallException as BaseBadMethodCallException; +use Throwable; + +class UnknownMethodException extends BaseBadMethodCallException implements BadMethodCallException +{ + /** + * The method. + * + * @var string + */ + protected $method; + + /** + * Constructor. + * + * @param string $method + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($method, $code = 0, Throwable $previous = null) + { + $this->method = $method; + + parent::__construct("Method $method does not exist.", $code, $previous); + } + + /** + * Get the method. + * + * @return string + */ + public function getMethod(): string + { + return $this->method; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php new file mode 100644 index 000000000..a795f5d72 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use InvalidArgumentException as BaseInvalidArgumentException; +use Throwable; + +class UnknownSetterException extends BaseInvalidArgumentException implements BadMethodCallException +{ + /** + * The setter. + * + * @var string + */ + protected $setter; + + /** + * Constructor. + * + * @param string $setter setter name + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($setter, $code = 0, Throwable $previous = null) + { + $this->setter = $setter; + + parent::__construct("Unknown setter '$setter'", $code, $previous); + } + + /** + * Get the setter. + * + * @return string + */ + public function getSetter(): string + { + return $this->setter; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php new file mode 100644 index 000000000..ecd7f7a59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use Throwable; + +class UnknownUnitException extends UnitException +{ + /** + * The unit. + * + * @var string + */ + protected $unit; + + /** + * Constructor. + * + * @param string $unit + * @param int $code + * @param Throwable|null $previous + */ + public function __construct($unit, $code = 0, Throwable $previous = null) + { + $this->unit = $unit; + + parent::__construct("Unknown unit '$unit'.", $code, $previous); + } + + /** + * Get the unit. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php new file mode 100644 index 000000000..1654ab11b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Exceptions; + +use RuntimeException as BaseRuntimeException; + +class UnreachableException extends BaseRuntimeException implements RuntimeException +{ + // +} diff --git a/vendor/nesbot/carbon/src/Carbon/Factory.php b/vendor/nesbot/carbon/src/Carbon/Factory.php new file mode 100644 index 000000000..d497535f7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Factory.php @@ -0,0 +1,326 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Closure; +use DateTimeInterface; +use ReflectionMethod; + +/** + * A factory to generate Carbon instances with common settings. + * + * + * + * @method bool canBeCreatedFromFormat($date, $format) Checks if the (date)time string is in a given format and valid to create a + * new instance. + * @method Carbon|false create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null) Create a new Carbon instance from a specific date and time. + * If any of $year, $month or $day are set to null their now() values will + * be used. + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * @method Carbon createFromDate($year = null, $month = null, $day = null, $tz = null) Create a Carbon instance from just a date. The time portion is set to now. + * @method Carbon|false createFromFormat($format, $time, $tz = null) Create a Carbon instance from a specific format. + * @method Carbon|false createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null) Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()). + * @method Carbon|false createFromLocaleFormat($format, $locale, $time, $tz = null) Create a Carbon instance from a specific format and a string in a given language. + * @method Carbon|false createFromLocaleIsoFormat($format, $locale, $time, $tz = null) Create a Carbon instance from a specific ISO format and a string in a given language. + * @method Carbon createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null) Create a Carbon instance from just a time. The date portion is set to today. + * @method Carbon createFromTimeString($time, $tz = null) Create a Carbon instance from a time string. The date portion is set to today. + * @method Carbon createFromTimestamp($timestamp, $tz = null) Create a Carbon instance from a timestamp and set the timezone (use default one if not specified). + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method Carbon createFromTimestampMs($timestamp, $tz = null) Create a Carbon instance from a timestamp in milliseconds. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method Carbon createFromTimestampMsUTC($timestamp) Create a Carbon instance from a timestamp in milliseconds. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method Carbon createFromTimestampUTC($timestamp) Create a Carbon instance from an timestamp keeping the timezone to UTC. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method Carbon createMidnightDate($year = null, $month = null, $day = null, $tz = null) Create a Carbon instance from just a date. The time portion is set to midnight. + * @method Carbon|false createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) Create a new safe Carbon instance from a specific date and time. + * If any of $year, $month or $day are set to null their now() values will + * be used. + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * If one of the set values is not valid, an InvalidDateException + * will be thrown. + * @method CarbonInterface createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null) Create a new Carbon instance from a specific date and time using strict validation. + * @method Carbon disableHumanDiffOption($humanDiffOption) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method Carbon enableHumanDiffOption($humanDiffOption) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method mixed executeWithLocale($locale, $func) Set the current locale to the given, execute the passed function, reset the locale to previous one, + * then return the result of the closure (or null if the closure was void). + * @method Carbon fromSerialized($value) Create an instance from a serialized string. + * @method void genericMacro($macro, $priority = 0) Register a custom macro. + * @method array getAvailableLocales() Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * @method Language[] getAvailableLocalesInfo() Returns list of Language object for each available locale. This object allow you to get the ISO name, native + * name, region and variant of the locale. + * @method array getDays() Get the days of the week + * @method string|null getFallbackLocale() Get the fallback locale. + * @method array getFormatsToIsoReplacements() List of replacements from date() format to isoFormat(). + * @method int getHumanDiffOptions() Return default humanDiff() options (merged flags as integer). + * @method array getIsoUnits() Returns list of locale units for ISO formatting. + * @method array getLastErrors() {@inheritdoc} + * @method string getLocale() Get the current translator locale. + * @method callable|null getMacro($name) Get the raw callable macro registered globally for a given name. + * @method int getMidDayAt() get midday/noon hour + * @method Closure|Carbon getTestNow() Get the Carbon instance (real or mock) to be returned when a "now" + * instance is created. + * @method string getTimeFormatByPrecision($unitPrecision) Return a format from H:i to H:i:s.u according to given unit precision. + * @method string getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null) Returns raw translation message for a given key. + * @method \Symfony\Component\Translation\TranslatorInterface getTranslator() Get the default translator instance in use. + * @method int getWeekEndsAt() Get the last day of week + * @method int getWeekStartsAt() Get the first day of week + * @method array getWeekendDays() Get weekend days + * @method bool hasFormat($date, $format) Checks if the (date)time string is in a given format. + * @method bool hasFormatWithModifiers($date, $format) Checks if the (date)time string is in a given format. + * @method bool hasMacro($name) Checks if macro is registered globally. + * @method bool hasRelativeKeywords($time) Determine if a time string will produce a relative date. + * @method bool hasTestNow() Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * @method Carbon instance($date) Create a Carbon instance from a DateTime one. + * @method bool isImmutable() Returns true if the current class/instance is immutable. + * @method bool isModifiableUnit($unit) Returns true if a property can be changed via setter. + * @method bool isMutable() Returns true if the current class/instance is mutable. + * @method bool isStrictModeEnabled() Returns true if the strict mode is globally in use, false else. + * (It can be overridden in specific instances.) + * @method bool localeHasDiffOneDayWords($locale) Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow). + * Support is considered enabled if the 3 words are translated in the given locale. + * @method bool localeHasDiffSyntax($locale) Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * @method bool localeHasDiffTwoDayWords($locale) Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow). + * Support is considered enabled if the 2 words are translated in the given locale. + * @method bool localeHasPeriodSyntax($locale) Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * @method bool localeHasShortUnits($locale) Returns true if the given locale is internally supported and has short-units support. + * Support is considered enabled if either year, day or hour has a short variant translated. + * @method void macro($name, $macro) Register a custom macro. + * @method Carbon|null make($var) Make a Carbon instance from given variable if possible. + * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * @method Carbon maxValue() Create a Carbon instance for the greatest supported date. + * @method Carbon minValue() Create a Carbon instance for the lowest supported date. + * @method void mixin($mixin) Mix another object into the class. + * @method Carbon now($tz = null) Get a Carbon instance for the current date and time. + * @method Carbon parse($time = null, $tz = null) Create a carbon instance from a string. + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * @method Carbon parseFromLocale($time, $locale = null, $tz = null) Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). + * @method string pluralUnit(string $unit) Returns standardized plural of a given singular/plural unit name (in English). + * @method Carbon|false rawCreateFromFormat($format, $time, $tz = null) Create a Carbon instance from a specific format. + * @method Carbon rawParse($time = null, $tz = null) Create a carbon instance from a string. + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * @method Carbon resetMacros() Remove all macros and generic macros. + * @method void resetMonthsOverflow() @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method void resetToStringFormat() Reset the format used to the default when type juggling a Carbon instance to a string + * @method void resetYearsOverflow() @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method void serializeUsing($callback) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather transform Carbon object before the serialization. + * JSON serialize all Carbon instances using the given callback. + * @method Carbon setFallbackLocale($locale) Set the fallback locale. + * @method Carbon setHumanDiffOptions($humanDiffOptions) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method bool setLocale($locale) Set the current translator locale and indicate if the source locale file exists. + * Pass 'auto' as locale to use closest language from the current LC_TIME locale. + * @method void setMidDayAt($hour) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider mid-day is always 12pm, then if you need to test if it's an other + * hour, test it explicitly: + * $date->format('G') == 13 + * or to set explicitly to a given hour: + * $date->setTime(13, 0, 0, 0) + * Set midday/noon hour + * @method Carbon setTestNow($testNow = null) Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * Only the moment is mocked with setTestNow(), the timezone will still be the one passed + * as parameter of date_default_timezone_get() as a fallback (see setTestNowAndTimezone()). + * To clear the test instance call this method using the default + * parameter of null. + * /!\ Use this method for unit tests only. + * @method Carbon setTestNowAndTimezone($testNow = null, $tz = null) Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * It will also align default timezone (e.g. call date_default_timezone_set()) with + * the second argument or if null, with the timezone of the given date object. + * To clear the test instance call this method using the default + * parameter of null. + * /!\ Use this method for unit tests only. + * @method void setToStringFormat($format) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being cast to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump another string + * format. + * Set the default format used when type juggling a Carbon instance to a string. + * @method void setTranslator(TranslatorInterface $translator) Set the default translator instance to use. + * @method Carbon setUtf8($utf8) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use UTF-8 language packages on every machine. + * Set if UTF8 will be used for localized date/time. + * @method void setWeekEndsAt($day) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek + * or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the + * start of week according to current locale selected and implicitly the end of week. + * Set the last day of week + * @method void setWeekStartsAt($day) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the + * 'first_day_of_week' locale setting to change the start of week according to current locale + * selected and implicitly the end of week. + * Set the first day of week + * @method void setWeekendDays($days) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider week-end is always saturday and sunday, and if you have some custom + * week-end days to handle, give to those days an other name and create a macro for them: + * ``` + * Carbon::macro('isDayOff', function ($date) { + * return $date->isSunday() || $date->isMonday(); + * }); + * Carbon::macro('isNotDayOff', function ($date) { + * return !$date->isDayOff(); + * }); + * if ($someDate->isDayOff()) ... + * if ($someDate->isNotDayOff()) ... + * // Add 5 not-off days + * $count = 5; + * while ($someDate->isDayOff() || ($count-- > 0)) { + * $someDate->addDay(); + * } + * ``` + * Set weekend days + * @method bool shouldOverflowMonths() Get the month overflow global behavior (can be overridden in specific instances). + * @method bool shouldOverflowYears() Get the month overflow global behavior (can be overridden in specific instances). + * @method string singularUnit(string $unit) Returns standardized singular of a given singular/plural unit name (in English). + * @method Carbon today($tz = null) Create a Carbon instance for today. + * @method Carbon tomorrow($tz = null) Create a Carbon instance for tomorrow. + * @method string translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL) Translate a time string from a locale to an other. + * @method string translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null) Translate using translation string or callback available. + * @method void useMonthsOverflow($monthsOverflow = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method Carbon useStrictMode($strictModeEnabled = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method void useYearsOverflow($yearsOverflow = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method mixed withTestNow($testNow, $callback) Temporarily sets a static date to be used within the callback. + * Using setTestNow to set the date, executing the callback, then + * clearing the test instance. + * /!\ Use this method for unit tests only. + * @method Carbon yesterday($tz = null) Create a Carbon instance for yesterday. + * + * + */ +class Factory +{ + protected $className = Carbon::class; + + protected $settings = []; + + public function __construct(array $settings = [], ?string $className = null) + { + if ($className) { + $this->className = $className; + } + + $this->settings = $settings; + } + + public function getClassName() + { + return $this->className; + } + + public function setClassName(string $className) + { + $this->className = $className; + + return $this; + } + + public function className(string $className = null) + { + return $className === null ? $this->getClassName() : $this->setClassName($className); + } + + public function getSettings() + { + return $this->settings; + } + + public function setSettings(array $settings) + { + $this->settings = $settings; + + return $this; + } + + public function settings(array $settings = null) + { + return $settings === null ? $this->getSettings() : $this->setSettings($settings); + } + + public function mergeSettings(array $settings) + { + $this->settings = array_merge($this->settings, $settings); + + return $this; + } + + public function __call($name, $arguments) + { + $method = new ReflectionMethod($this->className, $name); + $settings = $this->settings; + + if ($settings && isset($settings['timezone'])) { + $tzParameters = array_filter($method->getParameters(), function ($parameter) { + return \in_array($parameter->getName(), ['tz', 'timezone'], true); + }); + + if (isset($arguments[0]) && \in_array($name, ['instance', 'make', 'create', 'parse'], true)) { + if ($arguments[0] instanceof DateTimeInterface) { + $settings['innerTimezone'] = $settings['timezone']; + } elseif (\is_string($arguments[0]) && date_parse($arguments[0])['is_localtime']) { + unset($settings['timezone'], $settings['innerTimezone']); + } + } elseif (\count($tzParameters)) { + array_splice($arguments, key($tzParameters), 0, [$settings['timezone']]); + unset($settings['timezone']); + } + } + + $result = $this->className::$name(...$arguments); + + return $result instanceof CarbonInterface && !empty($settings) + ? $result->settings($settings) + : $result; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php b/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php new file mode 100644 index 000000000..715f5e786 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php @@ -0,0 +1,243 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Closure; + +/** + * A factory to generate CarbonImmutable instances with common settings. + * + * + * + * @method bool canBeCreatedFromFormat($date, $format) Checks if the (date)time string is in a given format and valid to create a + * new instance. + * @method CarbonImmutable|false create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null) Create a new Carbon instance from a specific date and time. + * If any of $year, $month or $day are set to null their now() values will + * be used. + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * @method CarbonImmutable createFromDate($year = null, $month = null, $day = null, $tz = null) Create a Carbon instance from just a date. The time portion is set to now. + * @method CarbonImmutable|false createFromFormat($format, $time, $tz = null) Create a Carbon instance from a specific format. + * @method CarbonImmutable|false createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null) Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()). + * @method CarbonImmutable|false createFromLocaleFormat($format, $locale, $time, $tz = null) Create a Carbon instance from a specific format and a string in a given language. + * @method CarbonImmutable|false createFromLocaleIsoFormat($format, $locale, $time, $tz = null) Create a Carbon instance from a specific ISO format and a string in a given language. + * @method CarbonImmutable createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null) Create a Carbon instance from just a time. The date portion is set to today. + * @method CarbonImmutable createFromTimeString($time, $tz = null) Create a Carbon instance from a time string. The date portion is set to today. + * @method CarbonImmutable createFromTimestamp($timestamp, $tz = null) Create a Carbon instance from a timestamp and set the timezone (use default one if not specified). + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method CarbonImmutable createFromTimestampMs($timestamp, $tz = null) Create a Carbon instance from a timestamp in milliseconds. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method CarbonImmutable createFromTimestampMsUTC($timestamp) Create a Carbon instance from a timestamp in milliseconds. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method CarbonImmutable createFromTimestampUTC($timestamp) Create a Carbon instance from an timestamp keeping the timezone to UTC. + * Timestamp input can be given as int, float or a string containing one or more numbers. + * @method CarbonImmutable createMidnightDate($year = null, $month = null, $day = null, $tz = null) Create a Carbon instance from just a date. The time portion is set to midnight. + * @method CarbonImmutable|false createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) Create a new safe Carbon instance from a specific date and time. + * If any of $year, $month or $day are set to null their now() values will + * be used. + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * If $hour is not null then the default values for $minute and $second + * will be 0. + * If one of the set values is not valid, an InvalidDateException + * will be thrown. + * @method CarbonInterface createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null) Create a new Carbon instance from a specific date and time using strict validation. + * @method CarbonImmutable disableHumanDiffOption($humanDiffOption) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method CarbonImmutable enableHumanDiffOption($humanDiffOption) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method mixed executeWithLocale($locale, $func) Set the current locale to the given, execute the passed function, reset the locale to previous one, + * then return the result of the closure (or null if the closure was void). + * @method CarbonImmutable fromSerialized($value) Create an instance from a serialized string. + * @method void genericMacro($macro, $priority = 0) Register a custom macro. + * @method array getAvailableLocales() Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * @method Language[] getAvailableLocalesInfo() Returns list of Language object for each available locale. This object allow you to get the ISO name, native + * name, region and variant of the locale. + * @method array getDays() Get the days of the week + * @method string|null getFallbackLocale() Get the fallback locale. + * @method array getFormatsToIsoReplacements() List of replacements from date() format to isoFormat(). + * @method int getHumanDiffOptions() Return default humanDiff() options (merged flags as integer). + * @method array getIsoUnits() Returns list of locale units for ISO formatting. + * @method array getLastErrors() {@inheritdoc} + * @method string getLocale() Get the current translator locale. + * @method callable|null getMacro($name) Get the raw callable macro registered globally for a given name. + * @method int getMidDayAt() get midday/noon hour + * @method Closure|CarbonImmutable getTestNow() Get the Carbon instance (real or mock) to be returned when a "now" + * instance is created. + * @method string getTimeFormatByPrecision($unitPrecision) Return a format from H:i to H:i:s.u according to given unit precision. + * @method string getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null) Returns raw translation message for a given key. + * @method \Symfony\Component\Translation\TranslatorInterface getTranslator() Get the default translator instance in use. + * @method int getWeekEndsAt() Get the last day of week + * @method int getWeekStartsAt() Get the first day of week + * @method array getWeekendDays() Get weekend days + * @method bool hasFormat($date, $format) Checks if the (date)time string is in a given format. + * @method bool hasFormatWithModifiers($date, $format) Checks if the (date)time string is in a given format. + * @method bool hasMacro($name) Checks if macro is registered globally. + * @method bool hasRelativeKeywords($time) Determine if a time string will produce a relative date. + * @method bool hasTestNow() Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * @method CarbonImmutable instance($date) Create a Carbon instance from a DateTime one. + * @method bool isImmutable() Returns true if the current class/instance is immutable. + * @method bool isModifiableUnit($unit) Returns true if a property can be changed via setter. + * @method bool isMutable() Returns true if the current class/instance is mutable. + * @method bool isStrictModeEnabled() Returns true if the strict mode is globally in use, false else. + * (It can be overridden in specific instances.) + * @method bool localeHasDiffOneDayWords($locale) Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow). + * Support is considered enabled if the 3 words are translated in the given locale. + * @method bool localeHasDiffSyntax($locale) Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * @method bool localeHasDiffTwoDayWords($locale) Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow). + * Support is considered enabled if the 2 words are translated in the given locale. + * @method bool localeHasPeriodSyntax($locale) Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * @method bool localeHasShortUnits($locale) Returns true if the given locale is internally supported and has short-units support. + * Support is considered enabled if either year, day or hour has a short variant translated. + * @method void macro($name, $macro) Register a custom macro. + * @method CarbonImmutable|null make($var) Make a Carbon instance from given variable if possible. + * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * @method CarbonImmutable maxValue() Create a Carbon instance for the greatest supported date. + * @method CarbonImmutable minValue() Create a Carbon instance for the lowest supported date. + * @method void mixin($mixin) Mix another object into the class. + * @method CarbonImmutable now($tz = null) Get a Carbon instance for the current date and time. + * @method CarbonImmutable parse($time = null, $tz = null) Create a carbon instance from a string. + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * @method CarbonImmutable parseFromLocale($time, $locale = null, $tz = null) Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). + * @method string pluralUnit(string $unit) Returns standardized plural of a given singular/plural unit name (in English). + * @method CarbonImmutable|false rawCreateFromFormat($format, $time, $tz = null) Create a Carbon instance from a specific format. + * @method CarbonImmutable rawParse($time = null, $tz = null) Create a carbon instance from a string. + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * @method CarbonImmutable resetMacros() Remove all macros and generic macros. + * @method void resetMonthsOverflow() @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method void resetToStringFormat() Reset the format used to the default when type juggling a Carbon instance to a string + * @method void resetYearsOverflow() @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method void serializeUsing($callback) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather transform Carbon object before the serialization. + * JSON serialize all Carbon instances using the given callback. + * @method CarbonImmutable setFallbackLocale($locale) Set the fallback locale. + * @method CarbonImmutable setHumanDiffOptions($humanDiffOptions) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method bool setLocale($locale) Set the current translator locale and indicate if the source locale file exists. + * Pass 'auto' as locale to use closest language from the current LC_TIME locale. + * @method void setMidDayAt($hour) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider mid-day is always 12pm, then if you need to test if it's an other + * hour, test it explicitly: + * $date->format('G') == 13 + * or to set explicitly to a given hour: + * $date->setTime(13, 0, 0, 0) + * Set midday/noon hour + * @method CarbonImmutable setTestNow($testNow = null) Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * Only the moment is mocked with setTestNow(), the timezone will still be the one passed + * as parameter of date_default_timezone_get() as a fallback (see setTestNowAndTimezone()). + * To clear the test instance call this method using the default + * parameter of null. + * /!\ Use this method for unit tests only. + * @method CarbonImmutable setTestNowAndTimezone($testNow = null, $tz = null) Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * It will also align default timezone (e.g. call date_default_timezone_set()) with + * the second argument or if null, with the timezone of the given date object. + * To clear the test instance call this method using the default + * parameter of null. + * /!\ Use this method for unit tests only. + * @method void setToStringFormat($format) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being cast to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump another string + * format. + * Set the default format used when type juggling a Carbon instance to a string. + * @method void setTranslator(TranslatorInterface $translator) Set the default translator instance to use. + * @method CarbonImmutable setUtf8($utf8) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use UTF-8 language packages on every machine. + * Set if UTF8 will be used for localized date/time. + * @method void setWeekEndsAt($day) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek + * or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the + * start of week according to current locale selected and implicitly the end of week. + * Set the last day of week + * @method void setWeekStartsAt($day) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the + * 'first_day_of_week' locale setting to change the start of week according to current locale + * selected and implicitly the end of week. + * Set the first day of week + * @method void setWeekendDays($days) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider week-end is always saturday and sunday, and if you have some custom + * week-end days to handle, give to those days an other name and create a macro for them: + * ``` + * Carbon::macro('isDayOff', function ($date) { + * return $date->isSunday() || $date->isMonday(); + * }); + * Carbon::macro('isNotDayOff', function ($date) { + * return !$date->isDayOff(); + * }); + * if ($someDate->isDayOff()) ... + * if ($someDate->isNotDayOff()) ... + * // Add 5 not-off days + * $count = 5; + * while ($someDate->isDayOff() || ($count-- > 0)) { + * $someDate->addDay(); + * } + * ``` + * Set weekend days + * @method bool shouldOverflowMonths() Get the month overflow global behavior (can be overridden in specific instances). + * @method bool shouldOverflowYears() Get the month overflow global behavior (can be overridden in specific instances). + * @method string singularUnit(string $unit) Returns standardized singular of a given singular/plural unit name (in English). + * @method CarbonImmutable today($tz = null) Create a Carbon instance for today. + * @method CarbonImmutable tomorrow($tz = null) Create a Carbon instance for tomorrow. + * @method string translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL) Translate a time string from a locale to an other. + * @method string translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null) Translate using translation string or callback available. + * @method void useMonthsOverflow($monthsOverflow = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method CarbonImmutable useStrictMode($strictModeEnabled = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @method void useYearsOverflow($yearsOverflow = true) @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @method mixed withTestNow($testNow, $callback) Temporarily sets a static date to be used within the callback. + * Using setTestNow to set the date, executing the callback, then + * clearing the test instance. + * /!\ Use this method for unit tests only. + * @method CarbonImmutable yesterday($tz = null) Create a Carbon instance for yesterday. + * + * + */ +class FactoryImmutable extends Factory +{ + protected $className = CarbonImmutable::class; +} diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa.php new file mode 100644 index 000000000..f3431e4bc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/aa_DJ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php new file mode 100644 index 000000000..c6e23c0df --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'], + 'months_short' => ['qun', 'nah', 'cig', 'agd', 'cax', 'qas', 'qad', 'leq', 'way', 'dit', 'xim', 'kax'], + 'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'], + 'weekdays_short' => ['aca', 'etl', 'tal', 'arb', 'kam', 'gum', 'sab'], + 'weekdays_min' => ['aca', 'etl', 'tal', 'arb', 'kam', 'gum', 'sab'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['saaku', 'carra'], + + 'year' => ':count gaqambo', // less reliable + 'y' => ':count gaqambo', // less reliable + 'a_year' => ':count gaqambo', // less reliable + + 'month' => ':count àlsa', + 'm' => ':count àlsa', + 'a_month' => ':count àlsa', + + 'day' => ':count saaku', // less reliable + 'd' => ':count saaku', // less reliable + 'a_day' => ':count saaku', // less reliable + + 'hour' => ':count ayti', // less reliable + 'h' => ':count ayti', // less reliable + 'a_hour' => ':count ayti', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php new file mode 100644 index 000000000..f8f395b76 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Qunxa Garablu', 'Naharsi Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'], + 'months_short' => ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], + 'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'], + 'weekdays_short' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'], + 'weekdays_min' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['saaku', 'carra'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php new file mode 100644 index 000000000..646122533 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Qunxa Garablu', 'Naharsi Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'], + 'months_short' => ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], + 'weekdays' => ['Naba Sambat', 'Sani', 'Salus', 'Rabuq', 'Camus', 'Jumqata', 'Qunxa Sambat'], + 'weekdays_short' => ['Nab', 'San', 'Sal', 'Rab', 'Cam', 'Jum', 'Qun'], + 'weekdays_min' => ['Nab', 'San', 'Sal', 'Rab', 'Cam', 'Jum', 'Qun'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['saaku', 'carra'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php new file mode 100644 index 000000000..e55e591b5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'], + 'months_short' => ['Qun', 'Kud', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], + 'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'], + 'weekdays_short' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'], + 'weekdays_min' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['saaku', 'carra'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/af.php b/vendor/nesbot/carbon/src/Carbon/Lang/af.php new file mode 100644 index 000000000..27771d7aa --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/af.php @@ -0,0 +1,79 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - JD Isaacks + * - Pierre du Plessis + */ +return [ + 'year' => ':count jaar', + 'a_year' => '\'n jaar|:count jaar', + 'y' => ':count j.', + 'month' => ':count maand|:count maande', + 'a_month' => '\'n maand|:count maande', + 'm' => ':count maa.', + 'week' => ':count week|:count weke', + 'a_week' => '\'n week|:count weke', + 'w' => ':count w.', + 'day' => ':count dag|:count dae', + 'a_day' => '\'n dag|:count dae', + 'd' => ':count d.', + 'hour' => ':count uur', + 'a_hour' => '\'n uur|:count uur', + 'h' => ':count u.', + 'minute' => ':count minuut|:count minute', + 'a_minute' => '\'n minuut|:count minute', + 'min' => ':count min.', + 'second' => ':count sekond|:count sekondes', + 'a_second' => '\'n paar sekondes|:count sekondes', + 's' => ':count s.', + 'ago' => ':time gelede', + 'from_now' => 'oor :time', + 'after' => ':time na', + 'before' => ':time voor', + 'diff_now' => 'Nou', + 'diff_today' => 'Vandag', + 'diff_today_regexp' => 'Vandag(?:\\s+om)?', + 'diff_yesterday' => 'Gister', + 'diff_yesterday_regexp' => 'Gister(?:\\s+om)?', + 'diff_tomorrow' => 'Môre', + 'diff_tomorrow_regexp' => 'Môre(?:\\s+om)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Vandag om] LT', + 'nextDay' => '[Môre om] LT', + 'nextWeek' => 'dddd [om] LT', + 'lastDay' => '[Gister om] LT', + 'lastWeek' => '[Laas] dddd [om] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de'); + }, + 'meridiem' => ['VM', 'NM'], + 'months' => ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'], + 'months_short' => ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + 'weekdays' => ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], + 'weekdays_short' => ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'], + 'weekdays_min' => ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' en '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/af_NA.php b/vendor/nesbot/carbon/src/Carbon/Lang/af_NA.php new file mode 100644 index 000000000..f2fcf0532 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/af_NA.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/af.php', [ + 'meridiem' => ['v', 'n'], + 'weekdays' => ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], + 'weekdays_short' => ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'], + 'weekdays_min' => ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'], + 'months' => ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'], + 'months_short' => ['Jan.', 'Feb.', 'Mrt.', 'Apr.', 'Mei', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Des.'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'DD MMM YYYY', + 'LLL' => 'DD MMMM YYYY HH:mm', + 'LLLL' => 'dddd, DD MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/af_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/af_ZA.php new file mode 100644 index 000000000..27896bd0f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/af_ZA.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/af.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/agq.php b/vendor/nesbot/carbon/src/Carbon/Lang/agq.php new file mode 100644 index 000000000..70114649b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/agq.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['a.g', 'a.k'], + 'weekdays' => ['tsuʔntsɨ', 'tsuʔukpà', 'tsuʔughɔe', 'tsuʔutɔ̀mlò', 'tsuʔumè', 'tsuʔughɨ̂m', 'tsuʔndzɨkɔʔɔ'], + 'weekdays_short' => ['nts', 'kpa', 'ghɔ', 'tɔm', 'ume', 'ghɨ', 'dzk'], + 'weekdays_min' => ['nts', 'kpa', 'ghɔ', 'tɔm', 'ume', 'ghɨ', 'dzk'], + 'months' => ['ndzɔ̀ŋɔ̀nùm', 'ndzɔ̀ŋɔ̀kƗ̀zùʔ', 'ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà', 'ndzɔ̀ŋɔ̀tǎafʉ̄ghā', 'ndzɔ̀ŋèsèe', 'ndzɔ̀ŋɔ̀nzùghò', 'ndzɔ̀ŋɔ̀dùmlo', 'ndzɔ̀ŋɔ̀kwîfɔ̀e', 'ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù', 'ndzɔ̀ŋɔ̀ghǔuwelɔ̀m', 'ndzɔ̀ŋɔ̀chwaʔàkaa wo', 'ndzɔ̀ŋèfwòo'], + 'months_short' => ['nùm', 'kɨz', 'tɨd', 'taa', 'see', 'nzu', 'dum', 'fɔe', 'dzu', 'lɔm', 'kaa', 'fwo'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/agr.php b/vendor/nesbot/carbon/src/Carbon/Lang/agr.php new file mode 100644 index 000000000..8f036ae8c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/agr.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/agr_PE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php b/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php new file mode 100644 index 000000000..54a326af0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - somosazucar.org libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Petsatin', 'Kupitin', 'Uyaitin', 'Tayutin', 'Kegketin', 'Tegmatin', 'Kuntutin', 'Yagkujutin', 'Daiktatin', 'Ipamtatin', 'Shinutin', 'Sakamtin'], + 'months_short' => ['Pet', 'Kup', 'Uya', 'Tay', 'Keg', 'Teg', 'Kun', 'Yag', 'Dait', 'Ipam', 'Shin', 'Sak'], + 'weekdays' => ['Tuntuamtin', 'Achutin', 'Kugkuktin', 'Saketin', 'Shimpitin', 'Imaptin', 'Bataetin'], + 'weekdays_short' => ['Tun', 'Ach', 'Kug', 'Sak', 'Shim', 'Im', 'Bat'], + 'weekdays_min' => ['Tun', 'Ach', 'Kug', 'Sak', 'Shim', 'Im', 'Bat'], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 7, + 'meridiem' => ['VM', 'NM'], + + 'year' => ':count yaya', // less reliable + 'y' => ':count yaya', // less reliable + 'a_year' => ':count yaya', // less reliable + + 'month' => ':count nantu', // less reliable + 'm' => ':count nantu', // less reliable + 'a_month' => ':count nantu', // less reliable + + 'day' => ':count nayaim', // less reliable + 'd' => ':count nayaim', // less reliable + 'a_day' => ':count nayaim', // less reliable + + 'hour' => ':count kuwiš', // less reliable + 'h' => ':count kuwiš', // less reliable + 'a_hour' => ':count kuwiš', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ak.php b/vendor/nesbot/carbon/src/Carbon/Lang/ak.php new file mode 100644 index 000000000..5a64be373 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ak.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ak_GH.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php b/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php new file mode 100644 index 000000000..138194675 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY/MM/DD', + ], + 'months' => ['Sanda-Ɔpɛpɔn', 'Kwakwar-Ɔgyefuo', 'Ebɔw-Ɔbenem', 'Ebɔbira-Oforisuo', 'Esusow Aketseaba-Kɔtɔnimba', 'Obirade-Ayɛwohomumu', 'Ayɛwoho-Kitawonsa', 'Difuu-Ɔsandaa', 'Fankwa-Ɛbɔ', 'Ɔbɛsɛ-Ahinime', 'Ɔberɛfɛw-Obubuo', 'Mumu-Ɔpɛnimba'], + 'months_short' => ['S-Ɔ', 'K-Ɔ', 'E-Ɔ', 'E-O', 'E-K', 'O-A', 'A-K', 'D-Ɔ', 'F-Ɛ', 'Ɔ-A', 'Ɔ-O', 'M-Ɔ'], + 'weekdays' => ['Kwesida', 'Dwowda', 'Benada', 'Wukuda', 'Yawda', 'Fida', 'Memeneda'], + 'weekdays_short' => ['Kwe', 'Dwo', 'Ben', 'Wuk', 'Yaw', 'Fia', 'Mem'], + 'weekdays_min' => ['Kwe', 'Dwo', 'Ben', 'Wuk', 'Yaw', 'Fia', 'Mem'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['AN', 'EW'], + + 'year' => ':count afe', + 'y' => ':count afe', + 'a_year' => ':count afe', + + 'month' => ':count bosume', + 'm' => ':count bosume', + 'a_month' => ':count bosume', + + 'day' => ':count ɛda', + 'd' => ':count ɛda', + 'a_day' => ':count ɛda', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/am.php b/vendor/nesbot/carbon/src/Carbon/Lang/am.php new file mode 100644 index 000000000..63bf72d2d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/am.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/am_ET.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php new file mode 100644 index 000000000..ece80621a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕሪል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክቶበር', 'ኖቬምበር', 'ዲሴምበር'], + 'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'], + 'weekdays' => ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], + 'weekdays_short' => ['እሑድ', 'ሰኞ ', 'ማክሰ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], + 'weekdays_min' => ['እሑድ', 'ሰኞ ', 'ማክሰ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ጡዋት', 'ከሰዓት'], + + 'year' => ':count አመት', + 'y' => ':count አመት', + 'a_year' => ':count አመት', + + 'month' => ':count ወር', + 'm' => ':count ወር', + 'a_month' => ':count ወር', + + 'week' => ':count ሳምንት', + 'w' => ':count ሳምንት', + 'a_week' => ':count ሳምንት', + + 'day' => ':count ቀን', + 'd' => ':count ቀን', + 'a_day' => ':count ቀን', + + 'hour' => ':count ሰዓት', + 'h' => ':count ሰዓት', + 'a_hour' => ':count ሰዓት', + + 'minute' => ':count ደቂቃ', + 'min' => ':count ደቂቃ', + 'a_minute' => ':count ደቂቃ', + + 'second' => ':count ሴኮንድ', + 's' => ':count ሴኮንድ', + 'a_second' => ':count ሴኮንድ', + + 'ago' => 'ከ:time በፊት', + 'from_now' => 'በ:time ውስጥ', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/an.php b/vendor/nesbot/carbon/src/Carbon/Lang/an.php new file mode 100644 index 000000000..565abf269 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/an.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/an_ES.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php new file mode 100644 index 000000000..faf8ae072 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Softaragones Jordi Mallach Pérez, Juan Pablo Martínez bug-glibc-locales@gnu.org, softaragones@softaragones.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['chinero', 'febrero', 'marzo', 'abril', 'mayo', 'chunyo', 'chuliol', 'agosto', 'setiembre', 'octubre', 'noviembre', 'aviento'], + 'months_short' => ['chi', 'feb', 'mar', 'abr', 'may', 'chn', 'chl', 'ago', 'set', 'oct', 'nov', 'avi'], + 'weekdays' => ['domingo', 'luns', 'martes', 'mierques', 'chueves', 'viernes', 'sabado'], + 'weekdays_short' => ['dom', 'lun', 'mar', 'mie', 'chu', 'vie', 'sab'], + 'weekdays_min' => ['dom', 'lun', 'mar', 'mie', 'chu', 'vie', 'sab'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count año', + 'y' => ':count año', + 'a_year' => ':count año', + + 'month' => ':count mes', + 'm' => ':count mes', + 'a_month' => ':count mes', + + 'week' => ':count semana', + 'w' => ':count semana', + 'a_week' => ':count semana', + + 'day' => ':count día', + 'd' => ':count día', + 'a_day' => ':count día', + + 'hour' => ':count reloch', // less reliable + 'h' => ':count reloch', // less reliable + 'a_hour' => ':count reloch', // less reliable + + 'minute' => ':count minuto', + 'min' => ':count minuto', + 'a_minute' => ':count minuto', + + 'second' => ':count segundo', + 's' => ':count segundo', + 'a_second' => ':count segundo', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/anp.php b/vendor/nesbot/carbon/src/Carbon/Lang/anp.php new file mode 100644 index 000000000..b56c67bbb --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/anp.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/anp_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php new file mode 100644 index 000000000..11069be3f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bhashaghar@googlegroups.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर"'], + 'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर'], + 'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'बृहस्पतिवार', 'शुक्रवार', 'शनिवार'], + 'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'], + 'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar.php new file mode 100644 index 000000000..5f73f6395 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar.php @@ -0,0 +1,93 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Atef Ben Ali (atefBB) + * - Ibrahim AshShohail + * - MLTDev + * - Mohamed Sabil (mohamedsabil83) + * - Yazan Alnugnugh (yazan-alnugnugh) + */ +$months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', +]; + +return [ + 'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'ago' => 'منذ :time', + 'from_now' => ':time من الآن', + 'after' => 'بعد :time', + 'before' => 'قبل :time', + 'diff_now' => 'الآن', + 'diff_today' => 'اليوم', + 'diff_today_regexp' => 'اليوم(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_yesterday' => 'أمس', + 'diff_yesterday_regexp' => 'أمس(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_tomorrow' => 'غداً', + 'diff_tomorrow_regexp' => 'غدًا(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_before_yesterday' => 'قبل الأمس', + 'diff_after_tomorrow' => 'بعد غد', + 'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']), + 'period_interval' => 'كل :interval', + 'period_start_date' => 'من :date', + 'period_end_date' => 'إلى :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + 'weekdays_min' => ['ح', 'اث', 'ثل', 'أر', 'خم', 'ج', 'س'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اليوم عند الساعة] LT', + 'nextDay' => '[غدًا عند الساعة] LT', + 'nextWeek' => 'dddd [عند الساعة] LT', + 'lastDay' => '[أمس عند الساعة] LT', + 'lastWeek' => 'dddd [عند الساعة] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ص', 'م'], + 'weekend' => [5, 6], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php new file mode 100644 index 000000000..35a22b1d2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت '], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php new file mode 100644 index 000000000..35180965a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_DJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_DJ.php new file mode 100644 index 000000000..e790b99e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_DJ.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ar.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_DZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_DZ.php new file mode 100644 index 000000000..aea4eeecc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_DZ.php @@ -0,0 +1,92 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Authors: + * - Josh Soref + * - Noureddine LOUAHEDJ + * - JD Isaacks + * - Atef Ben Ali (atefBB) + * - Mohamed Sabil (mohamedsabil83) + */ +$months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', +]; + +return [ + 'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'ago' => 'منذ :time', + 'from_now' => 'في :time', + 'after' => 'بعد :time', + 'before' => 'قبل :time', + 'diff_now' => 'الآن', + 'diff_today' => 'اليوم', + 'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_yesterday' => 'أمس', + 'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_tomorrow' => 'غداً', + 'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_before_yesterday' => 'قبل الأمس', + 'diff_after_tomorrow' => 'بعد غد', + 'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']), + 'period_interval' => 'كل :interval', + 'period_start_date' => 'من :date', + 'period_end_date' => 'إلى :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + 'weekdays_min' => ['أح', 'إث', 'ثلا', 'أر', 'خم', 'جم', 'سب'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 4, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اليوم على الساعة] LT', + 'nextDay' => '[غدا على الساعة] LT', + 'nextWeek' => 'dddd [على الساعة] LT', + 'lastDay' => '[أمس على الساعة] LT', + 'lastWeek' => 'dddd [على الساعة] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ص', 'م'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php new file mode 100644 index 000000000..35180965a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_EH.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_EH.php new file mode 100644 index 000000000..e790b99e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_EH.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ar.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_ER.php new file mode 100644 index 000000000..e790b99e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_ER.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ar.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_IL.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IL.php new file mode 100644 index 000000000..e790b99e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IL.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ar.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php new file mode 100644 index 000000000..5fecf70f6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php new file mode 100644 index 000000000..2d4200845 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + 'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php new file mode 100644 index 000000000..2d4200845 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + 'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_KM.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_KM.php new file mode 100644 index 000000000..e790b99e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_KM.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ar.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php new file mode 100644 index 000000000..b3fb1cfec --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Authors: + * - Josh Soref + * - Nusret Parlak + * - JD Isaacks + * - Atef Ben Ali (atefBB) + * - Mohamed Sabil (mohamedsabil83) + * - Abdullah-Alhariri + */ +$months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'ماي', + 'يونيو', + 'يوليوز', + 'غشت', + 'شتنبر', + 'أكتوبر', + 'نونبر', + 'دجنبر', +]; + +return [ + 'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'ago' => 'منذ :time', + 'from_now' => 'في :time', + 'after' => 'بعد :time', + 'before' => 'قبل :time', + 'diff_now' => 'الآن', + 'diff_today' => 'اليوم', + 'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_yesterday' => 'أمس', + 'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_tomorrow' => 'غداً', + 'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_before_yesterday' => 'قبل الأمس', + 'diff_after_tomorrow' => 'بعد غد', + 'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']), + 'period_interval' => 'كل :interval', + 'period_start_date' => 'من :date', + 'period_end_date' => 'إلى :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اليوم على الساعة] LT', + 'nextDay' => '[غدا على الساعة] LT', + 'nextWeek' => 'dddd [على الساعة] LT', + 'lastDay' => '[أمس على الساعة] LT', + 'lastWeek' => 'dddd [على الساعة] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ص', 'م'], + 'weekend' => [5, 6], + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php new file mode 100644 index 000000000..2792745c6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + 'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_LY.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_LY.php new file mode 100644 index 000000000..1f0af49d6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_LY.php @@ -0,0 +1,92 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Atef Ben Ali (atefBB) + * - Ibrahim AshShohail + * - MLTDev + */ + +$months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', +]; + +return [ + 'year' => implode('|', [':count سنة', 'سنة', 'سنتين', ':count سنوات', ':count سنة']), + 'a_year' => implode('|', [':count سنة', 'سنة', 'سنتين', ':count سنوات', ':count سنة']), + 'month' => implode('|', [':count شهر', 'شهر', 'شهرين', ':count أشهر', ':count شهر']), + 'a_month' => implode('|', [':count شهر', 'شهر', 'شهرين', ':count أشهر', ':count شهر']), + 'week' => implode('|', [':count أسبوع', 'أسبوع', 'أسبوعين', ':count أسابيع', ':count أسبوع']), + 'a_week' => implode('|', [':count أسبوع', 'أسبوع', 'أسبوعين', ':count أسابيع', ':count أسبوع']), + 'day' => implode('|', [':count يوم', 'يوم', 'يومين', ':count أيام', ':count يوم']), + 'a_day' => implode('|', [':count يوم', 'يوم', 'يومين', ':count أيام', ':count يوم']), + 'hour' => implode('|', [':count ساعة', 'ساعة', 'ساعتين', ':count ساعات', ':count ساعة']), + 'a_hour' => implode('|', [':count ساعة', 'ساعة', 'ساعتين', ':count ساعات', ':count ساعة']), + 'minute' => implode('|', [':count دقيقة', 'دقيقة', 'دقيقتين', ':count دقائق', ':count دقيقة']), + 'a_minute' => implode('|', [':count دقيقة', 'دقيقة', 'دقيقتين', ':count دقائق', ':count دقيقة']), + 'second' => implode('|', [':count ثانية', 'ثانية', 'ثانيتين', ':count ثواني', ':count ثانية']), + 'a_second' => implode('|', [':count ثانية', 'ثانية', 'ثانيتين', ':count ثواني', ':count ثانية']), + 'ago' => 'منذ :time', + 'from_now' => ':time من الآن', + 'after' => 'بعد :time', + 'before' => 'قبل :time', + 'diff_now' => 'الآن', + 'diff_today' => 'اليوم', + 'diff_today_regexp' => 'اليوم(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_yesterday' => 'أمس', + 'diff_yesterday_regexp' => 'أمس(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_tomorrow' => 'غداً', + 'diff_tomorrow_regexp' => 'غدًا(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_before_yesterday' => 'قبل الأمس', + 'diff_after_tomorrow' => 'بعد غد', + 'period_recurrences' => implode('|', ['مرة', 'مرة', ':count مرتين', ':count مرات', ':count مرة']), + 'period_interval' => 'كل :interval', + 'period_start_date' => 'من :date', + 'period_end_date' => 'إلى :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + 'weekdays_min' => ['ح', 'اث', 'ثل', 'أر', 'خم', 'ج', 'س'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اليوم عند الساعة] LT', + 'nextDay' => '[غدًا عند الساعة] LT', + 'nextWeek' => 'dddd [عند الساعة] LT', + 'lastDay' => '[أمس عند الساعة] LT', + 'lastWeek' => 'dddd [عند الساعة] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ص', 'م'], + 'weekend' => [5, 6], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_MA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_MA.php new file mode 100644 index 000000000..047ae05af --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_MA.php @@ -0,0 +1,92 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Authors: + * - Josh Soref + * - JD Isaacks + * - Atef Ben Ali (atefBB) + * - Mohamed Sabil (mohamedsabil83) + */ +$months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'ماي', + 'يونيو', + 'يوليوز', + 'غشت', + 'شتنبر', + 'أكتوبر', + 'نونبر', + 'دجنبر', +]; + +return [ + 'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'ago' => 'منذ :time', + 'from_now' => 'في :time', + 'after' => 'بعد :time', + 'before' => 'قبل :time', + 'diff_now' => 'الآن', + 'diff_today' => 'اليوم', + 'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_yesterday' => 'أمس', + 'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_tomorrow' => 'غداً', + 'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_before_yesterday' => 'قبل الأمس', + 'diff_after_tomorrow' => 'بعد غد', + 'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']), + 'period_interval' => 'كل :interval', + 'period_start_date' => 'من :date', + 'period_end_date' => 'إلى :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اليوم على الساعة] LT', + 'nextDay' => '[غدا على الساعة] LT', + 'nextWeek' => 'dddd [على الساعة] LT', + 'lastDay' => '[أمس على الساعة] LT', + 'lastWeek' => 'dddd [على الساعة] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ص', 'م'], + 'weekend' => [5, 6], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_MR.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_MR.php new file mode 100644 index 000000000..e790b99e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_MR.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ar.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php new file mode 100644 index 000000000..35180965a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php new file mode 100644 index 000000000..503c60d2e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php new file mode 100644 index 000000000..35180965a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php new file mode 100644 index 000000000..550b0c73a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php @@ -0,0 +1,94 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Authors: + * - Josh Soref + * - JD Isaacks + * - Atef Ben Ali (atefBB) + * - Mohamed Sabil (mohamedsabil83) + * - Abdullah-Alhariri + */ +$months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', +]; + +return [ + 'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'ago' => 'منذ :time', + 'from_now' => 'في :time', + 'after' => 'بعد :time', + 'before' => 'قبل :time', + 'diff_now' => 'الآن', + 'diff_today' => 'اليوم', + 'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_yesterday' => 'أمس', + 'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_tomorrow' => 'غداً', + 'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_before_yesterday' => 'قبل الأمس', + 'diff_after_tomorrow' => 'بعد غد', + 'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']), + 'period_interval' => 'كل :interval', + 'period_start_date' => 'من :date', + 'period_end_date' => 'إلى :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اليوم على الساعة] LT', + 'nextDay' => '[غدا على الساعة] LT', + 'nextWeek' => 'dddd [على الساعة] LT', + 'lastDay' => '[أمس على الساعة] LT', + 'lastWeek' => 'dddd [على الساعة] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ص', 'م'], + 'weekend' => [5, 6], + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php new file mode 100644 index 000000000..35180965a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SO.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SO.php new file mode 100644 index 000000000..e790b99e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SO.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ar.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php new file mode 100644 index 000000000..32f32825c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php new file mode 100644 index 000000000..2d4200845 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + 'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_Shakl.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_Shakl.php new file mode 100644 index 000000000..c2d4b43d0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_Shakl.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Abdellah Chadidi + * - Atef Ben Ali (atefBB) + * - Mohamed Sabil (mohamedsabil83) + */ +// Same for long and short +$months = [ + // @TODO add shakl to months + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', +]; + +return [ + 'year' => implode('|', ['{0}:count سَنَة', '{1}سَنَة', '{2}سَنَتَيْن', ']2,11[:count سَنَوَات', ']10,Inf[:count سَنَة']), + 'a_year' => implode('|', ['{0}:count سَنَة', '{1}سَنَة', '{2}سَنَتَيْن', ']2,11[:count سَنَوَات', ']10,Inf[:count سَنَة']), + 'month' => implode('|', ['{0}:count شَهْرَ', '{1}شَهْرَ', '{2}شَهْرَيْن', ']2,11[:count أَشْهُر', ']10,Inf[:count شَهْرَ']), + 'a_month' => implode('|', ['{0}:count شَهْرَ', '{1}شَهْرَ', '{2}شَهْرَيْن', ']2,11[:count أَشْهُر', ']10,Inf[:count شَهْرَ']), + 'week' => implode('|', ['{0}:count أُسْبُوع', '{1}أُسْبُوع', '{2}أُسْبُوعَيْن', ']2,11[:count أَسَابِيع', ']10,Inf[:count أُسْبُوع']), + 'a_week' => implode('|', ['{0}:count أُسْبُوع', '{1}أُسْبُوع', '{2}أُسْبُوعَيْن', ']2,11[:count أَسَابِيع', ']10,Inf[:count أُسْبُوع']), + 'day' => implode('|', ['{0}:count يَوْم', '{1}يَوْم', '{2}يَوْمَيْن', ']2,11[:count أَيَّام', ']10,Inf[:count يَوْم']), + 'a_day' => implode('|', ['{0}:count يَوْم', '{1}يَوْم', '{2}يَوْمَيْن', ']2,11[:count أَيَّام', ']10,Inf[:count يَوْم']), + 'hour' => implode('|', ['{0}:count سَاعَة', '{1}سَاعَة', '{2}سَاعَتَيْن', ']2,11[:count سَاعَات', ']10,Inf[:count سَاعَة']), + 'a_hour' => implode('|', ['{0}:count سَاعَة', '{1}سَاعَة', '{2}سَاعَتَيْن', ']2,11[:count سَاعَات', ']10,Inf[:count سَاعَة']), + 'minute' => implode('|', ['{0}:count دَقِيقَة', '{1}دَقِيقَة', '{2}دَقِيقَتَيْن', ']2,11[:count دَقَائِق', ']10,Inf[:count دَقِيقَة']), + 'a_minute' => implode('|', ['{0}:count دَقِيقَة', '{1}دَقِيقَة', '{2}دَقِيقَتَيْن', ']2,11[:count دَقَائِق', ']10,Inf[:count دَقِيقَة']), + 'second' => implode('|', ['{0}:count ثَانِيَة', '{1}ثَانِيَة', '{2}ثَانِيَتَيْن', ']2,11[:count ثَوَان', ']10,Inf[:count ثَانِيَة']), + 'a_second' => implode('|', ['{0}:count ثَانِيَة', '{1}ثَانِيَة', '{2}ثَانِيَتَيْن', ']2,11[:count ثَوَان', ']10,Inf[:count ثَانِيَة']), + 'ago' => 'مُنْذُ :time', + 'from_now' => 'مِنَ الْآن :time', + 'after' => 'بَعْدَ :time', + 'before' => 'قَبْلَ :time', + + // @TODO add shakl to translations below + 'diff_now' => 'الآن', + 'diff_today' => 'اليوم', + 'diff_today_regexp' => 'اليوم(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_yesterday' => 'أمس', + 'diff_yesterday_regexp' => 'أمس(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_tomorrow' => 'غداً', + 'diff_tomorrow_regexp' => 'غدًا(?:\\s+عند)?(?:\\s+الساعة)?', + 'diff_before_yesterday' => 'قبل الأمس', + 'diff_after_tomorrow' => 'بعد غد', + 'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']), + 'period_interval' => 'كل :interval', + 'period_start_date' => 'من :date', + 'period_end_date' => 'إلى :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + 'weekdays_min' => ['ح', 'اث', 'ثل', 'أر', 'خم', 'ج', 'س'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اليوم عند الساعة] LT', + 'nextDay' => '[غدًا عند الساعة] LT', + 'nextWeek' => 'dddd [عند الساعة] LT', + 'lastDay' => '[أمس عند الساعة] LT', + 'lastWeek' => 'dddd [عند الساعة] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ص', 'م'], + 'weekend' => [5, 6], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_TD.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_TD.php new file mode 100644 index 000000000..e790b99e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_TD.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ar.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_TN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_TN.php new file mode 100644 index 000000000..f096678f4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_TN.php @@ -0,0 +1,91 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Authors: + * - JD Isaacks + * - Atef Ben Ali (atefBB) + * - Mohamed Sabil (mohamedsabil83) + */ +$months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', +]; + +return [ + 'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']), + 'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']), + 'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']), + 'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']), + 'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']), + 'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']), + 'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']), + 'ago' => 'منذ :time', + 'from_now' => 'في :time', + 'after' => 'بعد :time', + 'before' => 'قبل :time', + 'diff_now' => 'الآن', + 'diff_today' => 'اليوم', + 'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_yesterday' => 'أمس', + 'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_tomorrow' => 'غداً', + 'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?', + 'diff_before_yesterday' => 'قبل الأمس', + 'diff_after_tomorrow' => 'بعد غد', + 'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']), + 'period_interval' => 'كل :interval', + 'period_start_date' => 'من :date', + 'period_end_date' => 'إلى :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اليوم على الساعة] LT', + 'nextDay' => '[غدا على الساعة] LT', + 'nextWeek' => 'dddd [على الساعة] LT', + 'lastDay' => '[أمس على الساعة] LT', + 'lastWeek' => 'dddd [على الساعة] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ص', 'م'], + 'weekend' => [5, 6], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php new file mode 100644 index 000000000..169fe88a9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + * - Abdullah-Alhariri + */ +return array_replace_recursive(require __DIR__.'/ar.php', [ + 'formats' => [ + 'L' => 'DD MMM, YYYY', + ], + 'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'], + 'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰٤', '۰٥', '۰٦', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱٤', '۱٥', '۱٦', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲٤', '۲٥', '۲٦', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳٤', '۳٥', '۳٦', '۳۷', '۳۸', '۳۹', '٤۰', '٤۱', '٤۲', '٤۳', '٤٤', '٤٥', '٤٦', '٤۷', '٤۸', '٤۹', '٥۰', '٥۱', '٥۲', '٥۳', '٥٤', '٥٥', '٥٦', '٥۷', '٥۸', '٥۹', '٦۰', '٦۱', '٦۲', '٦۳', '٦٤', '٦٥', '٦٦', '٦۷', '٦۸', '٦۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷٤', '۷٥', '۷٦', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸٤', '۸٥', '۸٦', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹٤', '۹٥', '۹٦', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/as.php b/vendor/nesbot/carbon/src/Carbon/Lang/as.php new file mode 100644 index 000000000..04bc3dfd1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/as.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/as_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php new file mode 100644 index 000000000..5fbc3dba3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Amitakhya Phukan, Red Hat bug-glibc@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D-MM-YYYY', + ], + 'months' => ['জানুৱাৰী', 'ফেব্ৰুৱাৰী', 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', 'জুলাই', 'আগষ্ট', 'ছেপ্তেম্বৰ', 'অক্টোবৰ', 'নৱেম্বৰ', 'ডিচেম্বৰ'], + 'months_short' => ['জানু', 'ফেব্ৰু', 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', 'জুলাই', 'আগ', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'], + 'weekdays' => ['দেওবাৰ', 'সোমবাৰ', 'মঙ্গলবাৰ', 'বুধবাৰ', 'বৃহষ্পতিবাৰ', 'শুক্ৰবাৰ', 'শনিবাৰ'], + 'weekdays_short' => ['দেও', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'], + 'weekdays_min' => ['দেও', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['পূৰ্ব্বাহ্ন', 'অপৰাহ্ন'], + + 'year' => ':count বছৰ', + 'y' => ':count বছৰ', + 'a_year' => ':count বছৰ', + + 'month' => ':count মাহ', + 'm' => ':count মাহ', + 'a_month' => ':count মাহ', + + 'week' => ':count সপ্তাহ', + 'w' => ':count সপ্তাহ', + 'a_week' => ':count সপ্তাহ', + + 'day' => ':count বাৰ', + 'd' => ':count বাৰ', + 'a_day' => ':count বাৰ', + + 'hour' => ':count ঘণ্টা', + 'h' => ':count ঘণ্টা', + 'a_hour' => ':count ঘণ্টা', + + 'minute' => ':count মিনিট', + 'min' => ':count মিনিট', + 'a_minute' => ':count মিনিট', + + 'second' => ':count দ্বিতীয়', + 's' => ':count দ্বিতীয়', + 'a_second' => ':count দ্বিতীয়', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/asa.php b/vendor/nesbot/carbon/src/Carbon/Lang/asa.php new file mode 100644 index 000000000..03bb48391 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/asa.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['icheheavo', 'ichamthi'], + 'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Ijm', 'Jmo'], + 'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Ijm', 'Jmo'], + 'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Dec'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ast.php b/vendor/nesbot/carbon/src/Carbon/Lang/ast.php new file mode 100644 index 000000000..d9bdebe58 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ast.php @@ -0,0 +1,59 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Jordi Mallach jordi@gnu.org + * - Adolfo Jayme-Barrientos (fitojb) + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['de xineru', 'de febreru', 'de marzu', 'd’abril', 'de mayu', 'de xunu', 'de xunetu', 'd’agostu', 'de setiembre', 'd’ochobre', 'de payares', 'd’avientu'], + 'months_short' => ['xin', 'feb', 'mar', 'abr', 'may', 'xun', 'xnt', 'ago', 'set', 'och', 'pay', 'avi'], + 'weekdays' => ['domingu', 'llunes', 'martes', 'miércoles', 'xueves', 'vienres', 'sábadu'], + 'weekdays_short' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'], + 'weekdays_min' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'], + + 'year' => ':count añu|:count años', + 'y' => ':count añu|:count años', + 'a_year' => 'un añu|:count años', + + 'month' => ':count mes', + 'm' => ':count mes', + 'a_month' => 'un mes|:count mes', + + 'week' => ':count selmana|:count selmanes', + 'w' => ':count selmana|:count selmanes', + 'a_week' => 'una selmana|:count selmanes', + + 'day' => ':count día|:count díes', + 'd' => ':count día|:count díes', + 'a_day' => 'un día|:count díes', + + 'hour' => ':count hora|:count hores', + 'h' => ':count hora|:count hores', + 'a_hour' => 'una hora|:count hores', + + 'minute' => ':count minutu|:count minutos', + 'min' => ':count minutu|:count minutos', + 'a_minute' => 'un minutu|:count minutos', + + 'second' => ':count segundu|:count segundos', + 's' => ':count segundu|:count segundos', + 'a_second' => 'un segundu|:count segundos', + + 'ago' => 'hai :time', + 'from_now' => 'en :time', + 'after' => ':time dempués', + 'before' => ':time enantes', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php new file mode 100644 index 000000000..04d756219 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ast.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php b/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php new file mode 100644 index 000000000..d6a6f638a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ayc_PE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php new file mode 100644 index 000000000..ff18504f0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - runasimipi.org libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['inïru', 'phiwriru', 'marsu', 'awrila', 'mayu', 'junyu', 'julyu', 'awustu', 'sitimri', 'uktuwri', 'nuwimri', 'risimri'], + 'months_short' => ['ini', 'phi', 'mar', 'awr', 'may', 'jun', 'jul', 'awu', 'sit', 'ukt', 'nuw', 'ris'], + 'weekdays' => ['tuminku', 'lunisa', 'martisa', 'mirkulisa', 'juywisa', 'wirnisa', 'sawäru'], + 'weekdays_short' => ['tum', 'lun', 'mar', 'mir', 'juy', 'wir', 'saw'], + 'weekdays_min' => ['tum', 'lun', 'mar', 'mir', 'juy', 'wir', 'saw'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['VM', 'NM'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/az.php b/vendor/nesbot/carbon/src/Carbon/Lang/az.php new file mode 100644 index 000000000..1e92106df --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/az.php @@ -0,0 +1,128 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - Kunal Marwaha + * - François B + * - JD Isaacks + * - Orxan + * - Şəhriyar İmanov + * - Baran Şengül + */ +return [ + 'year' => ':count il', + 'a_year' => '{1}bir il|]1,Inf[:count il', + 'y' => ':count il', + 'month' => ':count ay', + 'a_month' => '{1}bir ay|]1,Inf[:count ay', + 'm' => ':count ay', + 'week' => ':count həftə', + 'a_week' => '{1}bir həftə|]1,Inf[:count həftə', + 'w' => ':count h.', + 'day' => ':count gün', + 'a_day' => '{1}bir gün|]1,Inf[:count gün', + 'd' => ':count g.', + 'hour' => ':count saat', + 'a_hour' => '{1}bir saat|]1,Inf[:count saat', + 'h' => ':count saat', + 'minute' => ':count d.', + 'a_minute' => '{1}bir dəqiqə|]1,Inf[:count dəqiqə', + 'min' => ':count dəqiqə', + 'second' => ':count san.', + 'a_second' => '{1}birneçə saniyə|]1,Inf[:count saniyə', + 's' => ':count saniyə', + 'ago' => ':time əvvəl', + 'from_now' => ':time sonra', + 'after' => ':time sonra', + 'before' => ':time əvvəl', + 'diff_now' => 'indi', + 'diff_today' => 'bugün', + 'diff_today_regexp' => 'bugün(?:\\s+saat)?', + 'diff_yesterday' => 'dünən', + 'diff_tomorrow' => 'sabah', + 'diff_tomorrow_regexp' => 'sabah(?:\\s+saat)?', + 'diff_before_yesterday' => 'srağagün', + 'diff_after_tomorrow' => 'birisi gün', + 'period_recurrences' => ':count dəfədən bir', + 'period_interval' => 'hər :interval', + 'period_start_date' => ':date tarixindən başlayaraq', + 'period_end_date' => ':date tarixinədək', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[bugün saat] LT', + 'nextDay' => '[sabah saat] LT', + 'nextWeek' => '[gələn həftə] dddd [saat] LT', + 'lastDay' => '[dünən] LT', + 'lastWeek' => '[keçən həftə] dddd [saat] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + if ($number === 0) { // special case for zero + return "$number-ıncı"; + } + + static $suffixes = [ + 1 => '-inci', + 5 => '-inci', + 8 => '-inci', + 70 => '-inci', + 80 => '-inci', + 2 => '-nci', + 7 => '-nci', + 20 => '-nci', + 50 => '-nci', + 3 => '-üncü', + 4 => '-üncü', + 100 => '-üncü', + 6 => '-ncı', + 9 => '-uncu', + 10 => '-uncu', + 30 => '-uncu', + 60 => '-ıncı', + 90 => '-ıncı', + ]; + + $lastDigit = $number % 10; + + return $number.($suffixes[$lastDigit] ?? $suffixes[$number % 100 - $lastDigit] ?? $suffixes[$number >= 100 ? 100 : -1] ?? ''); + }, + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'gecə'; + } + if ($hour < 12) { + return 'səhər'; + } + if ($hour < 17) { + return 'gündüz'; + } + + return 'axşam'; + }, + 'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'], + 'months_short' => ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', 'avq', 'sen', 'okt', 'noy', 'dek'], + 'months_standalone' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], + 'weekdays' => ['bazar', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'], + 'weekdays_short' => ['baz', 'bze', 'çax', 'çər', 'cax', 'cüm', 'şən'], + 'weekdays_min' => ['bz', 'be', 'ça', 'çə', 'ca', 'cü', 'şə'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' və '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php new file mode 100644 index 000000000..2acf881a9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Pablo Saratxaga pablo@mandrakesoft.com + */ +return array_replace_recursive(require __DIR__.'/az.php', [ + 'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'], + 'weekdays' => ['bazar günü', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'], + 'weekdays_short' => ['baz', 'ber', 'çax', 'çər', 'cax', 'cüm', 'şnb'], + 'weekdays_min' => ['baz', 'ber', 'çax', 'çər', 'cax', 'cüm', 'şnb'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/az_Cyrl.php b/vendor/nesbot/carbon/src/Carbon/Lang/az_Cyrl.php new file mode 100644 index 000000000..28fc62fe2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/az_Cyrl.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/az.php', [ + 'weekdays' => ['базар', 'базар ертәси', 'чәршәнбә ахшамы', 'чәршәнбә', 'ҹүмә ахшамы', 'ҹүмә', 'шәнбә'], + 'weekdays_short' => ['Б.', 'Б.Е.', 'Ч.А.', 'Ч.', 'Ҹ.А.', 'Ҹ.', 'Ш.'], + 'weekdays_min' => ['Б.', 'Б.Е.', 'Ч.А.', 'Ч.', 'Ҹ.А.', 'Ҹ.', 'Ш.'], + 'months' => ['јанвар', 'феврал', 'март', 'апрел', 'май', 'ијун', 'ијул', 'август', 'сентјабр', 'октјабр', 'нојабр', 'декабр'], + 'months_short' => ['јан', 'фев', 'мар', 'апр', 'май', 'ијн', 'ијл', 'авг', 'сен', 'окт', 'ној', 'дек'], + 'months_standalone' => ['Јанвар', 'Феврал', 'Март', 'Апрел', 'Май', 'Ијун', 'Ијул', 'Август', 'Сентјабр', 'Октјабр', 'Нојабр', 'Декабр'], + 'meridiem' => ['а', 'п'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php b/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php new file mode 100644 index 000000000..991a0efb2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Mousa Moradi mousamk@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'OY/OM/OD', + ], + 'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مئی', 'ژوئن', 'جولای', 'آقۇست', 'سپتامبر', 'اوْکتوْبر', 'نوْوامبر', 'دسامبر'], + 'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مئی', 'ژوئن', 'جولای', 'آقۇست', 'سپتامبر', 'اوْکتوْبر', 'نوْوامبر', 'دسامبر'], + 'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'], + 'weekdays_short' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'], + 'weekdays_min' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'], + 'first_day_of_week' => 6, + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰۴', '۰۵', '۰۶', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱۴', '۱۵', '۱۶', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲۴', '۲۵', '۲۶', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳۴', '۳۵', '۳۶', '۳۷', '۳۸', '۳۹', '۴۰', '۴۱', '۴۲', '۴۳', '۴۴', '۴۵', '۴۶', '۴۷', '۴۸', '۴۹', '۵۰', '۵۱', '۵۲', '۵۳', '۵۴', '۵۵', '۵۶', '۵۷', '۵۸', '۵۹', '۶۰', '۶۱', '۶۲', '۶۳', '۶۴', '۶۵', '۶۶', '۶۷', '۶۸', '۶۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷۴', '۷۵', '۷۶', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸۴', '۸۵', '۸۶', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹۴', '۹۵', '۹۶', '۹۷', '۹۸', '۹۹'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/az_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/az_Latn.php new file mode 100644 index 000000000..0be33914f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/az_Latn.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/az.php', [ + 'meridiem' => ['a', 'p'], + 'weekdays' => ['bazar', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'], + 'weekdays_short' => ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C.', 'Ş.'], + 'weekdays_min' => ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C.', 'Ş.'], + 'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'], + 'months_short' => ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', 'avq', 'sen', 'okt', 'noy', 'dek'], + 'months_standalone' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'D MMMM YYYY, dddd HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bas.php b/vendor/nesbot/carbon/src/Carbon/Lang/bas.php new file mode 100644 index 000000000..41bfa1d81 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bas.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['I bikɛ̂glà', 'I ɓugajɔp'], + 'weekdays' => ['ŋgwà nɔ̂y', 'ŋgwà njaŋgumba', 'ŋgwà ûm', 'ŋgwà ŋgê', 'ŋgwà mbɔk', 'ŋgwà kɔɔ', 'ŋgwà jôn'], + 'weekdays_short' => ['nɔy', 'nja', 'uum', 'ŋge', 'mbɔ', 'kɔɔ', 'jon'], + 'weekdays_min' => ['nɔy', 'nja', 'uum', 'ŋge', 'mbɔ', 'kɔɔ', 'jon'], + 'months' => ['Kɔndɔŋ', 'Màcɛ̂l', 'Màtùmb', 'Màtop', 'M̀puyɛ', 'Hìlòndɛ̀', 'Njèbà', 'Hìkaŋ', 'Dìpɔ̀s', 'Bìòôm', 'Màyɛsèp', 'Lìbuy li ńyèe'], + 'months_short' => ['kɔn', 'mac', 'mat', 'mto', 'mpu', 'hil', 'nje', 'hik', 'dip', 'bio', 'may', 'liɓ'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + 'second' => ':count móndî', // less reliable + 's' => ':count móndî', // less reliable + 'a_second' => ':count móndî', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/be.php b/vendor/nesbot/carbon/src/Carbon/Lang/be.php new file mode 100644 index 000000000..ee736365a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/be.php @@ -0,0 +1,172 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Carbon\CarbonInterface; +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); + }, 'be'); +} +// @codeCoverageIgnoreEnd + +/* + * Authors: + * - Josh Soref + * - SobakaSlava + * - François B + * - Serhan Apaydın + * - JD Isaacks + * - AbadonnaAbbys + * - Siomkin Alexander + */ +return [ + 'year' => ':count год|:count гады|:count гадоў', + 'a_year' => '{1}год|:count год|:count гады|:count гадоў', + 'y' => ':count год|:count гады|:count гадоў', + 'month' => ':count месяц|:count месяцы|:count месяцаў', + 'a_month' => '{1}месяц|:count месяц|:count месяцы|:count месяцаў', + 'm' => ':count месяц|:count месяцы|:count месяцаў', + 'week' => ':count тыдзень|:count тыдні|:count тыдняў', + 'a_week' => '{1}тыдзень|:count тыдзень|:count тыдні|:count тыдняў', + 'w' => ':count тыдзень|:count тыдні|:count тыдняў', + 'day' => ':count дзень|:count дні|:count дзён', + 'a_day' => '{1}дзень|:count дзень|:count дні|:count дзён', + 'd' => ':count дн', + 'hour' => ':count гадзіну|:count гадзіны|:count гадзін', + 'a_hour' => '{1}гадзіна|:count гадзіна|:count гадзіны|:count гадзін', + 'h' => ':count гадзіна|:count гадзіны|:count гадзін', + 'minute' => ':count хвіліна|:count хвіліны|:count хвілін', + 'a_minute' => '{1}хвіліна|:count хвіліна|:count хвіліны|:count хвілін', + 'min' => ':count хв', + 'second' => ':count секунда|:count секунды|:count секунд', + 'a_second' => '{1}некалькі секунд|:count секунда|:count секунды|:count секунд', + 's' => ':count сек', + + 'hour_ago' => ':count гадзіну|:count гадзіны|:count гадзін', + 'a_hour_ago' => '{1}гадзіну|:count гадзіну|:count гадзіны|:count гадзін', + 'h_ago' => ':count гадзіну|:count гадзіны|:count гадзін', + 'minute_ago' => ':count хвіліну|:count хвіліны|:count хвілін', + 'a_minute_ago' => '{1}хвіліну|:count хвіліну|:count хвіліны|:count хвілін', + 'min_ago' => ':count хвіліну|:count хвіліны|:count хвілін', + 'second_ago' => ':count секунду|:count секунды|:count секунд', + 'a_second_ago' => '{1}некалькі секунд|:count секунду|:count секунды|:count секунд', + 's_ago' => ':count секунду|:count секунды|:count секунд', + + 'hour_from_now' => ':count гадзіну|:count гадзіны|:count гадзін', + 'a_hour_from_now' => '{1}гадзіну|:count гадзіну|:count гадзіны|:count гадзін', + 'h_from_now' => ':count гадзіну|:count гадзіны|:count гадзін', + 'minute_from_now' => ':count хвіліну|:count хвіліны|:count хвілін', + 'a_minute_from_now' => '{1}хвіліну|:count хвіліну|:count хвіліны|:count хвілін', + 'min_from_now' => ':count хвіліну|:count хвіліны|:count хвілін', + 'second_from_now' => ':count секунду|:count секунды|:count секунд', + 'a_second_from_now' => '{1}некалькі секунд|:count секунду|:count секунды|:count секунд', + 's_from_now' => ':count секунду|:count секунды|:count секунд', + + 'hour_after' => ':count гадзіну|:count гадзіны|:count гадзін', + 'a_hour_after' => '{1}гадзіну|:count гадзіну|:count гадзіны|:count гадзін', + 'h_after' => ':count гадзіну|:count гадзіны|:count гадзін', + 'minute_after' => ':count хвіліну|:count хвіліны|:count хвілін', + 'a_minute_after' => '{1}хвіліну|:count хвіліну|:count хвіліны|:count хвілін', + 'min_after' => ':count хвіліну|:count хвіліны|:count хвілін', + 'second_after' => ':count секунду|:count секунды|:count секунд', + 'a_second_after' => '{1}некалькі секунд|:count секунду|:count секунды|:count секунд', + 's_after' => ':count секунду|:count секунды|:count секунд', + + 'hour_before' => ':count гадзіну|:count гадзіны|:count гадзін', + 'a_hour_before' => '{1}гадзіну|:count гадзіну|:count гадзіны|:count гадзін', + 'h_before' => ':count гадзіну|:count гадзіны|:count гадзін', + 'minute_before' => ':count хвіліну|:count хвіліны|:count хвілін', + 'a_minute_before' => '{1}хвіліну|:count хвіліну|:count хвіліны|:count хвілін', + 'min_before' => ':count хвіліну|:count хвіліны|:count хвілін', + 'second_before' => ':count секунду|:count секунды|:count секунд', + 'a_second_before' => '{1}некалькі секунд|:count секунду|:count секунды|:count секунд', + 's_before' => ':count секунду|:count секунды|:count секунд', + + 'ago' => ':time таму', + 'from_now' => 'праз :time', + 'after' => ':time пасля', + 'before' => ':time да', + 'diff_now' => 'цяпер', + 'diff_today' => 'Сёння', + 'diff_today_regexp' => 'Сёння(?:\\s+ў)?', + 'diff_yesterday' => 'учора', + 'diff_yesterday_regexp' => 'Учора(?:\\s+ў)?', + 'diff_tomorrow' => 'заўтра', + 'diff_tomorrow_regexp' => 'Заўтра(?:\\s+ў)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY г.', + 'LLL' => 'D MMMM YYYY г., HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY г., HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Сёння ў] LT', + 'nextDay' => '[Заўтра ў] LT', + 'nextWeek' => '[У] dddd [ў] LT', + 'lastDay' => '[Учора ў] LT', + 'lastWeek' => function (CarbonInterface $current) { + switch ($current->dayOfWeek) { + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + default: + return '[У мінулую] dddd [ў] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return ($number % 10 === 2 || $number % 10 === 3) && ($number % 100 !== 12 && $number % 100 !== 13) ? $number.'-і' : $number.'-ы'; + case 'D': + return $number.'-га'; + default: + return $number; + } + }, + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'ночы'; + } + if ($hour < 12) { + return 'раніцы'; + } + if ($hour < 17) { + return 'дня'; + } + + return 'вечара'; + }, + 'months' => ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'траўня', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня'], + 'months_standalone' => ['студзень', 'люты', 'сакавік', 'красавік', 'травень', 'чэрвень', 'ліпень', 'жнівень', 'верасень', 'кастрычнік', 'лістапад', 'снежань'], + 'months_short' => ['студ', 'лют', 'сак', 'крас', 'трав', 'чэрв', 'ліп', 'жнів', 'вер', 'каст', 'ліст', 'снеж'], + 'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', + 'weekdays' => ['нядзелю', 'панядзелак', 'аўторак', 'сераду', 'чацвер', 'пятніцу', 'суботу'], + 'weekdays_standalone' => ['нядзеля', 'панядзелак', 'аўторак', 'серада', 'чацвер', 'пятніца', 'субота'], + 'weekdays_short' => ['нд', 'пн', 'ат', 'ср', 'чц', 'пт', 'сб'], + 'weekdays_min' => ['нд', 'пн', 'ат', 'ср', 'чц', 'пт', 'сб'], + 'weekdays_regexp' => '/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' і '], + 'months_short_standalone' => ['сту', 'лют', 'сак', 'кра', 'май', 'чэр', 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php b/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php new file mode 100644 index 000000000..26684b40e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/be.php', [ + 'months' => ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'мая', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня'], + 'months_short' => ['сту', 'лют', 'сак', 'кра', 'мая', 'чэр', 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'], + 'weekdays' => ['Нядзеля', 'Панядзелак', 'Аўторак', 'Серада', 'Чацвер', 'Пятніца', 'Субота'], + 'weekdays_short' => ['Няд', 'Пан', 'Аўт', 'Срд', 'Чцв', 'Пят', 'Суб'], + 'weekdays_min' => ['Няд', 'Пан', 'Аўт', 'Срд', 'Чцв', 'Пят', 'Суб'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php b/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php new file mode 100644 index 000000000..517ce83af --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['studzienia', 'lutaha', 'sakavika', 'krasavika', 'maja', 'červienia', 'lipienia', 'žniŭnia', 'vieraśnia', 'kastryčnika', 'listapada', 'śniežnia'], + 'months_short' => ['Stu', 'Lut', 'Sak', 'Kra', 'Maj', 'Čer', 'Lip', 'Žni', 'Vie', 'Kas', 'Lis', 'Śni'], + 'weekdays' => ['Niadziela', 'Paniadziełak', 'Aŭtorak', 'Sierada', 'Čaćvier', 'Piatnica', 'Subota'], + 'weekdays_short' => ['Nia', 'Pan', 'Aŭt', 'Sie', 'Čać', 'Pia', 'Sub'], + 'weekdays_min' => ['Nia', 'Pan', 'Aŭt', 'Sie', 'Čać', 'Pia', 'Sub'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bem.php b/vendor/nesbot/carbon/src/Carbon/Lang/bem.php new file mode 100644 index 000000000..1c3ef0396 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bem.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/bem_ZM.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php b/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php new file mode 100644 index 000000000..620b57954 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - ANLoc Martin Benjamin locales@africanlocalization.net + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'MM/DD/YYYY', + ], + 'months' => ['Januari', 'Februari', 'Machi', 'Epreo', 'Mei', 'Juni', 'Julai', 'Ogasti', 'Septemba', 'Oktoba', 'Novemba', 'Disemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Epr', 'Mei', 'Jun', 'Jul', 'Oga', 'Sep', 'Okt', 'Nov', 'Dis'], + 'weekdays' => ['Pa Mulungu', 'Palichimo', 'Palichibuli', 'Palichitatu', 'Palichine', 'Palichisano', 'Pachibelushi'], + 'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + 'weekdays_min' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['uluchelo', 'akasuba'], + + 'year' => 'myaka :count', + 'y' => 'myaka :count', + 'a_year' => 'myaka :count', + + 'month' => 'myeshi :count', + 'm' => 'myeshi :count', + 'a_month' => 'myeshi :count', + + 'week' => 'umulungu :count', + 'w' => 'umulungu :count', + 'a_week' => 'umulungu :count', + + 'day' => 'inshiku :count', + 'd' => 'inshiku :count', + 'a_day' => 'inshiku :count', + + 'hour' => 'awala :count', + 'h' => 'awala :count', + 'a_hour' => 'awala :count', + + 'minute' => 'miniti :count', + 'min' => 'miniti :count', + 'a_minute' => 'miniti :count', + + 'second' => 'sekondi :count', + 's' => 'sekondi :count', + 'a_second' => 'sekondi :count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ber.php b/vendor/nesbot/carbon/src/Carbon/Lang/ber.php new file mode 100644 index 000000000..685603c00 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ber.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ber_DZ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php new file mode 100644 index 000000000..38de10ab0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Pablo Saratxaga pablo@mandrakesoft.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'], + 'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'], + 'weekdays' => ['bazar günü', 'birinci gün', 'ikinci gün', 'üçüncü gün', 'dördüncü gün', 'beşinci gün', 'altıncı gün'], + 'weekdays_short' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'], + 'weekdays_min' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php new file mode 100644 index 000000000..38de10ab0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Pablo Saratxaga pablo@mandrakesoft.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'], + 'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'], + 'weekdays' => ['bazar günü', 'birinci gün', 'ikinci gün', 'üçüncü gün', 'dördüncü gün', 'beşinci gün', 'altıncı gün'], + 'weekdays_short' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'], + 'weekdays_min' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bez.php b/vendor/nesbot/carbon/src/Carbon/Lang/bez.php new file mode 100644 index 000000000..d59c5ef52 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bez.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['pamilau', 'pamunyi'], + 'weekdays' => ['pa mulungu', 'pa shahuviluha', 'pa hivili', 'pa hidatu', 'pa hitayi', 'pa hihanu', 'pa shahulembela'], + 'weekdays_short' => ['Mul', 'Vil', 'Hiv', 'Hid', 'Hit', 'Hih', 'Lem'], + 'weekdays_min' => ['Mul', 'Vil', 'Hiv', 'Hid', 'Hit', 'Hih', 'Lem'], + 'months' => ['pa mwedzi gwa hutala', 'pa mwedzi gwa wuvili', 'pa mwedzi gwa wudatu', 'pa mwedzi gwa wutai', 'pa mwedzi gwa wuhanu', 'pa mwedzi gwa sita', 'pa mwedzi gwa saba', 'pa mwedzi gwa nane', 'pa mwedzi gwa tisa', 'pa mwedzi gwa kumi', 'pa mwedzi gwa kumi na moja', 'pa mwedzi gwa kumi na mbili'], + 'months_short' => ['Hut', 'Vil', 'Dat', 'Tai', 'Han', 'Sit', 'Sab', 'Nan', 'Tis', 'Kum', 'Kmj', 'Kmb'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bg.php b/vendor/nesbot/carbon/src/Carbon/Lang/bg.php new file mode 100644 index 000000000..f76807403 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bg.php @@ -0,0 +1,114 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - Serhan Apaydın + * - JD Isaacks + * - Glavić + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count година|:count години', + 'a_year' => 'година|:count години', + 'y' => ':count година|:count години', + 'month' => ':count месец|:count месеца', + 'a_month' => 'месец|:count месеца', + 'm' => ':count месец|:count месеца', + 'week' => ':count седмица|:count седмици', + 'a_week' => 'седмица|:count седмици', + 'w' => ':count седмица|:count седмици', + 'day' => ':count ден|:count дни', + 'a_day' => 'ден|:count дни', + 'd' => ':count ден|:count дни', + 'hour' => ':count час|:count часа', + 'a_hour' => 'час|:count часа', + 'h' => ':count час|:count часа', + 'minute' => ':count минута|:count минути', + 'a_minute' => 'минута|:count минути', + 'min' => ':count минута|:count минути', + 'second' => ':count секунда|:count секунди', + 'a_second' => 'няколко секунди|:count секунди', + 's' => ':count секунда|:count секунди', + 'ago' => 'преди :time', + 'from_now' => 'след :time', + 'after' => 'след :time', + 'before' => 'преди :time', + 'diff_now' => 'сега', + 'diff_today' => 'Днес', + 'diff_today_regexp' => 'Днес(?:\\s+в)?', + 'diff_yesterday' => 'вчера', + 'diff_yesterday_regexp' => 'Вчера(?:\\s+в)?', + 'diff_tomorrow' => 'утре', + 'diff_tomorrow_regexp' => 'Утре(?:\\s+в)?', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'D.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY H:mm', + 'LLLL' => 'dddd, D MMMM YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => '[Днес в] LT', + 'nextDay' => '[Утре в] LT', + 'nextWeek' => 'dddd [в] LT', + 'lastDay' => '[Вчера в] LT', + 'lastWeek' => function (CarbonInterface $current) { + switch ($current->dayOfWeek) { + case 0: + case 3: + case 6: + return '[В изминалата] dddd [в] LT'; + default: + return '[В изминалия] dddd [в] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + $lastDigit = $number % 10; + $last2Digits = $number % 100; + if ($number === 0) { + return "$number-ев"; + } + if ($last2Digits === 0) { + return "$number-ен"; + } + if ($last2Digits > 10 && $last2Digits < 20) { + return "$number-ти"; + } + if ($lastDigit === 1) { + return "$number-ви"; + } + if ($lastDigit === 2) { + return "$number-ри"; + } + if ($lastDigit === 7 || $lastDigit === 8) { + return "$number-ми"; + } + + return "$number-ти"; + }, + 'months' => ['януари', 'февруари', 'март', 'април', 'май', 'юни', 'юли', 'август', 'септември', 'октомври', 'ноември', 'декември'], + 'months_short' => ['яну', 'фев', 'мар', 'апр', 'май', 'юни', 'юли', 'авг', 'сеп', 'окт', 'ное', 'дек'], + 'weekdays' => ['неделя', 'понеделник', 'вторник', 'сряда', 'четвъртък', 'петък', 'събота'], + 'weekdays_short' => ['нед', 'пон', 'вто', 'сря', 'чет', 'пет', 'съб'], + 'weekdays_min' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' и '], + 'meridiem' => ['преди обяд', 'следобед'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bg_BG.php b/vendor/nesbot/carbon/src/Carbon/Lang/bg_BG.php new file mode 100644 index 000000000..b53874d30 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bg_BG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/bg.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php b/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php new file mode 100644 index 000000000..49f08032e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/bhb_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php new file mode 100644 index 000000000..ab557cbf3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Samsung Electronics Co., Ltd. alexey.merzlyakov@samsung.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'weekdays' => ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + 'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + 'weekdays_min' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bho.php b/vendor/nesbot/carbon/src/Carbon/Lang/bho.php new file mode 100644 index 000000000..e9ed0b687 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bho.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/bho_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php new file mode 100644 index 000000000..bc54f3631 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bhashaghar@googlegroups.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर"'], + 'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर"'], + 'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'], + 'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'], + 'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], + + 'hour' => ':count मौसम', + 'h' => ':count मौसम', + 'a_hour' => ':count मौसम', + + 'minute' => ':count कला', + 'min' => ':count कला', + 'a_minute' => ':count कला', + + 'second' => ':count सोमार', + 's' => ':count सोमार', + 'a_second' => ':count सोमार', + + 'year' => ':count साल', + 'y' => ':count साल', + 'a_year' => ':count साल', + + 'month' => ':count महिना', + 'm' => ':count महिना', + 'a_month' => ':count महिना', + + 'week' => ':count सप्ताह', + 'w' => ':count सप्ताह', + 'a_week' => ':count सप्ताह', + + 'day' => ':count दिन', + 'd' => ':count दिन', + 'a_day' => ':count दिन', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bi.php b/vendor/nesbot/carbon/src/Carbon/Lang/bi.php new file mode 100644 index 000000000..dd08128e8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bi.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/bi_VU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php b/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php new file mode 100644 index 000000000..1fe777056 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com & maninder1.s@samsung.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'dddd DD MMM YYYY', + ], + 'months' => ['jenuware', 'febwari', 'maj', 'epril', 'mei', 'jun', 'julae', 'ogis', 'septemba', 'oktoba', 'novemba', 'disemba'], + 'months_short' => ['jen', 'feb', 'maj', 'epr', 'mei', 'jun', 'jul', 'ogi', 'sep', 'okt', 'nov', 'dis'], + 'weekdays' => ['sande', 'mande', 'maj', 'wota', 'fraede', 'sarede'], + 'weekdays_short' => ['san', 'man', 'maj', 'wot', 'fra', 'sar'], + 'weekdays_min' => ['san', 'man', 'maj', 'wot', 'fra', 'sar'], + + 'year' => ':count seven', // less reliable + 'y' => ':count seven', // less reliable + 'a_year' => ':count seven', // less reliable + + 'month' => ':count mi', // less reliable + 'm' => ':count mi', // less reliable + 'a_month' => ':count mi', // less reliable + + 'week' => ':count sarede', // less reliable + 'w' => ':count sarede', // less reliable + 'a_week' => ':count sarede', // less reliable + + 'day' => ':count betde', // less reliable + 'd' => ':count betde', // less reliable + 'a_day' => ':count betde', // less reliable + + 'hour' => ':count klok', // less reliable + 'h' => ':count klok', // less reliable + 'a_hour' => ':count klok', // less reliable + + 'minute' => ':count smol', // less reliable + 'min' => ':count smol', // less reliable + 'a_minute' => ':count smol', // less reliable + + 'second' => ':count tu', // less reliable + 's' => ':count tu', // less reliable + 'a_second' => ':count tu', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bm.php b/vendor/nesbot/carbon/src/Carbon/Lang/bm.php new file mode 100644 index 000000000..92822d299 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bm.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Estelle Comment + */ +return [ + 'year' => 'san :count', + 'a_year' => '{1}san kelen|san :count', + 'y' => 'san :count', + 'month' => 'kalo :count', + 'a_month' => '{1}kalo kelen|kalo :count', + 'm' => 'k. :count', + 'week' => 'dɔgɔkun :count', + 'a_week' => 'dɔgɔkun kelen', + 'w' => 'd. :count', + 'day' => 'tile :count', + 'd' => 't. :count', + 'a_day' => '{1}tile kelen|tile :count', + 'hour' => 'lɛrɛ :count', + 'a_hour' => '{1}lɛrɛ kelen|lɛrɛ :count', + 'h' => 'l. :count', + 'minute' => 'miniti :count', + 'a_minute' => '{1}miniti kelen|miniti :count', + 'min' => 'm. :count', + 'second' => 'sekondi :count', + 'a_second' => '{1}sanga dama dama|sekondi :count', + 's' => 'sek. :count', + 'ago' => 'a bɛ :time bɔ', + 'from_now' => ':time kɔnɔ', + 'diff_today' => 'Bi', + 'diff_yesterday' => 'Kunu', + 'diff_yesterday_regexp' => 'Kunu(?:\\s+lɛrɛ)?', + 'diff_tomorrow' => 'Sini', + 'diff_tomorrow_regexp' => 'Sini(?:\\s+lɛrɛ)?', + 'diff_today_regexp' => 'Bi(?:\\s+lɛrɛ)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'MMMM [tile] D [san] YYYY', + 'LLL' => 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + 'LLLL' => 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Bi lɛrɛ] LT', + 'nextDay' => '[Sini lɛrɛ] LT', + 'nextWeek' => 'dddd [don lɛrɛ] LT', + 'lastDay' => '[Kunu lɛrɛ] LT', + 'lastWeek' => 'dddd [tɛmɛnen lɛrɛ] LT', + 'sameElse' => 'L', + ], + 'months' => ['Zanwuyekalo', 'Fewuruyekalo', 'Marisikalo', 'Awirilikalo', 'Mɛkalo', 'Zuwɛnkalo', 'Zuluyekalo', 'Utikalo', 'Sɛtanburukalo', 'ɔkutɔburukalo', 'Nowanburukalo', 'Desanburukalo'], + 'months_short' => ['Zan', 'Few', 'Mar', 'Awi', 'Mɛ', 'Zuw', 'Zul', 'Uti', 'Sɛt', 'ɔku', 'Now', 'Des'], + 'weekdays' => ['Kari', 'Ntɛnɛn', 'Tarata', 'Araba', 'Alamisa', 'Juma', 'Sibiri'], + 'weekdays_short' => ['Kar', 'Ntɛ', 'Tar', 'Ara', 'Ala', 'Jum', 'Sib'], + 'weekdays_min' => ['Ka', 'Nt', 'Ta', 'Ar', 'Al', 'Ju', 'Si'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' ni '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bn.php b/vendor/nesbot/carbon/src/Carbon/Lang/bn.php new file mode 100644 index 000000000..8e147899b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bn.php @@ -0,0 +1,100 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - Shakib Hossain + * - Raju + * - Aniruddha Adhikary + * - JD Isaacks + * - Saiful Islam + * - Faisal Islam + */ +return [ + 'year' => ':count বছর', + 'a_year' => 'এক বছর|:count বছর', + 'y' => '১ বছর|:count বছর', + 'month' => ':count মাস', + 'a_month' => 'এক মাস|:count মাস', + 'm' => '১ মাস|:count মাস', + 'week' => ':count সপ্তাহ', + 'a_week' => '১ সপ্তাহ|:count সপ্তাহ', + 'w' => '১ সপ্তাহ|:count সপ্তাহ', + 'day' => ':count দিন', + 'a_day' => 'এক দিন|:count দিন', + 'd' => '১ দিন|:count দিন', + 'hour' => ':count ঘন্টা', + 'a_hour' => 'এক ঘন্টা|:count ঘন্টা', + 'h' => '১ ঘন্টা|:count ঘন্টা', + 'minute' => ':count মিনিট', + 'a_minute' => 'এক মিনিট|:count মিনিট', + 'min' => '১ মিনিট|:count মিনিট', + 'second' => ':count সেকেন্ড', + 'a_second' => 'কয়েক সেকেন্ড|:count সেকেন্ড', + 's' => '১ সেকেন্ড|:count সেকেন্ড', + 'ago' => ':time আগে', + 'from_now' => ':time পরে', + 'after' => ':time পরে', + 'before' => ':time আগে', + 'diff_now' => 'এখন', + 'diff_today' => 'আজ', + 'diff_yesterday' => 'গতকাল', + 'diff_tomorrow' => 'আগামীকাল', + 'period_recurrences' => ':count বার|:count বার', + 'period_interval' => 'প্রতি :interval', + 'period_start_date' => ':date থেকে', + 'period_end_date' => ':date পর্যন্ত', + 'formats' => [ + 'LT' => 'A Oh:Om সময়', + 'LTS' => 'A Oh:Om:Os সময়', + 'L' => 'OD/OM/OY', + 'LL' => 'OD MMMM OY', + 'LLL' => 'OD MMMM OY, A Oh:Om সময়', + 'LLLL' => 'dddd, OD MMMM OY, A Oh:Om সময়', + ], + 'calendar' => [ + 'sameDay' => '[আজ] LT', + 'nextDay' => '[আগামীকাল] LT', + 'nextWeek' => 'dddd, LT', + 'lastDay' => '[গতকাল] LT', + 'lastWeek' => '[গত] dddd, LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'রাত'; + } + if ($hour < 10) { + return 'সকাল'; + } + if ($hour < 17) { + return 'দুপুর'; + } + if ($hour < 20) { + return 'বিকাল'; + } + + return 'রাত'; + }, + 'months' => ['জানুয়ারী', 'ফেব্রুয়ারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'], + 'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্র', 'মে', 'জুন', 'জুল', 'আগ', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'], + 'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'], + 'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'weekdays_min' => ['রবি', 'সোম', 'মঙ্গ', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'], + 'list' => [', ', ' এবং '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'weekdays_standalone' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহষ্পতিবার', 'শুক্রবার', 'শনিবার'], + 'weekdays_min_standalone' => ['রঃ', 'সোঃ', 'মঃ', 'বুঃ', 'বৃঃ', 'শুঃ', 'শনি'], + 'months_short_standalone' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'], + 'alt_numbers' => ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php b/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php new file mode 100644 index 000000000..b5b28dd1a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ankur Group, Taneem Ahmed, Jamil Ahmed + */ +return array_replace_recursive(require __DIR__.'/bn.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'], + 'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'], + 'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'], + 'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'], + 'weekdays_min' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'], + 'first_day_of_week' => 5, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php new file mode 100644 index 000000000..8b3a50e56 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/bn.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'], + 'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'], + 'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'], + 'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'weekdays_min' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bo.php b/vendor/nesbot/carbon/src/Carbon/Lang/bo.php new file mode 100644 index 000000000..99e1bf4c9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bo.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - JD Isaacks + */ +return [ + 'year' => '{1}ལོ་གཅིག|]1,Inf[:count ལོ', + 'month' => '{1}ཟླ་བ་གཅིག|]1,Inf[:count ཟླ་བ', + 'week' => ':count བདུན་ཕྲག', + 'day' => '{1}ཉིན་གཅིག|]1,Inf[:count ཉིན་', + 'hour' => '{1}ཆུ་ཚོད་གཅིག|]1,Inf[:count ཆུ་ཚོད', + 'minute' => '{1}སྐར་མ་གཅིག|]1,Inf[:count སྐར་མ', + 'second' => '{1}ལམ་སང|]1,Inf[:count སྐར་ཆ།', + 'ago' => ':time སྔན་ལ', + 'from_now' => ':time ལ་', + 'diff_yesterday' => 'ཁ་སང', + 'diff_today' => 'དི་རིང', + 'diff_tomorrow' => 'སང་ཉིན', + 'formats' => [ + 'LT' => 'A h:mm', + 'LTS' => 'A h:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, A h:mm', + 'LLLL' => 'dddd, D MMMM YYYY, A h:mm', + ], + 'calendar' => [ + 'sameDay' => '[དི་རིང] LT', + 'nextDay' => '[སང་ཉིན] LT', + 'nextWeek' => '[བདུན་ཕྲག་རྗེས་མ], LT', + 'lastDay' => '[ཁ་སང] LT', + 'lastWeek' => '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'མཚན་མོ'; + } + if ($hour < 10) { + return 'ཞོགས་ཀས'; + } + if ($hour < 17) { + return 'ཉིན་གུང'; + } + if ($hour < 20) { + return 'དགོང་དག'; + } + + return 'མཚན་མོ'; + }, + 'months' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'], + 'months_short' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'], + 'weekdays' => ['གཟའ་ཉི་མ་', 'གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', 'གཟའ་ཕུར་བུ', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་པ་'], + 'weekdays_short' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ', 'པ་སངས་', 'སྤེན་པ་'], + 'weekdays_min' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ', 'པ་སངས་', 'སྤེན་པ་'], + 'list' => [', ', ' ཨནད་ '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'months_standalone' => ['ཟླ་བ་དང་པོ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་པ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུན་པ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bo_CN.php b/vendor/nesbot/carbon/src/Carbon/Lang/bo_CN.php new file mode 100644 index 000000000..380abb1e7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bo_CN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/bo.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bo_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/bo_IN.php new file mode 100644 index 000000000..ca50d0493 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bo_IN.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/bo.php', [ + 'meridiem' => ['སྔ་དྲོ་', 'ཕྱི་དྲོ་'], + 'weekdays' => ['གཟའ་ཉི་མ་', 'གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', 'གཟའ་ཕུར་བུ་', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་པ་'], + 'weekdays_short' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ་', 'པ་སངས་', 'སྤེན་པ་'], + 'weekdays_min' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ་', 'པ་སངས་', 'སྤེན་པ་'], + 'months' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'], + 'months_short' => ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', 'ཟླ་༡༢'], + 'months_standalone' => ['ཟླ་བ་དང་པོ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་པ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུན་པ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'], + 'weekend' => [0, 0], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'YYYY-MM-DD', + 'LL' => 'YYYY ལོའི་MMMཚེས་D', + 'LLL' => 'སྤྱི་ལོ་YYYY MMMMའི་ཚེས་D h:mm a', + 'LLLL' => 'YYYY MMMMའི་ཚེས་D, dddd h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/br.php b/vendor/nesbot/carbon/src/Carbon/Lang/br.php new file mode 100644 index 000000000..583472fb0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/br.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Serhan Apaydın + * - JD Isaacks + */ +return [ + 'year' => '{1}:count bloaz|{3,4,5,9}:count bloaz|[0,Inf[:count vloaz', + 'a_year' => '{1}ur bloaz|{3,4,5,9}:count bloaz|[0,Inf[:count vloaz', + 'month' => '{1}:count miz|{2}:count viz|[0,Inf[:count miz', + 'a_month' => '{1}ur miz|{2}:count viz|[0,Inf[:count miz', + 'week' => ':count sizhun', + 'a_week' => '{1}ur sizhun|:count sizhun', + 'day' => '{1}:count devezh|{2}:count zevezh|[0,Inf[:count devezh', + 'a_day' => '{1}un devezh|{2}:count zevezh|[0,Inf[:count devezh', + 'hour' => ':count eur', + 'a_hour' => '{1}un eur|:count eur', + 'minute' => '{1}:count vunutenn|{2}:count vunutenn|[0,Inf[:count munutenn', + 'a_minute' => '{1}ur vunutenn|{2}:count vunutenn|[0,Inf[:count munutenn', + 'second' => ':count eilenn', + 'a_second' => '{1}un nebeud segondennoù|[0,Inf[:count eilenn', + 'ago' => ':time \'zo', + 'from_now' => 'a-benn :time', + 'diff_now' => 'bremañ', + 'diff_today' => 'Hiziv', + 'diff_today_regexp' => 'Hiziv(?:\\s+da)?', + 'diff_yesterday' => 'decʼh', + 'diff_yesterday_regexp' => 'Dec\'h(?:\\s+da)?', + 'diff_tomorrow' => 'warcʼhoazh', + 'diff_tomorrow_regexp' => 'Warc\'hoazh(?:\\s+da)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D [a viz] MMMM YYYY', + 'LLL' => 'D [a viz] MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D [a viz] MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Hiziv da] LT', + 'nextDay' => '[Warc\'hoazh da] LT', + 'nextWeek' => 'dddd [da] LT', + 'lastDay' => '[Dec\'h da] LT', + 'lastWeek' => 'dddd [paset da] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + return $number.($number === 1 ? 'añ' : 'vet'); + }, + 'months' => ['Genver', 'C\'hwevrer', 'Meurzh', 'Ebrel', 'Mae', 'Mezheven', 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'], + 'months_short' => ['Gen', 'C\'hwe', 'Meu', 'Ebr', 'Mae', 'Eve', 'Gou', 'Eos', 'Gwe', 'Her', 'Du', 'Ker'], + 'weekdays' => ['Sul', 'Lun', 'Meurzh', 'Merc\'her', 'Yaou', 'Gwener', 'Sadorn'], + 'weekdays_short' => ['Sul', 'Lun', 'Meu', 'Mer', 'Yao', 'Gwe', 'Sad'], + 'weekdays_min' => ['Su', 'Lu', 'Me', 'Mer', 'Ya', 'Gw', 'Sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' hag '], + 'meridiem' => ['A.M.', 'G.M.'], + + 'y' => ':count bl.', + 'd' => ':count d', + 'h' => ':count e', + 'min' => ':count min', + 's' => ':count s', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/br_FR.php b/vendor/nesbot/carbon/src/Carbon/Lang/br_FR.php new file mode 100644 index 000000000..7f541858d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/br_FR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/br.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/brx.php b/vendor/nesbot/carbon/src/Carbon/Lang/brx.php new file mode 100644 index 000000000..a0a7bf9bc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/brx.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/brx_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php new file mode 100644 index 000000000..2d80ced20 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat Pune bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'M/D/YY', + ], + 'months' => ['जानुवारी', 'फेब्रुवारी', 'मार्स', 'एफ्रिल', 'मे', 'जुन', 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', 'अखथबर', 'नबेज्ब़र', 'दिसेज्ब़र'], + 'months_short' => ['जानुवारी', 'फेब्रुवारी', 'मार्स', 'एप्रिल', 'मे', 'जुन', 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', 'अखथबर', 'नबेज्ब़र', 'दिसेज्ब़र'], + 'weekdays' => ['रबिबार', 'सोबार', 'मंगलबार', 'बुदबार', 'बिसथिबार', 'सुखुरबार', 'सुनिबार'], + 'weekdays_short' => ['रबि', 'सम', 'मंगल', 'बुद', 'बिसथि', 'सुखुर', 'सुनि'], + 'weekdays_min' => ['रबि', 'सम', 'मंगल', 'बुद', 'बिसथि', 'सुखुर', 'सुनि'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['फुं.', 'बेलासे.'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bs.php b/vendor/nesbot/carbon/src/Carbon/Lang/bs.php new file mode 100644 index 000000000..e5d68083e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bs.php @@ -0,0 +1,97 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bokideckonja + * - Josh Soref + * - François B + * - shaishavgandhi05 + * - Serhan Apaydın + * - JD Isaacks + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count godina|:count godine|:count godina', + 'y' => ':count godina|:count godine|:count godina', + 'month' => ':count mjesec|:count mjeseca|:count mjeseci', + 'm' => ':count mjesec|:count mjeseca|:count mjeseci', + 'week' => ':count sedmice|:count sedmicu|:count sedmica', + 'w' => ':count sedmice|:count sedmicu|:count sedmica', + 'day' => ':count dan|:count dana|:count dana', + 'd' => ':count dan|:count dana|:count dana', + 'hour' => ':count sat|:count sata|:count sati', + 'h' => ':count sat|:count sata|:count sati', + 'minute' => ':count minut|:count minuta|:count minuta', + 'min' => ':count minut|:count minuta|:count minuta', + 'second' => ':count sekund|:count sekunda|:count sekundi', + 's' => ':count sekund|:count sekunda|:count sekundi', + 'ago' => 'prije :time', + 'from_now' => 'za :time', + 'after' => 'nakon :time', + 'before' => ':time ranije', + 'diff_now' => 'sada', + 'diff_today' => 'danas', + 'diff_today_regexp' => 'danas(?:\\s+u)?', + 'diff_yesterday' => 'jučer', + 'diff_yesterday_regexp' => 'jučer(?:\\s+u)?', + 'diff_tomorrow' => 'sutra', + 'diff_tomorrow_regexp' => 'sutra(?:\\s+u)?', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY H:mm', + 'LLLL' => 'dddd, D. MMMM YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => '[danas u] LT', + 'nextDay' => '[sutra u] LT', + 'nextWeek' => function (CarbonInterface $current) { + switch ($current->dayOfWeek) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + default: + return '[u] dddd [u] LT'; + } + }, + 'lastDay' => '[jučer u] LT', + 'lastWeek' => function (CarbonInterface $current) { + switch ($current->dayOfWeek) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + default: + return '[prošli] dddd [u] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['januar', 'februar', 'mart', 'april', 'maj', 'juni', 'juli', 'august', 'septembar', 'oktobar', 'novembar', 'decembar'], + 'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj.', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'], + 'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'], + 'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'], + 'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' i '], + 'meridiem' => ['prijepodne', 'popodne'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bs_BA.php b/vendor/nesbot/carbon/src/Carbon/Lang/bs_BA.php new file mode 100644 index 000000000..0a591176d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bs_BA.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/bs.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bs_Cyrl.php b/vendor/nesbot/carbon/src/Carbon/Lang/bs_Cyrl.php new file mode 100644 index 000000000..e1a174476 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bs_Cyrl.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/bs.php', [ + 'meridiem' => ['пре подне', 'поподне'], + 'weekdays' => ['недјеља', 'понедјељак', 'уторак', 'сриједа', 'четвртак', 'петак', 'субота'], + 'weekdays_short' => ['нед', 'пон', 'уто', 'сри', 'чет', 'пет', 'суб'], + 'weekdays_min' => ['нед', 'пон', 'уто', 'сри', 'чет', 'пет', 'суб'], + 'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јуни', 'јули', 'аугуст', 'септембар', 'октобар', 'новембар', 'децембар'], + 'months_short' => ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', 'јул', 'ауг', 'сеп', 'окт', 'нов', 'дец'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D.M.YYYY.', + 'LL' => 'DD.MM.YYYY.', + 'LLL' => 'DD. MMMM YYYY. HH:mm', + 'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/bs_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/bs_Latn.php new file mode 100644 index 000000000..b4e363e75 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/bs_Latn.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/bs.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/byn.php b/vendor/nesbot/carbon/src/Carbon/Lang/byn.php new file mode 100644 index 000000000..7125f3d6b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/byn.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/byn_ER.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php new file mode 100644 index 000000000..ad6753340 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['ልደትሪ', 'ካብኽብቲ', 'ክብላ', 'ፋጅኺሪ', 'ክቢቅሪ', 'ምኪኤል ትጓ̅ኒሪ', 'ኰርኩ', 'ማርያም ትሪ', 'ያኸኒ መሳቅለሪ', 'መተሉ', 'ምኪኤል መሽወሪ', 'ተሕሳስሪ'], + 'months_short' => ['ልደት', 'ካብኽ', 'ክብላ', 'ፋጅኺ', 'ክቢቅ', 'ም/ት', 'ኰር', 'ማርያ', 'ያኸኒ', 'መተሉ', 'ም/ም', 'ተሕሳ'], + 'weekdays' => ['ሰንበር ቅዳዅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ ወሪ ለብዋ', 'ኣምድ', 'ኣርብ', 'ሰንበር ሽጓዅ'], + 'weekdays_short' => ['ሰ/ቅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ', 'ኣምድ', 'ኣርብ', 'ሰ/ሽ'], + 'weekdays_min' => ['ሰ/ቅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ', 'ኣምድ', 'ኣርብ', 'ሰ/ሽ'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ፋዱስ ጃብ', 'ፋዱስ ደምቢ'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ca.php b/vendor/nesbot/carbon/src/Carbon/Lang/ca.php new file mode 100644 index 000000000..b8b19946b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ca.php @@ -0,0 +1,117 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - mestremuten + * - François B + * - Marc Ordinas i Llopis + * - Pere Orga + * - JD Isaacks + * - Quentí + * - Víctor Díaz + * - Xavi + * - qcardona + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count any|:count anys', + 'a_year' => 'un any|:count anys', + 'y' => ':count any|:count anys', + 'month' => ':count mes|:count mesos', + 'a_month' => 'un mes|:count mesos', + 'm' => ':count mes|:count mesos', + 'week' => ':count setmana|:count setmanes', + 'a_week' => 'una setmana|:count setmanes', + 'w' => ':count setmana|:count setmanes', + 'day' => ':count dia|:count dies', + 'a_day' => 'un dia|:count dies', + 'd' => ':count d', + 'hour' => ':count hora|:count hores', + 'a_hour' => 'una hora|:count hores', + 'h' => ':count h', + 'minute' => ':count minut|:count minuts', + 'a_minute' => 'un minut|:count minuts', + 'min' => ':count min', + 'second' => ':count segon|:count segons', + 'a_second' => 'uns segons|:count segons', + 's' => ':count s', + 'ago' => 'fa :time', + 'from_now' => 'd\'aquí a :time', + 'after' => ':time després', + 'before' => ':time abans', + 'diff_now' => 'ara mateix', + 'diff_today' => 'avui', + 'diff_today_regexp' => 'avui(?:\\s+a)?(?:\\s+les)?', + 'diff_yesterday' => 'ahir', + 'diff_yesterday_regexp' => 'ahir(?:\\s+a)?(?:\\s+les)?', + 'diff_tomorrow' => 'demà', + 'diff_tomorrow_regexp' => 'demà(?:\\s+a)?(?:\\s+les)?', + 'diff_before_yesterday' => 'abans d\'ahir', + 'diff_after_tomorrow' => 'demà passat', + 'period_recurrences' => ':count cop|:count cops', + 'period_interval' => 'cada :interval', + 'period_start_date' => 'de :date', + 'period_end_date' => 'fins a :date', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM [de] YYYY', + 'LLL' => 'D MMMM [de] YYYY [a les] H:mm', + 'LLLL' => 'dddd D MMMM [de] YYYY [a les] H:mm', + ], + 'calendar' => [ + 'sameDay' => function (CarbonInterface $current) { + return '[avui a '.($current->hour !== 1 ? 'les' : 'la').'] LT'; + }, + 'nextDay' => function (CarbonInterface $current) { + return '[demà a '.($current->hour !== 1 ? 'les' : 'la').'] LT'; + }, + 'nextWeek' => function (CarbonInterface $current) { + return 'dddd [a '.($current->hour !== 1 ? 'les' : 'la').'] LT'; + }, + 'lastDay' => function (CarbonInterface $current) { + return '[ahir a '.($current->hour !== 1 ? 'les' : 'la').'] LT'; + }, + 'lastWeek' => function (CarbonInterface $current) { + return '[el] dddd [passat a '.($current->hour !== 1 ? 'les' : 'la').'] LT'; + }, + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + return $number.( + ($period === 'w' || $period === 'W') ? 'a' : ( + ($number === 1) ? 'r' : ( + ($number === 2) ? 'n' : ( + ($number === 3) ? 'r' : ( + ($number === 4) ? 't' : 'è' + ) + ) + ) + ) + ); + }, + 'months' => ['de gener', 'de febrer', 'de març', 'd\'abril', 'de maig', 'de juny', 'de juliol', 'd\'agost', 'de setembre', 'd\'octubre', 'de novembre', 'de desembre'], + 'months_standalone' => ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'], + 'months_short' => ['de gen.', 'de febr.', 'de març', 'd\'abr.', 'de maig', 'de juny', 'de jul.', 'd\'ag.', 'de set.', 'd\'oct.', 'de nov.', 'de des.'], + 'months_short_standalone' => ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], + 'months_regexp' => '/(D[oD]?[\s,]+MMMM?|L{2,4}|l{2,4})/', + 'weekdays' => ['diumenge', 'dilluns', 'dimarts', 'dimecres', 'dijous', 'divendres', 'dissabte'], + 'weekdays_short' => ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'], + 'weekdays_min' => ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' i '], + 'meridiem' => ['a. m.', 'p. m.'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ca_AD.php b/vendor/nesbot/carbon/src/Carbon/Lang/ca_AD.php new file mode 100644 index 000000000..861acd2a0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ca_AD.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ca.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES.php new file mode 100644 index 000000000..50049786c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ca.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php b/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php new file mode 100644 index 000000000..1c16421ad --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'ca'); + }, 'ca_ES_Valencia'); +} +// @codeCoverageIgnoreEnd + +return array_replace_recursive(require __DIR__.'/ca.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ca_FR.php b/vendor/nesbot/carbon/src/Carbon/Lang/ca_FR.php new file mode 100644 index 000000000..861acd2a0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ca_FR.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ca.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ca_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/ca_IT.php new file mode 100644 index 000000000..861acd2a0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ca_IT.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ca.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ccp.php b/vendor/nesbot/carbon/src/Carbon/Lang/ccp.php new file mode 100644 index 000000000..99c1dcacd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ccp.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['𑄢𑄧𑄝𑄨𑄝𑄢𑄴', '𑄥𑄧𑄟𑄴𑄝𑄢𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴𑄝𑄢𑄴', '𑄝𑄪𑄖𑄴𑄝𑄢𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴𑄝𑄢𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴𑄝𑄢𑄴', '𑄥𑄧𑄚𑄨𑄝𑄢𑄴'], + 'weekdays_short' => ['𑄢𑄧𑄝𑄨', '𑄥𑄧𑄟𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴', '𑄝𑄪𑄖𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴', '𑄥𑄧𑄚𑄨'], + 'weekdays_min' => ['𑄢𑄧𑄝𑄨', '𑄥𑄧𑄟𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴', '𑄝𑄪𑄖𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴', '𑄥𑄧𑄚𑄨'], + 'months' => ['𑄎𑄚𑄪𑄠𑄢𑄨', '𑄜𑄬𑄛𑄴𑄝𑄳𑄢𑄪𑄠𑄢𑄨', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄬𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄧𑄢𑄴'], + 'months_short' => ['𑄎𑄚𑄪', '𑄜𑄬𑄛𑄴', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄮𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄢𑄴'], + 'months_short_standalone' => ['𑄎𑄚𑄪𑄠𑄢𑄨', '𑄜𑄬𑄛𑄴𑄝𑄳𑄢𑄪𑄠𑄢𑄨', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄮𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄧𑄢𑄴'], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM, YYYY h:mm a', + 'LLLL' => 'dddd, D MMMM, YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ccp_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ccp_IN.php new file mode 100644 index 000000000..c1fa8af0d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ccp_IN.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ccp.php', [ + 'weekend' => [0, 0], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ce.php b/vendor/nesbot/carbon/src/Carbon/Lang/ce.php new file mode 100644 index 000000000..f99f6ffd5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ce.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ce_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php new file mode 100644 index 000000000..f76985628 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - ANCHR + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY.DD.MM', + ], + 'months' => ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + 'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'], + 'weekdays' => ['КӀиранан де', 'Оршотан де', 'Шинарин де', 'Кхаарин де', 'Еарин де', 'ПӀераскан де', 'Шот де'], + 'weekdays_short' => ['КӀ', 'Ор', 'Ши', 'Кх', 'Еа', 'ПӀ', 'Шо'], + 'weekdays_min' => ['КӀ', 'Ор', 'Ши', 'Кх', 'Еа', 'ПӀ', 'Шо'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => ':count шо', + 'y' => ':count шо', + 'a_year' => ':count шо', + + 'month' => ':count бутт', + 'm' => ':count бутт', + 'a_month' => ':count бутт', + + 'week' => ':count кӏира', + 'w' => ':count кӏира', + 'a_week' => ':count кӏира', + + 'day' => ':count де', + 'd' => ':count де', + 'a_day' => ':count де', + + 'hour' => ':count сахьт', + 'h' => ':count сахьт', + 'a_hour' => ':count сахьт', + + 'minute' => ':count минот', + 'min' => ':count минот', + 'a_minute' => ':count минот', + + 'second' => ':count секунд', + 's' => ':count секунд', + 'a_second' => ':count секунд', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cgg.php b/vendor/nesbot/carbon/src/Carbon/Lang/cgg.php new file mode 100644 index 000000000..09bcc1c72 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cgg.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', 'Orwakana', 'Orwakataano', 'Orwamukaaga'], + 'weekdays_short' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'], + 'weekdays_min' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'], + 'months' => ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], + 'months_short' => ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + 'day' => ':count ruhanga', // less reliable + 'd' => ':count ruhanga', // less reliable + 'a_day' => ':count ruhanga', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/chr.php b/vendor/nesbot/carbon/src/Carbon/Lang/chr.php new file mode 100644 index 000000000..e26190f15 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/chr.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/chr_US.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php new file mode 100644 index 000000000..371353ef8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Cherokee Nation Joseph Erb josepherb7@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'MM/DD/YYYY', + ], + 'months' => ['ᎤᏃᎸᏔᏅ', 'ᎧᎦᎵ', 'ᎠᏅᏱ', 'ᎧᏬᏂ', 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎥᏍᎩᏱ'], + 'months_short' => ['ᎤᏃ', 'ᎧᎦ', 'ᎠᏅ', 'ᎧᏬ', 'ᎠᏂ', 'ᏕᎭ', 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎥᏍ'], + 'weekdays' => ['ᎤᎾᏙᏓᏆᏍᎬ', 'ᎤᎾᏙᏓᏉᏅᎯ', 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], + 'weekdays_short' => ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], + 'weekdays_min' => ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ᏌᎾᎴ', 'ᏒᎯᏱᎢᏗᏢ', 'ꮜꮎꮄ', 'ꮢꭿᏹꭲꮧꮲ'], + + 'second' => ':count ᏐᎢ', // less reliable + 's' => ':count ᏐᎢ', // less reliable + 'a_second' => ':count ᏐᎢ', // less reliable + + 'year' => ':count ᏑᏕᏘᏴᏓ', + 'y' => ':count ᏑᏕᏘᏴᏓ', + 'a_year' => ':count ᏑᏕᏘᏴᏓ', + + 'month' => ':count ᏏᏅᏙ', + 'm' => ':count ᏏᏅᏙ', + 'a_month' => ':count ᏏᏅᏙ', + + 'week' => ':count ᏑᎾᏙᏓᏆᏍᏗ', + 'w' => ':count ᏑᎾᏙᏓᏆᏍᏗ', + 'a_week' => ':count ᏑᎾᏙᏓᏆᏍᏗ', + + 'day' => ':count ᎢᎦ', + 'd' => ':count ᎢᎦ', + 'a_day' => ':count ᎢᎦ', + + 'hour' => ':count ᏑᏟᎶᏛ', + 'h' => ':count ᏑᏟᎶᏛ', + 'a_hour' => ':count ᏑᏟᎶᏛ', + + 'minute' => ':count ᎢᏯᏔᏬᏍᏔᏅ', + 'min' => ':count ᎢᏯᏔᏬᏍᏔᏅ', + 'a_minute' => ':count ᎢᏯᏔᏬᏍᏔᏅ', + + 'ago' => ':time ᏥᎨᏒ', + 'from_now' => 'ᎾᎿ :time', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ckb.php b/vendor/nesbot/carbon/src/Carbon/Lang/ckb.php new file mode 100644 index 000000000..acf4dc280 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ckb.php @@ -0,0 +1,89 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Swara Mohammed + */ +$months = [ + 'ڕێبەندان', + 'ڕەشەمە', + 'نەورۆز', + 'گوڵان', + 'جۆزەردان', + 'پوشپەڕ', + 'گەلاوێژ', + 'خەرمانان', + 'ڕەزبەر', + 'گەڵاڕێزان', + 'سەرماوەرز', + 'بەفرانبار', +]; + +return [ + 'year' => implode('|', ['{0}:count ساڵێک', '{1}ساڵێک', '{2}دوو ساڵ', ']2,11[:count ساڵ', ']10,Inf[:count ساڵ']), + 'a_year' => implode('|', ['{0}:count ساڵێک', '{1}ساڵێک', '{2}دوو ساڵ', ']2,11[:count ساڵ', ']10,Inf[:count ساڵ']), + 'month' => implode('|', ['{0}:count مانگێک', '{1}مانگێک', '{2}دوو مانگ', ']2,11[:count مانگ', ']10,Inf[:count مانگ']), + 'a_month' => implode('|', ['{0}:count مانگێک', '{1}مانگێک', '{2}دوو مانگ', ']2,11[:count مانگ', ']10,Inf[:count مانگ']), + 'week' => implode('|', ['{0}:count هەفتەیەک', '{1}هەفتەیەک', '{2}دوو هەفتە', ']2,11[:count هەفتە', ']10,Inf[:count هەفتە']), + 'a_week' => implode('|', ['{0}:count هەفتەیەک', '{1}هەفتەیەک', '{2}دوو هەفتە', ']2,11[:count هەفتە', ']10,Inf[:count هەفتە']), + 'day' => implode('|', ['{0}:count ڕۆژێک', '{1}ڕۆژێک', '{2}دوو ڕۆژ', ']2,11[:count ڕۆژ', ']10,Inf[:count ڕۆژ']), + 'a_day' => implode('|', ['{0}:count ڕۆژێک', '{1}ڕۆژێک', '{2}دوو ڕۆژ', ']2,11[:count ڕۆژ', ']10,Inf[:count ڕۆژ']), + 'hour' => implode('|', ['{0}:count کاتژمێرێک', '{1}کاتژمێرێک', '{2}دوو کاتژمێر', ']2,11[:count کاتژمێر', ']10,Inf[:count کاتژمێر']), + 'a_hour' => implode('|', ['{0}:count کاتژمێرێک', '{1}کاتژمێرێک', '{2}دوو کاتژمێر', ']2,11[:count کاتژمێر', ']10,Inf[:count کاتژمێر']), + 'minute' => implode('|', ['{0}:count خولەکێک', '{1}خولەکێک', '{2}دوو خولەک', ']2,11[:count خولەک', ']10,Inf[:count خولەک']), + 'a_minute' => implode('|', ['{0}:count خولەکێک', '{1}خولەکێک', '{2}دوو خولەک', ']2,11[:count خولەک', ']10,Inf[:count خولەک']), + 'second' => implode('|', ['{0}:count چرکەیەک', '{1}چرکەیەک', '{2}دوو چرکە', ']2,11[:count چرکە', ']10,Inf[:count چرکە']), + 'a_second' => implode('|', ['{0}:count چرکەیەک', '{1}چرکەیەک', '{2}دوو چرکە', ']2,11[:count چرکە', ']10,Inf[:count چرکە']), + 'ago' => 'پێش :time', + 'from_now' => ':time لە ئێستاوە', + 'after' => 'دوای :time', + 'before' => 'پێش :time', + 'diff_now' => 'ئێستا', + 'diff_today' => 'ئەمڕۆ', + 'diff_today_regexp' => 'ڕۆژ(?:\\s+لە)?(?:\\s+کاتژمێر)?', + 'diff_yesterday' => 'دوێنێ', + 'diff_yesterday_regexp' => 'دوێنێ(?:\\s+لە)?(?:\\s+کاتژمێر)?', + 'diff_tomorrow' => 'سبەینێ', + 'diff_tomorrow_regexp' => 'سبەینێ(?:\\s+لە)?(?:\\s+کاتژمێر)?', + 'diff_before_yesterday' => 'پێش دوێنێ', + 'diff_after_tomorrow' => 'دوای سبەینێ', + 'period_recurrences' => implode('|', ['{0}جار', '{1}جار', '{2}:count دووجار', ']2,11[:count جار', ']10,Inf[:count جار']), + 'period_interval' => 'هەموو :interval', + 'period_start_date' => 'لە :date', + 'period_end_date' => 'بۆ :date', + 'months' => $months, + 'months_short' => $months, + 'weekdays' => ['یەکشەممە', 'دووشەممە', 'سێشەممە', 'چوارشەممە', 'پێنجشەممە', 'هەینی', 'شەممە'], + 'weekdays_short' => ['یەکشەممە', 'دووشەممە', 'سێشەممە', 'چوارشەممە', 'پێنجشەممە', 'هەینی', 'شەممە'], + 'weekdays_min' => ['یەکشەممە', 'دووشەممە', 'سێشەممە', 'چوارشەممە', 'پێنجشەممە', 'هەینی', 'شەممە'], + 'list' => ['، ', ' و '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[ئەمڕۆ لە کاتژمێر] LT', + 'nextDay' => '[سبەینێ لە کاتژمێر] LT', + 'nextWeek' => 'dddd [لە کاتژمێر] LT', + 'lastDay' => '[دوێنێ لە کاتژمێر] LT', + 'lastWeek' => 'dddd [لە کاتژمێر] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['پ.ن', 'د.ن'], + 'weekend' => [5, 6], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php b/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php new file mode 100644 index 000000000..80b1d694f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/cmn_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php new file mode 100644 index 000000000..7e43f9de3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY年MM月DD號', + ], + 'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], + 'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'], + 'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], + 'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'], + 'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'], + 'meridiem' => ['上午', '下午'], + + 'year' => ':count 年', + 'y' => ':count 年', + 'a_year' => ':count 年', + + 'month' => ':count 月', + 'm' => ':count 月', + 'a_month' => ':count 月', + + 'week' => ':count 周', + 'w' => ':count 周', + 'a_week' => ':count 周', + + 'day' => ':count 白天', + 'd' => ':count 白天', + 'a_day' => ':count 白天', + + 'hour' => ':count 小时', + 'h' => ':count 小时', + 'a_hour' => ':count 小时', + + 'minute' => ':count 分钟', + 'min' => ':count 分钟', + 'a_minute' => ':count 分钟', + + 'second' => ':count 秒', + 's' => ':count 秒', + 'a_second' => ':count 秒', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/crh.php b/vendor/nesbot/carbon/src/Carbon/Lang/crh.php new file mode 100644 index 000000000..a1d7ce631 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/crh.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/crh_UA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php b/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php new file mode 100644 index 000000000..05139331e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Reşat SABIQ tilde.birlik@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'Mayıs', 'İyun', 'İyul', 'Avgust', 'Sentâbr', 'Oktâbr', 'Noyabr', 'Dekabr'], + 'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'], + 'weekdays' => ['Bazar', 'Bazarertesi', 'Salı', 'Çarşembe', 'Cumaaqşamı', 'Cuma', 'Cumaertesi'], + 'weekdays_short' => ['Baz', 'Ber', 'Sal', 'Çar', 'Caq', 'Cum', 'Cer'], + 'weekdays_min' => ['Baz', 'Ber', 'Sal', 'Çar', 'Caq', 'Cum', 'Cer'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ÜE', 'ÜS'], + + 'year' => ':count yıl', + 'y' => ':count yıl', + 'a_year' => ':count yıl', + + 'month' => ':count ay', + 'm' => ':count ay', + 'a_month' => ':count ay', + + 'week' => ':count afta', + 'w' => ':count afta', + 'a_week' => ':count afta', + + 'day' => ':count kün', + 'd' => ':count kün', + 'a_day' => ':count kün', + + 'hour' => ':count saat', + 'h' => ':count saat', + 'a_hour' => ':count saat', + + 'minute' => ':count daqqa', + 'min' => ':count daqqa', + 'a_minute' => ':count daqqa', + + 'second' => ':count ekinci', + 's' => ':count ekinci', + 'a_second' => ':count ekinci', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cs.php b/vendor/nesbot/carbon/src/Carbon/Lang/cs.php new file mode 100644 index 000000000..c01e3ccc8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cs.php @@ -0,0 +1,123 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Jakub Tesinsky + * - Martin Suja + * - Nikos Timiopulos + * - Bohuslav Blín + * - Tsutomu Kuroda + * - tjku + * - Lukas Svoboda + * - Max Melentiev + * - Juanito Fatas + * - Akira Matsuda + * - Christopher Dell + * - Václav Pávek + * - CodeSkills + * - Tlapi + * - newman101 + * - Petr Kadlec + * - tommaskraus + * - Karel Sommer (calvera) + */ +$za = function ($time) { + return 'za '.strtr($time, [ + 'hodina' => 'hodinu', + 'minuta' => 'minutu', + 'sekunda' => 'sekundu', + ]); +}; + +$pred = function ($time) { + $time = strtr($time, [ + 'hodina' => 'hodinou', + 'minuta' => 'minutou', + 'sekunda' => 'sekundou', + ]); + $time = preg_replace('/hodiny?(?!\w)/', 'hodinami', $time); + $time = preg_replace('/minuty?(?!\w)/', 'minutami', $time); + $time = preg_replace('/sekundy?(?!\w)/', 'sekundami', $time); + + return "před $time"; +}; + +return [ + 'year' => ':count rok|:count roky|:count let', + 'y' => ':count rok|:count roky|:count let', + 'a_year' => 'rok|:count roky|:count let', + 'month' => ':count měsíc|:count měsíce|:count měsíců', + 'm' => ':count měs.', + 'a_month' => 'měsíc|:count měsíce|:count měsíců', + 'week' => ':count týden|:count týdny|:count týdnů', + 'w' => ':count týd.', + 'a_week' => 'týden|:count týdny|:count týdnů', + 'day' => ':count den|:count dny|:count dní', + 'd' => ':count den|:count dny|:count dní', + 'a_day' => 'den|:count dny|:count dní', + 'hour' => ':count hodina|:count hodiny|:count hodin', + 'h' => ':count hod.', + 'a_hour' => 'hodina|:count hodiny|:count hodin', + 'minute' => ':count minuta|:count minuty|:count minut', + 'min' => ':count min.', + 'a_minute' => 'minuta|:count minuty|:count minut', + 'second' => ':count sekunda|:count sekundy|:count sekund', + 's' => ':count sek.', + 'a_second' => 'pár sekund|:count sekundy|:count sekund', + + 'month_ago' => ':count měsícem|:count měsíci|:count měsíci', + 'a_month_ago' => 'měsícem|:count měsíci|:count měsíci', + 'day_ago' => ':count dnem|:count dny|:count dny', + 'a_day_ago' => 'dnem|:count dny|:count dny', + 'week_ago' => ':count týdnem|:count týdny|:count týdny', + 'a_week_ago' => 'týdnem|:count týdny|:count týdny', + 'year_ago' => ':count rokem|:count roky|:count lety', + 'y_ago' => ':count rok.|:count rok.|:count let.', + 'a_year_ago' => 'rokem|:count roky|:count lety', + + 'month_before' => ':count měsícem|:count měsíci|:count měsíci', + 'a_month_before' => 'měsícem|:count měsíci|:count měsíci', + 'day_before' => ':count dnem|:count dny|:count dny', + 'a_day_before' => 'dnem|:count dny|:count dny', + 'week_before' => ':count týdnem|:count týdny|:count týdny', + 'a_week_before' => 'týdnem|:count týdny|:count týdny', + 'year_before' => ':count rokem|:count roky|:count lety', + 'y_before' => ':count rok.|:count rok.|:count let.', + 'a_year_before' => 'rokem|:count roky|:count lety', + + 'ago' => $pred, + 'from_now' => $za, + 'before' => $pred, + 'after' => $za, + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'months' => ['ledna', 'února', 'března', 'dubna', 'května', 'června', 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince'], + 'months_standalone' => ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'], + 'months_short' => ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro'], + 'weekdays' => ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], + 'weekdays_short' => ['ned', 'pon', 'úte', 'stř', 'čtv', 'pát', 'sob'], + 'weekdays_min' => ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], + 'list' => [', ', ' a '], + 'diff_now' => 'nyní', + 'diff_yesterday' => 'včera', + 'diff_tomorrow' => 'zítra', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD. MM. YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY HH:mm', + 'LLLL' => 'dddd D. MMMM YYYY HH:mm', + ], + 'meridiem' => ['dopoledne', 'odpoledne'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cs_CZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/cs_CZ.php new file mode 100644 index 000000000..ea2517e85 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cs_CZ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/cs.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/csb.php b/vendor/nesbot/carbon/src/Carbon/Lang/csb.php new file mode 100644 index 000000000..a35d2815f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/csb.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/csb_PL.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php b/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php new file mode 100644 index 000000000..25e0ca89b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - csb_PL locale Michal Ostrowski bug-glibc-locales@gnu.org + */ +return [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'MMMM DD, YYYY', + 'LLL' => 'DD MMM HH:mm', + 'LLLL' => 'MMMM DD, YYYY HH:mm', + ], + 'months' => ['stëcznika', 'gromicznika', 'strëmiannika', 'łżëkwiata', 'maja', 'czerwińca', 'lëpińca', 'zélnika', 'séwnika', 'rujana', 'lëstopadnika', 'gòdnika'], + 'months_short' => ['stë', 'gro', 'str', 'łżë', 'maj', 'cze', 'lëp', 'zél', 'séw', 'ruj', 'lës', 'gòd'], + 'weekdays' => ['niedzela', 'pòniedzôłk', 'wtórk', 'strzoda', 'czwiôrtk', 'piątk', 'sobòta'], + 'weekdays_short' => ['nie', 'pòn', 'wtó', 'str', 'czw', 'pią', 'sob'], + 'weekdays_min' => ['nie', 'pòn', 'wtó', 'str', 'czw', 'pią', 'sob'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' a téż '], + 'two_words_connector' => ' a téż ', + 'year' => ':count rok', + 'month' => ':count miesiąc', + 'week' => ':count tidzéń', + 'day' => ':count dzéń', + 'hour' => ':count gòdzëna', + 'minute' => ':count minuta', + 'second' => ':count sekunda', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cu.php b/vendor/nesbot/carbon/src/Carbon/Lang/cu.php new file mode 100644 index 000000000..d6d131286 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cu.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'], + 'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D HH:mm', + 'LLLL' => 'YYYY MMMM D, dddd HH:mm', + ], + + 'year' => ':count лѣто', + 'y' => ':count лѣто', + 'a_year' => ':count лѣто', + + 'month' => ':count мѣсѧць', + 'm' => ':count мѣсѧць', + 'a_month' => ':count мѣсѧць', + + 'week' => ':count сєдмица', + 'w' => ':count сєдмица', + 'a_week' => ':count сєдмица', + + 'day' => ':count дьнь', + 'd' => ':count дьнь', + 'a_day' => ':count дьнь', + + 'hour' => ':count година', + 'h' => ':count година', + 'a_hour' => ':count година', + + 'minute' => ':count малъ', // less reliable + 'min' => ':count малъ', // less reliable + 'a_minute' => ':count малъ', // less reliable + + 'second' => ':count въторъ', + 's' => ':count въторъ', + 'a_second' => ':count въторъ', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cv.php b/vendor/nesbot/carbon/src/Carbon/Lang/cv.php new file mode 100644 index 000000000..8aeb73aa8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cv.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - JD Isaacks + */ +return [ + 'year' => ':count ҫул', + 'a_year' => '{1}пӗр ҫул|:count ҫул', + 'month' => ':count уйӑх', + 'a_month' => '{1}пӗр уйӑх|:count уйӑх', + 'week' => ':count эрне', + 'a_week' => '{1}пӗр эрне|:count эрне', + 'day' => ':count кун', + 'a_day' => '{1}пӗр кун|:count кун', + 'hour' => ':count сехет', + 'a_hour' => '{1}пӗр сехет|:count сехет', + 'minute' => ':count минут', + 'a_minute' => '{1}пӗр минут|:count минут', + 'second' => ':count ҫеккунт', + 'a_second' => '{1}пӗр-ик ҫеккунт|:count ҫеккунт', + 'ago' => ':time каялла', + 'from_now' => function ($time) { + return $time.(preg_match('/сехет$/u', $time) ? 'рен' : (preg_match('/ҫул/u', $time) ? 'тан' : 'ран')); + }, + 'diff_yesterday' => 'Ӗнер', + 'diff_today' => 'Паян', + 'diff_tomorrow' => 'Ыран', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD-MM-YYYY', + 'LL' => 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + 'LLL' => 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + 'LLLL' => 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Паян] LT [сехетре]', + 'nextDay' => '[Ыран] LT [сехетре]', + 'nextWeek' => '[Ҫитес] dddd LT [сехетре]', + 'lastDay' => '[Ӗнер] LT [сехетре]', + 'lastWeek' => '[Иртнӗ] dddd LT [сехетре]', + 'sameElse' => 'L', + ], + 'ordinal' => ':number-мӗш', + 'months' => ['кӑрлач', 'нарӑс', 'пуш', 'ака', 'май', 'ҫӗртме', 'утӑ', 'ҫурла', 'авӑн', 'юпа', 'чӳк', 'раштав'], + 'months_short' => ['кӑр', 'нар', 'пуш', 'ака', 'май', 'ҫӗр', 'утӑ', 'ҫур', 'авн', 'юпа', 'чӳк', 'раш'], + 'weekdays' => ['вырсарникун', 'тунтикун', 'ытларикун', 'юнкун', 'кӗҫнерникун', 'эрнекун', 'шӑматкун'], + 'weekdays_short' => ['выр', 'тун', 'ытл', 'юн', 'кӗҫ', 'эрн', 'шӑм'], + 'weekdays_min' => ['вр', 'тн', 'ыт', 'юн', 'кҫ', 'эр', 'шм'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' тата '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cv_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/cv_RU.php new file mode 100644 index 000000000..197bd8d3f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cv_RU.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/cv.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cy.php b/vendor/nesbot/carbon/src/Carbon/Lang/cy.php new file mode 100644 index 000000000..119274f01 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cy.php @@ -0,0 +1,79 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - JD Isaacks + * - Daniel Monaghan + */ +return [ + 'year' => '{1}blwyddyn|]1,Inf[:count flynedd', + 'y' => ':countbl', + 'month' => '{1}mis|]1,Inf[:count mis', + 'm' => ':countmi', + 'week' => ':count wythnos', + 'w' => ':countw', + 'day' => '{1}diwrnod|]1,Inf[:count diwrnod', + 'd' => ':countd', + 'hour' => '{1}awr|]1,Inf[:count awr', + 'h' => ':counth', + 'minute' => '{1}munud|]1,Inf[:count munud', + 'min' => ':countm', + 'second' => '{1}ychydig eiliadau|]1,Inf[:count eiliad', + 's' => ':counts', + 'ago' => ':time yn ôl', + 'from_now' => 'mewn :time', + 'after' => ':time ar ôl', + 'before' => ':time o\'r blaen', + 'diff_now' => 'nawr', + 'diff_today' => 'Heddiw', + 'diff_today_regexp' => 'Heddiw(?:\\s+am)?', + 'diff_yesterday' => 'ddoe', + 'diff_yesterday_regexp' => 'Ddoe(?:\\s+am)?', + 'diff_tomorrow' => 'yfory', + 'diff_tomorrow_regexp' => 'Yfory(?:\\s+am)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Heddiw am] LT', + 'nextDay' => '[Yfory am] LT', + 'nextWeek' => 'dddd [am] LT', + 'lastDay' => '[Ddoe am] LT', + 'lastWeek' => 'dddd [diwethaf am] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + return $number.( + $number > 20 + ? (\in_array((int) $number, [40, 50, 60, 80, 100], true) ? 'fed' : 'ain') + : ([ + '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed + 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed', // 11eg to 20fed + ])[$number] ?? '' + ); + }, + 'months' => ['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], + 'months_short' => ['Ion', 'Chwe', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', 'Aws', 'Med', 'Hyd', 'Tach', 'Rhag'], + 'weekdays' => ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'], + 'weekdays_short' => ['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'], + 'weekdays_min' => ['Su', 'Ll', 'Ma', 'Me', 'Ia', 'Gw', 'Sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' a '], + 'meridiem' => ['yb', 'yh'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/cy_GB.php b/vendor/nesbot/carbon/src/Carbon/Lang/cy_GB.php new file mode 100644 index 000000000..2c8148d0f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/cy_GB.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/cy.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/da.php b/vendor/nesbot/carbon/src/Carbon/Lang/da.php new file mode 100644 index 000000000..322f91d5b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/da.php @@ -0,0 +1,81 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Rune Mønnike + * - François B + * - codenhagen + * - JD Isaacks + * - Jens Herlevsen + * - Ulrik McArdle (mcardle) + * - Frederik Sauer (FrittenKeeZ) + * - Janus Bahs Jacquet (kokoshneta) + */ +return [ + 'year' => ':count år|:count år', + 'a_year' => 'et år|:count år', + 'y' => ':count år|:count år', + 'month' => ':count måned|:count måneder', + 'a_month' => 'en måned|:count måneder', + 'm' => ':count mdr.', + 'week' => ':count uge|:count uger', + 'a_week' => 'en uge|:count uger', + 'w' => ':count u.', + 'day' => ':count dag|:count dage', + 'a_day' => ':count dag|:count dage', + 'd' => ':count d.', + 'hour' => ':count time|:count timer', + 'a_hour' => 'en time|:count timer', + 'h' => ':count t.', + 'minute' => ':count minut|:count minutter', + 'a_minute' => 'et minut|:count minutter', + 'min' => ':count min.', + 'second' => ':count sekund|:count sekunder', + 'a_second' => 'få sekunder|:count sekunder', + 's' => ':count s.', + 'ago' => 'for :time siden', + 'from_now' => 'om :time', + 'after' => ':time efter', + 'before' => ':time før', + 'diff_now' => 'nu', + 'diff_today' => 'i dag', + 'diff_today_regexp' => 'i dag(?:\\s+kl.)?', + 'diff_yesterday' => 'i går', + 'diff_yesterday_regexp' => 'i går(?:\\s+kl.)?', + 'diff_tomorrow' => 'i morgen', + 'diff_tomorrow_regexp' => 'i morgen(?:\\s+kl.)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY HH:mm', + 'LLLL' => 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[i dag kl.] LT', + 'nextDay' => '[i morgen kl.] LT', + 'nextWeek' => 'på dddd [kl.] LT', + 'lastDay' => '[i går kl.] LT', + 'lastWeek' => '[i] dddd[s kl.] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'], + 'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj.', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'], + 'weekdays' => ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'], + 'weekdays_short' => ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'], + 'weekdays_min' => ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' og '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/da_DK.php b/vendor/nesbot/carbon/src/Carbon/Lang/da_DK.php new file mode 100644 index 000000000..392c48415 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/da_DK.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/da.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/da_GL.php b/vendor/nesbot/carbon/src/Carbon/Lang/da_GL.php new file mode 100644 index 000000000..ea5698b90 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/da_GL.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/da.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + 'LL' => 'D. MMM YYYY', + 'LLL' => 'D. MMMM YYYY HH.mm', + 'LLLL' => 'dddd [den] D. MMMM YYYY HH.mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dav.php b/vendor/nesbot/carbon/src/Carbon/Lang/dav.php new file mode 100644 index 000000000..e95ec4bb2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dav.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Luma lwa K', 'luma lwa p'], + 'weekdays' => ['Ituku ja jumwa', 'Kuramuka jimweri', 'Kuramuka kawi', 'Kuramuka kadadu', 'Kuramuka kana', 'Kuramuka kasanu', 'Kifula nguwo'], + 'weekdays_short' => ['Jum', 'Jim', 'Kaw', 'Kad', 'Kan', 'Kas', 'Ngu'], + 'weekdays_min' => ['Jum', 'Jim', 'Kaw', 'Kad', 'Kan', 'Kas', 'Ngu'], + 'months' => ['Mori ghwa imbiri', 'Mori ghwa kawi', 'Mori ghwa kadadu', 'Mori ghwa kana', 'Mori ghwa kasanu', 'Mori ghwa karandadu', 'Mori ghwa mfungade', 'Mori ghwa wunyanya', 'Mori ghwa ikenda', 'Mori ghwa ikumi', 'Mori ghwa ikumi na imweri', 'Mori ghwa ikumi na iwi'], + 'months_short' => ['Imb', 'Kaw', 'Kad', 'Kan', 'Kas', 'Kar', 'Mfu', 'Wun', 'Ike', 'Iku', 'Imw', 'Iwi'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de.php b/vendor/nesbot/carbon/src/Carbon/Lang/de.php new file mode 100644 index 000000000..3b70750e4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de.php @@ -0,0 +1,117 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Michael Hohl + * - sheriffmarley + * - dennisoderwald + * - Timo + * - Karag2006 + * - Pete Scopes (pdscopes) + */ +return [ + 'year' => ':count Jahr|:count Jahre', + 'a_year' => 'ein Jahr|:count Jahre', + 'y' => ':count J.', + 'month' => ':count Monat|:count Monate', + 'a_month' => 'ein Monat|:count Monate', + 'm' => ':count Mon.', + 'week' => ':count Woche|:count Wochen', + 'a_week' => 'eine Woche|:count Wochen', + 'w' => ':count Wo.', + 'day' => ':count Tag|:count Tage', + 'a_day' => 'ein Tag|:count Tage', + 'd' => ':count Tg.', + 'hour' => ':count Stunde|:count Stunden', + 'a_hour' => 'eine Stunde|:count Stunden', + 'h' => ':count Std.', + 'minute' => ':count Minute|:count Minuten', + 'a_minute' => 'eine Minute|:count Minuten', + 'min' => ':count Min.', + 'second' => ':count Sekunde|:count Sekunden', + 'a_second' => 'ein paar Sekunden|:count Sekunden', + 's' => ':count Sek.', + 'millisecond' => ':count Millisekunde|:count Millisekunden', + 'a_millisecond' => 'eine Millisekunde|:count Millisekunden', + 'ms' => ':countms', + 'microsecond' => ':count Mikrosekunde|:count Mikrosekunden', + 'a_microsecond' => 'eine Mikrosekunde|:count Mikrosekunden', + 'µs' => ':countµs', + 'ago' => 'vor :time', + 'from_now' => 'in :time', + 'after' => ':time später', + 'before' => ':time zuvor', + + 'year_from_now' => ':count Jahr|:count Jahren', + 'month_from_now' => ':count Monat|:count Monaten', + 'week_from_now' => ':count Woche|:count Wochen', + 'day_from_now' => ':count Tag|:count Tagen', + 'year_ago' => ':count Jahr|:count Jahren', + 'month_ago' => ':count Monat|:count Monaten', + 'week_ago' => ':count Woche|:count Wochen', + 'day_ago' => ':count Tag|:count Tagen', + 'a_year_from_now' => 'ein Jahr|:count Jahren', + 'a_month_from_now' => 'ein Monat|:count Monaten', + 'a_week_from_now' => 'eine Woche|:count Wochen', + 'a_day_from_now' => 'ein Tag|:count Tagen', + 'a_year_ago' => 'ein Jahr|:count Jahren', + 'a_month_ago' => 'ein Monat|:count Monaten', + 'a_week_ago' => 'eine Woche|:count Wochen', + 'a_day_ago' => 'ein Tag|:count Tagen', + + 'diff_now' => 'Gerade eben', + 'diff_today' => 'heute', + 'diff_today_regexp' => 'heute(?:\\s+um)?', + 'diff_yesterday' => 'Gestern', + 'diff_yesterday_regexp' => 'gestern(?:\\s+um)?', + 'diff_tomorrow' => 'Morgen', + 'diff_tomorrow_regexp' => 'morgen(?:\\s+um)?', + 'diff_before_yesterday' => 'Vorgestern', + 'diff_after_tomorrow' => 'Übermorgen', + + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D. MMMM YYYY HH:mm', + ], + + 'calendar' => [ + 'sameDay' => '[heute um] LT [Uhr]', + 'nextDay' => '[morgen um] LT [Uhr]', + 'nextWeek' => 'dddd [um] LT [Uhr]', + 'lastDay' => '[gestern um] LT [Uhr]', + 'lastWeek' => '[letzten] dddd [um] LT [Uhr]', + 'sameElse' => 'L', + ], + + 'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'weekdays' => ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], + 'weekdays_short' => ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'], + 'weekdays_min' => ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], + 'ordinal' => ':number.', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' und '], + 'ordinal_words' => [ + 'of' => 'im', + 'first' => 'erster', + 'second' => 'zweiter', + 'third' => 'dritter', + 'fourth' => 'vierten', + 'fifth' => 'fünfter', + 'last' => 'letzten', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php new file mode 100644 index 000000000..a2ea4c086 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - sheriffmarley + * - Timo + * - Michael Hohl + * - Namoshek + * - Bernhard Baumrock (BernhardBaumrock) + */ +return array_replace_recursive(require __DIR__.'/de.php', [ + 'months' => [ + 0 => 'Jänner', + ], + 'months_short' => [ + 0 => 'Jän', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php new file mode 100644 index 000000000..8ed8dc62d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/de.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-DD', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_CH.php new file mode 100644 index 000000000..a869ab489 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_CH.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - sheriffmarley + * - Timo + * - Michael Hohl + */ +return array_replace_recursive(require __DIR__.'/de.php', [ + 'weekdays_short' => ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php new file mode 100644 index 000000000..fb1209d21 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org + */ +return require __DIR__.'/de.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php new file mode 100644 index 000000000..604a85682 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Matthias Dieter Wallno:fer libc-locales@sourceware.org + */ +return require __DIR__.'/de.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_LI.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_LI.php new file mode 100644 index 000000000..03e606a6d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_LI.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/de.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php b/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php new file mode 100644 index 000000000..8ed8dc62d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/de.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-DD', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dje.php b/vendor/nesbot/carbon/src/Carbon/Lang/dje.php new file mode 100644 index 000000000..74b7ac12a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dje.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Subbaahi', 'Zaarikay b'], + 'weekdays' => ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamisi', 'Alzuma', 'Asibti'], + 'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], + 'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], + 'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], + 'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + 'year' => ':count hari', // less reliable + 'y' => ':count hari', // less reliable + 'a_year' => ':count hari', // less reliable + + 'week' => ':count alzuma', // less reliable + 'w' => ':count alzuma', // less reliable + 'a_week' => ':count alzuma', // less reliable + + 'second' => ':count atinni', // less reliable + 's' => ':count atinni', // less reliable + 'a_second' => ':count atinni', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/doi.php b/vendor/nesbot/carbon/src/Carbon/Lang/doi.php new file mode 100644 index 000000000..cb679c587 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/doi.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/doi_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php new file mode 100644 index 000000000..d35972142 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat Pune libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['जनवरी', 'फरवरी', 'मार्च', 'एप्रैल', 'मेई', 'जून', 'जूलै', 'अगस्त', 'सितंबर', 'अक्तूबर', 'नवंबर', 'दिसंबर'], + 'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'एप्रैल', 'मेई', 'जून', 'जूलै', 'अगस्त', 'सितंबर', 'अक्तूबर', 'नवंबर', 'दिसंबर'], + 'weekdays' => ['ऐतबार', 'सोमबार', 'मंगलबर', 'बुधबार', 'बीरबार', 'शुक्करबार', 'श्नीचरबार'], + 'weekdays_short' => ['ऐत', 'सोम', 'मंगल', 'बुध', 'बीर', 'शुक्कर', 'श्नीचर'], + 'weekdays_min' => ['ऐत', 'सोम', 'मंगल', 'बुध', 'बीर', 'शुक्कर', 'श्नीचर'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['सञं', 'सबेर'], + + 'second' => ':count सङार', // less reliable + 's' => ':count सङार', // less reliable + 'a_second' => ':count सङार', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php b/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php new file mode 100644 index 000000000..1d214d56e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/dsb_DE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php new file mode 100644 index 000000000..1b941870e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Information from Michael Wolf bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'DD. MMMM YYYY', + 'LLL' => 'DD. MMMM, HH:mm [góź.]', + 'LLLL' => 'dddd, DD. MMMM YYYY, HH:mm [góź.]', + ], + 'months' => ['januara', 'februara', 'měrca', 'apryla', 'maja', 'junija', 'julija', 'awgusta', 'septembra', 'oktobra', 'nowembra', 'decembra'], + 'months_short' => ['Jan', 'Feb', 'Měr', 'Apr', 'Maj', 'Jun', 'Jul', 'Awg', 'Sep', 'Okt', 'Now', 'Dec'], + 'weekdays' => ['Njeźela', 'Pónjeźele', 'Wałtora', 'Srjoda', 'Stwórtk', 'Pětk', 'Sobota'], + 'weekdays_short' => ['Nj', 'Pó', 'Wa', 'Sr', 'St', 'Pě', 'So'], + 'weekdays_min' => ['Nj', 'Pó', 'Wa', 'Sr', 'St', 'Pě', 'So'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count lěto', + 'y' => ':count lěto', + 'a_year' => ':count lěto', + + 'month' => ':count mjasec', + 'm' => ':count mjasec', + 'a_month' => ':count mjasec', + + 'week' => ':count tyźeń', + 'w' => ':count tyźeń', + 'a_week' => ':count tyźeń', + + 'day' => ':count źeń', + 'd' => ':count źeń', + 'a_day' => ':count źeń', + + 'hour' => ':count góźina', + 'h' => ':count góźina', + 'a_hour' => ':count góźina', + + 'minute' => ':count minuta', + 'min' => ':count minuta', + 'a_minute' => ':count minuta', + + 'second' => ':count drugi', + 's' => ':count drugi', + 'a_second' => ':count drugi', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dua.php b/vendor/nesbot/carbon/src/Carbon/Lang/dua.php new file mode 100644 index 000000000..55e5c7c35 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dua.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['idiɓa', 'ebyámu'], + 'weekdays' => ['éti', 'mɔ́sú', 'kwasú', 'mukɔ́sú', 'ŋgisú', 'ɗónɛsú', 'esaɓasú'], + 'weekdays_short' => ['ét', 'mɔ́s', 'kwa', 'muk', 'ŋgi', 'ɗón', 'esa'], + 'weekdays_min' => ['ét', 'mɔ́s', 'kwa', 'muk', 'ŋgi', 'ɗón', 'esa'], + 'months' => ['dimɔ́di', 'ŋgɔndɛ', 'sɔŋɛ', 'diɓáɓá', 'emiasele', 'esɔpɛsɔpɛ', 'madiɓɛ́díɓɛ́', 'diŋgindi', 'nyɛtɛki', 'mayésɛ́', 'tiníní', 'eláŋgɛ́'], + 'months_short' => ['di', 'ŋgɔn', 'sɔŋ', 'diɓ', 'emi', 'esɔ', 'mad', 'diŋ', 'nyɛt', 'may', 'tin', 'elá'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + 'year' => ':count ma mbu', // less reliable + 'y' => ':count ma mbu', // less reliable + 'a_year' => ':count ma mbu', // less reliable + + 'month' => ':count myo̱di', // less reliable + 'm' => ':count myo̱di', // less reliable + 'a_month' => ':count myo̱di', // less reliable + + 'week' => ':count woki', // less reliable + 'w' => ':count woki', // less reliable + 'a_week' => ':count woki', // less reliable + + 'day' => ':count buńa', // less reliable + 'd' => ':count buńa', // less reliable + 'a_day' => ':count buńa', // less reliable + + 'hour' => ':count ma awa', // less reliable + 'h' => ':count ma awa', // less reliable + 'a_hour' => ':count ma awa', // less reliable + + 'minute' => ':count minuti', // less reliable + 'min' => ':count minuti', // less reliable + 'a_minute' => ':count minuti', // less reliable + + 'second' => ':count maba', // less reliable + 's' => ':count maba', // less reliable + 'a_second' => ':count maba', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dv.php b/vendor/nesbot/carbon/src/Carbon/Lang/dv.php new file mode 100644 index 000000000..4b8d7e1a4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dv.php @@ -0,0 +1,89 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +$months = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', +]; + +$weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', +]; + +/* + * Authors: + * - Josh Soref + * - Jawish Hameed + */ +return [ + 'year' => ':count '.'އަހަރު', + 'a_year' => '{1}'.'އަހަރެއް'.'|:count '.'އަހަރު', + 'month' => ':count '.'މަސް', + 'a_month' => '{1}'.'މަހެއް'.'|:count '.'މަސް', + 'week' => ':count '.'ހަފްތާ', + 'a_week' => '{1}'.'ސިކުންތުކޮޅެއް'.'|:count '.'ހަފްތާ', + 'day' => ':count '.'ދުވަސް', + 'a_day' => '{1}'.'ދުވަހެއް'.'|:count '.'ދުވަސް', + 'hour' => ':count '.'ގަޑިއިރު', + 'a_hour' => '{1}'.'ގަޑިއިރެއް'.'|:count '.'ގަޑިއިރު', + 'minute' => ':count '.'މިނިޓު', + 'a_minute' => '{1}'.'މިނިޓެއް'.'|:count '.'މިނިޓު', + 'second' => ':count '.'ސިކުންތު', + 'a_second' => '{1}'.'ސިކުންތުކޮޅެއް'.'|:count '.'ސިކުންތު', + 'ago' => 'ކުރިން :time', + 'from_now' => 'ތެރޭގައި :time', + 'after' => ':time ފަހުން', + 'before' => ':time ކުރި', + 'diff_yesterday' => 'އިއްޔެ', + 'diff_today' => 'މިއަދު', + 'diff_tomorrow' => 'މާދަމާ', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[މިއަދު] LT', + 'nextDay' => '[މާދަމާ] LT', + 'nextWeek' => 'dddd LT', + 'lastDay' => '[އިއްޔެ] LT', + 'lastWeek' => '[ފާއިތުވި] dddd LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['މކ', 'މފ'], + 'months' => $months, + 'months_short' => $months, + 'weekdays' => $weekdays, + 'weekdays_short' => $weekdays, + 'weekdays_min' => ['އާދި', 'ހޯމަ', 'އަން', 'ބުދަ', 'ބުރާ', 'ހުކު', 'ހޮނި'], + 'list' => [', ', ' އަދި '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dv_MV.php b/vendor/nesbot/carbon/src/Carbon/Lang/dv_MV.php new file mode 100644 index 000000000..2668d5b02 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dv_MV.php @@ -0,0 +1,87 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ahmed Ali + */ + +$months = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', +]; + +$weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', +]; + +return [ + 'year' => '{0}އަހަރެއް|[1,Inf]:count އަހަރު', + 'y' => '{0}އަހަރެއް|[1,Inf]:count އަހަރު', + 'month' => '{0}މައްސަރެއް|[1,Inf]:count މަސް', + 'm' => '{0}މައްސަރެއް|[1,Inf]:count މަސް', + 'week' => '{0}ހަފްތާއެއް|[1,Inf]:count ހަފްތާ', + 'w' => '{0}ހަފްތާއެއް|[1,Inf]:count ހަފްތާ', + 'day' => '{0}ދުވަސް|[1,Inf]:count ދުވަސް', + 'd' => '{0}ދުވަސް|[1,Inf]:count ދުވަސް', + 'hour' => '{0}ގަޑިއިރެއް|[1,Inf]:count ގަޑި', + 'h' => '{0}ގަޑިއިރެއް|[1,Inf]:count ގަޑި', + 'minute' => '{0}މިނެޓެއް|[1,Inf]:count މިނެޓް', + 'min' => '{0}މިނެޓެއް|[1,Inf]:count މިނެޓް', + 'second' => '{0}ސިކުންތެއް|[1,Inf]:count ސިކުންތު', + 's' => '{0}ސިކުންތެއް|[1,Inf]:count ސިކުންތު', + 'ago' => ':time ކުރިން', + 'from_now' => ':time ފަހުން', + 'after' => ':time ފަހުން', + 'before' => ':time ކުރި', + 'diff_yesterday' => 'އިއްޔެ', + 'diff_today' => 'މިއަދު', + 'diff_tomorrow' => 'މާދަމާ', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[މިއަދު] LT', + 'nextDay' => '[މާދަމާ] LT', + 'nextWeek' => 'dddd LT', + 'lastDay' => '[އިއްޔެ] LT', + 'lastWeek' => '[ފާއިތުވި] dddd LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['މކ', 'މފ'], + 'months' => $months, + 'months_short' => $months, + 'weekdays' => $weekdays, + 'weekdays_short' => $weekdays, + 'weekdays_min' => ['އާދި', 'ހޯމަ', 'އަން', 'ބުދަ', 'ބުރާ', 'ހުކު', 'ހޮނި'], + 'list' => [', ', ' އަދި '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dyo.php b/vendor/nesbot/carbon/src/Carbon/Lang/dyo.php new file mode 100644 index 000000000..33082e672 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dyo.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['Dimas', 'Teneŋ', 'Talata', 'Alarbay', 'Aramisay', 'Arjuma', 'Sibiti'], + 'weekdays_short' => ['Dim', 'Ten', 'Tal', 'Ala', 'Ara', 'Arj', 'Sib'], + 'weekdays_min' => ['Dim', 'Ten', 'Tal', 'Ala', 'Ara', 'Arj', 'Sib'], + 'months' => ['Sanvie', 'Fébirie', 'Mars', 'Aburil', 'Mee', 'Sueŋ', 'Súuyee', 'Ut', 'Settembar', 'Oktobar', 'Novembar', 'Disambar'], + 'months_short' => ['Sa', 'Fe', 'Ma', 'Ab', 'Me', 'Su', 'Sú', 'Ut', 'Se', 'Ok', 'No', 'De'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dz.php b/vendor/nesbot/carbon/src/Carbon/Lang/dz.php new file mode 100644 index 000000000..cc17e69e8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dz.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/dz_BT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php b/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php new file mode 100644 index 000000000..bfbcaf468 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Sherubtse College bug-glibc@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'པསྱི་ལོYYཟལMMཚེསDD', + ], + 'months' => ['ཟླ་བ་དང་པ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་ཕ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུནཔ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'], + 'months_short' => ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', 'ཟླ་༡༢'], + 'weekdays' => ['གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་ཕ་', 'གཟའ་པུར་བུ་', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་ཕ་', 'གཟའ་ཉི་མ་'], + 'weekdays_short' => ['ཟླ་', 'མིར་', 'ལྷག་', 'པུར་', 'སངས་', 'སྤེན་', 'ཉི་'], + 'weekdays_min' => ['ཟླ་', 'མིར་', 'ལྷག་', 'པུར་', 'སངས་', 'སྤེན་', 'ཉི་'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ངས་ཆ', 'ཕྱི་ཆ'], + + 'year' => ':count ཆརཔ', // less reliable + 'y' => ':count ཆརཔ', // less reliable + 'a_year' => ':count ཆརཔ', // less reliable + + 'month' => ':count ཟླ་བ', // less reliable + 'm' => ':count ཟླ་བ', // less reliable + 'a_month' => ':count ཟླ་བ', // less reliable + + 'day' => ':count ཉི', // less reliable + 'd' => ':count ཉི', // less reliable + 'a_day' => ':count ཉི', // less reliable + + 'second' => ':count ཆ', // less reliable + 's' => ':count ཆ', // less reliable + 'a_second' => ':count ཆ', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ebu.php b/vendor/nesbot/carbon/src/Carbon/Lang/ebu.php new file mode 100644 index 000000000..f60bc6f2f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ebu.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['KI', 'UT'], + 'weekdays' => ['Kiumia', 'Njumatatu', 'Njumaine', 'Njumatano', 'Aramithi', 'Njumaa', 'NJumamothii'], + 'weekdays_short' => ['Kma', 'Tat', 'Ine', 'Tan', 'Arm', 'Maa', 'NMM'], + 'weekdays_min' => ['Kma', 'Tat', 'Ine', 'Tan', 'Arm', 'Maa', 'NMM'], + 'months' => ['Mweri wa mbere', 'Mweri wa kaĩri', 'Mweri wa kathatũ', 'Mweri wa kana', 'Mweri wa gatano', 'Mweri wa gatantatũ', 'Mweri wa mũgwanja', 'Mweri wa kanana', 'Mweri wa kenda', 'Mweri wa ikũmi', 'Mweri wa ikũmi na ũmwe', 'Mweri wa ikũmi na Kaĩrĩ'], + 'months_short' => ['Mbe', 'Kai', 'Kat', 'Kan', 'Gat', 'Gan', 'Mug', 'Knn', 'Ken', 'Iku', 'Imw', 'Igi'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ee.php b/vendor/nesbot/carbon/src/Carbon/Lang/ee.php new file mode 100644 index 000000000..f96c5c9dc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ee.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['ŋ', 'ɣ'], + 'weekdays' => ['kɔsiɖa', 'dzoɖa', 'blaɖa', 'kuɖa', 'yawoɖa', 'fiɖa', 'memleɖa'], + 'weekdays_short' => ['kɔs', 'dzo', 'bla', 'kuɖ', 'yaw', 'fiɖ', 'mem'], + 'weekdays_min' => ['kɔs', 'dzo', 'bla', 'kuɖ', 'yaw', 'fiɖ', 'mem'], + 'months' => ['dzove', 'dzodze', 'tedoxe', 'afɔfĩe', 'dama', 'masa', 'siamlɔm', 'deasiamime', 'anyɔnyɔ', 'kele', 'adeɛmekpɔxe', 'dzome'], + 'months_short' => ['dzv', 'dzd', 'ted', 'afɔ', 'dam', 'mas', 'sia', 'dea', 'any', 'kel', 'ade', 'dzm'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'a [ga] h:mm', + 'LTS' => 'a [ga] h:mm:ss', + 'L' => 'M/D/YYYY', + 'LL' => 'MMM D [lia], YYYY', + 'LLL' => 'a [ga] h:mm MMMM D [lia] YYYY', + 'LLLL' => 'a [ga] h:mm dddd, MMMM D [lia] YYYY', + ], + + 'year' => 'ƒe :count', + 'y' => 'ƒe :count', + 'a_year' => 'ƒe :count', + + 'month' => 'ɣleti :count', + 'm' => 'ɣleti :count', + 'a_month' => 'ɣleti :count', + + 'week' => 'kwasiɖa :count', + 'w' => 'kwasiɖa :count', + 'a_week' => 'kwasiɖa :count', + + 'day' => 'ŋkeke :count', + 'd' => 'ŋkeke :count', + 'a_day' => 'ŋkeke :count', + + 'hour' => 'gaƒoƒo :count', + 'h' => 'gaƒoƒo :count', + 'a_hour' => 'gaƒoƒo :count', + + 'minute' => 'miniti :count', // less reliable + 'min' => 'miniti :count', // less reliable + 'a_minute' => 'miniti :count', // less reliable + + 'second' => 'sɛkɛnd :count', // less reliable + 's' => 'sɛkɛnd :count', // less reliable + 'a_second' => 'sɛkɛnd :count', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ee_TG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ee_TG.php new file mode 100644 index 000000000..7a8b36c9b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ee_TG.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ee.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'LLL' => 'HH:mm MMMM D [lia] YYYY', + 'LLLL' => 'HH:mm dddd, MMMM D [lia] YYYY', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/el.php b/vendor/nesbot/carbon/src/Carbon/Lang/el.php new file mode 100644 index 000000000..7c40f9c12 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/el.php @@ -0,0 +1,93 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Alessandro Di Felice + * - François B + * - Tim Fish + * - Gabriel Monteagudo + * - JD Isaacks + * - yiannisdesp + * - Ilias Kasmeridis (iliaskasm) + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count χρόνος|:count χρόνια', + 'a_year' => 'ένας χρόνος|:count χρόνια', + 'y' => ':count χρ.', + 'month' => ':count μήνας|:count μήνες', + 'a_month' => 'ένας μήνας|:count μήνες', + 'm' => ':count μήν.', + 'week' => ':count εβδομάδα|:count εβδομάδες', + 'a_week' => 'μια εβδομάδα|:count εβδομάδες', + 'w' => ':count εβδ.', + 'day' => ':count μέρα|:count μέρες', + 'a_day' => 'μία μέρα|:count μέρες', + 'd' => ':count μέρ.', + 'hour' => ':count ώρα|:count ώρες', + 'a_hour' => 'μία ώρα|:count ώρες', + 'h' => ':count ώρα|:count ώρες', + 'minute' => ':count λεπτό|:count λεπτά', + 'a_minute' => 'ένα λεπτό|:count λεπτά', + 'min' => ':count λεπ.', + 'second' => ':count δευτερόλεπτο|:count δευτερόλεπτα', + 'a_second' => 'λίγα δευτερόλεπτα|:count δευτερόλεπτα', + 's' => ':count δευ.', + 'ago' => 'πριν :time', + 'from_now' => 'σε :time', + 'after' => ':time μετά', + 'before' => ':time πριν', + 'diff_now' => 'τώρα', + 'diff_today' => 'Σήμερα', + 'diff_today_regexp' => 'Σήμερα(?:\\s+{})?', + 'diff_yesterday' => 'χθες', + 'diff_yesterday_regexp' => 'Χθες(?:\\s+{})?', + 'diff_tomorrow' => 'αύριο', + 'diff_tomorrow_regexp' => 'Αύριο(?:\\s+{})?', + 'formats' => [ + 'LT' => 'h:mm A', + 'LTS' => 'h:mm:ss A', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm A', + 'LLLL' => 'dddd, D MMMM YYYY h:mm A', + ], + 'calendar' => [ + 'sameDay' => '[Σήμερα {}] LT', + 'nextDay' => '[Αύριο {}] LT', + 'nextWeek' => 'dddd [{}] LT', + 'lastDay' => '[Χθες {}] LT', + 'lastWeek' => function (CarbonInterface $current) { + switch ($current->dayOfWeek) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':numberη', + 'meridiem' => ['ΠΜ', 'ΜΜ', 'πμ', 'μμ'], + 'months' => ['Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', 'Νοεμβρίου', 'Δεκεμβρίου'], + 'months_standalone' => ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'], + 'months_regexp' => '/(D[oD]?[\s,]+MMMM|L{2,4}|l{2,4})/', + 'months_short' => ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν', 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'], + 'weekdays' => ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], + 'weekdays_short' => ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'], + 'weekdays_min' => ['Κυ', 'Δε', 'Τρ', 'Τε', 'Πε', 'Πα', 'Σα'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' και '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php b/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php new file mode 100644 index 000000000..8a693c15d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Greek Debian Translation Team bug-glibc@gnu.org + */ +return array_replace_recursive(require __DIR__.'/el.php', [ + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php b/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php new file mode 100644 index 000000000..df196af94 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/el.php', [ + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en.php b/vendor/nesbot/carbon/src/Carbon/Lang/en.php new file mode 100644 index 000000000..f81f617e3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en.php @@ -0,0 +1,87 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Milos Sakovic + * - Paul + * - Pete Scopes (pdscopes) + */ +return [ + /* + * {1}, {0} and ]1,Inf[ are not needed as it's the default for English pluralization. + * But as some languages are using en.php as a fallback, it's better to specify it + * explicitly so those languages also fallback to English pluralization when a unit + * is missing. + */ + 'year' => '{1}:count year|{0}:count years|]1,Inf[:count years', + 'a_year' => '{1}a year|{0}:count years|]1,Inf[:count years', + 'y' => '{1}:countyr|{0}:countyrs|]1,Inf[:countyrs', + 'month' => '{1}:count month|{0}:count months|]1,Inf[:count months', + 'a_month' => '{1}a month|{0}:count months|]1,Inf[:count months', + 'm' => '{1}:countmo|{0}:countmos|]1,Inf[:countmos', + 'week' => '{1}:count week|{0}:count weeks|]1,Inf[:count weeks', + 'a_week' => '{1}a week|{0}:count weeks|]1,Inf[:count weeks', + 'w' => ':countw', + 'day' => '{1}:count day|{0}:count days|]1,Inf[:count days', + 'a_day' => '{1}a day|{0}:count days|]1,Inf[:count days', + 'd' => ':countd', + 'hour' => '{1}:count hour|{0}:count hours|]1,Inf[:count hours', + 'a_hour' => '{1}an hour|{0}:count hours|]1,Inf[:count hours', + 'h' => ':counth', + 'minute' => '{1}:count minute|{0}:count minutes|]1,Inf[:count minutes', + 'a_minute' => '{1}a minute|{0}:count minutes|]1,Inf[:count minutes', + 'min' => ':countm', + 'second' => '{1}:count second|{0}:count seconds|]1,Inf[:count seconds', + 'a_second' => '{1}a few seconds|{0}:count seconds|]1,Inf[:count seconds', + 's' => ':counts', + 'millisecond' => '{1}:count millisecond|{0}:count milliseconds|]1,Inf[:count milliseconds', + 'a_millisecond' => '{1}a millisecond|{0}:count milliseconds|]1,Inf[:count milliseconds', + 'ms' => ':countms', + 'microsecond' => '{1}:count microsecond|{0}:count microseconds|]1,Inf[:count microseconds', + 'a_microsecond' => '{1}a microsecond|{0}:count microseconds|]1,Inf[:count microseconds', + 'µs' => ':countµs', + 'ago' => ':time ago', + 'from_now' => ':time from now', + 'after' => ':time after', + 'before' => ':time before', + 'diff_now' => 'just now', + 'diff_today' => 'today', + 'diff_yesterday' => 'yesterday', + 'diff_tomorrow' => 'tomorrow', + 'diff_before_yesterday' => 'before yesterday', + 'diff_after_tomorrow' => 'after tomorrow', + 'period_recurrences' => '{1}once|{0}:count times|]1,Inf[:count times', + 'period_interval' => 'every :interval', + 'period_start_date' => 'from :date', + 'period_end_date' => 'to :date', + 'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'weekdays' => ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + 'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + 'weekdays_min' => ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + 'ordinal' => function ($number) { + $lastDigit = $number % 10; + + return $number.( + ((int) ($number % 100 / 10) === 1) ? 'th' : ( + ($lastDigit === 1) ? 'st' : ( + ($lastDigit === 2) ? 'nd' : ( + ($lastDigit === 3) ? 'rd' : 'th' + ) + ) + ) + ); + }, + 'list' => [', ', ' and '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_001.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_001.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_001.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_150.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_150.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_150.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php new file mode 100644 index 000000000..2c1c64f06 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_AI.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_AI.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_AI.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_AS.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_AS.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_AS.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_AT.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_AT.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_AT.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php new file mode 100644 index 000000000..f16bd4f54 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kunal Marwaha + * - François B + * - Mayank Badola + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'from_now' => 'in :time', + 'formats' => [ + 'LT' => 'h:mm A', + 'LTS' => 'h:mm:ss A', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm A', + 'LLLL' => 'dddd, D MMMM YYYY h:mm A', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_BB.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_BB.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_BB.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_BE.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_BE.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_BI.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_BI.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_BI.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_BM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_BM.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_BM.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_BS.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_BS.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_BS.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_BW.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_BW.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_BW.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_BZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_BZ.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_BZ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php new file mode 100644 index 000000000..e65608688 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Zhan Tong Zhang + * - Mayank Badola + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'from_now' => 'in :time', + 'formats' => [ + 'LT' => 'h:mm A', + 'LTS' => 'h:mm:ss A', + 'L' => 'YYYY-MM-DD', + 'LL' => 'MMMM D, YYYY', + 'LLL' => 'MMMM D, YYYY h:mm A', + 'LLLL' => 'dddd, MMMM D, YYYY h:mm A', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CC.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CC.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CC.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php new file mode 100644 index 000000000..10d9cd8f1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CK.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CK.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CK.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CM.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CM.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CX.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CX.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CX.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php new file mode 100644 index 000000000..a44c3508e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - NehaGautam + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'from_now' => 'in :time', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD-MM-YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_DE.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_DE.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_DG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_DG.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_DG.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php new file mode 100644 index 000000000..9e8a8c68b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Danish Standards Association bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-DD', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_DM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_DM.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_DM.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_ER.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_ER.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_FI.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_FI.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_FI.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_FJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_FJ.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_FJ.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_FK.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_FK.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_FK.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_FM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_FM.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_FM.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php new file mode 100644 index 000000000..67d9fd649 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Mayank Badola + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'from_now' => 'in :time', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GD.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GD.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GD.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GG.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GG.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GH.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GH.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GH.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GI.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GI.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GI.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GM.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GM.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GU.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GU.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GU.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_GY.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_GY.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_GY.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php new file mode 100644 index 000000000..34aae989b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php new file mode 100644 index 000000000..c8d3c2fc9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Martin McWhorter + * - François B + * - Chris Cartlidge + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'from_now' => 'in :time', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD-MM-YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php new file mode 100644 index 000000000..e607924e7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Yoav Amit + * - François B + * - Mayank Badola + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'from_now' => 'in :time', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_IM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_IM.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_IM.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php new file mode 100644 index 000000000..00414e9ad --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YY', + 'LL' => 'MMMM DD, YYYY', + 'LLL' => 'DD MMM HH:mm', + 'LLLL' => 'MMMM DD, YYYY HH:mm', + ], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_IO.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_IO.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_IO.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_ISO.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_ISO.php new file mode 100644 index 000000000..11457b0c8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_ISO.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-dd', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D HH:mm', + 'LLLL' => 'dddd, YYYY MMMM DD HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_JE.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_JE.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_JE.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_JM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_JM.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_JM.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_KE.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_KE.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_KE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_KI.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_KI.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_KI.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_KN.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_KN.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_KN.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_KY.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_KY.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_KY.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_LC.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_LC.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_LC.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_LR.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_LR.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_LR.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_LS.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_LS.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_LS.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MG.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MG.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MH.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MH.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MH.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MO.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MO.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MP.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MP.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MP.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MS.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MS.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MS.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MT.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MT.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MT.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MU.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MU.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MU.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MW.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MW.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MW.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_MY.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_MY.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_MY.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_NA.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_NA.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_NA.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_NF.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_NF.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_NF.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_NG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_NG.php new file mode 100644 index 000000000..67bceaad7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_NG.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_NL.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_NL.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_NR.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_NR.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_NR.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_NU.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_NU.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_NU.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php new file mode 100644 index 000000000..6a206a0d0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Mayank Badola + * - Luke McGregor + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'from_now' => 'in :time', + 'formats' => [ + 'LT' => 'h:mm A', + 'LTS' => 'h:mm:ss A', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm A', + 'LLLL' => 'dddd, D MMMM YYYY h:mm A', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_PG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_PG.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_PG.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php new file mode 100644 index 000000000..34aae989b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_PK.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_PK.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_PK.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_PN.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_PN.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_PN.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_PR.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_PR.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_PR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_PW.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_PW.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_PW.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_RW.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_RW.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_RW.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SB.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SB.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SB.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SC.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SC.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SC.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SD.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SD.php new file mode 100644 index 000000000..c4e2557e9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SD.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 6, + 'weekend' => [5, 6], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SE.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SE.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SE.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SG.php new file mode 100644 index 000000000..5ee95241d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SG.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'from_now' => 'in :time', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SH.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SH.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SH.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SI.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SI.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SI.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SL.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SL.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SL.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SS.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SS.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SS.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SX.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SX.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SX.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_SZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_SZ.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_SZ.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_TC.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_TC.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_TC.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_TK.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_TK.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_TK.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_TO.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_TO.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_TO.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_TT.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_TT.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_TT.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_TV.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_TV.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_TV.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_TZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_TZ.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_TZ.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_UG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_UG.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_UG.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_UM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_UM.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_UM.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_US.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_US.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_US_Posix.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_US_Posix.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_US_Posix.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_VC.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_VC.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_VC.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_VG.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_VG.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_VG.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_VI.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_VI.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_VI.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_VU.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_VU.php new file mode 100644 index 000000000..e2dd81db5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_VU.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_WS.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_WS.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_WS.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php new file mode 100644 index 000000000..48ea9471c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YY', + 'LL' => 'MMMM DD, YYYY', + 'LLL' => 'DD MMM HH:mm', + 'LLLL' => 'MMMM DD, YYYY HH:mm', + ], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php new file mode 100644 index 000000000..d8a8cb598 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - ANLoc Martin Benjamin locales@africanlocalization.net + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/en_ZW.php b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZW.php new file mode 100644 index 000000000..f086dc632 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/en_ZW.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/en.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/eo.php b/vendor/nesbot/carbon/src/Carbon/Lang/eo.php new file mode 100644 index 000000000..7c2efba2d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/eo.php @@ -0,0 +1,77 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - Mia Nordentoft + * - JD Isaacks + */ +return [ + 'year' => ':count jaro|:count jaroj', + 'a_year' => 'jaro|:count jaroj', + 'y' => ':count j.', + 'month' => ':count monato|:count monatoj', + 'a_month' => 'monato|:count monatoj', + 'm' => ':count mo.', + 'week' => ':count semajno|:count semajnoj', + 'a_week' => 'semajno|:count semajnoj', + 'w' => ':count sem.', + 'day' => ':count tago|:count tagoj', + 'a_day' => 'tago|:count tagoj', + 'd' => ':count t.', + 'hour' => ':count horo|:count horoj', + 'a_hour' => 'horo|:count horoj', + 'h' => ':count h.', + 'minute' => ':count minuto|:count minutoj', + 'a_minute' => 'minuto|:count minutoj', + 'min' => ':count min.', + 'second' => ':count sekundo|:count sekundoj', + 'a_second' => 'sekundoj|:count sekundoj', + 's' => ':count sek.', + 'ago' => 'antaŭ :time', + 'from_now' => 'post :time', + 'after' => ':time poste', + 'before' => ':time antaŭe', + 'diff_yesterday' => 'Hieraŭ', + 'diff_yesterday_regexp' => 'Hieraŭ(?:\\s+je)?', + 'diff_today' => 'Hodiaŭ', + 'diff_today_regexp' => 'Hodiaŭ(?:\\s+je)?', + 'diff_tomorrow' => 'Morgaŭ', + 'diff_tomorrow_regexp' => 'Morgaŭ(?:\\s+je)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'D[-a de] MMMM, YYYY', + 'LLL' => 'D[-a de] MMMM, YYYY HH:mm', + 'LLLL' => 'dddd, [la] D[-a de] MMMM, YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Hodiaŭ je] LT', + 'nextDay' => '[Morgaŭ je] LT', + 'nextWeek' => 'dddd [je] LT', + 'lastDay' => '[Hieraŭ je] LT', + 'lastWeek' => '[pasinta] dddd [je] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':numbera', + 'meridiem' => ['a.t.m.', 'p.t.m.'], + 'months' => ['januaro', 'februaro', 'marto', 'aprilo', 'majo', 'junio', 'julio', 'aŭgusto', 'septembro', 'oktobro', 'novembro', 'decembro'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aŭg', 'sep', 'okt', 'nov', 'dec'], + 'weekdays' => ['dimanĉo', 'lundo', 'mardo', 'merkredo', 'ĵaŭdo', 'vendredo', 'sabato'], + 'weekdays_short' => ['dim', 'lun', 'mard', 'merk', 'ĵaŭ', 'ven', 'sab'], + 'weekdays_min' => ['di', 'lu', 'ma', 'me', 'ĵa', 've', 'sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' kaj '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es.php b/vendor/nesbot/carbon/src/Carbon/Lang/es.php new file mode 100644 index 000000000..1c4fcfd0b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es.php @@ -0,0 +1,121 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kunal Marwaha + * - kostas + * - François B + * - Tim Fish + * - Claire Coloma + * - Steven Heinrich + * - JD Isaacks + * - Raphael Amorim + * - Jorge Y. Castillo + * - Víctor Díaz + * - Diego + * - Sebastian Thierer + * - quinterocesar + * - Daniel Commesse Liévanos (danielcommesse) + * - Pete Scopes (pdscopes) + * - gam04 + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count año|:count años', + 'a_year' => 'un año|:count años', + 'y' => ':count año|:count años', + 'month' => ':count mes|:count meses', + 'a_month' => 'un mes|:count meses', + 'm' => ':count mes|:count meses', + 'week' => ':count semana|:count semanas', + 'a_week' => 'una semana|:count semanas', + 'w' => ':countsem', + 'day' => ':count día|:count días', + 'a_day' => 'un día|:count días', + 'd' => ':countd', + 'hour' => ':count hora|:count horas', + 'a_hour' => 'una hora|:count horas', + 'h' => ':counth', + 'minute' => ':count minuto|:count minutos', + 'a_minute' => 'un minuto|:count minutos', + 'min' => ':countm', + 'second' => ':count segundo|:count segundos', + 'a_second' => 'unos segundos|:count segundos', + 's' => ':counts', + 'millisecond' => ':count milisegundo|:count milisegundos', + 'a_millisecond' => 'un milisegundo|:count milisegundos', + 'ms' => ':countms', + 'microsecond' => ':count microsegundo|:count microsegundos', + 'a_microsecond' => 'un microsegundo|:count microsegundos', + 'µs' => ':countµs', + 'ago' => 'hace :time', + 'from_now' => 'en :time', + 'after' => ':time después', + 'before' => ':time antes', + 'diff_now' => 'ahora mismo', + 'diff_today' => 'hoy', + 'diff_today_regexp' => 'hoy(?:\\s+a)?(?:\\s+las)?', + 'diff_yesterday' => 'ayer', + 'diff_yesterday_regexp' => 'ayer(?:\\s+a)?(?:\\s+las)?', + 'diff_tomorrow' => 'mañana', + 'diff_tomorrow_regexp' => 'mañana(?:\\s+a)?(?:\\s+las)?', + 'diff_before_yesterday' => 'anteayer', + 'diff_after_tomorrow' => 'pasado mañana', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D [de] MMMM [de] YYYY', + 'LLL' => 'D [de] MMMM [de] YYYY H:mm', + 'LLLL' => 'dddd, D [de] MMMM [de] YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => function (CarbonInterface $current) { + return '[hoy a la'.($current->hour !== 1 ? 's' : '').'] LT'; + }, + 'nextDay' => function (CarbonInterface $current) { + return '[mañana a la'.($current->hour !== 1 ? 's' : '').'] LT'; + }, + 'nextWeek' => function (CarbonInterface $current) { + return 'dddd [a la'.($current->hour !== 1 ? 's' : '').'] LT'; + }, + 'lastDay' => function (CarbonInterface $current) { + return '[ayer a la'.($current->hour !== 1 ? 's' : '').'] LT'; + }, + 'lastWeek' => function (CarbonInterface $current) { + return '[el] dddd [pasado a la'.($current->hour !== 1 ? 's' : '').'] LT'; + }, + 'sameElse' => 'L', + ], + 'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'], + 'mmm_suffix' => '.', + 'ordinal' => ':numberº', + 'weekdays' => ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'], + 'weekdays_short' => ['dom.', 'lun.', 'mar.', 'mié.', 'jue.', 'vie.', 'sáb.'], + 'weekdays_min' => ['do', 'lu', 'ma', 'mi', 'ju', 'vi', 'sá'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' y '], + 'meridiem' => ['a. m.', 'p. m.'], + 'ordinal_words' => [ + 'of' => 'de', + 'first' => 'primer', + 'second' => 'segundo', + 'third' => 'tercer', + 'fourth' => 'cuarto', + 'fifth' => 'quinto', + 'last' => 'último', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php new file mode 100644 index 000000000..c9b8432ef --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_BR.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_BR.php new file mode 100644 index 000000000..378d0547c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_BR.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_BZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_BZ.php new file mode 100644 index 000000000..378d0547c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_BZ.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php new file mode 100644 index 000000000..553fc09f4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_CU.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_CU.php new file mode 100644 index 000000000..f02e1a66b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_CU.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php new file mode 100644 index 000000000..0f855bac4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - kostas + * - François B + * - Tim Fish + * - Chiel Robben + * - Claire Coloma + * - Steven Heinrich + * - JD Isaacks + * - Raphael Amorim + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'diff_before_yesterday' => 'anteayer', + 'formats' => [ + 'LT' => 'h:mm A', + 'LTS' => 'h:mm:ss A', + 'LLL' => 'D [de] MMMM [de] YYYY h:mm A', + 'LLLL' => 'dddd, D [de] MMMM [de] YYYY h:mm A', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_EA.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_EA.php new file mode 100644 index 000000000..f02e1a66b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_EA.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php new file mode 100644 index 000000000..19217c271 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return require __DIR__.'/es.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_GQ.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_GQ.php new file mode 100644 index 000000000..f02e1a66b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_GQ.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_IC.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_IC.php new file mode 100644 index 000000000..f02e1a66b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_IC.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php new file mode 100644 index 000000000..61e14cfa4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'diff_before_yesterday' => 'antier', + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php new file mode 100644 index 000000000..6b964c14d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PH.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PH.php new file mode 100644 index 000000000..deae06a19 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PH.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D/M/yy', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D [de] MMMM [de] YYYY h:mm a', + 'LLLL' => 'dddd, D [de] MMMM [de] YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php new file mode 100644 index 000000000..6b964c14d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php new file mode 100644 index 000000000..00db08e26 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php new file mode 100644 index 000000000..f333136f4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kunal Marwaha + * - Josh Soref + * - Jørn Ølmheim + * - Craig Patik + * - bustta + * - François B + * - Tim Fish + * - Claire Coloma + * - Steven Heinrich + * - JD Isaacks + * - Raphael Amorim + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'diff_before_yesterday' => 'anteayer', + 'formats' => [ + 'LT' => 'h:mm A', + 'LTS' => 'h:mm:ss A', + 'L' => 'MM/DD/YYYY', + 'LL' => 'MMMM [de] D [de] YYYY', + 'LLL' => 'MMMM [de] D [de] YYYY h:mm A', + 'LLLL' => 'dddd, MMMM [de] D [de] YYYY h:mm A', + ], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php new file mode 100644 index 000000000..39baff8b3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'setiembre', 'octubre', 'noviembre', 'diciembre'], + 'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'set', 'oct', 'nov', 'dic'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php b/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php new file mode 100644 index 000000000..a74806e84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/es.php', [ + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/et.php b/vendor/nesbot/carbon/src/Carbon/Lang/et.php new file mode 100644 index 000000000..f49c8806f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/et.php @@ -0,0 +1,93 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Andres Ivanov + * - Tsutomu Kuroda + * - tjku + * - Max Melentiev + * - Juanito Fatas + * - RM87 + * - Akira Matsuda + * - Christopher Dell + * - Enrique Vidal + * - Simone Carletti + * - Aaron Patterson + * - Esko Lehtme + * - Mart Karu + * - Nicolás Hock Isaza + * - Kevin Valdek + * - Zahhar Kirillov + * - João Magalhães + * - Ingmar + * - Illimar Tambek + * - Mihkel + */ +return [ + 'year' => ':count aasta|:count aastat', + 'y' => ':count a', + 'month' => ':count kuu|:count kuud', + 'm' => ':count k', + 'week' => ':count nädal|:count nädalat', + 'w' => ':count näd', + 'day' => ':count päev|:count päeva', + 'd' => ':count p', + 'hour' => ':count tund|:count tundi', + 'h' => ':count t', + 'minute' => ':count minut|:count minutit', + 'min' => ':count min', + 'second' => ':count sekund|:count sekundit', + 's' => ':count s', + 'ago' => ':time tagasi', + 'from_now' => ':time pärast', + 'after' => ':time pärast', + 'before' => ':time enne', + 'year_from_now' => ':count aasta', + 'month_from_now' => ':count kuu', + 'week_from_now' => ':count nädala', + 'day_from_now' => ':count päeva', + 'hour_from_now' => ':count tunni', + 'minute_from_now' => ':count minuti', + 'second_from_now' => ':count sekundi', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'diff_now' => 'nüüd', + 'diff_today' => 'täna', + 'diff_yesterday' => 'eile', + 'diff_tomorrow' => 'homme', + 'diff_before_yesterday' => 'üleeile', + 'diff_after_tomorrow' => 'ülehomme', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D. MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[täna] LT', + 'nextDay' => '[homme] LT', + 'lastDay' => '[eile] LT', + 'nextWeek' => 'dddd LT', + 'lastWeek' => '[eelmine] dddd LT', + 'sameElse' => 'L', + ], + 'months' => ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember'], + 'months_short' => ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'], + 'weekdays' => ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', 'neljapäev', 'reede', 'laupäev'], + 'weekdays_short' => ['P', 'E', 'T', 'K', 'N', 'R', 'L'], + 'weekdays_min' => ['P', 'E', 'T', 'K', 'N', 'R', 'L'], + 'list' => [', ', ' ja '], + 'meridiem' => ['enne lõunat', 'pärast lõunat'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/et_EE.php b/vendor/nesbot/carbon/src/Carbon/Lang/et_EE.php new file mode 100644 index 000000000..0f112b34d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/et_EE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/et.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/eu.php b/vendor/nesbot/carbon/src/Carbon/Lang/eu.php new file mode 100644 index 000000000..a543f1a67 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/eu.php @@ -0,0 +1,67 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - JD Isaacks + */ +return [ + 'year' => 'urte bat|:count urte', + 'y' => 'Urte 1|:count urte', + 'month' => 'hilabete bat|:count hilabete', + 'm' => 'Hile 1|:count hile', + 'week' => 'Aste 1|:count aste', + 'w' => 'Aste 1|:count aste', + 'day' => 'egun bat|:count egun', + 'd' => 'Egun 1|:count egun', + 'hour' => 'ordu bat|:count ordu', + 'h' => 'Ordu 1|:count ordu', + 'minute' => 'minutu bat|:count minutu', + 'min' => 'Minutu 1|:count minutu', + 'second' => 'segundo batzuk|:count segundo', + 's' => 'Segundu 1|:count segundu', + 'ago' => 'duela :time', + 'from_now' => ':time barru', + 'after' => ':time geroago', + 'before' => ':time lehenago', + 'diff_now' => 'orain', + 'diff_today' => 'gaur', + 'diff_yesterday' => 'atzo', + 'diff_tomorrow' => 'bihar', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'YYYY[ko] MMMM[ren] D[a]', + 'LLL' => 'YYYY[ko] MMMM[ren] D[a] HH:mm', + 'LLLL' => 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[gaur] LT[etan]', + 'nextDay' => '[bihar] LT[etan]', + 'nextWeek' => 'dddd LT[etan]', + 'lastDay' => '[atzo] LT[etan]', + 'lastWeek' => '[aurreko] dddd LT[etan]', + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', 'ekaina', 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], + 'months_short' => ['urt.', 'ots.', 'mar.', 'api.', 'mai.', 'eka.', 'uzt.', 'abu.', 'ira.', 'urr.', 'aza.', 'abe.'], + 'weekdays' => ['igandea', 'astelehena', 'asteartea', 'asteazkena', 'osteguna', 'ostirala', 'larunbata'], + 'weekdays_short' => ['ig.', 'al.', 'ar.', 'az.', 'og.', 'ol.', 'lr.'], + 'weekdays_min' => ['ig', 'al', 'ar', 'az', 'og', 'ol', 'lr'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' eta '], + 'meridiem' => ['g', 'a'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/eu_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/eu_ES.php new file mode 100644 index 000000000..0d1e82a9f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/eu_ES.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/eu.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ewo.php b/vendor/nesbot/carbon/src/Carbon/Lang/ewo.php new file mode 100644 index 000000000..7808ab504 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ewo.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['kíkíríg', 'ngəgógəle'], + 'weekdays' => ['sɔ́ndɔ', 'mɔ́ndi', 'sɔ́ndɔ məlú mə́bɛ̌', 'sɔ́ndɔ məlú mə́lɛ́', 'sɔ́ndɔ məlú mə́nyi', 'fúladé', 'séradé'], + 'weekdays_short' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'fúl', 'sér'], + 'weekdays_min' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'fúl', 'sér'], + 'months' => ['ngɔn osú', 'ngɔn bɛ̌', 'ngɔn lála', 'ngɔn nyina', 'ngɔn tána', 'ngɔn saməna', 'ngɔn zamgbála', 'ngɔn mwom', 'ngɔn ebulú', 'ngɔn awóm', 'ngɔn awóm ai dziá', 'ngɔn awóm ai bɛ̌'], + 'months_short' => ['ngo', 'ngb', 'ngl', 'ngn', 'ngt', 'ngs', 'ngz', 'ngm', 'nge', 'nga', 'ngad', 'ngab'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + // Too unreliable + /* + 'year' => ':count mbu', // less reliable + 'y' => ':count mbu', // less reliable + 'a_year' => ':count mbu', // less reliable + + 'month' => ':count ngòn', // less reliable + 'm' => ':count ngòn', // less reliable + 'a_month' => ':count ngòn', // less reliable + + 'week' => ':count mësë', // less reliable + 'w' => ':count mësë', // less reliable + 'a_week' => ':count mësë', // less reliable + + 'day' => ':count mësë', // less reliable + 'd' => ':count mësë', // less reliable + 'a_day' => ':count mësë', // less reliable + + 'hour' => ':count awola', // less reliable + 'h' => ':count awola', // less reliable + 'a_hour' => ':count awola', // less reliable + + 'minute' => ':count awola', // less reliable + 'min' => ':count awola', // less reliable + 'a_minute' => ':count awola', // less reliable + */ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fa.php b/vendor/nesbot/carbon/src/Carbon/Lang/fa.php new file mode 100644 index 000000000..72e030854 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fa.php @@ -0,0 +1,84 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - Nasser Ghiasi + * - JD Isaacks + * - Hossein Jabbari + * - nimamo + * - hafezdivandari + * - Hassan Pezeshk (hpez) + */ +return [ + 'year' => ':count سال', + 'a_year' => 'یک سال'.'|:count '.'سال', + 'y' => ':count سال', + 'month' => ':count ماه', + 'a_month' => 'یک ماه'.'|:count '.'ماه', + 'm' => ':count ماه', + 'week' => ':count هفته', + 'a_week' => 'یک هفته'.'|:count '.'هفته', + 'w' => ':count هفته', + 'day' => ':count روز', + 'a_day' => 'یک روز'.'|:count '.'روز', + 'd' => ':count روز', + 'hour' => ':count ساعت', + 'a_hour' => 'یک ساعت'.'|:count '.'ساعت', + 'h' => ':count ساعت', + 'minute' => ':count دقیقه', + 'a_minute' => 'یک دقیقه'.'|:count '.'دقیقه', + 'min' => ':count دقیقه', + 'second' => ':count ثانیه', + 's' => ':count ثانیه', + 'ago' => ':time پیش', + 'from_now' => ':time دیگر', + 'after' => ':time پس از', + 'before' => ':time پیش از', + 'diff_now' => 'اکنون', + 'diff_today' => 'امروز', + 'diff_today_regexp' => 'امروز(?:\\s+ساعت)?', + 'diff_yesterday' => 'دیروز', + 'diff_yesterday_regexp' => 'دیروز(?:\\s+ساعت)?', + 'diff_tomorrow' => 'فردا', + 'diff_tomorrow_regexp' => 'فردا(?:\\s+ساعت)?', + 'formats' => [ + 'LT' => 'OH:Om', + 'LTS' => 'OH:Om:Os', + 'L' => 'OD/OM/OY', + 'LL' => 'OD MMMM OY', + 'LLL' => 'OD MMMM OY OH:Om', + 'LLLL' => 'dddd, OD MMMM OY OH:Om', + ], + 'calendar' => [ + 'sameDay' => '[امروز ساعت] LT', + 'nextDay' => '[فردا ساعت] LT', + 'nextWeek' => 'dddd [ساعت] LT', + 'lastDay' => '[دیروز ساعت] LT', + 'lastWeek' => 'dddd [پیش] [ساعت] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':timeم', + 'meridiem' => ['قبل از ظهر', 'بعد از ظهر'], + 'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], + 'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], + 'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'weekdays_short' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'weekdays_min' => ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'list' => ['، ', ' و '], + 'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰۴', '۰۵', '۰۶', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱۴', '۱۵', '۱۶', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲۴', '۲۵', '۲۶', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳۴', '۳۵', '۳۶', '۳۷', '۳۸', '۳۹', '۴۰', '۴۱', '۴۲', '۴۳', '۴۴', '۴۵', '۴۶', '۴۷', '۴۸', '۴۹', '۵۰', '۵۱', '۵۲', '۵۳', '۵۴', '۵۵', '۵۶', '۵۷', '۵۸', '۵۹', '۶۰', '۶۱', '۶۲', '۶۳', '۶۴', '۶۵', '۶۶', '۶۷', '۶۸', '۶۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷۴', '۷۵', '۷۶', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸۴', '۸۵', '۸۶', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹۴', '۹۵', '۹۶', '۹۷', '۹۸', '۹۹'], + 'months_short_standalone' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], + 'weekend' => [5, 5], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fa_AF.php b/vendor/nesbot/carbon/src/Carbon/Lang/fa_AF.php new file mode 100644 index 000000000..694710046 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fa_AF.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fa.php', [ + 'meridiem' => ['ق', 'ب'], + 'weekend' => [4, 5], + 'formats' => [ + 'L' => 'OY/OM/OD', + 'LL' => 'OD MMM OY', + 'LLL' => 'OD MMMM OY،‏ H:mm', + 'LLLL' => 'dddd OD MMMM OY،‏ H:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fa_IR.php b/vendor/nesbot/carbon/src/Carbon/Lang/fa_IR.php new file mode 100644 index 000000000..08d01825f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fa_IR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fa.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ff.php b/vendor/nesbot/carbon/src/Carbon/Lang/ff.php new file mode 100644 index 000000000..9525c95ad --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ff.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'months' => ['siilo', 'colte', 'mbooy', 'seeɗto', 'duujal', 'korse', 'morso', 'juko', 'siilto', 'yarkomaa', 'jolal', 'bowte'], + 'months_short' => ['sii', 'col', 'mbo', 'see', 'duu', 'kor', 'mor', 'juk', 'slt', 'yar', 'jol', 'bow'], + 'weekdays' => ['dewo', 'aaɓnde', 'mawbaare', 'njeslaare', 'naasaande', 'mawnde', 'hoore-biir'], + 'weekdays_short' => ['dew', 'aaɓ', 'maw', 'nje', 'naa', 'mwd', 'hbi'], + 'weekdays_min' => ['dew', 'aaɓ', 'maw', 'nje', 'naa', 'mwd', 'hbi'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['subaka', 'kikiiɗe'], + + 'year' => ':count baret', // less reliable + 'y' => ':count baret', // less reliable + 'a_year' => ':count baret', // less reliable + + 'month' => ':count lewru', // less reliable + 'm' => ':count lewru', // less reliable + 'a_month' => ':count lewru', // less reliable + + 'week' => ':count naange', // less reliable + 'w' => ':count naange', // less reliable + 'a_week' => ':count naange', // less reliable + + 'day' => ':count dian', // less reliable + 'd' => ':count dian', // less reliable + 'a_day' => ':count dian', // less reliable + + 'hour' => ':count montor', // less reliable + 'h' => ':count montor', // less reliable + 'a_hour' => ':count montor', // less reliable + + 'minute' => ':count tokossuoum', // less reliable + 'min' => ':count tokossuoum', // less reliable + 'a_minute' => ':count tokossuoum', // less reliable + + 'second' => ':count tenen', // less reliable + 's' => ':count tenen', // less reliable + 'a_second' => ':count tenen', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ff_CM.php b/vendor/nesbot/carbon/src/Carbon/Lang/ff_CM.php new file mode 100644 index 000000000..b797ac09b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ff_CM.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ff.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ff_GN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ff_GN.php new file mode 100644 index 000000000..b797ac09b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ff_GN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ff.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ff_MR.php b/vendor/nesbot/carbon/src/Carbon/Lang/ff_MR.php new file mode 100644 index 000000000..2f4c29f62 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ff_MR.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ff.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php new file mode 100644 index 000000000..1e4c8b6cb --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Pular-Fulfulde.org Ibrahima Sarr admin@pulaar-fulfulde.org + */ +return require __DIR__.'/ff.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fi.php b/vendor/nesbot/carbon/src/Carbon/Lang/fi.php new file mode 100644 index 000000000..edf2d6d35 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fi.php @@ -0,0 +1,88 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Janne Warén + * - digitalfrost + * - Tsutomu Kuroda + * - Roope Salmi + * - tjku + * - Max Melentiev + * - Sami Haahtinen + * - Teemu Leisti + * - Artem Ignatyev + * - Akira Matsuda + * - Christopher Dell + * - Enrique Vidal + * - Simone Carletti + * - Robert Bjarnason + * - Aaron Patterson + * - Nicolás Hock Isaza + * - Tom Hughes + * - Sven Fuchs + * - Petri Kivikangas + * - Nizar Jouini + * - Marko Seppae + * - Tomi Mynttinen (Pikseli) + * - Petteri (powergrip) + */ +return [ + 'year' => ':count vuosi|:count vuotta', + 'y' => ':count v', + 'month' => ':count kuukausi|:count kuukautta', + 'm' => ':count kk', + 'week' => ':count viikko|:count viikkoa', + 'w' => ':count vk', + 'day' => ':count päivä|:count päivää', + 'd' => ':count pv', + 'hour' => ':count tunti|:count tuntia', + 'h' => ':count t', + 'minute' => ':count minuutti|:count minuuttia', + 'min' => ':count min', + 'second' => ':count sekunti|:count sekuntia', + 'a_second' => 'muutama sekunti|:count sekuntia', + 's' => ':count s', + 'ago' => ':time sitten', + 'from_now' => ':time päästä', + 'year_from_now' => ':count vuoden', + 'month_from_now' => ':count kuukauden', + 'week_from_now' => ':count viikon', + 'day_from_now' => ':count päivän', + 'hour_from_now' => ':count tunnin', + 'minute_from_now' => ':count minuutin', + 'second_from_now' => ':count sekunnin', + 'after' => ':time sen jälkeen', + 'before' => ':time ennen', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' ja '], + 'diff_now' => 'nyt', + 'diff_yesterday' => 'eilen', + 'diff_tomorrow' => 'huomenna', + 'formats' => [ + 'LT' => 'HH.mm', + 'LTS' => 'HH.mm:ss', + 'L' => 'D.M.YYYY', + 'LL' => 'dddd D. MMMM[ta] YYYY', + 'll' => 'ddd D. MMM YYYY', + 'LLL' => 'D.MM. HH.mm', + 'LLLL' => 'D. MMMM[ta] YYYY HH.mm', + 'llll' => 'D. MMM YY HH.mm', + ], + 'weekdays' => ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai'], + 'weekdays_short' => ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'], + 'weekdays_min' => ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'], + 'months' => ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', 'marraskuu', 'joulukuu'], + 'months_short' => ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'], + 'meridiem' => ['aamupäivä', 'iltapäivä'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fi_FI.php b/vendor/nesbot/carbon/src/Carbon/Lang/fi_FI.php new file mode 100644 index 000000000..920f1caa7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fi_FI.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fi.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fil.php b/vendor/nesbot/carbon/src/Carbon/Lang/fil.php new file mode 100644 index 000000000..61114e3a6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fil.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/fil_PH.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php b/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php new file mode 100644 index 000000000..bcf158078 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Rene Torres Rene Torres, Pablo Saratxaga rgtorre@rocketmail.com, pablo@mandrakesoft.com + * - Jaycee Mariano (alohajaycee) + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'MM/DD/YY', + ], + 'months' => ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], + 'months_short' => ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', 'Okt', 'Nob', 'Dis'], + 'weekdays' => ['Linggo', 'Lunes', 'Martes', 'Miyerkoles', 'Huwebes', 'Biyernes', 'Sabado'], + 'weekdays_short' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'], + 'weekdays_min' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['N.U.', 'N.H.'], + + 'before' => ':time bago', + 'after' => ':time pagkatapos', + + 'year' => ':count taon', + 'y' => ':count taon', + 'a_year' => ':count taon', + + 'month' => ':count buwan', + 'm' => ':count buwan', + 'a_month' => ':count buwan', + + 'week' => ':count linggo', + 'w' => ':count linggo', + 'a_week' => ':count linggo', + + 'day' => ':count araw', + 'd' => ':count araw', + 'a_day' => ':count araw', + + 'hour' => ':count oras', + 'h' => ':count oras', + 'a_hour' => ':count oras', + + 'minute' => ':count minuto', + 'min' => ':count minuto', + 'a_minute' => ':count minuto', + + 'second' => ':count segundo', + 's' => ':count segundo', + 'a_second' => ':count segundo', + + 'ago' => ':time ang nakalipas', + 'from_now' => 'sa :time', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fo.php b/vendor/nesbot/carbon/src/Carbon/Lang/fo.php new file mode 100644 index 000000000..6a14a6fb8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fo.php @@ -0,0 +1,69 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kristian Sakarisson + * - François B + * - JD Isaacks + * - Sverri Mohr Olsen + */ +return [ + 'year' => 'eitt ár|:count ár', + 'y' => ':count ár|:count ár', + 'month' => 'ein mánaði|:count mánaðir', + 'm' => ':count mánaður|:count mánaðir', + 'week' => ':count vika|:count vikur', + 'w' => ':count vika|:count vikur', + 'day' => 'ein dagur|:count dagar', + 'd' => ':count dag|:count dagar', + 'hour' => 'ein tími|:count tímar', + 'h' => ':count tími|:count tímar', + 'minute' => 'ein minutt|:count minuttir', + 'min' => ':count minutt|:count minuttir', + 'second' => 'fá sekund|:count sekundir', + 's' => ':count sekund|:count sekundir', + 'ago' => ':time síðani', + 'from_now' => 'um :time', + 'after' => ':time aftaná', + 'before' => ':time áðrenn', + 'diff_today' => 'Í', + 'diff_yesterday' => 'Í', + 'diff_yesterday_regexp' => 'Í(?:\\s+gjár)?(?:\\s+kl.)?', + 'diff_tomorrow' => 'Í', + 'diff_tomorrow_regexp' => 'Í(?:\\s+morgin)?(?:\\s+kl.)?', + 'diff_today_regexp' => 'Í(?:\\s+dag)?(?:\\s+kl.)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D. MMMM, YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Í dag kl.] LT', + 'nextDay' => '[Í morgin kl.] LT', + 'nextWeek' => 'dddd [kl.] LT', + 'lastDay' => '[Í gjár kl.] LT', + 'lastWeek' => '[síðstu] dddd [kl] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['januar', 'februar', 'mars', 'apríl', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'], + 'weekdays' => ['sunnudagur', 'mánadagur', 'týsdagur', 'mikudagur', 'hósdagur', 'fríggjadagur', 'leygardagur'], + 'weekdays_short' => ['sun', 'mán', 'týs', 'mik', 'hós', 'frí', 'ley'], + 'weekdays_min' => ['su', 'má', 'tý', 'mi', 'hó', 'fr', 'le'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' og '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fo_DK.php b/vendor/nesbot/carbon/src/Carbon/Lang/fo_DK.php new file mode 100644 index 000000000..657f2c5bb --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fo_DK.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fo.php', [ + 'formats' => [ + 'L' => 'DD.MM.yy', + 'LL' => 'DD.MM.YYYY', + 'LLL' => 'D. MMMM YYYY, HH:mm', + 'LLLL' => 'dddd, D. MMMM YYYY, HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fo_FO.php b/vendor/nesbot/carbon/src/Carbon/Lang/fo_FO.php new file mode 100644 index 000000000..6d7361673 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fo_FO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fo.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr.php new file mode 100644 index 000000000..f4c7247b4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr.php @@ -0,0 +1,123 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Dieter Sting + * - François B + * - Maxime VALY + * - JD Isaacks + * - Dieter Sting + * - François B + * - JD Isaacks + * - Sebastian Thierer + * - Fastfuel + * - Pete Scopes (pdscopes) + */ +return [ + 'year' => ':count an|:count ans', + 'a_year' => 'un an|:count ans', + 'y' => ':count an|:count ans', + 'month' => ':count mois|:count mois', + 'a_month' => 'un mois|:count mois', + 'm' => ':count mois', + 'week' => ':count semaine|:count semaines', + 'a_week' => 'une semaine|:count semaines', + 'w' => ':count sem.', + 'day' => ':count jour|:count jours', + 'a_day' => 'un jour|:count jours', + 'd' => ':count j', + 'hour' => ':count heure|:count heures', + 'a_hour' => 'une heure|:count heures', + 'h' => ':count h', + 'minute' => ':count minute|:count minutes', + 'a_minute' => 'une minute|:count minutes', + 'min' => ':count min', + 'second' => ':count seconde|:count secondes', + 'a_second' => 'quelques secondes|:count secondes', + 's' => ':count s', + 'millisecond' => ':count milliseconde|:count millisecondes', + 'a_millisecond' => 'une milliseconde|:count millisecondes', + 'ms' => ':countms', + 'microsecond' => ':count microseconde|:count microsecondes', + 'a_microsecond' => 'une microseconde|:count microsecondes', + 'µs' => ':countµs', + 'ago' => 'il y a :time', + 'from_now' => 'dans :time', + 'after' => ':time après', + 'before' => ':time avant', + 'diff_now' => "à l'instant", + 'diff_today' => "aujourd'hui", + 'diff_today_regexp' => "aujourd'hui(?:\s+à)?", + 'diff_yesterday' => 'hier', + 'diff_yesterday_regexp' => 'hier(?:\s+à)?', + 'diff_tomorrow' => 'demain', + 'diff_tomorrow_regexp' => 'demain(?:\s+à)?', + 'diff_before_yesterday' => 'avant-hier', + 'diff_after_tomorrow' => 'après-demain', + 'period_recurrences' => ':count fois', + 'period_interval' => 'tous les :interval', + 'period_start_date' => 'de :date', + 'period_end_date' => 'à :date', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Aujourd’hui à] LT', + 'nextDay' => '[Demain à] LT', + 'nextWeek' => 'dddd [à] LT', + 'lastDay' => '[Hier à] LT', + 'lastWeek' => 'dddd [dernier à] LT', + 'sameElse' => 'L', + ], + 'months' => ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'months_short' => ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'weekdays' => ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'], + 'weekdays_short' => ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + 'weekdays_min' => ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'], + 'ordinal' => function ($number, $period) { + switch ($period) { + // In French, only the first has to be ordinal, other number remains cardinal + // @link https://fr.wikihow.com/%C3%A9crire-la-date-en-fran%C3%A7ais + case 'D': + return $number.($number === 1 ? 'er' : ''); + + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return $number.($number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return $number.($number === 1 ? 're' : 'e'); + } + }, + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' et '], + 'ordinal_words' => [ + 'of' => 'de', + 'first' => 'premier', + 'second' => 'deuxième', + 'third' => 'troisième', + 'fourth' => 'quatrième', + 'fifth' => 'cinquième', + 'last' => 'dernier', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php new file mode 100644 index 000000000..f6cafe87c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'months_short' => ['jan', 'fév', 'mar', 'avr', 'mai', 'jun', 'jui', 'aoû', 'sep', 'oct', 'nov', 'déc'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_BF.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BF.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BF.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_BI.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BI.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BI.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_BJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BJ.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BJ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_BL.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BL.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_BL.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php new file mode 100644 index 000000000..c9f6346fc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Dieter Sting + * - François B + * - Maxime VALY + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-DD', + ], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CD.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CD.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CD.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CF.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CF.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CF.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CG.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CG.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php new file mode 100644 index 000000000..8674c27d9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Dieter Sting + * - François B + * - Gaspard Bucher + * - Maxime VALY + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CI.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CI.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CI.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_CM.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CM.php new file mode 100644 index 000000000..67d378785 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_CM.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'meridiem' => ['mat.', 'soir'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_DJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_DJ.php new file mode 100644 index 000000000..2f060869e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_DJ.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'first_day_of_week' => 6, + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_DZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_DZ.php new file mode 100644 index 000000000..ae8db5fa4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_DZ.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'first_day_of_week' => 6, + 'weekend' => [5, 6], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_FR.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_FR.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_FR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_GA.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GA.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GA.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_GF.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GF.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GF.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_GN.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GN.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_GP.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GP.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GP.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_GQ.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GQ.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_GQ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_HT.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_HT.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_HT.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_KM.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_KM.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_KM.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php new file mode 100644 index 000000000..8e37d852b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months_short' => ['jan', 'fév', 'mar', 'avr', 'mai', 'jun', 'jui', 'aoû', 'sep', 'oct', 'nov', 'déc'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_MA.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MA.php new file mode 100644 index 000000000..1bf034dc6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MA.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'first_day_of_week' => 6, + 'weekend' => [5, 6], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_MC.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MC.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MC.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_MF.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MF.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MF.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_MG.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MG.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_ML.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_ML.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_ML.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_MQ.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MQ.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MQ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_MR.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MR.php new file mode 100644 index 000000000..37cf83f01 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MR.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_MU.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MU.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_MU.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_NC.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_NC.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_NC.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_NE.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_NE.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_NE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_PF.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_PF.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_PF.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_PM.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_PM.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_PM.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_RE.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_RE.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_RE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_RW.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_RW.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_RW.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_SC.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_SC.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_SC.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_SN.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_SN.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_SN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_SY.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_SY.php new file mode 100644 index 000000000..ae8db5fa4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_SY.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'first_day_of_week' => 6, + 'weekend' => [5, 6], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_TD.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_TD.php new file mode 100644 index 000000000..37cf83f01 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_TD.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_TG.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_TG.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_TG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_TN.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_TN.php new file mode 100644 index 000000000..6905e7a84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_TN.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'weekend' => [5, 6], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_VU.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_VU.php new file mode 100644 index 000000000..37cf83f01 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_VU.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fr.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_WF.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_WF.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_WF.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fr_YT.php b/vendor/nesbot/carbon/src/Carbon/Lang/fr_YT.php new file mode 100644 index 000000000..ec3ee359c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fr_YT.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/fr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fur.php b/vendor/nesbot/carbon/src/Carbon/Lang/fur.php new file mode 100644 index 000000000..36c2564f6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fur.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/fur_IT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php new file mode 100644 index 000000000..0147a596a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Pablo Saratxaga pablo@mandrakesoft.com + */ +return [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD. MM. YY', + 'LL' => 'DD di MMMM dal YYYY', + 'LLL' => 'DD di MMM HH:mm', + 'LLLL' => 'DD di MMMM dal YYYY HH:mm', + ], + 'months' => ['zenâr', 'fevrâr', 'març', 'avrîl', 'mai', 'jugn', 'lui', 'avost', 'setembar', 'otubar', 'novembar', 'dicembar'], + 'months_short' => ['zen', 'fev', 'mar', 'avr', 'mai', 'jug', 'lui', 'avo', 'set', 'otu', 'nov', 'dic'], + 'weekdays' => ['domenie', 'lunis', 'martars', 'miercus', 'joibe', 'vinars', 'sabide'], + 'weekdays_short' => ['dom', 'lun', 'mar', 'mie', 'joi', 'vin', 'sab'], + 'weekdays_min' => ['dom', 'lun', 'mar', 'mie', 'joi', 'vin', 'sab'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'year' => ':count an', + 'month' => ':count mês', + 'week' => ':count setemane', + 'day' => ':count zornade', + 'hour' => ':count ore', + 'minute' => ':count minût', + 'second' => ':count secont', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fy.php b/vendor/nesbot/carbon/src/Carbon/Lang/fy.php new file mode 100644 index 000000000..c1b543970 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fy.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Tim Fish + * - JD Isaacks + */ +return [ + 'year' => ':count jier|:count jierren', + 'a_year' => 'ien jier|:count jierren', + 'y' => ':count j', + 'month' => ':count moanne|:count moannen', + 'a_month' => 'ien moanne|:count moannen', + 'm' => ':count moa.', + 'week' => ':count wike|:count wiken', + 'a_week' => 'in wike|:count wiken', + 'a' => ':count w.', + 'day' => ':count dei|:count dagen', + 'a_day' => 'ien dei|:count dagen', + 'd' => ':count d.', + 'hour' => ':count oere|:count oeren', + 'a_hour' => 'ien oere|:count oeren', + 'h' => ':count o.', + 'minute' => ':count minút|:count minuten', + 'a_minute' => 'ien minút|:count minuten', + 'min' => ':count min.', + 'second' => ':count sekonde|:count sekonden', + 'a_second' => 'in pear sekonden|:count sekonden', + 's' => ':count s.', + 'ago' => ':time lyn', + 'from_now' => 'oer :time', + 'diff_yesterday' => 'juster', + 'diff_yesterday_regexp' => 'juster(?:\\s+om)?', + 'diff_today' => 'hjoed', + 'diff_today_regexp' => 'hjoed(?:\\s+om)?', + 'diff_tomorrow' => 'moarn', + 'diff_tomorrow_regexp' => 'moarn(?:\\s+om)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD-MM-YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[hjoed om] LT', + 'nextDay' => '[moarn om] LT', + 'nextWeek' => 'dddd [om] LT', + 'lastDay' => '[juster om] LT', + 'lastWeek' => '[ôfrûne] dddd [om] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de'); + }, + 'months' => ['jannewaris', 'febrewaris', 'maart', 'april', 'maaie', 'juny', 'july', 'augustus', 'septimber', 'oktober', 'novimber', 'desimber'], + 'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'], + 'mmm_suffix' => '.', + 'weekdays' => ['snein', 'moandei', 'tiisdei', 'woansdei', 'tongersdei', 'freed', 'sneon'], + 'weekdays_short' => ['si.', 'mo.', 'ti.', 'wo.', 'to.', 'fr.', 'so.'], + 'weekdays_min' => ['Si', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'So'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' en '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php new file mode 100644 index 000000000..8559d5c23 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandriva.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Jaunuwoa', 'Februwoa', 'Moaz', 'Aprell', 'Mai', 'Juni', 'Juli', 'August', 'Septamba', 'Oktoba', 'Nowamba', 'Dezamba'], + 'months_short' => ['Jan', 'Feb', 'Moz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Now', 'Dez'], + 'weekdays' => ['Sinndag', 'Mondag', 'Dingsdag', 'Meddwäakj', 'Donnadag', 'Friedag', 'Sinnowend'], + 'weekdays_short' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'], + 'weekdays_min' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php new file mode 100644 index 000000000..01cc96c34 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/fy.php', [ + 'formats' => [ + 'L' => 'DD-MM-YY', + ], + 'months' => ['Jannewaris', 'Febrewaris', 'Maart', 'April', 'Maaie', 'Juny', 'July', 'Augustus', 'Septimber', 'Oktober', 'Novimber', 'Desimber'], + 'months_short' => ['Jan', 'Feb', 'Mrt', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + 'weekdays' => ['Snein', 'Moandei', 'Tiisdei', 'Woansdei', 'Tongersdei', 'Freed', 'Sneon'], + 'weekdays_short' => ['Sn', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'Sn'], + 'weekdays_min' => ['Sn', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'Sn'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ga.php b/vendor/nesbot/carbon/src/Carbon/Lang/ga.php new file mode 100644 index 000000000..9f07a26ce --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ga.php @@ -0,0 +1,77 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Thanks to André Silva : https://github.com/askpt + */ + +return [ + 'year' => ':count bliain', + 'a_year' => '{1}bliain|:count bliain', + 'y' => ':countb', + 'month' => ':count mí', + 'a_month' => '{1}mí|:count mí', + 'm' => ':countm', + 'week' => ':count sheachtain', + 'a_week' => '{1}sheachtain|:count sheachtain', + 'w' => ':countsh', + 'day' => ':count lá', + 'a_day' => '{1}lá|:count lá', + 'd' => ':countl', + 'hour' => ':count uair an chloig', + 'a_hour' => '{1}uair an chloig|:count uair an chloig', + 'h' => ':countu', + 'minute' => ':count nóiméad', + 'a_minute' => '{1}nóiméad|:count nóiméad', + 'min' => ':countn', + 'second' => ':count soicind', + 'a_second' => '{1}cúpla soicind|:count soicind', + 's' => ':countso', + 'ago' => ':time ó shin', + 'from_now' => 'i :time', + 'after' => ':time tar éis', + 'before' => ':time roimh', + 'diff_now' => 'anois', + 'diff_today' => 'Inniu', + 'diff_today_regexp' => 'Inniu(?:\\s+ag)?', + 'diff_yesterday' => 'inné', + 'diff_yesterday_regexp' => 'Inné(?:\\s+aig)?', + 'diff_tomorrow' => 'amárach', + 'diff_tomorrow_regexp' => 'Amárach(?:\\s+ag)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Inniu ag] LT', + 'nextDay' => '[Amárach ag] LT', + 'nextWeek' => 'dddd [ag] LT', + 'lastDay' => '[Inné aig] LT', + 'lastWeek' => 'dddd [seo caite] [ag] LT', + 'sameElse' => 'L', + ], + 'months' => ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'], + 'months_short' => ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'], + 'weekdays' => ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'], + 'weekdays_short' => ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'], + 'weekdays_min' => ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'], + 'ordinal' => function ($number) { + return $number.($number === 1 ? 'd' : ($number % 10 === 2 ? 'na' : 'mh')); + }, + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' agus '], + 'meridiem' => ['r.n.', 'i.n.'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ga_IE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ga_IE.php new file mode 100644 index 000000000..57b0c4fb4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ga_IE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ga.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gd.php b/vendor/nesbot/carbon/src/Carbon/Lang/gd.php new file mode 100644 index 000000000..63d064ddd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gd.php @@ -0,0 +1,75 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Jon Ashdown + */ +return [ + 'year' => ':count bliadhna', + 'a_year' => '{1}bliadhna|:count bliadhna', + 'y' => ':count b.', + 'month' => ':count mìosan', + 'a_month' => '{1}mìos|:count mìosan', + 'm' => ':count ms.', + 'week' => ':count seachdainean', + 'a_week' => '{1}seachdain|:count seachdainean', + 'w' => ':count s.', + 'day' => ':count latha', + 'a_day' => '{1}latha|:count latha', + 'd' => ':count l.', + 'hour' => ':count uairean', + 'a_hour' => '{1}uair|:count uairean', + 'h' => ':count u.', + 'minute' => ':count mionaidean', + 'a_minute' => '{1}mionaid|:count mionaidean', + 'min' => ':count md.', + 'second' => ':count diogan', + 'a_second' => '{1}beagan diogan|:count diogan', + 's' => ':count d.', + 'ago' => 'bho chionn :time', + 'from_now' => 'ann an :time', + 'diff_yesterday' => 'An-dè', + 'diff_yesterday_regexp' => 'An-dè(?:\\s+aig)?', + 'diff_today' => 'An-diugh', + 'diff_today_regexp' => 'An-diugh(?:\\s+aig)?', + 'diff_tomorrow' => 'A-màireach', + 'diff_tomorrow_regexp' => 'A-màireach(?:\\s+aig)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[An-diugh aig] LT', + 'nextDay' => '[A-màireach aig] LT', + 'nextWeek' => 'dddd [aig] LT', + 'lastDay' => '[An-dè aig] LT', + 'lastWeek' => 'dddd [seo chaidh] [aig] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + return $number.($number === 1 ? 'd' : ($number % 10 === 2 ? 'na' : 'mh')); + }, + 'months' => ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'], + 'months_short' => ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'], + 'weekdays' => ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'], + 'weekdays_short' => ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + 'weekdays_min' => ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' agus '], + 'meridiem' => ['m', 'f'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gd_GB.php b/vendor/nesbot/carbon/src/Carbon/Lang/gd_GB.php new file mode 100644 index 000000000..4fc26b3dc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gd_GB.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/gd.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gez.php b/vendor/nesbot/carbon/src/Carbon/Lang/gez.php new file mode 100644 index 000000000..b8a2f0ebe --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gez.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/gez_ER.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php new file mode 100644 index 000000000..f19d1df1e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['ጠሐረ', 'ከተተ', 'መገበ', 'አኀዘ', 'ግንባት', 'ሠንየ', 'ሐመለ', 'ነሐሰ', 'ከረመ', 'ጠቀመ', 'ኀደረ', 'ኀሠሠ'], + 'months_short' => ['ጠሐረ', 'ከተተ', 'መገበ', 'አኀዘ', 'ግንባ', 'ሠንየ', 'ሐመለ', 'ነሐሰ', 'ከረመ', 'ጠቀመ', 'ኀደረ', 'ኀሠሠ'], + 'weekdays' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚት'], + 'weekdays_short' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'], + 'weekdays_min' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ጽባሕ', 'ምሴት'], + + 'month' => ':count ወርሕ', // less reliable + 'm' => ':count ወርሕ', // less reliable + 'a_month' => ':count ወርሕ', // less reliable + + 'week' => ':count ሰብዑ', // less reliable + 'w' => ':count ሰብዑ', // less reliable + 'a_week' => ':count ሰብዑ', // less reliable + + 'hour' => ':count አንትሙ', // less reliable + 'h' => ':count አንትሙ', // less reliable + 'a_hour' => ':count አንትሙ', // less reliable + + 'minute' => ':count ንኡስ', // less reliable + 'min' => ':count ንኡስ', // less reliable + 'a_minute' => ':count ንኡስ', // less reliable + + 'year' => ':count ዓመት', + 'y' => ':count ዓመት', + 'a_year' => ':count ዓመት', + + 'day' => ':count ዕለት', + 'd' => ':count ዕለት', + 'a_day' => ':count ዕለት', + + 'second' => ':count ካልእ', + 's' => ':count ካልእ', + 'a_second' => ':count ካልእ', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php new file mode 100644 index 000000000..393300962 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], + 'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'], + 'weekdays' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚት'], + 'weekdays_short' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'], + 'weekdays_min' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ጽባሕ', 'ምሴት'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gl.php b/vendor/nesbot/carbon/src/Carbon/Lang/gl.php new file mode 100644 index 000000000..088b0f281 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gl.php @@ -0,0 +1,98 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Fidel Pita + * - JD Isaacks + * - Diego Vilariño + * - Sebastian Thierer + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count ano|:count anos', + 'a_year' => 'un ano|:count anos', + 'y' => ':count a.', + 'month' => ':count mes|:count meses', + 'a_month' => 'un mes|:count meses', + 'm' => ':count mes.', + 'week' => ':count semana|:count semanas', + 'a_week' => 'unha semana|:count semanas', + 'w' => ':count sem.', + 'day' => ':count día|:count días', + 'a_day' => 'un día|:count días', + 'd' => ':count d.', + 'hour' => ':count hora|:count horas', + 'a_hour' => 'unha hora|:count horas', + 'h' => ':count h.', + 'minute' => ':count minuto|:count minutos', + 'a_minute' => 'un minuto|:count minutos', + 'min' => ':count min.', + 'second' => ':count segundo|:count segundos', + 'a_second' => 'uns segundos|:count segundos', + 's' => ':count seg.', + 'ago' => 'hai :time', + 'from_now' => function ($time) { + if (str_starts_with($time, 'un')) { + return "n$time"; + } + + return "en $time"; + }, + 'diff_now' => 'agora', + 'diff_today' => 'hoxe', + 'diff_today_regexp' => 'hoxe(?:\\s+ás)?', + 'diff_yesterday' => 'onte', + 'diff_yesterday_regexp' => 'onte(?:\\s+á)?', + 'diff_tomorrow' => 'mañá', + 'diff_tomorrow_regexp' => 'mañá(?:\\s+ás)?', + 'after' => ':time despois', + 'before' => ':time antes', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D [de] MMMM [de] YYYY', + 'LLL' => 'D [de] MMMM [de] YYYY H:mm', + 'LLLL' => 'dddd, D [de] MMMM [de] YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => function (CarbonInterface $current) { + return '[hoxe '.($current->hour !== 1 ? 'ás' : 'á').'] LT'; + }, + 'nextDay' => function (CarbonInterface $current) { + return '[mañá '.($current->hour !== 1 ? 'ás' : 'á').'] LT'; + }, + 'nextWeek' => function (CarbonInterface $current) { + return 'dddd ['.($current->hour !== 1 ? 'ás' : 'á').'] LT'; + }, + 'lastDay' => function (CarbonInterface $current) { + return '[onte '.($current->hour !== 1 ? 'á' : 'a').'] LT'; + }, + 'lastWeek' => function (CarbonInterface $current) { + return '[o] dddd [pasado '.($current->hour !== 1 ? 'ás' : 'á').'] LT'; + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':numberº', + 'months' => ['xaneiro', 'febreiro', 'marzo', 'abril', 'maio', 'xuño', 'xullo', 'agosto', 'setembro', 'outubro', 'novembro', 'decembro'], + 'months_short' => ['xan.', 'feb.', 'mar.', 'abr.', 'mai.', 'xuñ.', 'xul.', 'ago.', 'set.', 'out.', 'nov.', 'dec.'], + 'weekdays' => ['domingo', 'luns', 'martes', 'mércores', 'xoves', 'venres', 'sábado'], + 'weekdays_short' => ['dom.', 'lun.', 'mar.', 'mér.', 'xov.', 'ven.', 'sáb.'], + 'weekdays_min' => ['do', 'lu', 'ma', 'mé', 'xo', 've', 'sá'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' e '], + 'meridiem' => ['a.m.', 'p.m.'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gl_ES.php b/vendor/nesbot/carbon/src/Carbon/Lang/gl_ES.php new file mode 100644 index 000000000..9d6c1d96b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gl_ES.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/gl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gom.php b/vendor/nesbot/carbon/src/Carbon/Lang/gom.php new file mode 100644 index 000000000..2a0584f88 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gom.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/gom_Latn.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gom_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/gom_Latn.php new file mode 100644 index 000000000..612bb8865 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gom_Latn.php @@ -0,0 +1,79 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + 'year' => ':count voros|:count vorsam', + 'y' => ':countv', + 'month' => ':count mhoino|:count mhoine', + 'm' => ':countmh', + 'week' => ':count satolleacho|:count satolleache', + 'w' => ':countsa|:countsa', + 'day' => ':count dis', + 'd' => ':countd', + 'hour' => ':count hor|:count horam', + 'h' => ':counth', + 'minute' => ':count minute|:count mintam', + 'min' => ':countm', + 'second' => ':count second', + 's' => ':counts', + + 'diff_today' => 'Aiz', + 'diff_yesterday' => 'Kal', + 'diff_tomorrow' => 'Faleam', + 'formats' => [ + 'LT' => 'A h:mm [vazta]', + 'LTS' => 'A h:mm:ss [vazta]', + 'L' => 'DD-MM-YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY A h:mm [vazta]', + 'LLLL' => 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]', + 'llll' => 'ddd, D MMM YYYY, A h:mm [vazta]', + ], + + 'calendar' => [ + 'sameDay' => '[Aiz] LT', + 'nextDay' => '[Faleam] LT', + 'nextWeek' => '[Ieta to] dddd[,] LT', + 'lastDay' => '[Kal] LT', + 'lastWeek' => '[Fatlo] dddd[,] LT', + 'sameElse' => 'L', + ], + + 'months' => ['Janer', 'Febrer', 'Mars', 'Abril', 'Mai', 'Jun', 'Julai', 'Agost', 'Setembr', 'Otubr', 'Novembr', 'Dezembr'], + 'months_short' => ['Jan.', 'Feb.', 'Mars', 'Abr.', 'Mai', 'Jun', 'Jul.', 'Ago.', 'Set.', 'Otu.', 'Nov.', 'Dez.'], + 'weekdays' => ['Aitar', 'Somar', 'Mongllar', 'Budvar', 'Brestar', 'Sukrar', 'Son\'var'], + 'weekdays_short' => ['Ait.', 'Som.', 'Mon.', 'Bud.', 'Bre.', 'Suk.', 'Son.'], + 'weekdays_min' => ['Ai', 'Sm', 'Mo', 'Bu', 'Br', 'Su', 'Sn'], + + 'ordinal' => function ($number, $period) { + return $number.($period === 'D' ? 'er' : ''); + }, + + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'rati'; + } + if ($hour < 12) { + return 'sokalli'; + } + if ($hour < 16) { + return 'donparam'; + } + if ($hour < 20) { + return 'sanje'; + } + + return 'rati'; + }, + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' ani '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php b/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php new file mode 100644 index 000000000..c5c850edb --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Christopher Dell + * - Akira Matsuda + * - Enrique Vidal + * - Simone Carletti + * - Henning Kiel + * - Aaron Patterson + * - Florian Hanke + */ +return [ + 'year' => ':count Johr', + 'month' => ':count Monet', + 'week' => ':count Woche', + 'day' => ':count Tag', + 'hour' => ':count Schtund', + 'minute' => ':count Minute', + 'second' => ':count Sekunde', + 'weekdays' => ['Sunntig', 'Mäntig', 'Ziischtig', 'Mittwuch', 'Dunschtig', 'Friitig', 'Samschtig'], + 'weekdays_short' => ['Su', 'Mä', 'Zi', 'Mi', 'Du', 'Fr', 'Sa'], + 'weekdays_min' => ['Su', 'Mä', 'Zi', 'Mi', 'Du', 'Fr', 'Sa'], + 'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'September', 'Oktober', 'November', 'Dezember'], + 'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'meridiem' => ['am Vormittag', 'am Namittag'], + 'ordinal' => ':number.', + 'list' => [', ', ' und '], + 'diff_now' => 'now', + 'diff_yesterday' => 'geschter', + 'diff_tomorrow' => 'moorn', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'Do MMMM YYYY', + 'LLL' => 'Do MMMM, HH:mm [Uhr]', + 'LLLL' => 'dddd, Do MMMM YYYY, HH:mm [Uhr]', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gsw_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/gsw_CH.php new file mode 100644 index 000000000..594eb25dc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gsw_CH.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/gsw.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gsw_FR.php b/vendor/nesbot/carbon/src/Carbon/Lang/gsw_FR.php new file mode 100644 index 000000000..3581dcfb7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gsw_FR.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/gsw.php', [ + 'meridiem' => ['vorm.', 'nam.'], + 'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LLL' => 'Do MMMM YYYY HH:mm', + 'LLLL' => 'dddd, Do MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gsw_LI.php b/vendor/nesbot/carbon/src/Carbon/Lang/gsw_LI.php new file mode 100644 index 000000000..3581dcfb7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gsw_LI.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/gsw.php', [ + 'meridiem' => ['vorm.', 'nam.'], + 'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LLL' => 'Do MMMM YYYY HH:mm', + 'LLLL' => 'dddd, Do MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gu.php b/vendor/nesbot/carbon/src/Carbon/Lang/gu.php new file mode 100644 index 000000000..8bc431140 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gu.php @@ -0,0 +1,82 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - Kaushik Thanki + * - Josh Soref + */ +return [ + 'year' => 'એક વર્ષ|:count વર્ષ', + 'y' => ':countવર્ષ|:countવર્ષો', + 'month' => 'એક મહિનો|:count મહિના', + 'm' => ':countમહિનો|:countમહિના', + 'week' => ':count અઠવાડિયું|:count અઠવાડિયા', + 'w' => ':countઅઠ.|:countઅઠ.', + 'day' => 'એક દિવસ|:count દિવસ', + 'd' => ':countદિ.|:countદિ.', + 'hour' => 'એક કલાક|:count કલાક', + 'h' => ':countક.|:countક.', + 'minute' => 'એક મિનિટ|:count મિનિટ', + 'min' => ':countમિ.|:countમિ.', + 'second' => 'અમુક પળો|:count સેકંડ', + 's' => ':countસે.|:countસે.', + 'ago' => ':time પેહલા', + 'from_now' => ':time મા', + 'after' => ':time પછી', + 'before' => ':time પહેલા', + 'diff_now' => 'હમણાં', + 'diff_today' => 'આજ', + 'diff_yesterday' => 'ગઇકાલે', + 'diff_tomorrow' => 'કાલે', + 'formats' => [ + 'LT' => 'A h:mm વાગ્યે', + 'LTS' => 'A h:mm:ss વાગ્યે', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, A h:mm વાગ્યે', + 'LLLL' => 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + ], + 'calendar' => [ + 'sameDay' => '[આજ] LT', + 'nextDay' => '[કાલે] LT', + 'nextWeek' => 'dddd, LT', + 'lastDay' => '[ગઇકાલે] LT', + 'lastWeek' => '[પાછલા] dddd, LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'રાત'; + } + if ($hour < 10) { + return 'સવાર'; + } + if ($hour < 17) { + return 'બપોર'; + } + if ($hour < 20) { + return 'સાંજ'; + } + + return 'રાત'; + }, + 'months' => ['જાન્યુઆરી', 'ફેબ્રુઆરી', 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટેમ્બર', 'ઑક્ટ્બર', 'નવેમ્બર', 'ડિસેમ્બર'], + 'months_short' => ['જાન્યુ.', 'ફેબ્રુ.', 'માર્ચ', 'એપ્રિ.', 'મે', 'જૂન', 'જુલા.', 'ઑગ.', 'સપ્ટે.', 'ઑક્ટ્.', 'નવે.', 'ડિસે.'], + 'weekdays' => ['રવિવાર', 'સોમવાર', 'મંગળવાર', 'બુધ્વાર', 'ગુરુવાર', 'શુક્રવાર', 'શનિવાર'], + 'weekdays_short' => ['રવિ', 'સોમ', 'મંગળ', 'બુધ્', 'ગુરુ', 'શુક્ર', 'શનિ'], + 'weekdays_min' => ['ર', 'સો', 'મં', 'બુ', 'ગુ', 'શુ', 'શ'], + 'list' => [', ', ' અને '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'weekend' => [0, 0], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gu_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/gu_IN.php new file mode 100644 index 000000000..02654b1f6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gu_IN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/gu.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/guz.php b/vendor/nesbot/carbon/src/Carbon/Lang/guz.php new file mode 100644 index 000000000..6230165c1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/guz.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Ma', 'Mo'], + 'weekdays' => ['Chumapiri', 'Chumatato', 'Chumaine', 'Chumatano', 'Aramisi', 'Ichuma', 'Esabato'], + 'weekdays_short' => ['Cpr', 'Ctt', 'Cmn', 'Cmt', 'Ars', 'Icm', 'Est'], + 'weekdays_min' => ['Cpr', 'Ctt', 'Cmn', 'Cmt', 'Ars', 'Icm', 'Est'], + 'months' => ['Chanuari', 'Feburari', 'Machi', 'Apiriri', 'Mei', 'Juni', 'Chulai', 'Agosti', 'Septemba', 'Okitoba', 'Nobemba', 'Disemba'], + 'months_short' => ['Can', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Cul', 'Agt', 'Sep', 'Okt', 'Nob', 'Dis'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + 'month' => ':count omotunyi', // less reliable + 'm' => ':count omotunyi', // less reliable + 'a_month' => ':count omotunyi', // less reliable + + 'week' => ':count isano naibere', // less reliable + 'w' => ':count isano naibere', // less reliable + 'a_week' => ':count isano naibere', // less reliable + + 'second' => ':count ibere', // less reliable + 's' => ':count ibere', // less reliable + 'a_second' => ':count ibere', // less reliable + + 'year' => ':count omwaka', + 'y' => ':count omwaka', + 'a_year' => ':count omwaka', + + 'day' => ':count rituko', + 'd' => ':count rituko', + 'a_day' => ':count rituko', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gv.php b/vendor/nesbot/carbon/src/Carbon/Lang/gv.php new file mode 100644 index 000000000..7c52b940a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gv.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/gv_GB.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php b/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php new file mode 100644 index 000000000..6b1168f99 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Alastair McKinstry bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Jerrey-geuree', 'Toshiaght-arree', 'Mayrnt', 'Averil', 'Boaldyn', 'Mean-souree', 'Jerrey-souree', 'Luanistyn', 'Mean-fouyir', 'Jerrey-fouyir', 'Mee Houney', 'Mee ny Nollick'], + 'months_short' => ['J-guer', 'T-arree', 'Mayrnt', 'Avrril', 'Boaldyn', 'M-souree', 'J-souree', 'Luanistyn', 'M-fouyir', 'J-fouyir', 'M.Houney', 'M.Nollick'], + 'weekdays' => ['Jedoonee', 'Jelhein', 'Jemayrt', 'Jercean', 'Jerdein', 'Jeheiney', 'Jesarn'], + 'weekdays_short' => ['Jed', 'Jel', 'Jem', 'Jerc', 'Jerd', 'Jeh', 'Jes'], + 'weekdays_min' => ['Jed', 'Jel', 'Jem', 'Jerc', 'Jerd', 'Jeh', 'Jes'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count blein', + 'y' => ':count blein', + 'a_year' => ':count blein', + + 'month' => ':count mee', + 'm' => ':count mee', + 'a_month' => ':count mee', + + 'week' => ':count shiaghtin', + 'w' => ':count shiaghtin', + 'a_week' => ':count shiaghtin', + + 'day' => ':count laa', + 'd' => ':count laa', + 'a_day' => ':count laa', + + 'hour' => ':count oor', + 'h' => ':count oor', + 'a_hour' => ':count oor', + + 'minute' => ':count feer veg', + 'min' => ':count feer veg', + 'a_minute' => ':count feer veg', + + 'second' => ':count derrey', + 's' => ':count derrey', + 'a_second' => ':count derrey', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ha.php b/vendor/nesbot/carbon/src/Carbon/Lang/ha.php new file mode 100644 index 000000000..cd8e34d0d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ha.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - pablo@mandriva.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM, YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM, YYYY HH:mm', + ], + 'months' => ['Janairu', 'Faburairu', 'Maris', 'Afirilu', 'Mayu', 'Yuni', 'Yuli', 'Agusta', 'Satumba', 'Oktoba', 'Nuwamba', 'Disamba'], + 'months_short' => ['Jan', 'Fab', 'Mar', 'Afi', 'May', 'Yun', 'Yul', 'Agu', 'Sat', 'Okt', 'Nuw', 'Dis'], + 'weekdays' => ['Lahadi', 'Litini', 'Talata', 'Laraba', 'Alhamis', 'Jumaʼa', 'Asabar'], + 'weekdays_short' => ['Lah', 'Lit', 'Tal', 'Lar', 'Alh', 'Jum', 'Asa'], + 'weekdays_min' => ['Lh', 'Li', 'Ta', 'Lr', 'Al', 'Ju', 'As'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => 'shekara :count', + 'y' => 'shekara :count', + 'a_year' => 'shekara :count', + + 'month' => ':count wátàa', + 'm' => ':count wátàa', + 'a_month' => ':count wátàa', + + 'week' => ':count mako', + 'w' => ':count mako', + 'a_week' => ':count mako', + + 'day' => ':count rana', + 'd' => ':count rana', + 'a_day' => ':count rana', + + 'hour' => ':count áwàa', + 'h' => ':count áwàa', + 'a_hour' => ':count áwàa', + + 'minute' => 'minti :count', + 'min' => 'minti :count', + 'a_minute' => 'minti :count', + + 'second' => ':count ná bíyú', + 's' => ':count ná bíyú', + 'a_second' => ':count ná bíyú', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ha_GH.php b/vendor/nesbot/carbon/src/Carbon/Lang/ha_GH.php new file mode 100644 index 000000000..f9f99a735 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ha_GH.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ha.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ha_NE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ha_NE.php new file mode 100644 index 000000000..f9f99a735 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ha_NE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ha.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ha_NG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ha_NG.php new file mode 100644 index 000000000..f9f99a735 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ha_NG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ha.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hak.php b/vendor/nesbot/carbon/src/Carbon/Lang/hak.php new file mode 100644 index 000000000..6c3260e8c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hak.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/hak_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php new file mode 100644 index 000000000..fe2398650 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY年MM月DD日', + ], + 'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], + 'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'], + 'weekdays' => ['禮拜日', '禮拜一', '禮拜二', '禮拜三', '禮拜四', '禮拜五', '禮拜六'], + 'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'], + 'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['上晝', '下晝'], + + 'year' => ':count ngien11', + 'y' => ':count ngien11', + 'a_year' => ':count ngien11', + + 'month' => ':count ngie̍t', + 'm' => ':count ngie̍t', + 'a_month' => ':count ngie̍t', + + 'week' => ':count lî-pai', + 'w' => ':count lî-pai', + 'a_week' => ':count lî-pai', + + 'day' => ':count ngit', + 'd' => ':count ngit', + 'a_day' => ':count ngit', + + 'hour' => ':count sṳ̀', + 'h' => ':count sṳ̀', + 'a_hour' => ':count sṳ̀', + + 'minute' => ':count fûn', + 'min' => ':count fûn', + 'a_minute' => ':count fûn', + + 'second' => ':count miéu', + 's' => ':count miéu', + 'a_second' => ':count miéu', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/haw.php b/vendor/nesbot/carbon/src/Carbon/Lang/haw.php new file mode 100644 index 000000000..cdd36861e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/haw.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'months' => ['Ianuali', 'Pepeluali', 'Malaki', 'ʻApelila', 'Mei', 'Iune', 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', 'Kekemapa'], + 'months_short' => ['Ian.', 'Pep.', 'Mal.', 'ʻAp.', 'Mei', 'Iun.', 'Iul.', 'ʻAu.', 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], + 'weekdays' => ['Lāpule', 'Poʻakahi', 'Poʻalua', 'Poʻakolu', 'Poʻahā', 'Poʻalima', 'Poʻaono'], + 'weekdays_short' => ['LP', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6'], + 'weekdays_min' => ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd, D MMMM YYYY h:mm a', + ], + + 'year' => ':count makahiki', + 'y' => ':count makahiki', + 'a_year' => ':count makahiki', + + 'month' => ':count mahina', + 'm' => ':count mahina', + 'a_month' => ':count mahina', + + 'week' => ':count pule', + 'w' => ':count pule', + 'a_week' => ':count pule', + + 'day' => ':count lā', + 'd' => ':count lā', + 'a_day' => ':count lā', + + 'hour' => ':count hola', + 'h' => ':count hola', + 'a_hour' => ':count hola', + + 'minute' => ':count minuke', + 'min' => ':count minuke', + 'a_minute' => ':count minuke', + + 'second' => ':count lua', + 's' => ':count lua', + 'a_second' => ':count lua', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/he.php b/vendor/nesbot/carbon/src/Carbon/Lang/he.php new file mode 100644 index 000000000..c3fb3e976 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/he.php @@ -0,0 +1,86 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Daniel Cohen Gindi + * - JD Isaacks + * - Itai Nathaniel + * - GabMic + * - Yaakov Dahan (yakidahan) + */ +return [ + 'year' => 'שנה|{2}שנתיים|:count שנים', + 'y' => 'שנה|:count שנ׳', + 'month' => 'חודש|{2}חודשיים|:count חודשים', + 'm' => 'חודש|:count חו׳', + 'week' => 'שבוע|{2}שבועיים|:count שבועות', + 'w' => 'שבוע|:count שב׳', + 'day' => 'יום|{2}יומיים|:count ימים', + 'd' => 'יום|:count ימ׳', + 'hour' => 'שעה|{2}שעתיים|:count שעות', + 'h' => 'שעה|:count שע׳', + 'minute' => 'דקה|{2}שתי דקות|:count דקות', + 'min' => 'דקה|:count דק׳', + 'second' => 'שנייה|:count שניות', + 'a_second' => 'כמה שניות|:count שניות', + 's' => 'שניה|:count שנ׳', + 'ago' => 'לפני :time', + 'from_now' => 'בעוד :time מעכשיו', + 'after' => 'אחרי :time', + 'before' => 'לפני :time', + 'diff_now' => 'עכשיו', + 'diff_today' => 'היום', + 'diff_today_regexp' => 'היום(?:\\s+ב־)?', + 'diff_yesterday' => 'אתמול', + 'diff_yesterday_regexp' => 'אתמול(?:\\s+ב־)?', + 'diff_tomorrow' => 'מחר', + 'diff_tomorrow_regexp' => 'מחר(?:\\s+ב־)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D [ב]MMMM YYYY', + 'LLL' => 'D [ב]MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D [ב]MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[היום ב־]LT', + 'nextDay' => '[מחר ב־]LT', + 'nextWeek' => 'dddd [בשעה] LT', + 'lastDay' => '[אתמול ב־]LT', + 'lastWeek' => '[ביום] dddd [האחרון בשעה] LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour, $minute, $isLower) { + if ($hour < 5) { + return 'לפנות בוקר'; + } + if ($hour < 10) { + return 'בבוקר'; + } + if ($hour < 12) { + return $isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } + if ($hour < 18) { + return $isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } + + return 'בערב'; + }, + 'months' => ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'], + 'months_short' => ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', 'מאי', 'יוני', 'יולי', 'אוג׳', 'ספט׳', 'אוק׳', 'נוב׳', 'דצמ׳'], + 'weekdays' => ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת'], + 'weekdays_short' => ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'], + 'weekdays_min' => ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'], + 'list' => [', ', ' ו -'], + 'weekend' => [5, 6], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/he_IL.php b/vendor/nesbot/carbon/src/Carbon/Lang/he_IL.php new file mode 100644 index 000000000..14fab3e9b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/he_IL.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/he.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hi.php b/vendor/nesbot/carbon/src/Carbon/Lang/hi.php new file mode 100644 index 000000000..70c57a297 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hi.php @@ -0,0 +1,82 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - abhimanyu003 + * - Josh Soref + * - JD Isaacks + */ +return [ + 'year' => 'एक वर्ष|:count वर्ष', + 'y' => '1 वर्ष|:count वर्षों', + 'month' => 'एक महीने|:count महीने', + 'm' => '1 माह|:count महीने', + 'week' => '1 सप्ताह|:count सप्ताह', + 'w' => '1 सप्ताह|:count सप्ताह', + 'day' => 'एक दिन|:count दिन', + 'd' => '1 दिन|:count दिनों', + 'hour' => 'एक घंटा|:count घंटे', + 'h' => '1 घंटा|:count घंटे', + 'minute' => 'एक मिनट|:count मिनट', + 'min' => '1 मिनट|:count मिनटों', + 'second' => 'कुछ ही क्षण|:count सेकंड', + 's' => '1 सेकंड|:count सेकंड', + 'ago' => ':time पहले', + 'from_now' => ':time में', + 'after' => ':time के बाद', + 'before' => ':time के पहले', + 'diff_now' => 'अब', + 'diff_today' => 'आज', + 'diff_yesterday' => 'कल', + 'diff_tomorrow' => 'कल', + 'formats' => [ + 'LT' => 'A h:mm बजे', + 'LTS' => 'A h:mm:ss बजे', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, A h:mm बजे', + 'LLLL' => 'dddd, D MMMM YYYY, A h:mm बजे', + ], + 'calendar' => [ + 'sameDay' => '[आज] LT', + 'nextDay' => '[कल] LT', + 'nextWeek' => 'dddd, LT', + 'lastDay' => '[कल] LT', + 'lastWeek' => '[पिछले] dddd, LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'रात'; + } + if ($hour < 10) { + return 'सुबह'; + } + if ($hour < 17) { + return 'दोपहर'; + } + if ($hour < 20) { + return 'शाम'; + } + + return 'रात'; + }, + 'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'months_short' => ['जन.', 'फ़र.', 'मार्च', 'अप्रै.', 'मई', 'जून', 'जुल.', 'अग.', 'सित.', 'अक्टू.', 'नव.', 'दिस.'], + 'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरूवार', 'शुक्रवार', 'शनिवार'], + 'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरू', 'शुक्र', 'शनि'], + 'weekdays_min' => ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'], + 'list' => [', ', ' और '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'weekend' => [0, 0], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hi_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/hi_IN.php new file mode 100644 index 000000000..749dd97c9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hi_IN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/hi.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hif.php b/vendor/nesbot/carbon/src/Carbon/Lang/hif.php new file mode 100644 index 000000000..65791dd43 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hif.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/hif_FJ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php new file mode 100644 index 000000000..30ad5e74c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'dddd DD MMM YYYY', + ], + 'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'weekdays' => ['Ravivar', 'Somvar', 'Mangalvar', 'Budhvar', 'Guruvar', 'Shukravar', 'Shanivar'], + 'weekdays_short' => ['Ravi', 'Som', 'Mangal', 'Budh', 'Guru', 'Shukra', 'Shani'], + 'weekdays_min' => ['Ravi', 'Som', 'Mangal', 'Budh', 'Guru', 'Shukra', 'Shani'], + 'meridiem' => ['Purvahan', 'Aparaahna'], + + 'hour' => ':count minit', // less reliable + 'h' => ':count minit', // less reliable + 'a_hour' => ':count minit', // less reliable + + 'year' => ':count saal', + 'y' => ':count saal', + 'a_year' => ':count saal', + + 'month' => ':count Mahina', + 'm' => ':count Mahina', + 'a_month' => ':count Mahina', + + 'week' => ':count Hafta', + 'w' => ':count Hafta', + 'a_week' => ':count Hafta', + + 'day' => ':count Din', + 'd' => ':count Din', + 'a_day' => ':count Din', + + 'minute' => ':count Minit', + 'min' => ':count Minit', + 'a_minute' => ':count Minit', + + 'second' => ':count Second', + 's' => ':count Second', + 'a_second' => ':count Second', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hne.php b/vendor/nesbot/carbon/src/Carbon/Lang/hne.php new file mode 100644 index 000000000..4bcb05c73 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hne.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/hne_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php new file mode 100644 index 000000000..a5ca758b6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat, Pune bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अपरेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितमबर', 'अकटूबर', 'नवमबर', 'दिसमबर'], + 'months_short' => ['जन', 'फर', 'मार्च', 'अप', 'मई', 'जून', 'जुला', 'अग', 'सित', 'अकटू', 'नव', 'दिस'], + 'weekdays' => ['इतवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'बिरसपत', 'सुकरवार', 'सनिवार'], + 'weekdays_short' => ['इत', 'सोम', 'मंग', 'बुध', 'बिर', 'सुक', 'सनि'], + 'weekdays_min' => ['इत', 'सोम', 'मंग', 'बुध', 'बिर', 'सुक', 'सनि'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['बिहिनियाँ', 'मंझनियाँ'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hr.php b/vendor/nesbot/carbon/src/Carbon/Lang/hr.php new file mode 100644 index 000000000..cfd85fd40 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hr.php @@ -0,0 +1,111 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - Tim Fish + * - shaishavgandhi05 + * - Serhan Apaydın + * - JD Isaacks + * - tomhorvat + * - Josh Soref + * - François B + * - shaishavgandhi05 + * - Serhan Apaydın + * - JD Isaacks + * - tomhorvat + * - Stjepan Majdak + * - Vanja Retkovac (vr00) + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count godinu|:count godine|:count godina', + 'y' => ':count god.|:count god.|:count god.', + 'month' => ':count mjesec|:count mjeseca|:count mjeseci', + 'm' => ':count mj.|:count mj.|:count mj.', + 'week' => ':count tjedan|:count tjedna|:count tjedana', + 'w' => ':count tj.|:count tj.|:count tj.', + 'day' => ':count dan|:count dana|:count dana', + 'd' => ':count d.|:count d.|:count d.', + 'hour' => ':count sat|:count sata|:count sati', + 'h' => ':count sat|:count sata|:count sati', + 'minute' => ':count minutu|:count minute|:count minuta', + 'min' => ':count min.|:count min.|:count min.', + 'second' => ':count sekundu|:count sekunde|:count sekundi', + 'a_second' => 'nekoliko sekundi|:count sekunde|:count sekundi', + 's' => ':count sek.|:count sek.|:count sek.', + 'ago' => 'prije :time', + 'from_now' => 'za :time', + 'after' => ':time poslije', + 'before' => ':time prije', + 'diff_now' => 'sad', + 'diff_today' => 'danas', + 'diff_today_regexp' => 'danas(?:\\s+u)?', + 'diff_yesterday' => 'jučer', + 'diff_yesterday_regexp' => 'jučer(?:\\s+u)?', + 'diff_tomorrow' => 'sutra', + 'diff_tomorrow_regexp' => 'sutra(?:\\s+u)?', + 'diff_before_yesterday' => 'prekjučer', + 'diff_after_tomorrow' => 'prekosutra', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'D. M. YYYY.', + 'LL' => 'D. MMMM YYYY.', + 'LLL' => 'D. MMMM YYYY. H:mm', + 'LLLL' => 'dddd, D. MMMM YYYY. H:mm', + ], + 'calendar' => [ + 'sameDay' => '[danas u] LT', + 'nextDay' => '[sutra u] LT', + 'nextWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + default: + return '[u] dddd [u] LT'; + } + }, + 'lastDay' => '[jučer u] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + default: + return '[prošli] dddd [u] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'], + 'months_standalone' => ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'], + 'months_short' => ['sij.', 'velj.', 'ožu.', 'tra.', 'svi.', 'lip.', 'srp.', 'kol.', 'ruj.', 'lis.', 'stu.', 'pro.'], + 'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', + 'weekdays' => ['nedjelju', 'ponedjeljak', 'utorak', 'srijedu', 'četvrtak', 'petak', 'subotu'], + 'weekdays_standalone' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'], + 'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'], + 'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' i '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php b/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php new file mode 100644 index 000000000..7763a4587 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - DarkoDevelop + */ +return array_replace_recursive(require __DIR__.'/hr.php', [ + 'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'], + 'weekdays_short' => ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], + 'weekdays_min' => ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], + 'months' => ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'], + 'months_short' => ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', 'kol', 'ruj', 'lis', 'stu', 'pro'], + 'months_standalone' => ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D. M. yy.', + 'LL' => 'D. MMM YYYY.', + 'LLL' => 'D. MMMM YYYY. HH:mm', + 'LLLL' => 'dddd, D. MMMM YYYY. HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hr_HR.php b/vendor/nesbot/carbon/src/Carbon/Lang/hr_HR.php new file mode 100644 index 000000000..db74d8c70 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hr_HR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/hr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php b/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php new file mode 100644 index 000000000..3537b8ba2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/hsb_DE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php new file mode 100644 index 000000000..6ba227161 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Information from Michael Wolf Andrzej Krzysztofowicz ankry@mif.pg.gda.pl + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'DD. MMMM YYYY', + 'LLL' => 'DD. MMMM, HH:mm [hodź.]', + 'LLLL' => 'dddd, DD. MMMM YYYY, HH:mm [hodź.]', + ], + 'months' => ['januara', 'februara', 'měrca', 'apryla', 'meje', 'junija', 'julija', 'awgusta', 'septembra', 'oktobra', 'nowembra', 'decembra'], + 'months_short' => ['Jan', 'Feb', 'Měr', 'Apr', 'Mej', 'Jun', 'Jul', 'Awg', 'Sep', 'Okt', 'Now', 'Dec'], + 'weekdays' => ['Njedźela', 'Póndźela', 'Wutora', 'Srjeda', 'Štvórtk', 'Pjatk', 'Sobota'], + 'weekdays_short' => ['Nj', 'Pó', 'Wu', 'Sr', 'Št', 'Pj', 'So'], + 'weekdays_min' => ['Nj', 'Pó', 'Wu', 'Sr', 'Št', 'Pj', 'So'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count lěto', + 'y' => ':count lěto', + 'a_year' => ':count lěto', + + 'month' => ':count měsac', + 'm' => ':count měsac', + 'a_month' => ':count měsac', + + 'week' => ':count tydźeń', + 'w' => ':count tydźeń', + 'a_week' => ':count tydźeń', + + 'day' => ':count dźeń', + 'd' => ':count dźeń', + 'a_day' => ':count dźeń', + + 'hour' => ':count hodźina', + 'h' => ':count hodźina', + 'a_hour' => ':count hodźina', + + 'minute' => ':count chwila', + 'min' => ':count chwila', + 'a_minute' => ':count chwila', + + 'second' => ':count druhi', + 's' => ':count druhi', + 'a_second' => ':count druhi', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ht.php b/vendor/nesbot/carbon/src/Carbon/Lang/ht.php new file mode 100644 index 000000000..ebd12ad11 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ht.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ht_HT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php b/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php new file mode 100644 index 000000000..139b813b2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['janvye', 'fevriye', 'mas', 'avril', 'me', 'jen', 'jiyè', 'out', 'septanm', 'oktòb', 'novanm', 'desanm'], + 'months_short' => ['jan', 'fev', 'mas', 'avr', 'me', 'jen', 'jiy', 'out', 'sep', 'okt', 'nov', 'des'], + 'weekdays' => ['dimanch', 'lendi', 'madi', 'mèkredi', 'jedi', 'vandredi', 'samdi'], + 'weekdays_short' => ['dim', 'len', 'mad', 'mèk', 'jed', 'van', 'sam'], + 'weekdays_min' => ['dim', 'len', 'mad', 'mèk', 'jed', 'van', 'sam'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => ':count lane', + 'y' => ':count lane', + 'a_year' => ':count lane', + + 'month' => 'mwa :count', + 'm' => 'mwa :count', + 'a_month' => 'mwa :count', + + 'week' => 'semèn :count', + 'w' => 'semèn :count', + 'a_week' => 'semèn :count', + + 'day' => ':count jou', + 'd' => ':count jou', + 'a_day' => ':count jou', + + 'hour' => ':count lè', + 'h' => ':count lè', + 'a_hour' => ':count lè', + + 'minute' => ':count minit', + 'min' => ':count minit', + 'a_minute' => ':count minit', + + 'second' => ':count segonn', + 's' => ':count segonn', + 'a_second' => ':count segonn', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hu.php b/vendor/nesbot/carbon/src/Carbon/Lang/hu.php new file mode 100644 index 000000000..b2d2ac113 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hu.php @@ -0,0 +1,118 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Adam Brunner + * - Brett Johnson + * - balping + */ + +use Carbon\CarbonInterface; + +$huWeekEndings = ['vasárnap', 'hétfőn', 'kedden', 'szerdán', 'csütörtökön', 'pénteken', 'szombaton']; + +return [ + 'year' => ':count év', + 'y' => ':count év', + 'month' => ':count hónap', + 'm' => ':count hónap', + 'week' => ':count hét', + 'w' => ':count hét', + 'day' => ':count nap', + 'd' => ':count nap', + 'hour' => ':count óra', + 'h' => ':count óra', + 'minute' => ':count perc', + 'min' => ':count perc', + 'second' => ':count másodperc', + 's' => ':count másodperc', + 'ago' => ':time', + 'from_now' => ':time múlva', + 'after' => ':time később', + 'before' => ':time korábban', + 'year_ago' => ':count éve', + 'y_ago' => ':count éve', + 'month_ago' => ':count hónapja', + 'm_ago' => ':count hónapja', + 'week_ago' => ':count hete', + 'w_ago' => ':count hete', + 'day_ago' => ':count napja', + 'd_ago' => ':count napja', + 'hour_ago' => ':count órája', + 'h_ago' => ':count órája', + 'minute_ago' => ':count perce', + 'min_ago' => ':count perce', + 'second_ago' => ':count másodperce', + 's_ago' => ':count másodperce', + 'year_after' => ':count évvel', + 'y_after' => ':count évvel', + 'month_after' => ':count hónappal', + 'm_after' => ':count hónappal', + 'week_after' => ':count héttel', + 'w_after' => ':count héttel', + 'day_after' => ':count nappal', + 'd_after' => ':count nappal', + 'hour_after' => ':count órával', + 'h_after' => ':count órával', + 'minute_after' => ':count perccel', + 'min_after' => ':count perccel', + 'second_after' => ':count másodperccel', + 's_after' => ':count másodperccel', + 'year_before' => ':count évvel', + 'y_before' => ':count évvel', + 'month_before' => ':count hónappal', + 'm_before' => ':count hónappal', + 'week_before' => ':count héttel', + 'w_before' => ':count héttel', + 'day_before' => ':count nappal', + 'd_before' => ':count nappal', + 'hour_before' => ':count órával', + 'h_before' => ':count órával', + 'minute_before' => ':count perccel', + 'min_before' => ':count perccel', + 'second_before' => ':count másodperccel', + 's_before' => ':count másodperccel', + 'months' => ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'], + 'months_short' => ['jan.', 'feb.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], + 'weekdays' => ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat'], + 'weekdays_short' => ['vas', 'hét', 'kedd', 'sze', 'csüt', 'pén', 'szo'], + 'weekdays_min' => ['v', 'h', 'k', 'sze', 'cs', 'p', 'sz'], + 'ordinal' => ':number.', + 'diff_now' => 'most', + 'diff_today' => 'ma', + 'diff_yesterday' => 'tegnap', + 'diff_tomorrow' => 'holnap', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'YYYY.MM.DD.', + 'LL' => 'YYYY. MMMM D.', + 'LLL' => 'YYYY. MMMM D. H:mm', + 'LLLL' => 'YYYY. MMMM D., dddd H:mm', + ], + 'calendar' => [ + 'sameDay' => '[ma] LT[-kor]', + 'nextDay' => '[holnap] LT[-kor]', + 'nextWeek' => function (CarbonInterface $date) use ($huWeekEndings) { + return '['.$huWeekEndings[$date->dayOfWeek].'] LT[-kor]'; + }, + 'lastDay' => '[tegnap] LT[-kor]', + 'lastWeek' => function (CarbonInterface $date) use ($huWeekEndings) { + return '[múlt '.$huWeekEndings[$date->dayOfWeek].'] LT[-kor]'; + }, + 'sameElse' => 'L', + ], + 'meridiem' => ['DE', 'DU'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' és '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hu_HU.php b/vendor/nesbot/carbon/src/Carbon/Lang/hu_HU.php new file mode 100644 index 000000000..b1c485417 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hu_HU.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/hu.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hy.php b/vendor/nesbot/carbon/src/Carbon/Lang/hy.php new file mode 100644 index 000000000..8b129947d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hy.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - mhamlet + */ +return [ + 'year' => ':count տարի', + 'a_year' => 'տարի|:count տարի', + 'y' => ':countտ', + 'month' => ':count ամիս', + 'a_month' => 'ամիս|:count ամիս', + 'm' => ':countամ', + 'week' => ':count շաբաթ', + 'a_week' => 'շաբաթ|:count շաբաթ', + 'w' => ':countշ', + 'day' => ':count օր', + 'a_day' => 'օր|:count օր', + 'd' => ':countօր', + 'hour' => ':count ժամ', + 'a_hour' => 'ժամ|:count ժամ', + 'h' => ':countժ', + 'minute' => ':count րոպե', + 'a_minute' => 'րոպե|:count րոպե', + 'min' => ':countր', + 'second' => ':count վայրկյան', + 'a_second' => 'մի քանի վայրկյան|:count վայրկյան', + 's' => ':countվրկ', + 'ago' => ':time առաջ', + 'from_now' => ':timeից', + 'after' => ':time հետո', + 'before' => ':time առաջ', + 'diff_now' => 'հիմա', + 'diff_today' => 'այսօր', + 'diff_yesterday' => 'երեկ', + 'diff_tomorrow' => 'վաղը', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY թ.', + 'LLL' => 'D MMMM YYYY թ., HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY թ., HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[այսօր] LT', + 'nextDay' => '[վաղը] LT', + 'nextWeek' => 'dddd [օրը ժամը] LT', + 'lastDay' => '[երեկ] LT', + 'lastWeek' => '[անցած] dddd [օրը ժամը] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + return $number.($number === 1 ? '-ին' : '-րդ'); + default: + return $number; + } + }, + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'գիշերվա'; + } + if ($hour < 12) { + return 'առավոտվա'; + } + if ($hour < 17) { + return 'ցերեկվա'; + } + + return 'երեկոյան'; + }, + 'months' => ['հունվարի', 'փետրվարի', 'մարտի', 'ապրիլի', 'մայիսի', 'հունիսի', 'հուլիսի', 'օգոստոսի', 'սեպտեմբերի', 'հոկտեմբերի', 'նոյեմբերի', 'դեկտեմբերի'], + 'months_standalone' => ['հունվար', 'փետրվար', 'մարտ', 'ապրիլ', 'մայիս', 'հունիս', 'հուլիս', 'օգոստոս', 'սեպտեմբեր', 'հոկտեմբեր', 'նոյեմբեր', 'դեկտեմբեր'], + 'months_short' => ['հնվ', 'փտր', 'մրտ', 'ապր', 'մյս', 'հնս', 'հլս', 'օգս', 'սպտ', 'հկտ', 'նմբ', 'դկտ'], + 'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', + 'weekdays' => ['կիրակի', 'երկուշաբթի', 'երեքշաբթի', 'չորեքշաբթի', 'հինգշաբթի', 'ուրբաթ', 'շաբաթ'], + 'weekdays_short' => ['կրկ', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'], + 'weekdays_min' => ['կրկ', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'], + 'list' => [', ', ' եւ '], + 'first_day_of_week' => 1, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php b/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php new file mode 100644 index 000000000..4587df56c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - Tim Fish + * - Serhan Apaydın + * - JD Isaacks + */ +return array_replace_recursive(require __DIR__.'/hy.php', [ + 'from_now' => ':time հետո', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/i18n.php b/vendor/nesbot/carbon/src/Carbon/Lang/i18n.php new file mode 100644 index 000000000..e65449b8d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/i18n.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-DD', + ], + 'months' => ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'], + 'months_short' => ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'], + 'weekdays' => ['1', '2', '3', '4', '5', '6', '7'], + 'weekdays_short' => ['1', '2', '3', '4', '5', '6', '7'], + 'weekdays_min' => ['1', '2', '3', '4', '5', '6', '7'], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ia.php b/vendor/nesbot/carbon/src/Carbon/Lang/ia.php new file mode 100644 index 000000000..0a0d5e611 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ia.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ia_FR.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php b/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php new file mode 100644 index 000000000..de4b2fa09 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Fedora Project Nik Kalach nikka@fedoraproject.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['januario', 'februario', 'martio', 'april', 'maio', 'junio', 'julio', 'augusto', 'septembre', 'octobre', 'novembre', 'decembre'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'], + 'weekdays' => ['dominica', 'lunedi', 'martedi', 'mercuridi', 'jovedi', 'venerdi', 'sabbato'], + 'weekdays_short' => ['dom', 'lun', 'mar', 'mer', 'jov', 'ven', 'sab'], + 'weekdays_min' => ['dom', 'lun', 'mar', 'mer', 'jov', 'ven', 'sab'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => 'anno :count', + 'y' => 'anno :count', + 'a_year' => 'anno :count', + + 'month' => ':count mense', + 'm' => ':count mense', + 'a_month' => ':count mense', + + 'week' => ':count septimana', + 'w' => ':count septimana', + 'a_week' => ':count septimana', + + 'day' => ':count die', + 'd' => ':count die', + 'a_day' => ':count die', + + 'hour' => ':count hora', + 'h' => ':count hora', + 'a_hour' => ':count hora', + + 'minute' => ':count minuscule', + 'min' => ':count minuscule', + 'a_minute' => ':count minuscule', + + 'second' => ':count secunda', + 's' => ':count secunda', + 'a_second' => ':count secunda', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/id.php b/vendor/nesbot/carbon/src/Carbon/Lang/id.php new file mode 100644 index 000000000..afaf78f29 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/id.php @@ -0,0 +1,92 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - du + * - JD Isaacks + * - Nafies Luthfi + * - Raymundus Jati Primanda (mundusjp) + * - diankur313 + * - a-wip0 + */ +return [ + 'year' => ':count tahun', + 'a_year' => '{1}setahun|]1,Inf[:count tahun', + 'y' => ':countthn', + 'month' => ':count bulan', + 'a_month' => '{1}sebulan|]1,Inf[:count bulan', + 'm' => ':countbln', + 'week' => ':count minggu', + 'a_week' => '{1}seminggu|]1,Inf[:count minggu', + 'w' => ':countmgg', + 'day' => ':count hari', + 'a_day' => '{1}sehari|]1,Inf[:count hari', + 'd' => ':counthr', + 'hour' => ':count jam', + 'a_hour' => '{1}sejam|]1,Inf[:count jam', + 'h' => ':countj', + 'minute' => ':count menit', + 'a_minute' => '{1}semenit|]1,Inf[:count menit', + 'min' => ':countmnt', + 'second' => ':count detik', + 'a_second' => '{1}beberapa detik|]1,Inf[:count detik', + 's' => ':countdt', + 'ago' => ':time yang lalu', + 'from_now' => ':time dari sekarang', + 'after' => ':time setelahnya', + 'before' => ':time sebelumnya', + 'diff_now' => 'sekarang', + 'diff_today' => 'Hari', + 'diff_today_regexp' => 'Hari(?:\\s+ini)?(?:\\s+pukul)?', + 'diff_yesterday' => 'kemarin', + 'diff_yesterday_regexp' => 'Kemarin(?:\\s+pukul)?', + 'diff_tomorrow' => 'besok', + 'diff_tomorrow_regexp' => 'Besok(?:\\s+pukul)?', + 'formats' => [ + 'LT' => 'HH.mm', + 'LTS' => 'HH.mm.ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY [pukul] HH.mm', + 'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm', + ], + 'calendar' => [ + 'sameDay' => '[Hari ini pukul] LT', + 'nextDay' => '[Besok pukul] LT', + 'nextWeek' => 'dddd [pukul] LT', + 'lastDay' => '[Kemarin pukul] LT', + 'lastWeek' => 'dddd [lalu pukul] LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 11) { + return 'pagi'; + } + if ($hour < 15) { + return 'siang'; + } + if ($hour < 19) { + return 'sore'; + } + + return 'malam'; + }, + 'months' => ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agt', 'Sep', 'Okt', 'Nov', 'Des'], + 'weekdays' => ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'], + 'weekdays_short' => ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'], + 'weekdays_min' => ['Mg', 'Sn', 'Sl', 'Rb', 'Km', 'Jm', 'Sb'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' dan '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/id_ID.php b/vendor/nesbot/carbon/src/Carbon/Lang/id_ID.php new file mode 100644 index 000000000..d5953a14e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/id_ID.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/id.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ig.php b/vendor/nesbot/carbon/src/Carbon/Lang/ig.php new file mode 100644 index 000000000..de51e9cc4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ig.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ig_NG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php new file mode 100644 index 000000000..0034e35d8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - pablo@mandriva.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Jenụwarị', 'Febrụwarị', 'Maachị', 'Eprel', 'Mee', 'Juun', 'Julaị', 'Ọgọọst', 'Septemba', 'Ọktoba', 'Novemba', 'Disemba'], + 'months_short' => ['Jen', 'Feb', 'Maa', 'Epr', 'Mee', 'Juu', 'Jul', 'Ọgọ', 'Sep', 'Ọkt', 'Nov', 'Dis'], + 'weekdays' => ['sọnde', 'mọnde', 'tuzde', 'wenzde', 'tọsde', 'fraịde', 'satọde'], + 'weekdays_short' => ['sọn', 'mọn', 'tuz', 'wen', 'tọs', 'fra', 'sat'], + 'weekdays_min' => ['sọn', 'mọn', 'tuz', 'wen', 'tọs', 'fra', 'sat'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => 'afo :count', + 'y' => 'afo :count', + 'a_year' => 'afo :count', + + 'month' => 'önwa :count', + 'm' => 'önwa :count', + 'a_month' => 'önwa :count', + + 'week' => 'izu :count', + 'w' => 'izu :count', + 'a_week' => 'izu :count', + + 'day' => 'ụbọchị :count', + 'd' => 'ụbọchị :count', + 'a_day' => 'ụbọchị :count', + + 'hour' => 'awa :count', + 'h' => 'awa :count', + 'a_hour' => 'awa :count', + + 'minute' => 'minit :count', + 'min' => 'minit :count', + 'a_minute' => 'minit :count', + + 'second' => 'sekọnd :count', + 's' => 'sekọnd :count', + 'a_second' => 'sekọnd :count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ii.php b/vendor/nesbot/carbon/src/Carbon/Lang/ii.php new file mode 100644 index 000000000..a4246c277 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ii.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['ꎸꄑ', 'ꁯꋒ'], + 'weekdays' => ['ꑭꆏꑍ', 'ꆏꊂꋍ', 'ꆏꊂꑍ', 'ꆏꊂꌕ', 'ꆏꊂꇖ', 'ꆏꊂꉬ', 'ꆏꊂꃘ'], + 'weekdays_short' => ['ꑭꆏ', 'ꆏꋍ', 'ꆏꑍ', 'ꆏꌕ', 'ꆏꇖ', 'ꆏꉬ', 'ꆏꃘ'], + 'weekdays_min' => ['ꑭꆏ', 'ꆏꋍ', 'ꆏꑍ', 'ꆏꌕ', 'ꆏꇖ', 'ꆏꉬ', 'ꆏꃘ'], + 'months' => null, + 'months_short' => ['ꋍꆪ', 'ꑍꆪ', 'ꌕꆪ', 'ꇖꆪ', 'ꉬꆪ', 'ꃘꆪ', 'ꏃꆪ', 'ꉆꆪ', 'ꈬꆪ', 'ꊰꆪ', 'ꊰꊪꆪ', 'ꊰꑋꆪ'], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'YYYY-MM-dd', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D h:mm a', + 'LLLL' => 'YYYY MMMM D, dddd h:mm a', + ], + + 'year' => ':count ꒉ', // less reliable + 'y' => ':count ꒉ', // less reliable + 'a_year' => ':count ꒉ', // less reliable + + 'month' => ':count ꆪ', + 'm' => ':count ꆪ', + 'a_month' => ':count ꆪ', + + 'week' => ':count ꏃ', // less reliable + 'w' => ':count ꏃ', // less reliable + 'a_week' => ':count ꏃ', // less reliable + + 'day' => ':count ꏜ', // less reliable + 'd' => ':count ꏜ', // less reliable + 'a_day' => ':count ꏜ', // less reliable + + 'hour' => ':count ꄮꈉ', + 'h' => ':count ꄮꈉ', + 'a_hour' => ':count ꄮꈉ', + + 'minute' => ':count ꀄꊭ', // less reliable + 'min' => ':count ꀄꊭ', // less reliable + 'a_minute' => ':count ꀄꊭ', // less reliable + + 'second' => ':count ꇅ', // less reliable + 's' => ':count ꇅ', // less reliable + 'a_second' => ':count ꇅ', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ik.php b/vendor/nesbot/carbon/src/Carbon/Lang/ik.php new file mode 100644 index 000000000..7a13aa2db --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ik.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ik_CA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php new file mode 100644 index 000000000..bb2a109b9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - pablo@mandriva.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Siqiññaatchiaq', 'Siqiññaasrugruk', 'Paniqsiqsiivik', 'Qilġich Tatqiat', 'Suppivik', 'Iġñivik', 'Itchavik', 'Tiññivik', 'Amiġaiqsivik', 'Sikkuvik', 'Nippivik', 'Siqiñġiḷaq'], + 'months_short' => ['Sñt', 'Sñs', 'Pan', 'Qil', 'Sup', 'Iġñ', 'Itc', 'Tiñ', 'Ami', 'Sik', 'Nip', 'Siq'], + 'weekdays' => ['Minġuiqsioiq', 'Savałłiq', 'Ilaqtchiioiq', 'Qitchiioiq', 'Sisamiioiq', 'Tallimmiioiq', 'Maqinġuoiq'], + 'weekdays_short' => ['Min', 'Sav', 'Ila', 'Qit', 'Sis', 'Tal', 'Maq'], + 'weekdays_min' => ['Min', 'Sav', 'Ila', 'Qit', 'Sis', 'Tal', 'Maq'], + 'day_of_first_week_of_year' => 1, + + 'year' => ':count ukiuq', + 'y' => ':count ukiuq', + 'a_year' => ':count ukiuq', + + 'month' => ':count Tatqiat', + 'm' => ':count Tatqiat', + 'a_month' => ':count Tatqiat', + + 'week' => ':count tatqiat', // less reliable + 'w' => ':count tatqiat', // less reliable + 'a_week' => ':count tatqiat', // less reliable + + 'day' => ':count siqiñiq', // less reliable + 'd' => ':count siqiñiq', // less reliable + 'a_day' => ':count siqiñiq', // less reliable + + 'hour' => ':count Siḷa', // less reliable + 'h' => ':count Siḷa', // less reliable + 'a_hour' => ':count Siḷa', // less reliable + + 'second' => ':count iġñiq', // less reliable + 's' => ':count iġñiq', // less reliable + 'a_second' => ':count iġñiq', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/in.php b/vendor/nesbot/carbon/src/Carbon/Lang/in.php new file mode 100644 index 000000000..d5953a14e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/in.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/id.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/is.php b/vendor/nesbot/carbon/src/Carbon/Lang/is.php new file mode 100644 index 000000000..9990168c2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/is.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kristján Ingi Geirsson + */ +return [ + 'year' => '1 ár|:count ár', + 'y' => '1 ár|:count ár', + 'month' => '1 mánuður|:count mánuðir', + 'm' => '1 mánuður|:count mánuðir', + 'week' => '1 vika|:count vikur', + 'w' => '1 vika|:count vikur', + 'day' => '1 dagur|:count dagar', + 'd' => '1 dagur|:count dagar', + 'hour' => '1 klukkutími|:count klukkutímar', + 'h' => '1 klukkutími|:count klukkutímar', + 'minute' => '1 mínúta|:count mínútur', + 'min' => '1 mínúta|:count mínútur', + 'second' => '1 sekúnda|:count sekúndur', + 's' => '1 sekúnda|:count sekúndur', + 'ago' => ':time síðan', + 'from_now' => ':time síðan', + 'after' => ':time eftir', + 'before' => ':time fyrir', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' og '], + 'meridiem' => ['fh', 'eh'], + 'diff_now' => 'núna', + 'diff_yesterday' => 'í gær', + 'diff_tomorrow' => 'á morgun', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM [kl.] HH:mm', + 'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm', + ], + 'weekdays' => ['sunnudaginn', 'mánudaginn', 'þriðjudaginn', 'miðvikudaginn', 'fimmtudaginn', 'föstudaginn', 'laugardaginn'], + 'weekdays_short' => ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'], + 'weekdays_min' => ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'], + 'months' => ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', 'ágú', 'sep', 'okt', 'nóv', 'des'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/is_IS.php b/vendor/nesbot/carbon/src/Carbon/Lang/is_IS.php new file mode 100644 index 000000000..4d35c4489 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/is_IS.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/is.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/it.php b/vendor/nesbot/carbon/src/Carbon/Lang/it.php new file mode 100644 index 000000000..49875d7ef --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/it.php @@ -0,0 +1,115 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ash + * - François B + * - Marco Perrando + * - Massimiliano Caniparoli + * - JD Isaacks + * - Andrea Martini + * - Francesco Marasco + * - Tizianoz93 + * - Davide Casiraghi (davide-casiraghi) + * - Pete Scopes (pdscopes) + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count anno|:count anni', + 'a_year' => 'un anno|:count anni', + 'y' => ':count anno|:count anni', + 'month' => ':count mese|:count mesi', + 'a_month' => 'un mese|:count mesi', + 'm' => ':count mese|:count mesi', + 'week' => ':count settimana|:count settimane', + 'a_week' => 'una settimana|:count settimane', + 'w' => ':count set.', + 'day' => ':count giorno|:count giorni', + 'a_day' => 'un giorno|:count giorni', + 'd' => ':count g|:count gg', + 'hour' => ':count ora|:count ore', + 'a_hour' => 'un\'ora|:count ore', + 'h' => ':count h', + 'minute' => ':count minuto|:count minuti', + 'a_minute' => 'un minuto|:count minuti', + 'min' => ':count min.', + 'second' => ':count secondo|:count secondi', + 'a_second' => 'alcuni secondi|:count secondi', + 's' => ':count sec.', + 'millisecond' => ':count millisecondo|:count millisecondi', + 'a_millisecond' => 'un millisecondo|:count millisecondi', + 'ms' => ':countms', + 'microsecond' => ':count microsecondo|:count microsecondi', + 'a_microsecond' => 'un microsecondo|:count microsecondi', + 'µs' => ':countµs', + 'ago' => ':time fa', + 'from_now' => function ($time) { + return (preg_match('/^\d.+$/', $time) ? 'tra' : 'in')." $time"; + }, + 'after' => ':time dopo', + 'before' => ':time prima', + 'diff_now' => 'proprio ora', + 'diff_today' => 'Oggi', + 'diff_today_regexp' => 'Oggi(?:\\s+alle)?', + 'diff_yesterday' => 'ieri', + 'diff_yesterday_regexp' => 'Ieri(?:\\s+alle)?', + 'diff_tomorrow' => 'domani', + 'diff_tomorrow_regexp' => 'Domani(?:\\s+alle)?', + 'diff_before_yesterday' => 'l\'altro ieri', + 'diff_after_tomorrow' => 'dopodomani', + 'period_interval' => 'ogni :interval', + 'period_start_date' => 'dal :date', + 'period_end_date' => 'al :date', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Oggi alle] LT', + 'nextDay' => '[Domani alle] LT', + 'nextWeek' => 'dddd [alle] LT', + 'lastDay' => '[Ieri alle] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':numberº', + 'months' => ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'], + 'months_short' => ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'], + 'weekdays' => ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'], + 'weekdays_short' => ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], + 'weekdays_min' => ['do', 'lu', 'ma', 'me', 'gi', 've', 'sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' e '], + 'ordinal_words' => [ + 'of' => 'di', + 'first' => 'primo', + 'second' => 'secondo', + 'third' => 'terzo', + 'fourth' => 'quarto', + 'fifth' => 'quinto', + 'last' => 'ultimo', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/it_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/it_CH.php new file mode 100644 index 000000000..c23cc50e3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/it_CH.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Propaganistas + */ +return array_replace_recursive(require __DIR__.'/it.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php new file mode 100644 index 000000000..a5d198180 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return require __DIR__.'/it.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/it_SM.php b/vendor/nesbot/carbon/src/Carbon/Lang/it_SM.php new file mode 100644 index 000000000..5e8fc92f4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/it_SM.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/it.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/it_VA.php b/vendor/nesbot/carbon/src/Carbon/Lang/it_VA.php new file mode 100644 index 000000000..5e8fc92f4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/it_VA.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/it.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/iu.php b/vendor/nesbot/carbon/src/Carbon/Lang/iu.php new file mode 100644 index 000000000..4fa974274 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/iu.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/iu_CA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php new file mode 100644 index 000000000..6ab7e1497 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Pablo Saratxaga pablo@mandriva.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'MM/DD/YY', + ], + 'months' => ['ᔮᓄᐊᓕ', 'ᕕᕗᐊᓕ', 'ᒪᔅᓯ', 'ᐃᐳᓗ', 'ᒪᐃ', 'ᔪᓂ', 'ᔪᓚᐃ', 'ᐊᒋᓯ', 'ᓯᑎᕙ', 'ᐊᑦᑐᕙ', 'ᓄᕕᕙ', 'ᑎᓯᕝᕙ'], + 'months_short' => ['ᔮᓄ', 'ᕕᕗ', 'ᒪᔅ', 'ᐃᐳ', 'ᒪᐃ', 'ᔪᓂ', 'ᔪᓚ', 'ᐊᒋ', 'ᓯᑎ', 'ᐊᑦ', 'ᓄᕕ', 'ᑎᓯ'], + 'weekdays' => ['ᓈᑦᑎᖑᔭᕐᕕᒃ', 'ᓇᒡᒐᔾᔭᐅ', 'ᓇᒡᒐᔾᔭᐅᓕᖅᑭᑦ', 'ᐱᖓᓲᓕᖅᓯᐅᑦ', 'ᕿᑎᖅᑰᑦ', 'ᐅᓪᓗᕈᓘᑐᐃᓇᖅ', 'ᓯᕙᑖᕕᒃ'], + 'weekdays_short' => ['ᓈ', 'ᓇ', 'ᓕ', 'ᐱ', 'ᕿ', 'ᐅ', 'ᓯ'], + 'weekdays_min' => ['ᓈ', 'ᓇ', 'ᓕ', 'ᐱ', 'ᕿ', 'ᐅ', 'ᓯ'], + 'day_of_first_week_of_year' => 1, + + 'year' => ':count ᐅᑭᐅᖅ', + 'y' => ':count ᐅᑭᐅᖅ', + 'a_year' => ':count ᐅᑭᐅᖅ', + + 'month' => ':count qaammat', + 'm' => ':count qaammat', + 'a_month' => ':count qaammat', + + 'week' => ':count sapaatip akunnera', + 'w' => ':count sapaatip akunnera', + 'a_week' => ':count sapaatip akunnera', + + 'day' => ':count ulloq', + 'd' => ':count ulloq', + 'a_day' => ':count ulloq', + + 'hour' => ':count ikarraq', + 'h' => ':count ikarraq', + 'a_hour' => ':count ikarraq', + + 'minute' => ':count titiqqaralaaq', // less reliable + 'min' => ':count titiqqaralaaq', // less reliable + 'a_minute' => ':count titiqqaralaaq', // less reliable + + 'second' => ':count marluk', // less reliable + 's' => ':count marluk', // less reliable + 'a_second' => ':count marluk', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/iw.php b/vendor/nesbot/carbon/src/Carbon/Lang/iw.php new file mode 100644 index 000000000..a26e35062 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/iw.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'months' => ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'], + 'months_short' => ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', 'מאי', 'יוני', 'יולי', 'אוג׳', 'ספט׳', 'אוק׳', 'נוב׳', 'דצמ׳'], + 'weekdays' => ['יום ראשון', 'יום שני', 'יום שלישי', 'יום רביעי', 'יום חמישי', 'יום שישי', 'יום שבת'], + 'weekdays_short' => ['יום א׳', 'יום ב׳', 'יום ג׳', 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'], + 'weekdays_min' => ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'], + 'meridiem' => ['לפנה״צ', 'אחה״צ'], + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'D.M.YYYY', + 'LL' => 'D בMMM YYYY', + 'LLL' => 'D בMMMM YYYY H:mm', + 'LLLL' => 'dddd, D בMMMM YYYY H:mm', + ], + + 'year' => ':count שנה', + 'y' => ':count שנה', + 'a_year' => ':count שנה', + + 'month' => ':count חודש', + 'm' => ':count חודש', + 'a_month' => ':count חודש', + + 'week' => ':count שבוע', + 'w' => ':count שבוע', + 'a_week' => ':count שבוע', + + 'day' => ':count יום', + 'd' => ':count יום', + 'a_day' => ':count יום', + + 'hour' => ':count שעה', + 'h' => ':count שעה', + 'a_hour' => ':count שעה', + + 'minute' => ':count דקה', + 'min' => ':count דקה', + 'a_minute' => ':count דקה', + + 'second' => ':count שניה', + 's' => ':count שניה', + 'a_second' => ':count שניה', + + 'ago' => 'לפני :time', + 'from_now' => 'בעוד :time', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ja.php b/vendor/nesbot/carbon/src/Carbon/Lang/ja.php new file mode 100644 index 000000000..1ca675195 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ja.php @@ -0,0 +1,102 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Takuya Sawada + * - Atsushi Tanaka + * - François B + * - Jason Katz-Brown + * - Serhan Apaydın + * - XueWei + * - JD Isaacks + * - toyama satoshi + * - atakigawa + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count年', + 'y' => ':count年', + 'month' => ':countヶ月', + 'm' => ':countヶ月', + 'week' => ':count週間', + 'w' => ':count週間', + 'day' => ':count日', + 'd' => ':count日', + 'hour' => ':count時間', + 'h' => ':count時間', + 'minute' => ':count分', + 'min' => ':count分', + 'second' => ':count秒', + 'a_second' => '{1}数秒|]1,Inf[:count秒', + 's' => ':count秒', + 'ago' => ':time前', + 'from_now' => ':time後', + 'after' => ':time後', + 'before' => ':time前', + 'diff_now' => '今', + 'diff_today' => '今日', + 'diff_yesterday' => '昨日', + 'diff_tomorrow' => '明日', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY/MM/DD', + 'LL' => 'YYYY年M月D日', + 'LLL' => 'YYYY年M月D日 HH:mm', + 'LLLL' => 'YYYY年M月D日 dddd HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[今日] LT', + 'nextDay' => '[明日] LT', + 'nextWeek' => function (CarbonInterface $current, CarbonInterface $other) { + if ($other->week !== $current->week) { + return '[来週]dddd LT'; + } + + return 'dddd LT'; + }, + 'lastDay' => '[昨日] LT', + 'lastWeek' => function (CarbonInterface $current, CarbonInterface $other) { + if ($other->week !== $current->week) { + return '[先週]dddd LT'; + } + + return 'dddd LT'; + }, + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'd': + case 'D': + case 'DDD': + return $number.'日'; + default: + return $number; + } + }, + 'meridiem' => ['午前', '午後'], + 'months' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], + 'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], + 'weekdays' => ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'], + 'weekdays_short' => ['日', '月', '火', '水', '木', '金', '土'], + 'weekdays_min' => ['日', '月', '火', '水', '木', '金', '土'], + 'list' => '、', + 'alt_numbers' => ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十', '二十一', '二十二', '二十三', '二十四', '二十五', '二十六', '二十七', '二十八', '二十九', '三十', '三十一', '三十二', '三十三', '三十四', '三十五', '三十六', '三十七', '三十八', '三十九', '四十', '四十一', '四十二', '四十三', '四十四', '四十五', '四十六', '四十七', '四十八', '四十九', '五十', '五十一', '五十二', '五十三', '五十四', '五十五', '五十六', '五十七', '五十八', '五十九', '六十', '六十一', '六十二', '六十三', '六十四', '六十五', '六十六', '六十七', '六十八', '六十九', '七十', '七十一', '七十二', '七十三', '七十四', '七十五', '七十六', '七十七', '七十八', '七十九', '八十', '八十一', '八十二', '八十三', '八十四', '八十五', '八十六', '八十七', '八十八', '八十九', '九十', '九十一', '九十二', '九十三', '九十四', '九十五', '九十六', '九十七', '九十八', '九十九'], + 'alt_numbers_pow' => [ + 10000 => '万', + 1000 => '千', + 100 => '百', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ja_JP.php b/vendor/nesbot/carbon/src/Carbon/Lang/ja_JP.php new file mode 100644 index 000000000..c28362534 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ja_JP.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ja.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/jgo.php b/vendor/nesbot/carbon/src/Carbon/Lang/jgo.php new file mode 100644 index 000000000..6a1e77a85 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/jgo.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/jmc.php b/vendor/nesbot/carbon/src/Carbon/Lang/jmc.php new file mode 100644 index 000000000..ed92e8e70 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/jmc.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['utuko', 'kyiukonyi'], + 'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/jv.php b/vendor/nesbot/carbon/src/Carbon/Lang/jv.php new file mode 100644 index 000000000..bcbe044e3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/jv.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - tgfjt + * - JD Isaacks + */ +return [ + 'year' => '{1}setaun|]1,Inf[:count taun', + 'month' => '{1}sewulan|]1,Inf[:count wulan', + 'week' => '{1}sakminggu|]1,Inf[:count minggu', + 'day' => '{1}sedinten|]1,Inf[:count dinten', + 'hour' => '{1}setunggal jam|]1,Inf[:count jam', + 'minute' => '{1}setunggal menit|]1,Inf[:count menit', + 'second' => '{1}sawetawis detik|]1,Inf[:count detik', + 'ago' => ':time ingkang kepengker', + 'from_now' => 'wonten ing :time', + 'diff_today' => 'Dinten', + 'diff_yesterday' => 'Kala', + 'diff_yesterday_regexp' => 'Kala(?:\\s+wingi)?(?:\\s+pukul)?', + 'diff_tomorrow' => 'Mbenjang', + 'diff_tomorrow_regexp' => 'Mbenjang(?:\\s+pukul)?', + 'diff_today_regexp' => 'Dinten(?:\\s+puniko)?(?:\\s+pukul)?', + 'formats' => [ + 'LT' => 'HH.mm', + 'LTS' => 'HH.mm.ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY [pukul] HH.mm', + 'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm', + ], + 'calendar' => [ + 'sameDay' => '[Dinten puniko pukul] LT', + 'nextDay' => '[Mbenjang pukul] LT', + 'nextWeek' => 'dddd [pukul] LT', + 'lastDay' => '[Kala wingi pukul] LT', + 'lastWeek' => 'dddd [kepengker pukul] LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 11) { + return 'enjing'; + } + if ($hour < 15) { + return 'siyang'; + } + if ($hour < 19) { + return 'sonten'; + } + + return 'ndalu'; + }, + 'months' => ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'Nopember', 'Desember'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ags', 'Sep', 'Okt', 'Nop', 'Des'], + 'weekdays' => ['Minggu', 'Senen', 'Seloso', 'Rebu', 'Kemis', 'Jemuwah', 'Septu'], + 'weekdays_short' => ['Min', 'Sen', 'Sel', 'Reb', 'Kem', 'Jem', 'Sep'], + 'weekdays_min' => ['Mg', 'Sn', 'Sl', 'Rb', 'Km', 'Jm', 'Sp'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' lan '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ka.php b/vendor/nesbot/carbon/src/Carbon/Lang/ka.php new file mode 100644 index 000000000..a5d563d3c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ka.php @@ -0,0 +1,204 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Tornike Razmadze + * - François B + * - Lasha Dolidze + * - Tim Fish + * - JD Isaacks + * - Tornike Razmadze + * - François B + * - Lasha Dolidze + * - JD Isaacks + * - LONGMAN + * - Avtandil Kikabidze (akalongman) + * - Levan Velijanashvili (Stichoza) + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count წელი', + 'y' => ':count წელი', + 'a_year' => '{1}წელი|]1,Inf[:count წელი', + 'month' => ':count თვე', + 'm' => ':count თვე', + 'a_month' => '{1}თვე|]1,Inf[:count თვე', + 'week' => ':count კვირა', + 'w' => ':count კვირა', + 'a_week' => '{1}კვირა|]1,Inf[:count კვირა', + 'day' => ':count დღე', + 'd' => ':count დღე', + 'a_day' => '{1}დღე|]1,Inf[:count დღე', + 'hour' => ':count საათი', + 'h' => ':count საათი', + 'a_hour' => '{1}საათი|]1,Inf[:count საათი', + 'minute' => ':count წუთი', + 'min' => ':count წუთი', + 'a_minute' => '{1}წუთი|]1,Inf[:count წუთი', + 'second' => ':count წამი', + 's' => ':count წამი', + 'a_second' => '{1}რამდენიმე წამი|]1,Inf[:count წამი', + 'ago' => function ($time) { + $replacements = [ + // year + 'წელი' => 'წლის', + // month + 'თვე' => 'თვის', + // week + 'კვირა' => 'კვირის', + // day + 'დღე' => 'დღის', + // hour + 'საათი' => 'საათის', + // minute + 'წუთი' => 'წუთის', + // second + 'წამი' => 'წამის', + ]; + $time = strtr($time, array_flip($replacements)); + $time = strtr($time, $replacements); + + return "$time წინ"; + }, + 'from_now' => function ($time) { + $replacements = [ + // year + 'წელი' => 'წელიწადში', + // week + 'კვირა' => 'კვირაში', + // day + 'დღე' => 'დღეში', + // month + 'თვე' => 'თვეში', + // hour + 'საათი' => 'საათში', + // minute + 'წუთი' => 'წუთში', + // second + 'წამი' => 'წამში', + ]; + $time = strtr($time, array_flip($replacements)); + $time = strtr($time, $replacements); + + return $time; + }, + 'after' => function ($time) { + $replacements = [ + // year + 'წელი' => 'წლის', + // month + 'თვე' => 'თვის', + // week + 'კვირა' => 'კვირის', + // day + 'დღე' => 'დღის', + // hour + 'საათი' => 'საათის', + // minute + 'წუთი' => 'წუთის', + // second + 'წამი' => 'წამის', + ]; + $time = strtr($time, array_flip($replacements)); + $time = strtr($time, $replacements); + + return "$time შემდეგ"; + }, + 'before' => function ($time) { + $replacements = [ + // year + 'წელი' => 'წლით', + // month + 'თვე' => 'თვით', + // week + 'კვირა' => 'კვირით', + // day + 'დღე' => 'დღით', + // hour + 'საათი' => 'საათით', + // minute + 'წუთი' => 'წუთით', + // second + 'წამი' => 'წამით', + ]; + $time = strtr($time, array_flip($replacements)); + $time = strtr($time, $replacements); + + return "$time ადრე"; + }, + 'diff_now' => 'ახლა', + 'diff_today' => 'დღეს', + 'diff_yesterday' => 'გუშინ', + 'diff_tomorrow' => 'ხვალ', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[დღეს], LT[-ზე]', + 'nextDay' => '[ხვალ], LT[-ზე]', + 'nextWeek' => function (CarbonInterface $current, CarbonInterface $other) { + return ($current->isSameWeek($other) ? '' : '[შემდეგ] ').'dddd, LT[-ზე]'; + }, + 'lastDay' => '[გუშინ], LT[-ზე]', + 'lastWeek' => '[წინა] dddd, LT-ზე', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + if ($number === 0) { + return $number; + } + if ($number === 1) { + return $number.'-ლი'; + } + if (($number < 20) || ($number <= 100 && ($number % 20 === 0)) || ($number % 100 === 0)) { + return 'მე-'.$number; + } + + return $number.'-ე'; + }, + 'months' => ['იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი'], + 'months_standalone' => ['იანვარს', 'თებერვალს', 'მარტს', 'აპრილს', 'მაისს', 'ივნისს', 'ივლისს', 'აგვისტოს', 'სექტემბერს', 'ოქტომბერს', 'ნოემბერს', 'დეკემბერს'], + 'months_short' => ['იან', 'თებ', 'მარ', 'აპრ', 'მაი', 'ივნ', 'ივლ', 'აგვ', 'სექ', 'ოქტ', 'ნოე', 'დეკ'], + 'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', + 'weekdays' => ['კვირას', 'ორშაბათს', 'სამშაბათს', 'ოთხშაბათს', 'ხუთშაბათს', 'პარასკევს', 'შაბათს'], + 'weekdays_standalone' => ['კვირა', 'ორშაბათი', 'სამშაბათი', 'ოთხშაბათი', 'ხუთშაბათი', 'პარასკევი', 'შაბათი'], + 'weekdays_short' => ['კვი', 'ორშ', 'სამ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'], + 'weekdays_min' => ['კვ', 'ორ', 'სა', 'ოთ', 'ხუ', 'პა', 'შა'], + 'weekdays_regexp' => '/^([^d].*|.*[^d])$/', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' და '], + 'meridiem' => function ($hour) { + if ($hour >= 4) { + if ($hour < 11) { + return 'დილის'; + } + + if ($hour < 16) { + return 'შუადღის'; + } + + if ($hour < 22) { + return 'საღამოს'; + } + } + + return 'ღამის'; + }, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ka_GE.php b/vendor/nesbot/carbon/src/Carbon/Lang/ka_GE.php new file mode 100644 index 000000000..a26d93056 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ka_GE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ka.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kab.php b/vendor/nesbot/carbon/src/Carbon/Lang/kab.php new file mode 100644 index 000000000..94d647373 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kab.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/kab_DZ.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php new file mode 100644 index 000000000..796660be9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - belkacem77@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Yennayer', 'Fuṛar', 'Meɣres', 'Yebrir', 'Mayyu', 'Yunyu', 'Yulyu', 'ɣuct', 'Ctembeṛ', 'Tubeṛ', 'Wambeṛ', 'Dujembeṛ'], + 'months_short' => ['Yen', 'Fur', 'Meɣ', 'Yeb', 'May', 'Yun', 'Yul', 'ɣuc', 'Cte', 'Tub', 'Wam', 'Duj'], + 'weekdays' => ['Acer', 'Arim', 'Aram', 'Ahad', 'Amhad', 'Sem', 'Sed'], + 'weekdays_short' => ['Ace', 'Ari', 'Ara', 'Aha', 'Amh', 'Sem', 'Sed'], + 'weekdays_min' => ['Ace', 'Ari', 'Ara', 'Aha', 'Amh', 'Sem', 'Sed'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['FT', 'MD'], + + 'year' => ':count n yiseggasen', + 'y' => ':count n yiseggasen', + 'a_year' => ':count n yiseggasen', + + 'month' => ':count n wayyuren', + 'm' => ':count n wayyuren', + 'a_month' => ':count n wayyuren', + + 'week' => ':count n ledwaṛ', // less reliable + 'w' => ':count n ledwaṛ', // less reliable + 'a_week' => ':count n ledwaṛ', // less reliable + + 'day' => ':count n wussan', + 'd' => ':count n wussan', + 'a_day' => ':count n wussan', + + 'hour' => ':count n tsaɛtin', + 'h' => ':count n tsaɛtin', + 'a_hour' => ':count n tsaɛtin', + + 'minute' => ':count n tedqiqin', + 'min' => ':count n tedqiqin', + 'a_minute' => ':count n tedqiqin', + + 'second' => ':count tasdidt', // less reliable + 's' => ':count tasdidt', // less reliable + 'a_second' => ':count tasdidt', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kam.php b/vendor/nesbot/carbon/src/Carbon/Lang/kam.php new file mode 100644 index 000000000..0fc70d708 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kam.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Ĩyakwakya', 'Ĩyawĩoo'], + 'weekdays' => ['Wa kyumwa', 'Wa kwambĩlĩlya', 'Wa kelĩ', 'Wa katatũ', 'Wa kana', 'Wa katano', 'Wa thanthatũ'], + 'weekdays_short' => ['Wky', 'Wkw', 'Wkl', 'Wtũ', 'Wkn', 'Wtn', 'Wth'], + 'weekdays_min' => ['Wky', 'Wkw', 'Wkl', 'Wtũ', 'Wkn', 'Wtn', 'Wth'], + 'months' => ['Mwai wa mbee', 'Mwai wa kelĩ', 'Mwai wa katatũ', 'Mwai wa kana', 'Mwai wa katano', 'Mwai wa thanthatũ', 'Mwai wa muonza', 'Mwai wa nyaanya', 'Mwai wa kenda', 'Mwai wa ĩkumi', 'Mwai wa ĩkumi na ĩmwe', 'Mwai wa ĩkumi na ilĩ'], + 'months_short' => ['Mbe', 'Kel', 'Ktũ', 'Kan', 'Ktn', 'Tha', 'Moo', 'Nya', 'Knd', 'Ĩku', 'Ĩkm', 'Ĩkl'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + // Too unreliable + /* + 'year' => ':count mbua', // less reliable + 'y' => ':count mbua', // less reliable + 'a_year' => ':count mbua', // less reliable + + 'month' => ':count ndakitali', // less reliable + 'm' => ':count ndakitali', // less reliable + 'a_month' => ':count ndakitali', // less reliable + + 'day' => ':count wia', // less reliable + 'd' => ':count wia', // less reliable + 'a_day' => ':count wia', // less reliable + + 'hour' => ':count orasan', // less reliable + 'h' => ':count orasan', // less reliable + 'a_hour' => ':count orasan', // less reliable + + 'minute' => ':count orasan', // less reliable + 'min' => ':count orasan', // less reliable + 'a_minute' => ':count orasan', // less reliable + */ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kde.php b/vendor/nesbot/carbon/src/Carbon/Lang/kde.php new file mode 100644 index 000000000..fbcc9f3dc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kde.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Muhi', 'Chilo'], + 'weekdays' => ['Liduva lyapili', 'Liduva lyatatu', 'Liduva lyanchechi', 'Liduva lyannyano', 'Liduva lyannyano na linji', 'Liduva lyannyano na mavili', 'Liduva litandi'], + 'weekdays_short' => ['Ll2', 'Ll3', 'Ll4', 'Ll5', 'Ll6', 'Ll7', 'Ll1'], + 'weekdays_min' => ['Ll2', 'Ll3', 'Ll4', 'Ll5', 'Ll6', 'Ll7', 'Ll1'], + 'months' => ['Mwedi Ntandi', 'Mwedi wa Pili', 'Mwedi wa Tatu', 'Mwedi wa Nchechi', 'Mwedi wa Nnyano', 'Mwedi wa Nnyano na Umo', 'Mwedi wa Nnyano na Mivili', 'Mwedi wa Nnyano na Mitatu', 'Mwedi wa Nnyano na Nchechi', 'Mwedi wa Nnyano na Nnyano', 'Mwedi wa Nnyano na Nnyano na U', 'Mwedi wa Nnyano na Nnyano na M'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kea.php b/vendor/nesbot/carbon/src/Carbon/Lang/kea.php new file mode 100644 index 000000000..8b6c21b98 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kea.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['a', 'p'], + 'weekdays' => ['dumingu', 'sigunda-fera', 'tersa-fera', 'kuarta-fera', 'kinta-fera', 'sesta-fera', 'sabadu'], + 'weekdays_short' => ['dum', 'sig', 'ter', 'kua', 'kin', 'ses', 'sab'], + 'weekdays_min' => ['du', 'si', 'te', 'ku', 'ki', 'se', 'sa'], + 'weekdays_standalone' => ['dumingu', 'sigunda-fera', 'tersa-fera', 'kuarta-fera', 'kinta-fera', 'sesta-fera', 'sábadu'], + 'months' => ['Janeru', 'Febreru', 'Marsu', 'Abril', 'Maiu', 'Junhu', 'Julhu', 'Agostu', 'Setenbru', 'Otubru', 'Nuvenbru', 'Dizenbru'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Otu', 'Nuv', 'Diz'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D [di] MMMM [di] YYYY HH:mm', + 'LLLL' => 'dddd, D [di] MMMM [di] YYYY HH:mm', + ], + + 'year' => ':count otunu', // less reliable + 'y' => ':count otunu', // less reliable + 'a_year' => ':count otunu', // less reliable + + 'week' => ':count día dumingu', // less reliable + 'w' => ':count día dumingu', // less reliable + 'a_week' => ':count día dumingu', // less reliable + + 'day' => ':count diâ', // less reliable + 'd' => ':count diâ', // less reliable + 'a_day' => ':count diâ', // less reliable + + 'minute' => ':count sugundu', // less reliable + 'min' => ':count sugundu', // less reliable + 'a_minute' => ':count sugundu', // less reliable + + 'second' => ':count dós', // less reliable + 's' => ':count dós', // less reliable + 'a_second' => ':count dós', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/khq.php b/vendor/nesbot/carbon/src/Carbon/Lang/khq.php new file mode 100644 index 000000000..7a834cf0b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/khq.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Adduha', 'Aluula'], + 'weekdays' => ['Alhadi', 'Atini', 'Atalata', 'Alarba', 'Alhamiisa', 'Aljuma', 'Assabdu'], + 'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alj', 'Ass'], + 'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alj', 'Ass'], + 'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], + 'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ki.php b/vendor/nesbot/carbon/src/Carbon/Lang/ki.php new file mode 100644 index 000000000..d86afc500 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ki.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Kiroko', 'Hwaĩ-inĩ'], + 'weekdays' => ['Kiumia', 'Njumatatũ', 'Njumaine', 'Njumatana', 'Aramithi', 'Njumaa', 'Njumamothi'], + 'weekdays_short' => ['KMA', 'NTT', 'NMN', 'NMT', 'ART', 'NMA', 'NMM'], + 'weekdays_min' => ['KMA', 'NTT', 'NMN', 'NMT', 'ART', 'NMA', 'NMM'], + 'months' => ['Njenuarĩ', 'Mwere wa kerĩ', 'Mwere wa gatatũ', 'Mwere wa kana', 'Mwere wa gatano', 'Mwere wa gatandatũ', 'Mwere wa mũgwanja', 'Mwere wa kanana', 'Mwere wa kenda', 'Mwere wa ikũmi', 'Mwere wa ikũmi na ũmwe', 'Ndithemba'], + 'months_short' => ['JEN', 'WKR', 'WGT', 'WKN', 'WTN', 'WTD', 'WMJ', 'WNN', 'WKD', 'WIK', 'WMW', 'DIT'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + 'year' => ':count mĩaka', // less reliable + 'y' => ':count mĩaka', // less reliable + 'a_year' => ':count mĩaka', // less reliable + + 'month' => ':count mweri', // less reliable + 'm' => ':count mweri', // less reliable + 'a_month' => ':count mweri', // less reliable + + 'week' => ':count kiumia', // less reliable + 'w' => ':count kiumia', // less reliable + 'a_week' => ':count kiumia', // less reliable + + 'day' => ':count mũthenya', // less reliable + 'd' => ':count mũthenya', // less reliable + 'a_day' => ':count mũthenya', // less reliable + + 'hour' => ':count thaa', // less reliable + 'h' => ':count thaa', // less reliable + 'a_hour' => ':count thaa', // less reliable + + 'minute' => ':count mundu', // less reliable + 'min' => ':count mundu', // less reliable + 'a_minute' => ':count mundu', // less reliable + + 'second' => ':count igego', // less reliable + 's' => ':count igego', // less reliable + 'a_second' => ':count igego', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kk.php b/vendor/nesbot/carbon/src/Carbon/Lang/kk.php new file mode 100644 index 000000000..59fa9affb --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kk.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - Talat Uspanov + * - Нурлан Рахимжанов + * - Toleugazy Kali + */ +return [ + 'year' => ':count жыл', + 'a_year' => '{1}бір жыл|:count жыл', + 'y' => ':count ж.', + 'month' => ':count ай', + 'a_month' => '{1}бір ай|:count ай', + 'm' => ':count ай', + 'week' => ':count апта', + 'a_week' => '{1}бір апта', + 'w' => ':count ап.', + 'day' => ':count күн', + 'a_day' => '{1}бір күн|:count күн', + 'd' => ':count к.', + 'hour' => ':count сағат', + 'a_hour' => '{1}бір сағат|:count сағат', + 'h' => ':count са.', + 'minute' => ':count минут', + 'a_minute' => '{1}бір минут|:count минут', + 'min' => ':count м.', + 'second' => ':count секунд', + 'a_second' => '{1}бірнеше секунд|:count секунд', + 's' => ':count се.', + 'ago' => ':time бұрын', + 'from_now' => ':time ішінде', + 'after' => ':time кейін', + 'before' => ':time бұрын', + 'diff_now' => 'қазір', + 'diff_today' => 'Бүгін', + 'diff_today_regexp' => 'Бүгін(?:\\s+сағат)?', + 'diff_yesterday' => 'кеше', + 'diff_yesterday_regexp' => 'Кеше(?:\\s+сағат)?', + 'diff_tomorrow' => 'ертең', + 'diff_tomorrow_regexp' => 'Ертең(?:\\s+сағат)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Бүгін сағат] LT', + 'nextDay' => '[Ертең сағат] LT', + 'nextWeek' => 'dddd [сағат] LT', + 'lastDay' => '[Кеше сағат] LT', + 'lastWeek' => '[Өткен аптаның] dddd [сағат] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + static $suffixes = [ + 0 => '-ші', + 1 => '-ші', + 2 => '-ші', + 3 => '-ші', + 4 => '-ші', + 5 => '-ші', + 6 => '-шы', + 7 => '-ші', + 8 => '-ші', + 9 => '-шы', + 10 => '-шы', + 20 => '-шы', + 30 => '-шы', + 40 => '-шы', + 50 => '-ші', + 60 => '-шы', + 70 => '-ші', + 80 => '-ші', + 90 => '-шы', + 100 => '-ші', + ]; + + return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? ''); + }, + 'months' => ['қаңтар', 'ақпан', 'наурыз', 'сәуір', 'мамыр', 'маусым', 'шілде', 'тамыз', 'қыркүйек', 'қазан', 'қараша', 'желтоқсан'], + 'months_short' => ['қаң', 'ақп', 'нау', 'сәу', 'мам', 'мау', 'шіл', 'там', 'қыр', 'қаз', 'қар', 'жел'], + 'weekdays' => ['жексенбі', 'дүйсенбі', 'сейсенбі', 'сәрсенбі', 'бейсенбі', 'жұма', 'сенбі'], + 'weekdays_short' => ['жек', 'дүй', 'сей', 'сәр', 'бей', 'жұм', 'сен'], + 'weekdays_min' => ['жк', 'дй', 'сй', 'ср', 'бй', 'жм', 'сн'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' және '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kk_KZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/kk_KZ.php new file mode 100644 index 000000000..7dc5ebccc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kk_KZ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/kk.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kkj.php b/vendor/nesbot/carbon/src/Carbon/Lang/kkj.php new file mode 100644 index 000000000..6a1e77a85 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kkj.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kl.php b/vendor/nesbot/carbon/src/Carbon/Lang/kl.php new file mode 100644 index 000000000..7329a0753 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kl.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/kl_GL.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php b/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php new file mode 100644 index 000000000..4fed720a3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Danish Standards Association bug-glibc-locales@gnu.org + * - John Eyðstein Johannesen (mashema) + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY HH:mm', + 'LLLL' => 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + ], + 'months' => ['januaarip', 'februaarip', 'marsip', 'apriilip', 'maajip', 'juunip', 'juulip', 'aggustip', 'septembarip', 'oktobarip', 'novembarip', 'decembarip'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + 'weekdays' => ['sapaat', 'ataasinngorneq', 'marlunngorneq', 'pingasunngorneq', 'sisamanngorneq', 'tallimanngorneq', 'arfininngorneq'], + 'weekdays_short' => ['sap', 'ata', 'mar', 'pin', 'sis', 'tal', 'arf'], + 'weekdays_min' => ['sap', 'ata', 'mar', 'pin', 'sis', 'tal', 'arf'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => '{1}ukioq :count|{0}:count ukiut|]1,Inf[ukiut :count', + 'a_year' => '{1}ukioq|{0}:count ukiut|]1,Inf[ukiut :count', + 'y' => '{1}:countyr|{0}:countyrs|]1,Inf[:countyrs', + + 'month' => '{1}qaammat :count|{0}:count qaammatit|]1,Inf[qaammatit :count', + 'a_month' => '{1}qaammat|{0}:count qaammatit|]1,Inf[qaammatit :count', + 'm' => '{1}:countmo|{0}:countmos|]1,Inf[:countmos', + + 'week' => '{1}:count sap. ak.|{0}:count sap. ak.|]1,Inf[:count sap. ak.', + 'a_week' => '{1}a sap. ak.|{0}:count sap. ak.|]1,Inf[:count sap. ak.', + 'w' => ':countw', + + 'day' => '{1}:count ulloq|{0}:count ullut|]1,Inf[:count ullut', + 'a_day' => '{1}a ulloq|{0}:count ullut|]1,Inf[:count ullut', + 'd' => ':countd', + + 'hour' => '{1}:count tiimi|{0}:count tiimit|]1,Inf[:count tiimit', + 'a_hour' => '{1}tiimi|{0}:count tiimit|]1,Inf[:count tiimit', + 'h' => ':counth', + + 'minute' => '{1}:count minutsi|{0}:count minutsit|]1,Inf[:count minutsit', + 'a_minute' => '{1}a minutsi|{0}:count minutsit|]1,Inf[:count minutsit', + 'min' => ':countm', + + 'second' => '{1}:count sikunti|{0}:count sikuntit|]1,Inf[:count sikuntit', + 'a_second' => '{1}sikunti|{0}:count sikuntit|]1,Inf[:count sikuntit', + 's' => ':counts', + + 'ago' => ':time matuma siorna', + +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kln.php b/vendor/nesbot/carbon/src/Carbon/Lang/kln.php new file mode 100644 index 000000000..b9c39968b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kln.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['krn', 'koosk'], + 'weekdays' => ['Kotisap', 'Kotaai', 'Koaeng’', 'Kosomok', 'Koang’wan', 'Komuut', 'Kolo'], + 'weekdays_short' => ['Kts', 'Kot', 'Koo', 'Kos', 'Koa', 'Kom', 'Kol'], + 'weekdays_min' => ['Kts', 'Kot', 'Koo', 'Kos', 'Koa', 'Kom', 'Kol'], + 'months' => ['Mulgul', 'Ng’atyaato', 'Kiptaamo', 'Iwootkuut', 'Mamuut', 'Paagi', 'Ng’eiyeet', 'Rooptui', 'Bureet', 'Epeeso', 'Kipsuunde ne taai', 'Kipsuunde nebo aeng’'], + 'months_short' => ['Mul', 'Ngat', 'Taa', 'Iwo', 'Mam', 'Paa', 'Nge', 'Roo', 'Bur', 'Epe', 'Kpt', 'Kpa'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + 'year' => ':count maghatiat', // less reliable + 'y' => ':count maghatiat', // less reliable + 'a_year' => ':count maghatiat', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/km.php b/vendor/nesbot/carbon/src/Carbon/Lang/km.php new file mode 100644 index 000000000..da790ac85 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/km.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kruy Vanna + * - Sereysethy Touch + * - JD Isaacks + * - Sovichet Tep + */ +return [ + 'year' => '{1}មួយឆ្នាំ|]1,Inf[:count ឆ្នាំ', + 'y' => ':count ឆ្នាំ', + 'month' => '{1}មួយខែ|]1,Inf[:count ខែ', + 'm' => ':count ខែ', + 'week' => ':count សប្ដាហ៍', + 'w' => ':count សប្ដាហ៍', + 'day' => '{1}មួយថ្ងៃ|]1,Inf[:count ថ្ងៃ', + 'd' => ':count ថ្ងៃ', + 'hour' => '{1}មួយម៉ោង|]1,Inf[:count ម៉ោង', + 'h' => ':count ម៉ោង', + 'minute' => '{1}មួយនាទី|]1,Inf[:count នាទី', + 'min' => ':count នាទី', + 'second' => '{1}ប៉ុន្មានវិនាទី|]1,Inf[:count វិនាទី', + 's' => ':count វិនាទី', + 'ago' => ':timeមុន', + 'from_now' => ':timeទៀត', + 'after' => 'នៅ​ក្រោយ :time', + 'before' => 'នៅ​មុន :time', + 'diff_now' => 'ឥឡូវ', + 'diff_today' => 'ថ្ងៃនេះ', + 'diff_today_regexp' => 'ថ្ងៃនេះ(?:\\s+ម៉ោង)?', + 'diff_yesterday' => 'ម្សិលមិញ', + 'diff_yesterday_regexp' => 'ម្សិលមិញ(?:\\s+ម៉ោង)?', + 'diff_tomorrow' => 'ថ្ងៃ​ស្អែក', + 'diff_tomorrow_regexp' => 'ស្អែក(?:\\s+ម៉ោង)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[ថ្ងៃនេះ ម៉ោង] LT', + 'nextDay' => '[ស្អែក ម៉ោង] LT', + 'nextWeek' => 'dddd [ម៉ោង] LT', + 'lastDay' => '[ម្សិលមិញ ម៉ោង] LT', + 'lastWeek' => 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + 'sameElse' => 'L', + ], + 'ordinal' => 'ទី:number', + 'meridiem' => ['ព្រឹក', 'ល្ងាច'], + 'months' => ['មករា', 'កុម្ភៈ', 'មីនា', 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', 'សីហា', 'កញ្ញា', 'តុលា', 'វិច្ឆិកា', 'ធ្នូ'], + 'months_short' => ['មករា', 'កុម្ភៈ', 'មីនា', 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', 'សីហា', 'កញ្ញា', 'តុលា', 'វិច្ឆិកា', 'ធ្នូ'], + 'weekdays' => ['អាទិត្យ', 'ច័ន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', 'សៅរ៍'], + 'weekdays_short' => ['អា', 'ច', 'អ', 'ព', 'ព្រ', 'សុ', 'ស'], + 'weekdays_min' => ['អា', 'ច', 'អ', 'ព', 'ព្រ', 'សុ', 'ស'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', 'និង '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/km_KH.php b/vendor/nesbot/carbon/src/Carbon/Lang/km_KH.php new file mode 100644 index 000000000..92e5fdbd2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/km_KH.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/km.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kn.php b/vendor/nesbot/carbon/src/Carbon/Lang/kn.php new file mode 100644 index 000000000..0d2ad08b4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kn.php @@ -0,0 +1,75 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - MOHAN M U + * - François B + * - rajeevnaikte + */ +return [ + 'year' => '{1}ಒಂದು ವರ್ಷ|]1,Inf[:count ವರ್ಷ', + 'month' => '{1}ಒಂದು ತಿಂಗಳು|]1,Inf[:count ತಿಂಗಳು', + 'week' => '{1}ಒಂದು ವಾರ|]1,Inf[:count ವಾರಗಳು', + 'day' => '{1}ಒಂದು ದಿನ|]1,Inf[:count ದಿನ', + 'hour' => '{1}ಒಂದು ಗಂಟೆ|]1,Inf[:count ಗಂಟೆ', + 'minute' => '{1}ಒಂದು ನಿಮಿಷ|]1,Inf[:count ನಿಮಿಷ', + 'second' => '{1}ಕೆಲವು ಕ್ಷಣಗಳು|]1,Inf[:count ಸೆಕೆಂಡುಗಳು', + 'ago' => ':time ಹಿಂದೆ', + 'from_now' => ':time ನಂತರ', + 'diff_now' => 'ಈಗ', + 'diff_today' => 'ಇಂದು', + 'diff_yesterday' => 'ನಿನ್ನೆ', + 'diff_tomorrow' => 'ನಾಳೆ', + 'formats' => [ + 'LT' => 'A h:mm', + 'LTS' => 'A h:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, A h:mm', + 'LLLL' => 'dddd, D MMMM YYYY, A h:mm', + ], + 'calendar' => [ + 'sameDay' => '[ಇಂದು] LT', + 'nextDay' => '[ನಾಳೆ] LT', + 'nextWeek' => 'dddd, LT', + 'lastDay' => '[ನಿನ್ನೆ] LT', + 'lastWeek' => '[ಕೊನೆಯ] dddd, LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':numberನೇ', + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'ರಾತ್ರಿ'; + } + if ($hour < 10) { + return 'ಬೆಳಿಗ್ಗೆ'; + } + if ($hour < 17) { + return 'ಮಧ್ಯಾಹ್ನ'; + } + if ($hour < 20) { + return 'ಸಂಜೆ'; + } + + return 'ರಾತ್ರಿ'; + }, + 'months' => ['ಜನವರಿ', 'ಫೆಬ್ರವರಿ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂಬರ್', 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'], + 'months_short' => ['ಜನ', 'ಫೆಬ್ರ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂ', 'ಅಕ್ಟೋ', 'ನವೆಂ', 'ಡಿಸೆಂ'], + 'weekdays' => ['ಭಾನುವಾರ', 'ಸೋಮವಾರ', 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], + 'weekdays_short' => ['ಭಾನು', 'ಸೋಮ', 'ಮಂಗಳ', 'ಬುಧ', 'ಗುರು', 'ಶುಕ್ರ', 'ಶನಿ'], + 'weekdays_min' => ['ಭಾ', 'ಸೋ', 'ಮಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'], + 'list' => ', ', + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'weekend' => [0, 0], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kn_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/kn_IN.php new file mode 100644 index 000000000..30e3d8869 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kn_IN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/kn.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ko.php b/vendor/nesbot/carbon/src/Carbon/Lang/ko.php new file mode 100644 index 000000000..4fa623765 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ko.php @@ -0,0 +1,91 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kunal Marwaha + * - FourwingsY + * - François B + * - Jason Katz-Brown + * - Seokjun Kim + * - Junho Kim + * - JD Isaacks + * - Juwon Kim + */ +return [ + 'year' => ':count년', + 'a_year' => '{1}일년|]1,Inf[:count년', + 'y' => ':count년', + 'month' => ':count개월', + 'a_month' => '{1}한달|]1,Inf[:count개월', + 'm' => ':count개월', + 'week' => ':count주', + 'a_week' => '{1}일주일|]1,Inf[:count 주', + 'w' => ':count주일', + 'day' => ':count일', + 'a_day' => '{1}하루|]1,Inf[:count일', + 'd' => ':count일', + 'hour' => ':count시간', + 'a_hour' => '{1}한시간|]1,Inf[:count시간', + 'h' => ':count시간', + 'minute' => ':count분', + 'a_minute' => '{1}일분|]1,Inf[:count분', + 'min' => ':count분', + 'second' => ':count초', + 'a_second' => '{1}몇초|]1,Inf[:count초', + 's' => ':count초', + 'ago' => ':time 전', + 'from_now' => ':time 후', + 'after' => ':time 후', + 'before' => ':time 전', + 'diff_now' => '지금', + 'diff_today' => '오늘', + 'diff_yesterday' => '어제', + 'diff_tomorrow' => '내일', + 'formats' => [ + 'LT' => 'A h:mm', + 'LTS' => 'A h:mm:ss', + 'L' => 'YYYY.MM.DD.', + 'LL' => 'YYYY년 MMMM D일', + 'LLL' => 'YYYY년 MMMM D일 A h:mm', + 'LLLL' => 'YYYY년 MMMM D일 dddd A h:mm', + ], + 'calendar' => [ + 'sameDay' => '오늘 LT', + 'nextDay' => '내일 LT', + 'nextWeek' => 'dddd LT', + 'lastDay' => '어제 LT', + 'lastWeek' => '지난주 dddd LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'd': + case 'D': + case 'DDD': + return $number.'일'; + case 'M': + return $number.'월'; + case 'w': + case 'W': + return $number.'주'; + default: + return $number; + } + }, + 'meridiem' => ['오전', '오후'], + 'months' => ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], + 'months_short' => ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], + 'weekdays' => ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'], + 'weekdays_short' => ['일', '월', '화', '수', '목', '금', '토'], + 'weekdays_min' => ['일', '월', '화', '수', '목', '금', '토'], + 'list' => ' ', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ko_KP.php b/vendor/nesbot/carbon/src/Carbon/Lang/ko_KP.php new file mode 100644 index 000000000..4ba802b35 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ko_KP.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ko.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ko_KR.php b/vendor/nesbot/carbon/src/Carbon/Lang/ko_KR.php new file mode 100644 index 000000000..9d873a27b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ko_KR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ko.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kok.php b/vendor/nesbot/carbon/src/Carbon/Lang/kok.php new file mode 100644 index 000000000..4adcddcca --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kok.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/kok_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php new file mode 100644 index 000000000..92ba844c5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat, Pune bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D-M-YY', + ], + 'months' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ओगस्ट', 'सेप्टेंबर', 'ओक्टोबर', 'नोव्हेंबर', 'डिसेंबर'], + 'months_short' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ओगस्ट', 'सेप्टेंबर', 'ओक्टोबर', 'नोव्हेंबर', 'डिसेंबर'], + 'weekdays' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'], + 'weekdays_short' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'], + 'weekdays_min' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['म.पू.', 'म.नं.'], + + 'year' => ':count वैशाकु', // less reliable + 'y' => ':count वैशाकु', // less reliable + 'a_year' => ':count वैशाकु', // less reliable + + 'week' => ':count आदित्यवार', // less reliable + 'w' => ':count आदित्यवार', // less reliable + 'a_week' => ':count आदित्यवार', // less reliable + + 'minute' => ':count नोंद', // less reliable + 'min' => ':count नोंद', // less reliable + 'a_minute' => ':count नोंद', // less reliable + + 'second' => ':count तेंको', // less reliable + 's' => ':count तेंको', // less reliable + 'a_second' => ':count तेंको', // less reliable + + 'month' => ':count मैनो', + 'm' => ':count मैनो', + 'a_month' => ':count मैनो', + + 'day' => ':count दिवसु', + 'd' => ':count दिवसु', + 'a_day' => ':count दिवसु', + + 'hour' => ':count घंते', + 'h' => ':count घंते', + 'a_hour' => ':count घंते', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ks.php b/vendor/nesbot/carbon/src/Carbon/Lang/ks.php new file mode 100644 index 000000000..987607905 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ks.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ks_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php new file mode 100644 index 000000000..ce9d5d4ae --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat, Pune bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'M/D/YY', + ], + 'months' => ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', 'اکتوٗبر', 'نومبر', 'دسمبر'], + 'months_short' => ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', 'اکتوٗبر', 'نومبر', 'دسمبر'], + 'weekdays' => ['آتهوار', 'ژءندروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'], + 'weekdays_short' => ['آتهوار', 'ژءنتروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'], + 'weekdays_min' => ['آتهوار', 'ژءنتروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['دوپھربرونھ', 'دوپھرپتھ'], + + 'year' => ':count آب', // less reliable + 'y' => ':count آب', // less reliable + 'a_year' => ':count آب', // less reliable + + 'month' => ':count रान्', // less reliable + 'm' => ':count रान्', // less reliable + 'a_month' => ':count रान्', // less reliable + + 'week' => ':count آتھٕوار', // less reliable + 'w' => ':count آتھٕوار', // less reliable + 'a_week' => ':count آتھٕوار', // less reliable + + 'hour' => ':count سۄن', // less reliable + 'h' => ':count سۄن', // less reliable + 'a_hour' => ':count سۄن', // less reliable + + 'minute' => ':count فَن', // less reliable + 'min' => ':count فَن', // less reliable + 'a_minute' => ':count فَن', // less reliable + + 'second' => ':count दोʼयुम', // less reliable + 's' => ':count दोʼयुम', // less reliable + 'a_second' => ':count दोʼयुम', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php b/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php new file mode 100644 index 000000000..a2ae8b64f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - ks-gnome-trans-commits@lists.code.indlinux.net + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'M/D/YY', + ], + 'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'weekdays' => ['आथवार', 'चॅ़दुरवार', 'बोमवार', 'ब्वदवार', 'ब्रसवार', 'शोकुरवार', 'बटुवार'], + 'weekdays_short' => ['आथ ', 'चॅ़दुर', 'बोम', 'ब्वद', 'ब्रस', 'शोकुर', 'बटु'], + 'weekdays_min' => ['आथ ', 'चॅ़दुर', 'बोम', 'ब्वद', 'ब्रस', 'शोकुर', 'बटु'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ksb.php b/vendor/nesbot/carbon/src/Carbon/Lang/ksb.php new file mode 100644 index 000000000..aaa00614c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ksb.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['makeo', 'nyiaghuo'], + 'weekdays' => ['Jumaapii', 'Jumaatatu', 'Jumaane', 'Jumaatano', 'Alhamisi', 'Ijumaa', 'Jumaamosi'], + 'weekdays_short' => ['Jpi', 'Jtt', 'Jmn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'weekdays_min' => ['Jpi', 'Jtt', 'Jmn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'months' => ['Januali', 'Febluali', 'Machi', 'Aplili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ksf.php b/vendor/nesbot/carbon/src/Carbon/Lang/ksf.php new file mode 100644 index 000000000..84a596729 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ksf.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['sárúwá', 'cɛɛ́nko'], + 'weekdays' => ['sɔ́ndǝ', 'lǝndí', 'maadí', 'mɛkrɛdí', 'jǝǝdí', 'júmbá', 'samdí'], + 'weekdays_short' => ['sɔ́n', 'lǝn', 'maa', 'mɛk', 'jǝǝ', 'júm', 'sam'], + 'weekdays_min' => ['sɔ́n', 'lǝn', 'maa', 'mɛk', 'jǝǝ', 'júm', 'sam'], + 'months' => ['ŋwíí a ntɔ́ntɔ', 'ŋwíí akǝ bɛ́ɛ', 'ŋwíí akǝ ráá', 'ŋwíí akǝ nin', 'ŋwíí akǝ táan', 'ŋwíí akǝ táafɔk', 'ŋwíí akǝ táabɛɛ', 'ŋwíí akǝ táaraa', 'ŋwíí akǝ táanin', 'ŋwíí akǝ ntɛk', 'ŋwíí akǝ ntɛk di bɔ́k', 'ŋwíí akǝ ntɛk di bɛ́ɛ'], + 'months_short' => ['ŋ1', 'ŋ2', 'ŋ3', 'ŋ4', 'ŋ5', 'ŋ6', 'ŋ7', 'ŋ8', 'ŋ9', 'ŋ10', 'ŋ11', 'ŋ12'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ksh.php b/vendor/nesbot/carbon/src/Carbon/Lang/ksh.php new file mode 100644 index 000000000..95457e243 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ksh.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['v.M.', 'n.M.'], + 'weekdays' => ['Sunndaach', 'Mohndaach', 'Dinnsdaach', 'Metwoch', 'Dunnersdaach', 'Friidaach', 'Samsdaach'], + 'weekdays_short' => ['Su.', 'Mo.', 'Di.', 'Me.', 'Du.', 'Fr.', 'Sa.'], + 'weekdays_min' => ['Su', 'Mo', 'Di', 'Me', 'Du', 'Fr', 'Sa'], + 'months' => ['Jannewa', 'Fäbrowa', 'Määz', 'Aprell', 'Mai', 'Juuni', 'Juuli', 'Oujoß', 'Septämber', 'Oktohber', 'Novämber', 'Dezämber'], + 'months_short' => ['Jan', 'Fäb', 'Mäz', 'Apr', 'Mai', 'Jun', 'Jul', 'Ouj', 'Säp', 'Okt', 'Nov', 'Dez'], + 'months_short_standalone' => ['Jan.', 'Fäb.', 'Mäz.', 'Apr.', 'Mai', 'Jun.', 'Jul.', 'Ouj.', 'Säp.', 'Okt.', 'Nov.', 'Dez.'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D. M. YYYY', + 'LL' => 'D. MMM. YYYY', + 'LLL' => 'D. MMMM YYYY HH:mm', + 'LLLL' => 'dddd, [dä] D. MMMM YYYY HH:mm', + ], + + 'year' => ':count Johr', + 'y' => ':count Johr', + 'a_year' => ':count Johr', + + 'month' => ':count Moohnd', + 'm' => ':count Moohnd', + 'a_month' => ':count Moohnd', + + 'week' => ':count woch', + 'w' => ':count woch', + 'a_week' => ':count woch', + + 'day' => ':count Daach', + 'd' => ':count Daach', + 'a_day' => ':count Daach', + + 'hour' => ':count Uhr', + 'h' => ':count Uhr', + 'a_hour' => ':count Uhr', + + 'minute' => ':count Menutt', + 'min' => ':count Menutt', + 'a_minute' => ':count Menutt', + + 'second' => ':count Sekůndt', + 's' => ':count Sekůndt', + 'a_second' => ':count Sekůndt', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ku.php b/vendor/nesbot/carbon/src/Carbon/Lang/ku.php new file mode 100644 index 000000000..189960c8a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ku.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Unicode, Inc. + */ + +return [ + 'ago' => 'berî :time', + 'from_now' => 'di :time de', + 'after' => ':time piştî', + 'before' => ':time berê', + 'year' => ':count sal', + 'year_ago' => ':count salê|:count salan', + 'year_from_now' => 'salekê|:count salan', + 'month' => ':count meh', + 'week' => ':count hefte', + 'day' => ':count roj', + 'hour' => ':count saet', + 'minute' => ':count deqîqe', + 'second' => ':count saniye', + 'months' => ['rêbendanê', 'reşemiyê', 'adarê', 'avrêlê', 'gulanê', 'pûşperê', 'tîrmehê', 'gelawêjê', 'rezberê', 'kewçêrê', 'sermawezê', 'berfanbarê'], + 'months_standalone' => ['rêbendan', 'reşemî', 'adar', 'avrêl', 'gulan', 'pûşper', 'tîrmeh', 'gelawêj', 'rezber', 'kewçêr', 'sermawez', 'berfanbar'], + 'months_short' => ['rêb', 'reş', 'ada', 'avr', 'gul', 'pûş', 'tîr', 'gel', 'rez', 'kew', 'ser', 'ber'], + 'weekdays' => ['yekşem', 'duşem', 'sêşem', 'çarşem', 'pêncşem', 'în', 'şemî'], + 'weekdays_short' => ['yş', 'dş', 'sş', 'çş', 'pş', 'în', 'ş'], + 'weekdays_min' => ['Y', 'D', 'S', 'Ç', 'P', 'Î', 'Ş'], + 'list' => [', ', ' û '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ku_TR.php b/vendor/nesbot/carbon/src/Carbon/Lang/ku_TR.php new file mode 100644 index 000000000..4243a82fc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ku_TR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ku.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kw.php b/vendor/nesbot/carbon/src/Carbon/Lang/kw.php new file mode 100644 index 000000000..26e242e7d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kw.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/kw_GB.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php b/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php new file mode 100644 index 000000000..00bf52bd5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Alastair McKinstry bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['mis Genver', 'mis Hwevrer', 'mis Meurth', 'mis Ebrel', 'mis Me', 'mis Metheven', 'mis Gortheren', 'mis Est', 'mis Gwynngala', 'mis Hedra', 'mis Du', 'mis Kevardhu'], + 'months_short' => ['Gen', 'Hwe', 'Meu', 'Ebr', 'Me', 'Met', 'Gor', 'Est', 'Gwn', 'Hed', 'Du', 'Kev'], + 'weekdays' => ['De Sul', 'De Lun', 'De Merth', 'De Merher', 'De Yow', 'De Gwener', 'De Sadorn'], + 'weekdays_short' => ['Sul', 'Lun', 'Mth', 'Mhr', 'Yow', 'Gwe', 'Sad'], + 'weekdays_min' => ['Sul', 'Lun', 'Mth', 'Mhr', 'Yow', 'Gwe', 'Sad'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count bledhen', + 'y' => ':count bledhen', + 'a_year' => ':count bledhen', + + 'month' => ':count mis', + 'm' => ':count mis', + 'a_month' => ':count mis', + + 'week' => ':count seythen', + 'w' => ':count seythen', + 'a_week' => ':count seythen', + + 'day' => ':count dydh', + 'd' => ':count dydh', + 'a_day' => ':count dydh', + + 'hour' => ':count eur', + 'h' => ':count eur', + 'a_hour' => ':count eur', + + 'minute' => ':count mynysen', + 'min' => ':count mynysen', + 'a_minute' => ':count mynysen', + + 'second' => ':count pryjwyth', + 's' => ':count pryjwyth', + 'a_second' => ':count pryjwyth', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ky.php b/vendor/nesbot/carbon/src/Carbon/Lang/ky.php new file mode 100644 index 000000000..e0d1af103 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ky.php @@ -0,0 +1,106 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - acutexyz + * - Josh Soref + * - François B + * - Chyngyz Arystan uulu + * - Chyngyz + * - acutexyz + * - Josh Soref + * - François B + * - Chyngyz Arystan uulu + */ +return [ + 'year' => ':count жыл', + 'a_year' => '{1}бир жыл|:count жыл', + 'y' => ':count жыл', + 'month' => ':count ай', + 'a_month' => '{1}бир ай|:count ай', + 'm' => ':count ай', + 'week' => ':count апта', + 'a_week' => '{1}бир апта|:count апта', + 'w' => ':count апт.', + 'day' => ':count күн', + 'a_day' => '{1}бир күн|:count күн', + 'd' => ':count күн', + 'hour' => ':count саат', + 'a_hour' => '{1}бир саат|:count саат', + 'h' => ':count саат.', + 'minute' => ':count мүнөт', + 'a_minute' => '{1}бир мүнөт|:count мүнөт', + 'min' => ':count мүн.', + 'second' => ':count секунд', + 'a_second' => '{1}бирнече секунд|:count секунд', + 's' => ':count сек.', + 'ago' => ':time мурун', + 'from_now' => ':time ичинде', + 'diff_now' => 'азыр', + 'diff_today' => 'Бүгүн', + 'diff_today_regexp' => 'Бүгүн(?:\\s+саат)?', + 'diff_yesterday' => 'кечээ', + 'diff_yesterday_regexp' => 'Кече(?:\\s+саат)?', + 'diff_tomorrow' => 'эртең', + 'diff_tomorrow_regexp' => 'Эртең(?:\\s+саат)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Бүгүн саат] LT', + 'nextDay' => '[Эртең саат] LT', + 'nextWeek' => 'dddd [саат] LT', + 'lastDay' => '[Кече саат] LT', + 'lastWeek' => '[Өткен аптанын] dddd [күнү] [саат] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + static $suffixes = [ + 0 => '-чү', + 1 => '-чи', + 2 => '-чи', + 3 => '-чү', + 4 => '-чү', + 5 => '-чи', + 6 => '-чы', + 7 => '-чи', + 8 => '-чи', + 9 => '-чу', + 10 => '-чу', + 20 => '-чы', + 30 => '-чу', + 40 => '-чы', + 50 => '-чү', + 60 => '-чы', + 70 => '-чи', + 80 => '-чи', + 90 => '-чу', + 100 => '-чү', + ]; + + return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? ''); + }, + 'months' => ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'], + 'months_short' => ['янв', 'фев', 'март', 'апр', 'май', 'июнь', 'июль', 'авг', 'сен', 'окт', 'ноя', 'дек'], + 'weekdays' => ['Жекшемби', 'Дүйшөмбү', 'Шейшемби', 'Шаршемби', 'Бейшемби', 'Жума', 'Ишемби'], + 'weekdays_short' => ['Жек', 'Дүй', 'Шей', 'Шар', 'Бей', 'Жум', 'Ише'], + 'weekdays_min' => ['Жк', 'Дй', 'Шй', 'Шр', 'Бй', 'Жм', 'Иш'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => ' ', + 'meridiem' => ['таңкы', 'түштөн кийинки'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ky_KG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ky_KG.php new file mode 100644 index 000000000..9923a31e8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ky_KG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ky.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lag.php b/vendor/nesbot/carbon/src/Carbon/Lang/lag.php new file mode 100644 index 000000000..f3f57f6a6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lag.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['TOO', 'MUU'], + 'weekdays' => ['Jumapíiri', 'Jumatátu', 'Jumaíne', 'Jumatáano', 'Alamíisi', 'Ijumáa', 'Jumamóosi'], + 'weekdays_short' => ['Píili', 'Táatu', 'Íne', 'Táano', 'Alh', 'Ijm', 'Móosi'], + 'weekdays_min' => ['Píili', 'Táatu', 'Íne', 'Táano', 'Alh', 'Ijm', 'Móosi'], + 'months' => ['Kʉfúngatɨ', 'Kʉnaanɨ', 'Kʉkeenda', 'Kwiikumi', 'Kwiinyambála', 'Kwiidwaata', 'Kʉmʉʉnchɨ', 'Kʉvɨɨrɨ', 'Kʉsaatʉ', 'Kwiinyi', 'Kʉsaano', 'Kʉsasatʉ'], + 'months_short' => ['Fúngatɨ', 'Naanɨ', 'Keenda', 'Ikúmi', 'Inyambala', 'Idwaata', 'Mʉʉnchɨ', 'Vɨɨrɨ', 'Saatʉ', 'Inyi', 'Saano', 'Sasatʉ'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lb.php b/vendor/nesbot/carbon/src/Carbon/Lang/lb.php new file mode 100644 index 000000000..7636655e3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lb.php @@ -0,0 +1,88 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Tsutomu Kuroda + * - dan-nl + * - Simon Lelorrain (slelorrain) + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count Joer', + 'y' => ':countJ', + 'month' => ':count Mount|:count Méint', + 'm' => ':countMo', + 'week' => ':count Woch|:count Wochen', + 'w' => ':countWo|:countWo', + 'day' => ':count Dag|:count Deeg', + 'd' => ':countD', + 'hour' => ':count Stonn|:count Stonnen', + 'h' => ':countSto', + 'minute' => ':count Minutt|:count Minutten', + 'min' => ':countM', + 'second' => ':count Sekonn|:count Sekonnen', + 's' => ':countSek', + + 'ago' => 'virun :time', + 'from_now' => 'an :time', + 'before' => ':time virdrun', + 'after' => ':time duerno', + + 'diff_today' => 'Haut', + 'diff_yesterday' => 'Gëschter', + 'diff_yesterday_regexp' => 'Gëschter(?:\\s+um)?', + 'diff_tomorrow' => 'Muer', + 'diff_tomorrow_regexp' => 'Muer(?:\\s+um)?', + 'diff_today_regexp' => 'Haut(?:\\s+um)?', + 'formats' => [ + 'LT' => 'H:mm [Auer]', + 'LTS' => 'H:mm:ss [Auer]', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY H:mm [Auer]', + 'LLLL' => 'dddd, D. MMMM YYYY H:mm [Auer]', + ], + + 'calendar' => [ + 'sameDay' => '[Haut um] LT', + 'nextDay' => '[Muer um] LT', + 'nextWeek' => 'dddd [um] LT', + 'lastDay' => '[Gëschter um] LT', + 'lastWeek' => function (CarbonInterface $date) { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch ($date->dayOfWeek) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + 'sameElse' => 'L', + ], + + 'months' => ['Januar', 'Februar', 'Mäerz', 'Abrëll', 'Mee', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'months_short' => ['Jan.', 'Febr.', 'Mrz.', 'Abr.', 'Mee', 'Jun.', 'Jul.', 'Aug.', 'Sept.', 'Okt.', 'Nov.', 'Dez.'], + 'weekdays' => ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'], + 'weekdays_short' => ['So.', 'Mé.', 'Dë.', 'Më.', 'Do.', 'Fr.', 'Sa.'], + 'weekdays_min' => ['So', 'Mé', 'Dë', 'Më', 'Do', 'Fr', 'Sa'], + 'ordinal' => ':number.', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' an '], + 'meridiem' => ['moies', 'mëttes'], + 'weekdays_short_standalone' => ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'], + 'months_short_standalone' => ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lb_LU.php b/vendor/nesbot/carbon/src/Carbon/Lang/lb_LU.php new file mode 100644 index 000000000..414bd4d01 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lb_LU.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/lb.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lg.php b/vendor/nesbot/carbon/src/Carbon/Lang/lg.php new file mode 100644 index 000000000..48bc68bef --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lg.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/lg_UG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php b/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php new file mode 100644 index 000000000..aa0221404 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Akademe ya Luganda Kizito Birabwa kompyuta@kizito.uklinux.net + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', 'Agu', 'Seb', 'Oki', 'Nov', 'Des'], + 'weekdays' => ['Sabiiti', 'Balaza', 'Lwakubiri', 'Lwakusatu', 'Lwakuna', 'Lwakutaano', 'Lwamukaaga'], + 'weekdays_short' => ['Sab', 'Bal', 'Lw2', 'Lw3', 'Lw4', 'Lw5', 'Lw6'], + 'weekdays_min' => ['Sab', 'Bal', 'Lw2', 'Lw3', 'Lw4', 'Lw5', 'Lw6'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'month' => ':count njuba', // less reliable + 'm' => ':count njuba', // less reliable + 'a_month' => ':count njuba', // less reliable + + 'year' => ':count mwaaka', + 'y' => ':count mwaaka', + 'a_year' => ':count mwaaka', + + 'week' => ':count sabbiiti', + 'w' => ':count sabbiiti', + 'a_week' => ':count sabbiiti', + + 'day' => ':count lunaku', + 'd' => ':count lunaku', + 'a_day' => ':count lunaku', + + 'hour' => 'saawa :count', + 'h' => 'saawa :count', + 'a_hour' => 'saawa :count', + + 'minute' => 'ddakiika :count', + 'min' => 'ddakiika :count', + 'a_minute' => 'ddakiika :count', + + 'second' => ':count kyʼokubiri', + 's' => ':count kyʼokubiri', + 'a_second' => ':count kyʼokubiri', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/li.php b/vendor/nesbot/carbon/src/Carbon/Lang/li.php new file mode 100644 index 000000000..86c3009eb --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/li.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/li_NL.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php new file mode 100644 index 000000000..6c5feb79f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandriva.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['jannewarie', 'fibberwarie', 'miert', 'eprèl', 'meij', 'junie', 'julie', 'augustus', 'september', 'oktober', 'november', 'desember'], + 'months_short' => ['jan', 'fib', 'mie', 'epr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'], + 'weekdays' => ['zóndig', 'maondig', 'daensdig', 'goonsdig', 'dónderdig', 'vriedig', 'zaoterdig'], + 'weekdays_short' => ['zón', 'mao', 'dae', 'goo', 'dón', 'vri', 'zao'], + 'weekdays_min' => ['zón', 'mao', 'dae', 'goo', 'dón', 'vri', 'zao'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'minute' => ':count momênt', // less reliable + 'min' => ':count momênt', // less reliable + 'a_minute' => ':count momênt', // less reliable + + 'year' => ':count jaor', + 'y' => ':count jaor', + 'a_year' => ':count jaor', + + 'month' => ':count maond', + 'm' => ':count maond', + 'a_month' => ':count maond', + + 'week' => ':count waek', + 'w' => ':count waek', + 'a_week' => ':count waek', + + 'day' => ':count daag', + 'd' => ':count daag', + 'a_day' => ':count daag', + + 'hour' => ':count oer', + 'h' => ':count oer', + 'a_hour' => ':count oer', + + 'second' => ':count Secónd', + 's' => ':count Secónd', + 'a_second' => ':count Secónd', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lij.php b/vendor/nesbot/carbon/src/Carbon/Lang/lij.php new file mode 100644 index 000000000..45732b55d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lij.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/lij_IT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php new file mode 100644 index 000000000..f8726fd2c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Gastaldi alessio.gastaldi@libero.it + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['zenâ', 'fevrâ', 'marzo', 'avrî', 'mazzo', 'zûgno', 'lûggio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dixembre'], + 'months_short' => ['zen', 'fev', 'mar', 'arv', 'maz', 'zûg', 'lûg', 'ago', 'set', 'ött', 'nov', 'dix'], + 'weekdays' => ['domenega', 'lûnedì', 'martedì', 'mercUrdì', 'zêggia', 'venardì', 'sabbo'], + 'weekdays_short' => ['dom', 'lûn', 'mar', 'mer', 'zêu', 'ven', 'sab'], + 'weekdays_min' => ['dom', 'lûn', 'mar', 'mer', 'zêu', 'ven', 'sab'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count etæ', // less reliable + 'y' => ':count etæ', // less reliable + 'a_year' => ':count etæ', // less reliable + + 'month' => ':count meize', + 'm' => ':count meize', + 'a_month' => ':count meize', + + 'week' => ':count settemannha', + 'w' => ':count settemannha', + 'a_week' => ':count settemannha', + + 'day' => ':count giorno', + 'd' => ':count giorno', + 'a_day' => ':count giorno', + + 'hour' => ':count reléuio', // less reliable + 'h' => ':count reléuio', // less reliable + 'a_hour' => ':count reléuio', // less reliable + + 'minute' => ':count menûo', + 'min' => ':count menûo', + 'a_minute' => ':count menûo', + + 'second' => ':count segondo', + 's' => ':count segondo', + 'a_second' => ':count segondo', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lkt.php b/vendor/nesbot/carbon/src/Carbon/Lang/lkt.php new file mode 100644 index 000000000..ae73a97b9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lkt.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + + 'month' => ':count haŋwí', // less reliable + 'm' => ':count haŋwí', // less reliable + 'a_month' => ':count haŋwí', // less reliable + + 'week' => ':count šakówiŋ', // less reliable + 'w' => ':count šakówiŋ', // less reliable + 'a_week' => ':count šakówiŋ', // less reliable + + 'hour' => ':count maza škaŋškaŋ', // less reliable + 'h' => ':count maza škaŋškaŋ', // less reliable + 'a_hour' => ':count maza škaŋškaŋ', // less reliable + + 'minute' => ':count číkʼala', // less reliable + 'min' => ':count číkʼala', // less reliable + 'a_minute' => ':count číkʼala', // less reliable + + 'year' => ':count waníyetu', + 'y' => ':count waníyetu', + 'a_year' => ':count waníyetu', + + 'day' => ':count aŋpétu', + 'd' => ':count aŋpétu', + 'a_day' => ':count aŋpétu', + + 'second' => ':count icinuŋpa', + 's' => ':count icinuŋpa', + 'a_second' => ':count icinuŋpa', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ln.php b/vendor/nesbot/carbon/src/Carbon/Lang/ln.php new file mode 100644 index 000000000..9d5c35dd8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ln.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ubuntu René Manassé GALEKWA renemanasse@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'months' => ['sánzá ya yambo', 'sánzá ya míbalé', 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', 'sánzá ya zómi na míbalé'], + 'months_short' => ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], + 'weekdays' => ['Lomíngo', 'Mosálá mɔ̌kɔ́', 'Misálá míbalé', 'Misálá mísáto', 'Misálá mínei', 'Misálá mítáno', 'Mpɔ́sɔ'], + 'weekdays_short' => ['m1.', 'm2.', 'm3.', 'm4.', 'm5.', 'm6.', 'm7.'], + 'weekdays_min' => ['m1.', 'm2.', 'm3.', 'm4.', 'm5.', 'm6.', 'm7.'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => 'mbula :count', + 'y' => 'mbula :count', + 'a_year' => 'mbula :count', + + 'month' => 'sánzá :count', + 'm' => 'sánzá :count', + 'a_month' => 'sánzá :count', + + 'week' => 'mpɔ́sɔ :count', + 'w' => 'mpɔ́sɔ :count', + 'a_week' => 'mpɔ́sɔ :count', + + 'day' => 'mokɔlɔ :count', + 'd' => 'mokɔlɔ :count', + 'a_day' => 'mokɔlɔ :count', + + 'hour' => 'ngonga :count', + 'h' => 'ngonga :count', + 'a_hour' => 'ngonga :count', + + 'minute' => 'miniti :count', + 'min' => 'miniti :count', + 'a_minute' => 'miniti :count', + + 'second' => 'segɔnde :count', + 's' => 'segɔnde :count', + 'a_second' => 'segɔnde :count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ln_AO.php b/vendor/nesbot/carbon/src/Carbon/Lang/ln_AO.php new file mode 100644 index 000000000..7fdb7f1b8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ln_AO.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ln.php', [ + 'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'], + 'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + 'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + 'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php b/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php new file mode 100644 index 000000000..13635fcca --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ubuntu René Manassé GALEKWA renemanasse@gmail.com + */ +return require __DIR__.'/ln.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ln_CF.php b/vendor/nesbot/carbon/src/Carbon/Lang/ln_CF.php new file mode 100644 index 000000000..7fdb7f1b8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ln_CF.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ln.php', [ + 'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'], + 'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + 'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + 'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ln_CG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ln_CG.php new file mode 100644 index 000000000..7fdb7f1b8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ln_CG.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ln.php', [ + 'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'], + 'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + 'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + 'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lo.php b/vendor/nesbot/carbon/src/Carbon/Lang/lo.php new file mode 100644 index 000000000..48715f5c5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lo.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - ryanhart2 + */ +return [ + 'year' => ':count ປີ', + 'y' => ':count ປີ', + 'month' => ':count ເດືອນ', + 'm' => ':count ດ. ', + 'week' => ':count ອາທິດ', + 'w' => ':count ອທ. ', + 'day' => ':count ມື້', + 'd' => ':count ມື້', + 'hour' => ':count ຊົ່ວໂມງ', + 'h' => ':count ຊມ. ', + 'minute' => ':count ນາທີ', + 'min' => ':count ນທ. ', + 'second' => '{1}ບໍ່ເທົ່າໃດວິນາທີ|]1,Inf[:count ວິນາທີ', + 's' => ':count ວິ. ', + 'ago' => ':timeຜ່ານມາ', + 'from_now' => 'ອີກ :time', + 'diff_now' => 'ຕອນນີ້', + 'diff_today' => 'ມື້ນີ້ເວລາ', + 'diff_yesterday' => 'ມື້ວານນີ້ເວລາ', + 'diff_tomorrow' => 'ມື້ອື່ນເວລາ', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'ວັນdddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[ມື້ນີ້ເວລາ] LT', + 'nextDay' => '[ມື້ອື່ນເວລາ] LT', + 'nextWeek' => '[ວັນ]dddd[ໜ້າເວລາ] LT', + 'lastDay' => '[ມື້ວານນີ້ເວລາ] LT', + 'lastWeek' => '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + 'sameElse' => 'L', + ], + 'ordinal' => 'ທີ່:number', + 'meridiem' => ['ຕອນເຊົ້າ', 'ຕອນແລງ'], + 'months' => ['ມັງກອນ', 'ກຸມພາ', 'ມີນາ', 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'], + 'months_short' => ['ມັງກອນ', 'ກຸມພາ', 'ມີນາ', 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'], + 'weekdays' => ['ອາທິດ', 'ຈັນ', 'ອັງຄານ', 'ພຸດ', 'ພະຫັດ', 'ສຸກ', 'ເສົາ'], + 'weekdays_short' => ['ທິດ', 'ຈັນ', 'ອັງຄານ', 'ພຸດ', 'ພະຫັດ', 'ສຸກ', 'ເສົາ'], + 'weekdays_min' => ['ທ', 'ຈ', 'ອຄ', 'ພ', 'ພຫ', 'ສກ', 'ສ'], + 'list' => [', ', 'ແລະ '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lo_LA.php b/vendor/nesbot/carbon/src/Carbon/Lang/lo_LA.php new file mode 100644 index 000000000..9b7fd9bf7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lo_LA.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/lo.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lrc.php b/vendor/nesbot/carbon/src/Carbon/Lang/lrc.php new file mode 100644 index 000000000..546e67916 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lrc.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + + 'minute' => ':count هنر', // less reliable + 'min' => ':count هنر', // less reliable + 'a_minute' => ':count هنر', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lrc_IQ.php b/vendor/nesbot/carbon/src/Carbon/Lang/lrc_IQ.php new file mode 100644 index 000000000..d42f5e971 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lrc_IQ.php @@ -0,0 +1,13 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/lrc.php', [ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lt.php b/vendor/nesbot/carbon/src/Carbon/Lang/lt.php new file mode 100644 index 000000000..7d1b6f743 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lt.php @@ -0,0 +1,135 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Tsutomu Kuroda + * - tjku + * - valdas406 + * - Justas Palumickas + * - Max Melentiev + * - Andrius Janauskas + * - Juanito Fatas + * - Akira Matsuda + * - Christopher Dell + * - Enrique Vidal + * - Simone Carletti + * - Aaron Patterson + * - Nicolás Hock Isaza + * - Laurynas Butkus + * - Sven Fuchs + * - Dominykas Tijūnaitis + * - Justinas Bolys + * - Ričardas + * - Kirill Chalkin + * - Rolandas + * - Justinas (Gamesh) + */ +return [ + 'year' => ':count metai|:count metai|:count metų', + 'y' => ':count m.', + 'month' => ':count mėnuo|:count mėnesiai|:count mėnesį', + 'm' => ':count mėn.', + 'week' => ':count savaitė|:count savaitės|:count savaitę', + 'w' => ':count sav.', + 'day' => ':count diena|:count dienos|:count dienų', + 'd' => ':count d.', + 'hour' => ':count valanda|:count valandos|:count valandų', + 'h' => ':count val.', + 'minute' => ':count minutė|:count minutės|:count minutę', + 'min' => ':count min.', + 'second' => ':count sekundė|:count sekundės|:count sekundžių', + 's' => ':count sek.', + + 'year_ago' => ':count metus|:count metus|:count metų', + 'month_ago' => ':count mėnesį|:count mėnesius|:count mėnesių', + 'week_ago' => ':count savaitę|:count savaites|:count savaičių', + 'day_ago' => ':count dieną|:count dienas|:count dienų', + 'hour_ago' => ':count valandą|:count valandas|:count valandų', + 'minute_ago' => ':count minutę|:count minutes|:count minučių', + 'second_ago' => ':count sekundę|:count sekundes|:count sekundžių', + + 'year_from_now' => ':count metų', + 'month_from_now' => ':count mėnesio|:count mėnesių|:count mėnesių', + 'week_from_now' => ':count savaitės|:count savaičių|:count savaičių', + 'day_from_now' => ':count dienos|:count dienų|:count dienų', + 'hour_from_now' => ':count valandos|:count valandų|:count valandų', + 'minute_from_now' => ':count minutės|:count minučių|:count minučių', + 'second_from_now' => ':count sekundės|:count sekundžių|:count sekundžių', + + 'year_after' => ':count metų', + 'month_after' => ':count mėnesio|:count mėnesių|:count mėnesių', + 'week_after' => ':count savaitės|:count savaičių|:count savaičių', + 'day_after' => ':count dienos|:count dienų|:count dienų', + 'hour_after' => ':count valandos|:count valandų|:count valandų', + 'minute_after' => ':count minutės|:count minučių|:count minučių', + 'second_after' => ':count sekundės|:count sekundžių|:count sekundžių', + + 'ago' => 'prieš :time', + 'from_now' => ':time nuo dabar', + 'after' => 'po :time', + 'before' => 'už :time', + + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'diff_now' => 'ką tik', + 'diff_today' => 'Šiandien', + 'diff_yesterday' => 'vakar', + 'diff_yesterday_regexp' => 'Vakar', + 'diff_tomorrow' => 'rytoj', + 'diff_tomorrow_regexp' => 'Rytoj', + 'diff_before_yesterday' => 'užvakar', + 'diff_after_tomorrow' => 'poryt', + + 'period_recurrences' => 'kartą|:count kartų', + 'period_interval' => 'kiekvieną :interval', + 'period_start_date' => 'nuo :date', + 'period_end_date' => 'iki :date', + + 'months' => ['sausio', 'vasario', 'kovo', 'balandžio', 'gegužės', 'birželio', 'liepos', 'rugpjūčio', 'rugsėjo', 'spalio', 'lapkričio', 'gruodžio'], + 'months_standalone' => ['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis'], + 'months_regexp' => '/(L{2,4}|D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?)/', + 'months_short' => ['sau', 'vas', 'kov', 'bal', 'geg', 'bir', 'lie', 'rgp', 'rgs', 'spa', 'lap', 'gru'], + 'weekdays' => ['sekmadienį', 'pirmadienį', 'antradienį', 'trečiadienį', 'ketvirtadienį', 'penktadienį', 'šeštadienį'], + 'weekdays_standalone' => ['sekmadienis', 'pirmadienis', 'antradienis', 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis'], + 'weekdays_short' => ['sek', 'pir', 'ant', 'tre', 'ket', 'pen', 'šeš'], + 'weekdays_min' => ['se', 'pi', 'an', 'tr', 'ke', 'pe', 'še'], + 'list' => [', ', ' ir '], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'MMMM DD, YYYY', + 'LLL' => 'DD MMM HH:mm', + 'LLLL' => 'MMMM DD, YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Šiandien] LT', + 'nextDay' => '[Rytoj] LT', + 'nextWeek' => 'dddd LT', + 'lastDay' => '[Vakar] LT', + 'lastWeek' => '[Paskutinį] dddd LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + switch ($number) { + case 0: + return '0-is'; + case 3: + return '3-ias'; + default: + return "$number-as"; + } + }, + 'meridiem' => ['priešpiet', 'popiet'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lt_LT.php b/vendor/nesbot/carbon/src/Carbon/Lang/lt_LT.php new file mode 100644 index 000000000..f772d38b6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lt_LT.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/lt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lu.php b/vendor/nesbot/carbon/src/Carbon/Lang/lu.php new file mode 100644 index 000000000..c8cd83af0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lu.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Dinda', 'Dilolo'], + 'weekdays' => ['Lumingu', 'Nkodya', 'Ndàayà', 'Ndangù', 'Njòwa', 'Ngòvya', 'Lubingu'], + 'weekdays_short' => ['Lum', 'Nko', 'Ndy', 'Ndg', 'Njw', 'Ngv', 'Lub'], + 'weekdays_min' => ['Lum', 'Nko', 'Ndy', 'Ndg', 'Njw', 'Ngv', 'Lub'], + 'months' => ['Ciongo', 'Lùishi', 'Lusòlo', 'Mùuyà', 'Lumùngùlù', 'Lufuimi', 'Kabàlàshìpù', 'Lùshìkà', 'Lutongolo', 'Lungùdi', 'Kaswèkèsè', 'Ciswà'], + 'months_short' => ['Cio', 'Lui', 'Lus', 'Muu', 'Lum', 'Luf', 'Kab', 'Lush', 'Lut', 'Lun', 'Kas', 'Cis'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/luo.php b/vendor/nesbot/carbon/src/Carbon/Lang/luo.php new file mode 100644 index 000000000..b55af7318 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/luo.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['OD', 'OT'], + 'weekdays' => ['Jumapil', 'Wuok Tich', 'Tich Ariyo', 'Tich Adek', 'Tich Ang’wen', 'Tich Abich', 'Ngeso'], + 'weekdays_short' => ['JMP', 'WUT', 'TAR', 'TAD', 'TAN', 'TAB', 'NGS'], + 'weekdays_min' => ['JMP', 'WUT', 'TAR', 'TAD', 'TAN', 'TAB', 'NGS'], + 'months' => ['Dwe mar Achiel', 'Dwe mar Ariyo', 'Dwe mar Adek', 'Dwe mar Ang’wen', 'Dwe mar Abich', 'Dwe mar Auchiel', 'Dwe mar Abiriyo', 'Dwe mar Aboro', 'Dwe mar Ochiko', 'Dwe mar Apar', 'Dwe mar gi achiel', 'Dwe mar Apar gi ariyo'], + 'months_short' => ['DAC', 'DAR', 'DAD', 'DAN', 'DAH', 'DAU', 'DAO', 'DAB', 'DOC', 'DAP', 'DGI', 'DAG'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + 'year' => 'higni :count', + 'y' => 'higni :count', + 'a_year' => ':higni :count', + + 'month' => 'dweche :count', + 'm' => 'dweche :count', + 'a_month' => 'dweche :count', + + 'week' => 'jumbe :count', + 'w' => 'jumbe :count', + 'a_week' => 'jumbe :count', + + 'day' => 'ndalo :count', + 'd' => 'ndalo :count', + 'a_day' => 'ndalo :count', + + 'hour' => 'seche :count', + 'h' => 'seche :count', + 'a_hour' => 'seche :count', + + 'minute' => 'dakika :count', + 'min' => 'dakika :count', + 'a_minute' => 'dakika :count', + + 'second' => 'nus dakika :count', + 's' => 'nus dakika :count', + 'a_second' => 'nus dakika :count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/luy.php b/vendor/nesbot/carbon/src/Carbon/Lang/luy.php new file mode 100644 index 000000000..2b37e3e32 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/luy.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['Jumapiri', 'Jumatatu', 'Jumanne', 'Jumatano', 'Murwa wa Kanne', 'Murwa wa Katano', 'Jumamosi'], + 'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'], + 'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'], + 'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + // Too unreliable + /* + 'year' => ':count liliino', // less reliable + 'y' => ':count liliino', // less reliable + 'a_year' => ':count liliino', // less reliable + + 'month' => ':count kumwesi', // less reliable + 'm' => ':count kumwesi', // less reliable + 'a_month' => ':count kumwesi', // less reliable + + 'week' => ':count olutambi', // less reliable + 'w' => ':count olutambi', // less reliable + 'a_week' => ':count olutambi', // less reliable + + 'day' => ':count luno', // less reliable + 'd' => ':count luno', // less reliable + 'a_day' => ':count luno', // less reliable + + 'hour' => ':count ekengele', // less reliable + 'h' => ':count ekengele', // less reliable + 'a_hour' => ':count ekengele', // less reliable + + 'minute' => ':count omundu', // less reliable + 'min' => ':count omundu', // less reliable + 'a_minute' => ':count omundu', // less reliable + + 'second' => ':count liliino', // less reliable + 's' => ':count liliino', // less reliable + 'a_second' => ':count liliino', // less reliable + */ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lv.php b/vendor/nesbot/carbon/src/Carbon/Lang/lv.php new file mode 100644 index 000000000..d5cba7ca0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lv.php @@ -0,0 +1,183 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Carbon\CarbonInterface; + +/** + * This file is part of the Carbon package. + * + * (c) Brian Nesbitt + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - pirminis + * - Tsutomu Kuroda + * - tjku + * - Andris Zāģeris + * - Max Melentiev + * - Edgars Beigarts + * - Juanito Fatas + * - Vitauts Stočka + * - Akira Matsuda + * - Christopher Dell + * - Enrique Vidal + * - Simone Carletti + * - Aaron Patterson + * - Kaspars Bankovskis + * - Nicolás Hock Isaza + * - Viesturs Kavacs (Kavacky) + * - zakse + * - Janis Eglitis (janiseglitis) + * - Guntars + * - Juris Sudmalis + */ +$daysOfWeek = ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', 'piektdiena', 'sestdiena']; +$daysOfWeekLocativum = ['svētdien', 'pirmdien', 'otrdien', 'trešdien', 'ceturtdien', 'piektdien', 'sestdien']; + +$transformDiff = function ($input) { + return strtr($input, [ + // Nominative => "pirms/pēc" Dative + 'gads' => 'gada', + 'gadi' => 'gadiem', + 'gadu' => 'gadiem', + 'mēnesis' => 'mēneša', + 'mēneši' => 'mēnešiem', + 'mēnešu' => 'mēnešiem', + 'nedēļa' => 'nedēļas', + 'nedēļas' => 'nedēļām', + 'nedēļu' => 'nedēļām', + 'diena' => 'dienas', + 'dienas' => 'dienām', + 'dienu' => 'dienām', + 'stunda' => 'stundas', + 'stundas' => 'stundām', + 'stundu' => 'stundām', + 'minūte' => 'minūtes', + 'minūtes' => 'minūtēm', + 'minūšu' => 'minūtēm', + 'sekunde' => 'sekundes', + 'sekundes' => 'sekundēm', + 'sekunžu' => 'sekundēm', + ]); +}; + +return [ + 'ago' => function ($time) use ($transformDiff) { + return 'pirms '.$transformDiff($time); + }, + 'from_now' => function ($time) use ($transformDiff) { + return 'pēc '.$transformDiff($time); + }, + + 'year' => '0 gadu|:count gads|:count gadi', + 'y' => ':count g.', + 'a_year' => '{1}gads|0 gadu|:count gads|:count gadi', + 'month' => '0 mēnešu|:count mēnesis|:count mēneši', + 'm' => ':count mēn.', + 'a_month' => '{1}mēnesis|0 mēnešu|:count mēnesis|:count mēneši', + 'week' => '0 nedēļu|:count nedēļa|:count nedēļas', + 'w' => ':count ned.', + 'a_week' => '{1}nedēļa|0 nedēļu|:count nedēļa|:count nedēļas', + 'day' => '0 dienu|:count diena|:count dienas', + 'd' => ':count d.', + 'a_day' => '{1}diena|0 dienu|:count diena|:count dienas', + 'hour' => '0 stundu|:count stunda|:count stundas', + 'h' => ':count st.', + 'a_hour' => '{1}stunda|0 stundu|:count stunda|:count stundas', + 'minute' => '0 minūšu|:count minūte|:count minūtes', + 'min' => ':count min.', + 'a_minute' => '{1}minūte|0 minūšu|:count minūte|:count minūtes', + 'second' => '0 sekunžu|:count sekunde|:count sekundes', + 's' => ':count sek.', + 'a_second' => '{1}sekunde|0 sekunžu|:count sekunde|:count sekundes', + + 'after' => ':time vēlāk', + 'year_after' => '0 gadus|:count gadu|:count gadus', + 'a_year_after' => '{1}gadu|0 gadus|:count gadu|:count gadus', + 'month_after' => '0 mēnešus|:count mēnesi|:count mēnešus', + 'a_month_after' => '{1}mēnesi|0 mēnešus|:count mēnesi|:count mēnešus', + 'week_after' => '0 nedēļas|:count nedēļu|:count nedēļas', + 'a_week_after' => '{1}nedēļu|0 nedēļas|:count nedēļu|:count nedēļas', + 'day_after' => '0 dienas|:count dienu|:count dienas', + 'a_day_after' => '{1}dienu|0 dienas|:count dienu|:count dienas', + 'hour_after' => '0 stundas|:count stundu|:count stundas', + 'a_hour_after' => '{1}stundu|0 stundas|:count stundu|:count stundas', + 'minute_after' => '0 minūtes|:count minūti|:count minūtes', + 'a_minute_after' => '{1}minūti|0 minūtes|:count minūti|:count minūtes', + 'second_after' => '0 sekundes|:count sekundi|:count sekundes', + 'a_second_after' => '{1}sekundi|0 sekundes|:count sekundi|:count sekundes', + + 'before' => ':time agrāk', + 'year_before' => '0 gadus|:count gadu|:count gadus', + 'a_year_before' => '{1}gadu|0 gadus|:count gadu|:count gadus', + 'month_before' => '0 mēnešus|:count mēnesi|:count mēnešus', + 'a_month_before' => '{1}mēnesi|0 mēnešus|:count mēnesi|:count mēnešus', + 'week_before' => '0 nedēļas|:count nedēļu|:count nedēļas', + 'a_week_before' => '{1}nedēļu|0 nedēļas|:count nedēļu|:count nedēļas', + 'day_before' => '0 dienas|:count dienu|:count dienas', + 'a_day_before' => '{1}dienu|0 dienas|:count dienu|:count dienas', + 'hour_before' => '0 stundas|:count stundu|:count stundas', + 'a_hour_before' => '{1}stundu|0 stundas|:count stundu|:count stundas', + 'minute_before' => '0 minūtes|:count minūti|:count minūtes', + 'a_minute_before' => '{1}minūti|0 minūtes|:count minūti|:count minūtes', + 'second_before' => '0 sekundes|:count sekundi|:count sekundes', + 'a_second_before' => '{1}sekundi|0 sekundes|:count sekundi|:count sekundes', + + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' un '], + + 'diff_now' => 'tagad', + 'diff_today' => 'šodien', + 'diff_yesterday' => 'vakar', + 'diff_before_yesterday' => 'aizvakar', + 'diff_tomorrow' => 'rīt', + 'diff_after_tomorrow' => 'parīt', + + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY.', + 'LL' => 'YYYY. [gada] D. MMMM', + 'LLL' => 'DD.MM.YYYY., HH:mm', + 'LLLL' => 'YYYY. [gada] D. MMMM, HH:mm', + ], + + 'calendar' => [ + 'sameDay' => '[šodien] [plkst.] LT', + 'nextDay' => '[rīt] [plkst.] LT', + 'nextWeek' => function (CarbonInterface $current, CarbonInterface $other) use ($daysOfWeekLocativum) { + if ($current->week !== $other->week) { + return '[nākošo] ['.$daysOfWeekLocativum[$current->dayOfWeek].'] [plkst.] LT'; + } + + return '['.$daysOfWeekLocativum[$current->dayOfWeek].'] [plkst.] LT'; + }, + 'lastDay' => '[vakar] [plkst.] LT', + 'lastWeek' => function (CarbonInterface $current) use ($daysOfWeekLocativum) { + return '[pagājušo] ['.$daysOfWeekLocativum[$current->dayOfWeek].'] [plkst.] LT'; + }, + 'sameElse' => 'L', + ], + + 'weekdays' => $daysOfWeek, + 'weekdays_short' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'], + 'weekdays_min' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'], + 'months' => ['janvāris', 'februāris', 'marts', 'aprīlis', 'maijs', 'jūnijs', 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', 'decembris'], + 'months_standalone' => ['janvārī', 'februārī', 'martā', 'aprīlī', 'maijā', 'jūnijā', 'jūlijā', 'augustā', 'septembrī', 'oktobrī', 'novembrī', 'decembrī'], + 'months_short' => ['janv.', 'febr.', 'martā', 'apr.', 'maijā', 'jūn.', 'jūl.', 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'], + 'meridiem' => ['priekšpusdiena', 'pēcpusdiena'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lv_LV.php b/vendor/nesbot/carbon/src/Carbon/Lang/lv_LV.php new file mode 100644 index 000000000..ee91c369f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lv_LV.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/lv.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php b/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php new file mode 100644 index 000000000..1180c6bb1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/lzh_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php new file mode 100644 index 000000000..3b1493eef --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'OY[年]MMMMOD[日]', + ], + 'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], + 'months_short' => [' 一 ', ' 二 ', ' 三 ', ' 四 ', ' 五 ', ' 六 ', ' 七 ', ' 八 ', ' 九 ', ' 十 ', '十一', '十二'], + 'weekdays' => ['週日', '週一', '週二', '週三', '週四', '週五', '週六'], + 'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'], + 'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'], + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '廿', '廿一', '廿二', '廿三', '廿四', '廿五', '廿六', '廿七', '廿八', '廿九', '卅', '卅一'], + 'meridiem' => ['朝', '暮'], + + 'year' => ':count 夏', // less reliable + 'y' => ':count 夏', // less reliable + 'a_year' => ':count 夏', // less reliable + + 'month' => ':count 月', // less reliable + 'm' => ':count 月', // less reliable + 'a_month' => ':count 月', // less reliable + + 'hour' => ':count 氧', // less reliable + 'h' => ':count 氧', // less reliable + 'a_hour' => ':count 氧', // less reliable + + 'minute' => ':count 點', // less reliable + 'min' => ':count 點', // less reliable + 'a_minute' => ':count 點', // less reliable + + 'second' => ':count 楚', // less reliable + 's' => ':count 楚', // less reliable + 'a_second' => ':count 楚', // less reliable + + 'week' => ':count 星期', + 'w' => ':count 星期', + 'a_week' => ':count 星期', + + 'day' => ':count 日(曆法)', + 'd' => ':count 日(曆法)', + 'a_day' => ':count 日(曆法)', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mag.php b/vendor/nesbot/carbon/src/Carbon/Lang/mag.php new file mode 100644 index 000000000..7532436d0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mag.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/mag_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php new file mode 100644 index 000000000..193f67a7e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bhashaghar@googlegroups.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'weekdays' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'], + 'weekdays_short' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'], + 'weekdays_min' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mai.php b/vendor/nesbot/carbon/src/Carbon/Lang/mai.php new file mode 100644 index 000000000..792b97399 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mai.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/mai_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php new file mode 100644 index 000000000..03049d458 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Maithili Computing Research Center, Pune, India rajeshkajha@yahoo.com,akhilesh.k@samusng.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['बैसाख', 'जेठ', 'अषाढ़', 'सावोन', 'भादो', 'आसिन', 'कातिक', 'अगहन', 'पूस', 'माघ', 'फागुन', 'चैति'], + 'months_short' => ['बैसाख', 'जेठ', 'अषाढ़', 'सावोन', 'भादो', 'आसिन', 'कातिक', 'अगहन', 'पूस', 'माघ', 'फागुन', 'चैति'], + 'weekdays' => ['रविदिन', 'सोमदिन', 'मंगलदिन', 'बुधदिन', 'बृहस्पतीदिन', 'शुक्रदिन', 'शनीदिन'], + 'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पती', 'शुक्र', 'शनी'], + 'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पती', 'शुक्र', 'शनी'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], + + 'year' => ':count ऋतु', // less reliable + 'y' => ':count ऋतु', // less reliable + 'a_year' => ':count ऋतु', // less reliable + + 'month' => ':count महिना', + 'm' => ':count महिना', + 'a_month' => ':count महिना', + + 'week' => ':count श्रेणी:क्यालेन्डर', // less reliable + 'w' => ':count श्रेणी:क्यालेन्डर', // less reliable + 'a_week' => ':count श्रेणी:क्यालेन्डर', // less reliable + + 'day' => ':count दिन', + 'd' => ':count दिन', + 'a_day' => ':count दिन', + + 'hour' => ':count घण्टा', + 'h' => ':count घण्टा', + 'a_hour' => ':count घण्टा', + + 'minute' => ':count समय', // less reliable + 'min' => ':count समय', // less reliable + 'a_minute' => ':count समय', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mas.php b/vendor/nesbot/carbon/src/Carbon/Lang/mas.php new file mode 100644 index 000000000..cbd610c28 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mas.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Ɛnkakɛnyá', 'Ɛndámâ'], + 'weekdays' => ['Jumapílí', 'Jumatátu', 'Jumane', 'Jumatánɔ', 'Alaámisi', 'Jumáa', 'Jumamósi'], + 'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'months' => ['Oladalʉ́', 'Arát', 'Ɔɛnɨ́ɔɨŋɔk', 'Olodoyíóríê inkókúâ', 'Oloilépūnyīē inkókúâ', 'Kújúɔrɔk', 'Mórusásin', 'Ɔlɔ́ɨ́bɔ́rárɛ', 'Kúshîn', 'Olgísan', 'Pʉshʉ́ka', 'Ntʉ́ŋʉ́s'], + 'months_short' => ['Dal', 'Ará', 'Ɔɛn', 'Doy', 'Lép', 'Rok', 'Sás', 'Bɔ́r', 'Kús', 'Gís', 'Shʉ́', 'Ntʉ́'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + 'year' => ':count olameyu', // less reliable + 'y' => ':count olameyu', // less reliable + 'a_year' => ':count olameyu', // less reliable + + 'week' => ':count engolongeare orwiki', // less reliable + 'w' => ':count engolongeare orwiki', // less reliable + 'a_week' => ':count engolongeare orwiki', // less reliable + + 'hour' => ':count esahabu', // less reliable + 'h' => ':count esahabu', // less reliable + 'a_hour' => ':count esahabu', // less reliable + + 'second' => ':count are', // less reliable + 's' => ':count are', // less reliable + 'a_second' => ':count are', // less reliable + + 'month' => ':count olapa', + 'm' => ':count olapa', + 'a_month' => ':count olapa', + + 'day' => ':count enkolongʼ', + 'd' => ':count enkolongʼ', + 'a_day' => ':count enkolongʼ', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mas_TZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/mas_TZ.php new file mode 100644 index 000000000..56e290539 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mas_TZ.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/mas.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mer.php b/vendor/nesbot/carbon/src/Carbon/Lang/mer.php new file mode 100644 index 000000000..2e14597fa --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mer.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['RŨ', 'ŨG'], + 'weekdays' => ['Kiumia', 'Muramuko', 'Wairi', 'Wethatu', 'Wena', 'Wetano', 'Jumamosi'], + 'weekdays_short' => ['KIU', 'MRA', 'WAI', 'WET', 'WEN', 'WTN', 'JUM'], + 'weekdays_min' => ['KIU', 'MRA', 'WAI', 'WET', 'WEN', 'WTN', 'JUM'], + 'months' => ['Januarĩ', 'Feburuarĩ', 'Machi', 'Ĩpurũ', 'Mĩĩ', 'Njuni', 'Njuraĩ', 'Agasti', 'Septemba', 'Oktũba', 'Novemba', 'Dicemba'], + 'months_short' => ['JAN', 'FEB', 'MAC', 'ĨPU', 'MĨĨ', 'NJU', 'NJR', 'AGA', 'SPT', 'OKT', 'NOV', 'DEC'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + 'year' => ':count murume', // less reliable + 'y' => ':count murume', // less reliable + 'a_year' => ':count murume', // less reliable + + 'month' => ':count muchaara', // less reliable + 'm' => ':count muchaara', // less reliable + 'a_month' => ':count muchaara', // less reliable + + 'minute' => ':count monto', // less reliable + 'min' => ':count monto', // less reliable + 'a_minute' => ':count monto', // less reliable + + 'second' => ':count gikeno', // less reliable + 's' => ':count gikeno', // less reliable + 'a_second' => ':count gikeno', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php b/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php new file mode 100644 index 000000000..4d6e6b697 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/mfe_MU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php b/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php new file mode 100644 index 000000000..2d27b4578 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['zanvie', 'fevriye', 'mars', 'avril', 'me', 'zin', 'zilye', 'out', 'septam', 'oktob', 'novam', 'desam'], + 'months_short' => ['zan', 'fev', 'mar', 'avr', 'me', 'zin', 'zil', 'out', 'sep', 'okt', 'nov', 'des'], + 'weekdays' => ['dimans', 'lindi', 'mardi', 'merkredi', 'zedi', 'vandredi', 'samdi'], + 'weekdays_short' => ['dim', 'lin', 'mar', 'mer', 'ze', 'van', 'sam'], + 'weekdays_min' => ['dim', 'lin', 'mar', 'mer', 'ze', 'van', 'sam'], + + 'year' => ':count banané', + 'y' => ':count banané', + 'a_year' => ':count banané', + + 'month' => ':count mwa', + 'm' => ':count mwa', + 'a_month' => ':count mwa', + + 'week' => ':count sémenn', + 'w' => ':count sémenn', + 'a_week' => ':count sémenn', + + 'day' => ':count zour', + 'd' => ':count zour', + 'a_day' => ':count zour', + + 'hour' => ':count -er-tan', + 'h' => ':count -er-tan', + 'a_hour' => ':count -er-tan', + + 'minute' => ':count minitt', + 'min' => ':count minitt', + 'a_minute' => ':count minitt', + + 'second' => ':count déziém', + 's' => ':count déziém', + 'a_second' => ':count déziém', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mg.php b/vendor/nesbot/carbon/src/Carbon/Lang/mg.php new file mode 100644 index 000000000..40bc2a825 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mg.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/mg_MG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php b/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php new file mode 100644 index 000000000..6a14535a5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - The Debian Project modified by GNU//Linux Malagasy Rado Ramarotafika,Do-Risika RAFIEFERANTSIARONJY rado@linuxmg.org,dourix@free.fr + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Janoary', 'Febroary', 'Martsa', 'Aprily', 'Mey', 'Jona', 'Jolay', 'Aogositra', 'Septambra', 'Oktobra', 'Novambra', 'Desambra'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mey', 'Jon', 'Jol', 'Aog', 'Sep', 'Okt', 'Nov', 'Des'], + 'weekdays' => ['alahady', 'alatsinainy', 'talata', 'alarobia', 'alakamisy', 'zoma', 'sabotsy'], + 'weekdays_short' => ['lhd', 'lts', 'tlt', 'lrb', 'lkm', 'zom', 'sab'], + 'weekdays_min' => ['lhd', 'lts', 'tlt', 'lrb', 'lkm', 'zom', 'sab'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'minute' => ':count minitra', // less reliable + 'min' => ':count minitra', // less reliable + 'a_minute' => ':count minitra', // less reliable + + 'year' => ':count taona', + 'y' => ':count taona', + 'a_year' => ':count taona', + + 'month' => ':count volana', + 'm' => ':count volana', + 'a_month' => ':count volana', + + 'week' => ':count herinandro', + 'w' => ':count herinandro', + 'a_week' => ':count herinandro', + + 'day' => ':count andro', + 'd' => ':count andro', + 'a_day' => ':count andro', + + 'hour' => ':count ora', + 'h' => ':count ora', + 'a_hour' => ':count ora', + + 'second' => ':count segondra', + 's' => ':count segondra', + 'a_second' => ':count segondra', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mgh.php b/vendor/nesbot/carbon/src/Carbon/Lang/mgh.php new file mode 100644 index 000000000..2a80960d7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mgh.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['wichishu', 'mchochil’l'], + 'weekdays' => ['Sabato', 'Jumatatu', 'Jumanne', 'Jumatano', 'Arahamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['Sab', 'Jtt', 'Jnn', 'Jtn', 'Ara', 'Iju', 'Jmo'], + 'weekdays_min' => ['Sab', 'Jtt', 'Jnn', 'Jtn', 'Ara', 'Iju', 'Jmo'], + 'months' => ['Mweri wo kwanza', 'Mweri wo unayeli', 'Mweri wo uneraru', 'Mweri wo unecheshe', 'Mweri wo unethanu', 'Mweri wo thanu na mocha', 'Mweri wo saba', 'Mweri wo nane', 'Mweri wo tisa', 'Mweri wo kumi', 'Mweri wo kumi na moja', 'Mweri wo kumi na yel’li'], + 'months_short' => ['Kwa', 'Una', 'Rar', 'Che', 'Tha', 'Moc', 'Sab', 'Nan', 'Tis', 'Kum', 'Moj', 'Yel'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mgo.php b/vendor/nesbot/carbon/src/Carbon/Lang/mgo.php new file mode 100644 index 000000000..a126c9ff0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mgo.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', 'Aneg 6', 'Aneg 7'], + 'weekdays_short' => ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', 'Aneg 6', 'Aneg 7'], + 'weekdays_min' => ['1', '2', '3', '4', '5', '6', '7'], + 'months' => ['iməg mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', 'iməg krizmed'], + 'months_short' => ['mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', 'iməg krizmed'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-dd', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D HH:mm', + 'LLLL' => 'dddd, YYYY MMMM DD HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php b/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php new file mode 100644 index 000000000..6bbc9f6dd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/mhr_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php new file mode 100644 index 000000000..309ead9d4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - PeshSajSoft Ltd. Vyacheslav Kileev slavakileev@yandex.ru + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY.MM.DD', + ], + 'months' => ['Шорыкйол', 'Пургыж', 'Ӱярня', 'Вӱдшор', 'Ага', 'Пеледыш', 'Сӱрем', 'Сорла', 'Идым', 'Шыжа', 'Кылме', 'Теле'], + 'months_short' => ['Шрк', 'Пгж', 'Ӱрн', 'Вшр', 'Ага', 'Пдш', 'Срм', 'Срл', 'Идм', 'Шыж', 'Клм', 'Тел'], + 'weekdays' => ['Рушарня', 'Шочмо', 'Кушкыжмо', 'Вӱргече', 'Изарня', 'Кугарня', 'Шуматкече'], + 'weekdays_short' => ['Ршр', 'Шчм', 'Кжм', 'Вгч', 'Изр', 'Кгр', 'Шмт'], + 'weekdays_min' => ['Ршр', 'Шчм', 'Кжм', 'Вгч', 'Изр', 'Кгр', 'Шмт'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => ':count идалык', + 'y' => ':count идалык', + 'a_year' => ':count идалык', + + 'month' => ':count Тылзе', + 'm' => ':count Тылзе', + 'a_month' => ':count Тылзе', + + 'week' => ':count арня', + 'w' => ':count арня', + 'a_week' => ':count арня', + + 'day' => ':count кече', + 'd' => ':count кече', + 'a_day' => ':count кече', + + 'hour' => ':count час', + 'h' => ':count час', + 'a_hour' => ':count час', + + 'minute' => ':count минут', + 'min' => ':count минут', + 'a_minute' => ':count минут', + + 'second' => ':count кокымшан', + 's' => ':count кокымшан', + 'a_second' => ':count кокымшан', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mi.php b/vendor/nesbot/carbon/src/Carbon/Lang/mi.php new file mode 100644 index 000000000..b7f51ec23 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mi.php @@ -0,0 +1,66 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - John Corrigan + * - François B + */ +return [ + 'year' => ':count tau', + 'a_year' => '{1}he tau|:count tau', + 'month' => ':count marama', + 'a_month' => '{1}he marama|:count marama', + 'week' => ':count wiki', + 'a_week' => '{1}he wiki|:count wiki', + 'day' => ':count ra', + 'a_day' => '{1}he ra|:count ra', + 'hour' => ':count haora', + 'a_hour' => '{1}te haora|:count haora', + 'minute' => ':count meneti', + 'a_minute' => '{1}he meneti|:count meneti', + 'second' => ':count hēkona', + 'a_second' => '{1}te hēkona ruarua|:count hēkona', + 'ago' => ':time i mua', + 'from_now' => 'i roto i :time', + 'diff_yesterday' => 'inanahi', + 'diff_yesterday_regexp' => 'inanahi(?:\\s+i)?', + 'diff_today' => 'i teie', + 'diff_today_regexp' => 'i teie(?:\\s+mahana,)?(?:\\s+i)?', + 'diff_tomorrow' => 'apopo', + 'diff_tomorrow_regexp' => 'apopo(?:\\s+i)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY [i] HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY [i] HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[i teie mahana, i] LT', + 'nextDay' => '[apopo i] LT', + 'nextWeek' => 'dddd [i] LT', + 'lastDay' => '[inanahi i] LT', + 'lastWeek' => 'dddd [whakamutunga i] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':numberº', + 'months' => ['Kohi-tāte', 'Hui-tanguru', 'Poutū-te-rangi', 'Paenga-whāwhā', 'Haratua', 'Pipiri', 'Hōngoingoi', 'Here-turi-kōkā', 'Mahuru', 'Whiringa-ā-nuku', 'Whiringa-ā-rangi', 'Hakihea'], + 'months_short' => ['Kohi', 'Hui', 'Pou', 'Pae', 'Hara', 'Pipi', 'Hōngoi', 'Here', 'Mahu', 'Whi-nu', 'Whi-ra', 'Haki'], + 'weekdays' => ['Rātapu', 'Mane', 'Tūrei', 'Wenerei', 'Tāite', 'Paraire', 'Hātarei'], + 'weekdays_short' => ['Ta', 'Ma', 'Tū', 'We', 'Tāi', 'Pa', 'Hā'], + 'weekdays_min' => ['Ta', 'Ma', 'Tū', 'We', 'Tāi', 'Pa', 'Hā'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' me te '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mi_NZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/mi_NZ.php new file mode 100644 index 000000000..6b964e3af --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mi_NZ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/mi.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/miq.php b/vendor/nesbot/carbon/src/Carbon/Lang/miq.php new file mode 100644 index 000000000..51e5a9855 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/miq.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/miq_NI.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/miq_NI.php b/vendor/nesbot/carbon/src/Carbon/Lang/miq_NI.php new file mode 100644 index 000000000..57faa318e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/miq_NI.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['siakwa kati', 'kuswa kati', 'kakamuk kati', 'lî wainhka kati', 'lih mairin kati', 'lî kati', 'pastara kati', 'sikla kati', 'wîs kati', 'waupasa kati', 'yahbra kati', 'trisu kati'], + 'months_short' => ['siakwa kati', 'kuswa kati', 'kakamuk kati', 'lî wainhka kati', 'lih mairin kati', 'lî kati', 'pastara kati', 'sikla kati', 'wîs kati', 'waupasa kati', 'yahbra kati', 'trisu kati'], + 'weekdays' => ['sandi', 'mundi', 'tiusdi', 'wensde', 'tausde', 'praidi', 'satadi'], + 'weekdays_short' => ['san', 'mun', 'tius', 'wens', 'taus', 'prai', 'sat'], + 'weekdays_min' => ['san', 'mun', 'tius', 'wens', 'taus', 'prai', 'sat'], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 7, + 'meridiem' => ['VM', 'NM'], + + 'month' => ':count kati', // less reliable + 'm' => ':count kati', // less reliable + 'a_month' => ':count kati', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php b/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php new file mode 100644 index 000000000..617154cd0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/mjw_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php new file mode 100644 index 000000000..58ed0d189 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Jor Teron bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['Arkoi', 'Thangthang', 'There', 'Jangmi', 'Aru', 'Vosik', 'Jakhong', 'Paipai', 'Chiti', 'Phere', 'Phaikuni', 'Matijong'], + 'months_short' => ['Ark', 'Thang', 'The', 'Jang', 'Aru', 'Vos', 'Jak', 'Pai', 'Chi', 'Phe', 'Phai', 'Mati'], + 'weekdays' => ['Bhomkuru', 'Urmi', 'Durmi', 'Thelang', 'Theman', 'Bhomta', 'Bhomti'], + 'weekdays_short' => ['Bhom', 'Ur', 'Dur', 'Tkel', 'Tkem', 'Bhta', 'Bhti'], + 'weekdays_min' => ['Bhom', 'Ur', 'Dur', 'Tkel', 'Tkem', 'Bhta', 'Bhti'], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mk.php b/vendor/nesbot/carbon/src/Carbon/Lang/mk.php new file mode 100644 index 000000000..d822de098 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mk.php @@ -0,0 +1,116 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Sashko Todorov + * - Josh Soref + * - François B + * - Serhan Apaydın + * - Borislav Mickov + * - JD Isaacks + * - Tomi Atanasoski + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count година|:count години', + 'a_year' => 'година|:count години', + 'y' => ':count год.', + 'month' => ':count месец|:count месеци', + 'a_month' => 'месец|:count месеци', + 'm' => ':count месец|:count месеци', + 'week' => ':count седмица|:count седмици', + 'a_week' => 'седмица|:count седмици', + 'w' => ':count седмица|:count седмици', + 'day' => ':count ден|:count дена', + 'a_day' => 'ден|:count дена', + 'd' => ':count ден|:count дена', + 'hour' => ':count час|:count часа', + 'a_hour' => 'час|:count часа', + 'h' => ':count час|:count часа', + 'minute' => ':count минута|:count минути', + 'a_minute' => 'минута|:count минути', + 'min' => ':count мин.', + 'second' => ':count секунда|:count секунди', + 'a_second' => 'неколку секунди|:count секунди', + 's' => ':count сек.', + 'ago' => 'пред :time', + 'from_now' => 'после :time', + 'after' => 'по :time', + 'before' => 'пред :time', + 'diff_now' => 'сега', + 'diff_today' => 'Денес', + 'diff_today_regexp' => 'Денес(?:\\s+во)?', + 'diff_yesterday' => 'вчера', + 'diff_yesterday_regexp' => 'Вчера(?:\\s+во)?', + 'diff_tomorrow' => 'утре', + 'diff_tomorrow_regexp' => 'Утре(?:\\s+во)?', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'D.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY H:mm', + 'LLLL' => 'dddd, D MMMM YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => '[Денес во] LT', + 'nextDay' => '[Утре во] LT', + 'nextWeek' => '[Во] dddd [во] LT', + 'lastDay' => '[Вчера во] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + default: + return '[Изминатиот] dddd [во] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + $lastDigit = $number % 10; + $last2Digits = $number % 100; + if ($number === 0) { + return $number.'-ев'; + } + if ($last2Digits === 0) { + return $number.'-ен'; + } + if ($last2Digits > 10 && $last2Digits < 20) { + return $number.'-ти'; + } + if ($lastDigit === 1) { + return $number.'-ви'; + } + if ($lastDigit === 2) { + return $number.'-ри'; + } + if ($lastDigit === 7 || $lastDigit === 8) { + return $number.'-ми'; + } + + return $number.'-ти'; + }, + 'months' => ['јануари', 'февруари', 'март', 'април', 'мај', 'јуни', 'јули', 'август', 'септември', 'октомври', 'ноември', 'декември'], + 'months_short' => ['јан', 'фев', 'мар', 'апр', 'мај', 'јун', 'јул', 'авг', 'сеп', 'окт', 'ное', 'дек'], + 'weekdays' => ['недела', 'понеделник', 'вторник', 'среда', 'четврток', 'петок', 'сабота'], + 'weekdays_short' => ['нед', 'пон', 'вто', 'сре', 'чет', 'пет', 'саб'], + 'weekdays_min' => ['нe', 'пo', 'вт', 'ср', 'че', 'пе', 'сa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' и '], + 'meridiem' => ['АМ', 'ПМ'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mk_MK.php b/vendor/nesbot/carbon/src/Carbon/Lang/mk_MK.php new file mode 100644 index 000000000..95e2ff9cc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mk_MK.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/mk.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ml.php b/vendor/nesbot/carbon/src/Carbon/Lang/ml.php new file mode 100644 index 000000000..1abd6c449 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ml.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - JD Isaacks + */ +return [ + 'year' => ':count വർഷം', + 'a_year' => 'ഒരു വർഷം|:count വർഷം', + 'month' => ':count മാസം', + 'a_month' => 'ഒരു മാസം|:count മാസം', + 'week' => ':count ആഴ്ച', + 'a_week' => 'ഒരാഴ്ച|:count ആഴ്ച', + 'day' => ':count ദിവസം', + 'a_day' => 'ഒരു ദിവസം|:count ദിവസം', + 'hour' => ':count മണിക്കൂർ', + 'a_hour' => 'ഒരു മണിക്കൂർ|:count മണിക്കൂർ', + 'minute' => ':count മിനിറ്റ്', + 'a_minute' => 'ഒരു മിനിറ്റ്|:count മിനിറ്റ്', + 'second' => ':count സെക്കൻഡ്', + 'a_second' => 'അൽപ നിമിഷങ്ങൾ|:count സെക്കൻഡ്', + 'ago' => ':time മുൻപ്', + 'from_now' => ':time കഴിഞ്ഞ്', + 'diff_now' => 'ഇപ്പോൾ', + 'diff_today' => 'ഇന്ന്', + 'diff_yesterday' => 'ഇന്നലെ', + 'diff_tomorrow' => 'നാളെ', + 'formats' => [ + 'LT' => 'A h:mm -നു', + 'LTS' => 'A h:mm:ss -നു', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, A h:mm -നു', + 'LLLL' => 'dddd, D MMMM YYYY, A h:mm -നു', + ], + 'calendar' => [ + 'sameDay' => '[ഇന്ന്] LT', + 'nextDay' => '[നാളെ] LT', + 'nextWeek' => 'dddd, LT', + 'lastDay' => '[ഇന്നലെ] LT', + 'lastWeek' => '[കഴിഞ്ഞ] dddd, LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'രാത്രി'; + } + if ($hour < 12) { + return 'രാവിലെ'; + } + if ($hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } + if ($hour < 20) { + return 'വൈകുന്നേരം'; + } + + return 'രാത്രി'; + }, + 'months' => ['ജനുവരി', 'ഫെബ്രുവരി', 'മാർച്ച്', 'ഏപ്രിൽ', 'മേയ്', 'ജൂൺ', 'ജൂലൈ', 'ഓഗസ്റ്റ്', 'സെപ്റ്റംബർ', 'ഒക്ടോബർ', 'നവംബർ', 'ഡിസംബർ'], + 'months_short' => ['ജനു.', 'ഫെബ്രു.', 'മാർ.', 'ഏപ്രി.', 'മേയ്', 'ജൂൺ', 'ജൂലൈ.', 'ഓഗ.', 'സെപ്റ്റ.', 'ഒക്ടോ.', 'നവം.', 'ഡിസം.'], + 'weekdays' => ['ഞായറാഴ്ച', 'തിങ്കളാഴ്ച', 'ചൊവ്വാഴ്ച', 'ബുധനാഴ്ച', 'വ്യാഴാഴ്ച', 'വെള്ളിയാഴ്ച', 'ശനിയാഴ്ച'], + 'weekdays_short' => ['ഞായർ', 'തിങ്കൾ', 'ചൊവ്വ', 'ബുധൻ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + 'weekdays_min' => ['ഞാ', 'തി', 'ചൊ', 'ബു', 'വ്യാ', 'വെ', 'ശ'], + 'list' => ', ', + 'weekend' => [0, 0], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ml_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ml_IN.php new file mode 100644 index 000000000..000e79586 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ml_IN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ml.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mn.php b/vendor/nesbot/carbon/src/Carbon/Lang/mn.php new file mode 100644 index 000000000..38c6434d3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mn.php @@ -0,0 +1,116 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Tsutomu Kuroda + * - tjku + * - Max Melentiev + * - Zolzaya Erdenebaatar + * - Tom Hughes + * - Akira Matsuda + * - Christopher Dell + * - Michael Kessler + * - Enrique Vidal + * - Simone Carletti + * - Aaron Patterson + * - Nicolás Hock Isaza + * - Ochirkhuyag + * - Batmandakh + * - lucifer-crybaby + */ +return [ + 'year' => ':count жил', + 'y' => ':count жил', + 'month' => ':count сар', + 'm' => ':count сар', + 'week' => ':count долоо хоног', + 'w' => ':count долоо хоног', + 'day' => ':count өдөр', + 'd' => ':count өдөр', + 'hour' => ':count цаг', + 'h' => ':countц', + 'minute' => ':count минут', + 'min' => ':countм', + 'second' => ':count секунд', + 's' => ':countс', + + 'ago_mode' => 'last', + 'ago' => ':time өмнө', + 'year_ago' => ':count жилийн', + 'y_ago' => ':count жилийн', + 'month_ago' => ':count сарын', + 'm_ago' => ':count сарын', + 'day_ago' => ':count хоногийн', + 'd_ago' => ':count хоногийн', + 'week_ago' => ':count долоо хоногийн', + 'w_ago' => ':count долоо хоногийн', + 'hour_ago' => ':count цагийн', + 'minute_ago' => ':count минутын', + 'second_ago' => ':count секундын', + + 'from_now_mode' => 'last', + 'from_now' => 'одоогоос :time', + 'year_from_now' => ':count жилийн дараа', + 'y_from_now' => ':count жилийн дараа', + 'month_from_now' => ':count сарын дараа', + 'm_from_now' => ':count сарын дараа', + 'day_from_now' => ':count хоногийн дараа', + 'd_from_now' => ':count хоногийн дараа', + 'hour_from_now' => ':count цагийн дараа', + 'minute_from_now' => ':count минутын дараа', + 'second_from_now' => ':count секундын дараа', + + 'after_mode' => 'last', + 'after' => ':time дараа', + 'year_after' => ':count жилийн', + 'y_after' => ':count жилийн', + 'month_after' => ':count сарын', + 'm_after' => ':count сарын', + 'day_after' => ':count хоногийн', + 'd_after' => ':count хоногийн', + 'hour_after' => ':count цагийн', + 'minute_after' => ':count минутын', + 'second_after' => ':count секундын', + + 'before_mode' => 'last', + 'before' => ':time өмнө', + 'year_before' => ':count жилийн', + 'y_before' => ':count жилийн', + 'month_before' => ':count сарын', + 'm_before' => ':count сарын', + 'day_before' => ':count хоногийн', + 'd_before' => ':count хоногийн', + 'hour_before' => ':count цагийн', + 'minute_before' => ':count минутын', + 'second_before' => ':count секундын', + + 'list' => ', ', + 'diff_now' => 'одоо', + 'diff_yesterday' => 'өчигдөр', + 'diff_tomorrow' => 'маргааш', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'YYYY MMMM DD', + 'LLL' => 'YY-MM-DD, HH:mm', + 'LLLL' => 'YYYY MMMM DD, HH:mm', + ], + 'weekdays' => ['Ням', 'Даваа', 'Мягмар', 'Лхагва', 'Пүрэв', 'Баасан', 'Бямба'], + 'weekdays_short' => ['Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', 'Бя'], + 'weekdays_min' => ['Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', 'Бя'], + 'months' => ['1 сар', '2 сар', '3 сар', '4 сар', '5 сар', '6 сар', '7 сар', '8 сар', '9 сар', '10 сар', '11 сар', '12 сар'], + 'months_short' => ['1 сар', '2 сар', '3 сар', '4 сар', '5 сар', '6 сар', '7 сар', '8 сар', '9 сар', '10 сар', '11 сар', '12 сар'], + 'meridiem' => ['өглөө', 'орой'], + 'first_day_of_week' => 1, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mn_MN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mn_MN.php new file mode 100644 index 000000000..e5ce426c0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mn_MN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/mn.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mni.php b/vendor/nesbot/carbon/src/Carbon/Lang/mni.php new file mode 100644 index 000000000..cafa2f874 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mni.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/mni_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php new file mode 100644 index 000000000..45d430ef9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat Pune libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['জানুৱারি', 'ফেব্রুৱারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগষ্ট', 'সেপ্তেম্বর', 'ওক্তোবর', 'নবেম্বর', 'ডিসেম্বর'], + 'months_short' => ['জান', 'ফেব', 'মার', 'এপ্রি', 'মে', 'জুন', 'জুল', 'আগ', 'সেপ', 'ওক্ত', 'নবে', 'ডিস'], + 'weekdays' => ['নোংমাইজিং', 'নিংথৌকাবা', 'লৈবাকপোকপা', 'য়ুমশকৈশা', 'শগোলশেন', 'ইরাই', 'থাংজ'], + 'weekdays_short' => ['নোং', 'নিং', 'লৈবাক', 'য়ুম', 'শগোল', 'ইরা', 'থাং'], + 'weekdays_min' => ['নোং', 'নিং', 'লৈবাক', 'য়ুম', 'শগোল', 'ইরা', 'থাং'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['এ.ম.', 'প.ম.'], + + 'year' => ':count ইসিং', // less reliable + 'y' => ':count ইসিং', // less reliable + 'a_year' => ':count ইসিং', // less reliable + + 'second' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable + 's' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable + 'a_second' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mo.php b/vendor/nesbot/carbon/src/Carbon/Lang/mo.php new file mode 100644 index 000000000..102afcde5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mo.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ro.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mr.php b/vendor/nesbot/carbon/src/Carbon/Lang/mr.php new file mode 100644 index 000000000..4aaeafd0c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mr.php @@ -0,0 +1,86 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Vikram-enyota + */ +return [ + 'year' => ':count वर्ष', + 'y' => ':count वर्ष', + 'month' => ':count महिना|:count महिने', + 'm' => ':count महिना|:count महिने', + 'week' => ':count आठवडा|:count आठवडे', + 'w' => ':count आठवडा|:count आठवडे', + 'day' => ':count दिवस', + 'd' => ':count दिवस', + 'hour' => ':count तास', + 'h' => ':count तास', + 'minute' => ':count मिनिटे', + 'min' => ':count मिनिटे', + 'second' => ':count सेकंद', + 's' => ':count सेकंद', + + 'ago' => ':timeपूर्वी', + 'from_now' => ':timeमध्ये', + 'before' => ':timeपूर्वी', + 'after' => ':timeनंतर', + + 'diff_now' => 'आत्ता', + 'diff_today' => 'आज', + 'diff_yesterday' => 'काल', + 'diff_tomorrow' => 'उद्या', + + 'formats' => [ + 'LT' => 'A h:mm वाजता', + 'LTS' => 'A h:mm:ss वाजता', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, A h:mm वाजता', + 'LLLL' => 'dddd, D MMMM YYYY, A h:mm वाजता', + ], + + 'calendar' => [ + 'sameDay' => '[आज] LT', + 'nextDay' => '[उद्या] LT', + 'nextWeek' => 'dddd, LT', + 'lastDay' => '[काल] LT', + 'lastWeek' => '[मागील] dddd, LT', + 'sameElse' => 'L', + ], + + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'रात्री'; + } + if ($hour < 10) { + return 'सकाळी'; + } + if ($hour < 17) { + return 'दुपारी'; + } + if ($hour < 20) { + return 'सायंकाळी'; + } + + return 'रात्री'; + }, + + 'months' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ऑगस्ट', 'सप्टेंबर', 'ऑक्टोबर', 'नोव्हेंबर', 'डिसेंबर'], + 'months_short' => ['जाने.', 'फेब्रु.', 'मार्च.', 'एप्रि.', 'मे.', 'जून.', 'जुलै.', 'ऑग.', 'सप्टें.', 'ऑक्टो.', 'नोव्हें.', 'डिसें.'], + 'weekdays' => ['रविवार', 'सोमवार', 'मंगळवार', 'बुधवार', 'गुरूवार', 'शुक्रवार', 'शनिवार'], + 'weekdays_short' => ['रवि', 'सोम', 'मंगळ', 'बुध', 'गुरू', 'शुक्र', 'शनि'], + 'weekdays_min' => ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'], + 'list' => [', ', ' आणि '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'weekend' => [0, 0], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mr_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/mr_IN.php new file mode 100644 index 000000000..7bca919f8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mr_IN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/mr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ms.php b/vendor/nesbot/carbon/src/Carbon/Lang/ms.php new file mode 100644 index 000000000..36934eeb1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ms.php @@ -0,0 +1,104 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - Azri Jamil + * - JD Isaacks + * - Josh Soref + * - Azri Jamil + * - Hariadi Hinta + * - Ashraf Kamarudin + */ +return [ + 'year' => ':count tahun', + 'a_year' => '{1}setahun|]1,Inf[:count tahun', + 'y' => ':count tahun', + 'month' => ':count bulan', + 'a_month' => '{1}sebulan|]1,Inf[:count bulan', + 'm' => ':count bulan', + 'week' => ':count minggu', + 'a_week' => '{1}seminggu|]1,Inf[:count minggu', + 'w' => ':count minggu', + 'day' => ':count hari', + 'a_day' => '{1}sehari|]1,Inf[:count hari', + 'd' => ':count hari', + 'hour' => ':count jam', + 'a_hour' => '{1}sejam|]1,Inf[:count jam', + 'h' => ':count jam', + 'minute' => ':count minit', + 'a_minute' => '{1}seminit|]1,Inf[:count minit', + 'min' => ':count minit', + 'second' => ':count saat', + 'a_second' => '{1}beberapa saat|]1,Inf[:count saat', + 'millisecond' => ':count milisaat', + 'a_millisecond' => '{1}semilisaat|]1,Inf[:count milliseconds', + 'microsecond' => ':count mikrodetik', + 'a_microsecond' => '{1}semikrodetik|]1,Inf[:count mikrodetik', + 's' => ':count saat', + 'ago' => ':time yang lepas', + 'from_now' => ':time dari sekarang', + 'after' => ':time kemudian', + 'before' => ':time lepas', + 'diff_now' => 'sekarang', + 'diff_today' => 'Hari', + 'diff_today_regexp' => 'Hari(?:\\s+ini)?(?:\\s+pukul)?', + 'diff_yesterday' => 'semalam', + 'diff_yesterday_regexp' => 'Semalam(?:\\s+pukul)?', + 'diff_tomorrow' => 'esok', + 'diff_tomorrow_regexp' => 'Esok(?:\\s+pukul)?', + 'diff_before_yesterday' => 'kelmarin', + 'diff_after_tomorrow' => 'lusa', + 'formats' => [ + 'LT' => 'HH.mm', + 'LTS' => 'HH.mm.ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY [pukul] HH.mm', + 'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm', + ], + 'calendar' => [ + 'sameDay' => '[Hari ini pukul] LT', + 'nextDay' => '[Esok pukul] LT', + 'nextWeek' => 'dddd [pukul] LT', + 'lastDay' => '[Kelmarin pukul] LT', + 'lastWeek' => 'dddd [lepas pukul] LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 1) { + return 'tengah malam'; + } + + if ($hour < 12) { + return 'pagi'; + } + + if ($hour < 13) { + return 'tengah hari'; + } + + if ($hour < 19) { + return 'petang'; + } + + return 'malam'; + }, + 'months' => ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogs', 'Sep', 'Okt', 'Nov', 'Dis'], + 'weekdays' => ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'], + 'weekdays_short' => ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], + 'weekdays_min' => ['Ah', 'Is', 'Sl', 'Rb', 'Km', 'Jm', 'Sb'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' dan '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ms_BN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ms_BN.php new file mode 100644 index 000000000..ef837a2d7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ms_BN.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ms.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D/MM/yy', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY, h:mm a', + 'LLLL' => 'dd MMMM YYYY, h:mm a', + ], + 'meridiem' => ['a', 'p'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php b/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php new file mode 100644 index 000000000..970d60484 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - Azri Jamil + * - JD Isaacks + */ +return require __DIR__.'/ms.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ms_SG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ms_SG.php new file mode 100644 index 000000000..77cb83d28 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ms_SG.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ms.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D/MM/yy', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY, h:mm a', + 'LLLL' => 'dddd, D MMMM YYYY, h:mm a', + ], + 'meridiem' => ['a', 'p'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mt.php b/vendor/nesbot/carbon/src/Carbon/Lang/mt.php new file mode 100644 index 000000000..e8aadcc97 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mt.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Alessandro Maruccia + */ +return [ + 'year' => 'sena|:count sni|:count sni|:count sni', + 'y' => 'sa sena|:count snin|:count snin|:count snin', + 'month' => 'xahar|:count xhur|:count xhur|:count xhur', + 'm' => ':count xahar|:count xhur|:count xhur|:count xhur', + 'week' => 'gimgħa|:count ġimgħat|:count ġimgħat|:count ġimgħat', + 'w' => 'ġimgħa|:count ġimgħat|:count ġimgħat|:count ġimgħat', + 'day' => 'ġurnata|:count ġranet|:count ġranet|:count ġranet', + 'd' => 'ġurnata|:count ġranet|:count ġranet|:count ġranet', + 'hour' => 'siegħa|:count siegħat|:count siegħat|:count siegħat', + 'h' => 'siegħa|:count sigħat|:count sigħat|:count sigħat', + 'minute' => 'minuta|:count minuti|:count minuti|:count minuti', + 'min' => 'min.|:count min.|:count min.|:count min.', + 'second' => 'ftit sekondi|:count sekondi|:count sekondi|:count sekondi', + 's' => 'sek.|:count sek.|:count sek.|:count sek.', + 'ago' => ':time ilu', + 'from_now' => 'f’ :time', + 'diff_now' => 'issa', + 'diff_today' => 'Illum', + 'diff_today_regexp' => 'Illum(?:\\s+fil-)?', + 'diff_yesterday' => 'lbieraħ', + 'diff_yesterday_regexp' => 'Il-bieraħ(?:\\s+fil-)?', + 'diff_tomorrow' => 'għada', + 'diff_tomorrow_regexp' => 'Għada(?:\\s+fil-)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Illum fil-]LT', + 'nextDay' => '[Għada fil-]LT', + 'nextWeek' => 'dddd [fil-]LT', + 'lastDay' => '[Il-bieraħ fil-]LT', + 'lastWeek' => 'dddd [li għadda] [fil-]LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':numberº', + 'months' => ['Jannar', 'Frar', 'Marzu', 'April', 'Mejju', 'Ġunju', 'Lulju', 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], + 'months_short' => ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', 'Lul', 'Aww', 'Set', 'Ott', 'Nov', 'Diċ'], + 'weekdays' => ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'], + 'weekdays_short' => ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'], + 'weekdays_min' => ['Ħa', 'Tn', 'Tl', 'Er', 'Ħa', 'Ġi', 'Si'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' u '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mt_MT.php b/vendor/nesbot/carbon/src/Carbon/Lang/mt_MT.php new file mode 100644 index 000000000..9534f687a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mt_MT.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/mt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mua.php b/vendor/nesbot/carbon/src/Carbon/Lang/mua.php new file mode 100644 index 000000000..a3a3c6fdd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mua.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['comme', 'lilli'], + 'weekdays' => ['Com’yakke', 'Comlaaɗii', 'Comzyiiɗii', 'Comkolle', 'Comkaldǝɓlii', 'Comgaisuu', 'Comzyeɓsuu'], + 'weekdays_short' => ['Cya', 'Cla', 'Czi', 'Cko', 'Cka', 'Cga', 'Cze'], + 'weekdays_min' => ['Cya', 'Cla', 'Czi', 'Cko', 'Cka', 'Cga', 'Cze'], + 'months' => ['Fĩi Loo', 'Cokcwaklaŋne', 'Cokcwaklii', 'Fĩi Marfoo', 'Madǝǝuutǝbijaŋ', 'Mamǝŋgwãafahbii', 'Mamǝŋgwãalii', 'Madǝmbii', 'Fĩi Dǝɓlii', 'Fĩi Mundaŋ', 'Fĩi Gwahlle', 'Fĩi Yuru'], + 'months_short' => ['FLO', 'CLA', 'CKI', 'FMF', 'MAD', 'MBI', 'MLI', 'MAM', 'FDE', 'FMU', 'FGW', 'FYU'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/my.php b/vendor/nesbot/carbon/src/Carbon/Lang/my.php new file mode 100644 index 000000000..bbdfba401 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/my.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - JD Isaacks + * - Nay Lin Aung + */ +return [ + 'year' => '{1}တစ်နှစ်|]1,Inf[:count နှစ်', + 'y' => ':count နှစ်', + 'month' => '{1}တစ်လ|]1,Inf[:count လ', + 'm' => ':count လ', + 'week' => ':count ပတ်', + 'w' => ':count ပတ်', + 'day' => '{1}တစ်ရက်|]1,Inf[:count ရက်', + 'd' => ':count ရက်', + 'hour' => '{1}တစ်နာရီ|]1,Inf[:count နာရီ', + 'h' => ':count နာရီ', + 'minute' => '{1}တစ်မိနစ်|]1,Inf[:count မိနစ်', + 'min' => ':count မိနစ်', + 'second' => '{1}စက္ကန်.အနည်းငယ်|]1,Inf[:count စက္ကန့်', + 's' => ':count စက္ကန့်', + 'ago' => 'လွန်ခဲ့သော :time က', + 'from_now' => 'လာမည့် :time မှာ', + 'after' => ':time ကြာပြီးနောက်', + 'before' => ':time မတိုင်ခင်', + 'diff_now' => 'အခုလေးတင်', + 'diff_today' => 'ယနေ.', + 'diff_yesterday' => 'မနေ့က', + 'diff_yesterday_regexp' => 'မနေ.က', + 'diff_tomorrow' => 'မနက်ဖြန်', + 'diff_before_yesterday' => 'တမြန်နေ့က', + 'diff_after_tomorrow' => 'တဘက်ခါ', + 'period_recurrences' => ':count ကြိမ်', + 'formats' => [ + 'LT' => 'Oh:Om A', + 'LTS' => 'Oh:Om:Os A', + 'L' => 'OD/OM/OY', + 'LL' => 'OD MMMM OY', + 'LLL' => 'OD MMMM OY Oh:Om A', + 'LLLL' => 'dddd OD MMMM OY Oh:Om A', + ], + 'calendar' => [ + 'sameDay' => '[ယနေ.] LT [မှာ]', + 'nextDay' => '[မနက်ဖြန်] LT [မှာ]', + 'nextWeek' => 'dddd LT [မှာ]', + 'lastDay' => '[မနေ.က] LT [မှာ]', + 'lastWeek' => '[ပြီးခဲ့သော] dddd LT [မှာ]', + 'sameElse' => 'L', + ], + 'months' => ['ဇန်နဝါရီ', 'ဖေဖော်ဝါရီ', 'မတ်', 'ဧပြီ', 'မေ', 'ဇွန်', 'ဇူလိုင်', 'သြဂုတ်', 'စက်တင်ဘာ', 'အောက်တိုဘာ', 'နိုဝင်ဘာ', 'ဒီဇင်ဘာ'], + 'months_short' => ['ဇန်', 'ဖေ', 'မတ်', 'ပြီ', 'မေ', 'ဇွန်', 'လိုင်', 'သြ', 'စက်', 'အောက်', 'နို', 'ဒီ'], + 'weekdays' => ['တနင်္ဂနွေ', 'တနင်္လာ', 'အင်္ဂါ', 'ဗုဒ္ဓဟူး', 'ကြာသပတေး', 'သောကြာ', 'စနေ'], + 'weekdays_short' => ['နွေ', 'လာ', 'ဂါ', 'ဟူး', 'ကြာ', 'သော', 'နေ'], + 'weekdays_min' => ['နွေ', 'လာ', 'ဂါ', 'ဟူး', 'ကြာ', 'သော', 'နေ'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'alt_numbers' => ['၀၀', '၀၁', '၀၂', '၀၃', '၀၄', '၀၅', '၀၆', '၀၇', '၀၈', '၀၉', '၁၀', '၁၁', '၁၂', '၁၃', '၁၄', '၁၅', '၁၆', '၁၇', '၁၈', '၁၉', '၂၀', '၂၁', '၂၂', '၂၃', '၂၄', '၂၅', '၂၆', '၂၇', '၂၈', '၂၉', '၃၀', '၃၁', '၃၂', '၃၃', '၃၄', '၃၅', '၃၆', '၃၇', '၃၈', '၃၉', '၄၀', '၄၁', '၄၂', '၄၃', '၄၄', '၄၅', '၄၆', '၄၇', '၄၈', '၄၉', '၅၀', '၅၁', '၅၂', '၅၃', '၅၄', '၅၅', '၅၆', '၅၇', '၅၈', '၅၉', '၆၀', '၆၁', '၆၂', '၆၃', '၆၄', '၆၅', '၆၆', '၆၇', '၆၈', '၆၉', '၇၀', '၇၁', '၇၂', '၇၃', '၇၄', '၇၅', '၇၆', '၇၇', '၇၈', '၇၉', '၈၀', '၈၁', '၈၂', '၈၃', '၈၄', '၈၅', '၈၆', '၈၇', '၈၈', '၈၉', '၉၀', '၉၁', '၉၂', '၉၃', '၉၄', '၉၅', '၉၆', '၉၇', '၉၈', '၉၉'], + 'meridiem' => ['နံနက်', 'ညနေ'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/my_MM.php b/vendor/nesbot/carbon/src/Carbon/Lang/my_MM.php new file mode 100644 index 000000000..a0108dd45 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/my_MM.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/my.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/mzn.php b/vendor/nesbot/carbon/src/Carbon/Lang/mzn.php new file mode 100644 index 000000000..70f5f23c9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/mzn.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fa.php', [ + 'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], + 'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], + 'first_day_of_week' => 6, + 'weekend' => [5, 5], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-dd', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D HH:mm', + 'LLLL' => 'YYYY MMMM D, dddd HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nan.php b/vendor/nesbot/carbon/src/Carbon/Lang/nan.php new file mode 100644 index 000000000..0affece84 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nan.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/nan_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php new file mode 100644 index 000000000..5c50aa48d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY年MM月DD日', + ], + 'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], + 'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'], + 'weekdays' => ['禮拜日', '禮拜一', '禮拜二', '禮拜三', '禮拜四', '禮拜五', '禮拜六'], + 'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'], + 'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['頂晡', '下晡'], + + 'year' => ':count 年', + 'y' => ':count 年', + 'a_year' => ':count 年', + + 'month' => ':count goe̍h', + 'm' => ':count goe̍h', + 'a_month' => ':count goe̍h', + + 'week' => ':count lé-pài', + 'w' => ':count lé-pài', + 'a_week' => ':count lé-pài', + + 'day' => ':count 日', + 'd' => ':count 日', + 'a_day' => ':count 日', + + 'hour' => ':count tiám-cheng', + 'h' => ':count tiám-cheng', + 'a_hour' => ':count tiám-cheng', + + 'minute' => ':count Hun-cheng', + 'min' => ':count Hun-cheng', + 'a_minute' => ':count Hun-cheng', + + 'second' => ':count Bió', + 's' => ':count Bió', + 'a_second' => ':count Bió', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php b/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php new file mode 100644 index 000000000..99ca2a425 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Arne Goetje arne@canonical.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-DD', + ], + 'months' => ['1goe̍h', '2goe̍h', '3goe̍h', '4goe̍h', '5goe̍h', '6goe̍h', '7goe̍h', '8goe̍h', '9goe̍h', '10goe̍h', '11goe̍h', '12goe̍h'], + 'months_short' => ['1g', '2g', '3g', '4g', '5g', '6g', '7g', '8g', '9g', '10g', '11g', '12g'], + 'weekdays' => ['lé-pài-ji̍t', 'pài-it', 'pài-jī', 'pài-saⁿ', 'pài-sì', 'pài-gō͘', 'pài-la̍k'], + 'weekdays_short' => ['lp', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6'], + 'weekdays_min' => ['lp', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['téng-po͘', 'ē-po͘'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/naq.php b/vendor/nesbot/carbon/src/Carbon/Lang/naq.php new file mode 100644 index 000000000..fbd9be91e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/naq.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['ǁgoagas', 'ǃuias'], + 'weekdays' => ['Sontaxtsees', 'Mantaxtsees', 'Denstaxtsees', 'Wunstaxtsees', 'Dondertaxtsees', 'Fraitaxtsees', 'Satertaxtsees'], + 'weekdays_short' => ['Son', 'Ma', 'De', 'Wu', 'Do', 'Fr', 'Sat'], + 'weekdays_min' => ['Son', 'Ma', 'De', 'Wu', 'Do', 'Fr', 'Sat'], + 'months' => ['ǃKhanni', 'ǃKhanǀgôab', 'ǀKhuuǁkhâb', 'ǃHôaǂkhaib', 'ǃKhaitsâb', 'Gamaǀaeb', 'ǂKhoesaob', 'Aoǁkhuumûǁkhâb', 'Taraǀkhuumûǁkhâb', 'ǂNûǁnâiseb', 'ǀHooǂgaeb', 'Hôasoreǁkhâb'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd, D MMMM YYYY h:mm a', + ], + + 'year' => ':count kurigu', + 'y' => ':count kurigu', + 'a_year' => ':count kurigu', + + 'month' => ':count ǁaub', // less reliable + 'm' => ':count ǁaub', // less reliable + 'a_month' => ':count ǁaub', // less reliable + + 'week' => ':count hû', // less reliable + 'w' => ':count hû', // less reliable + 'a_week' => ':count hû', // less reliable + + 'day' => ':count ǀhobas', // less reliable + 'd' => ':count ǀhobas', // less reliable + 'a_day' => ':count ǀhobas', // less reliable + + 'hour' => ':count ǂgaes', // less reliable + 'h' => ':count ǂgaes', // less reliable + 'a_hour' => ':count ǂgaes', // less reliable + + 'minute' => ':count minutga', // less reliable + 'min' => ':count minutga', // less reliable + 'a_minute' => ':count minutga', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nb.php b/vendor/nesbot/carbon/src/Carbon/Lang/nb.php new file mode 100644 index 000000000..371ee8408 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nb.php @@ -0,0 +1,84 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Alexander Tømmerås + * - Sigurd Gartmann + * - JD Isaacks + */ +return [ + 'year' => ':count år|:count år', + 'a_year' => 'ett år|:count år', + 'y' => ':count år|:count år', + 'month' => ':count måned|:count måneder', + 'a_month' => 'en måned|:count måneder', + 'm' => ':count md.', + 'week' => ':count uke|:count uker', + 'a_week' => 'en uke|:count uker', + 'w' => ':count u.', + 'day' => ':count dag|:count dager', + 'a_day' => 'en dag|:count dager', + 'd' => ':count d.', + 'hour' => ':count time|:count timer', + 'a_hour' => 'en time|:count timer', + 'h' => ':count t', + 'minute' => ':count minutt|:count minutter', + 'a_minute' => 'ett minutt|:count minutter', + 'min' => ':count min', + 'second' => ':count sekund|:count sekunder', + 'a_second' => 'noen sekunder|:count sekunder', + 's' => ':count sek', + 'ago' => ':time siden', + 'from_now' => 'om :time', + 'after' => ':time etter', + 'before' => ':time før', + 'diff_now' => 'akkurat nå', + 'diff_today' => 'i dag', + 'diff_today_regexp' => 'i dag(?:\\s+kl.)?', + 'diff_yesterday' => 'i går', + 'diff_yesterday_regexp' => 'i går(?:\\s+kl.)?', + 'diff_tomorrow' => 'i morgen', + 'diff_tomorrow_regexp' => 'i morgen(?:\\s+kl.)?', + 'diff_before_yesterday' => 'i forgårs', + 'diff_after_tomorrow' => 'i overmorgen', + 'period_recurrences' => 'en gang|:count ganger', + 'period_interval' => 'hver :interval', + 'period_start_date' => 'fra :date', + 'period_end_date' => 'til :date', + 'months' => ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'], + 'weekdays' => ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'], + 'weekdays_short' => ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'], + 'weekdays_min' => ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'], + 'ordinal' => ':number.', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY [kl.] HH:mm', + 'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[i dag kl.] LT', + 'nextDay' => '[i morgen kl.] LT', + 'nextWeek' => 'dddd [kl.] LT', + 'lastDay' => '[i går kl.] LT', + 'lastWeek' => '[forrige] dddd [kl.] LT', + 'sameElse' => 'L', + ], + 'list' => [', ', ' og '], + 'meridiem' => ['a.m.', 'p.m.'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nb_NO.php b/vendor/nesbot/carbon/src/Carbon/Lang/nb_NO.php new file mode 100644 index 000000000..31678c53e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nb_NO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/nb.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nb_SJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/nb_SJ.php new file mode 100644 index 000000000..ce0210bc0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nb_SJ.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/nb.php', [ + 'formats' => [ + 'LL' => 'D. MMM YYYY', + 'LLL' => 'D. MMMM YYYY, HH:mm', + 'LLLL' => 'dddd D. MMMM YYYY, HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nd.php b/vendor/nesbot/carbon/src/Carbon/Lang/nd.php new file mode 100644 index 000000000..f75d9a714 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nd.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['Sonto', 'Mvulo', 'Sibili', 'Sithathu', 'Sine', 'Sihlanu', 'Mgqibelo'], + 'weekdays_short' => ['Son', 'Mvu', 'Sib', 'Sit', 'Sin', 'Sih', 'Mgq'], + 'weekdays_min' => ['Son', 'Mvu', 'Sib', 'Sit', 'Sin', 'Sih', 'Mgq'], + 'months' => ['Zibandlela', 'Nhlolanja', 'Mbimbitho', 'Mabasa', 'Nkwenkwezi', 'Nhlangula', 'Ntulikazi', 'Ncwabakazi', 'Mpandula', 'Mfumfu', 'Lwezi', 'Mpalakazi'], + 'months_short' => ['Zib', 'Nhlo', 'Mbi', 'Mab', 'Nkw', 'Nhla', 'Ntu', 'Ncw', 'Mpan', 'Mfu', 'Lwe', 'Mpal'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + + 'year' => 'okweminyaka engu-:count', // less reliable + 'y' => 'okweminyaka engu-:count', // less reliable + 'a_year' => 'okweminyaka engu-:count', // less reliable + + 'month' => 'inyanga ezingu-:count', + 'm' => 'inyanga ezingu-:count', + 'a_month' => 'inyanga ezingu-:count', + + 'week' => 'amaviki angu-:count', + 'w' => 'amaviki angu-:count', + 'a_week' => 'amaviki angu-:count', + + 'day' => 'kwamalanga angu-:count', + 'd' => 'kwamalanga angu-:count', + 'a_day' => 'kwamalanga angu-:count', + + 'hour' => 'amahola angu-:count', + 'h' => 'amahola angu-:count', + 'a_hour' => 'amahola angu-:count', + + 'minute' => 'imizuzu engu-:count', + 'min' => 'imizuzu engu-:count', + 'a_minute' => 'imizuzu engu-:count', + + 'second' => 'imizuzwana engu-:count', + 's' => 'imizuzwana engu-:count', + 'a_second' => 'imizuzwana engu-:count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nds.php b/vendor/nesbot/carbon/src/Carbon/Lang/nds.php new file mode 100644 index 000000000..c0b3775e7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nds.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/nds_DE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php b/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php new file mode 100644 index 000000000..a6c57a910 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandrakesoft.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Jannuaar', 'Feberwaar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'weekdays' => ['Sünndag', 'Maandag', 'Dingsdag', 'Middeweek', 'Dunnersdag', 'Freedag', 'Sünnavend'], + 'weekdays_short' => ['Sdag', 'Maan', 'Ding', 'Midd', 'Dunn', 'Free', 'Svd.'], + 'weekdays_min' => ['Sd', 'Ma', 'Di', 'Mi', 'Du', 'Fr', 'Sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count Johr', + 'y' => ':countJ', + 'a_year' => '{1}een Johr|:count Johr', + + 'month' => ':count Maand', + 'm' => ':countM', + 'a_month' => '{1}een Maand|:count Maand', + + 'week' => ':count Week|:count Weken', + 'w' => ':countW', + 'a_week' => '{1}een Week|:count Week|:count Weken', + + 'day' => ':count Dag|:count Daag', + 'd' => ':countD', + 'a_day' => '{1}een Dag|:count Dag|:count Daag', + + 'hour' => ':count Stünn|:count Stünnen', + 'h' => ':countSt', + 'a_hour' => '{1}een Stünn|:count Stünn|:count Stünnen', + + 'minute' => ':count Minuut|:count Minuten', + 'min' => ':countm', + 'a_minute' => '{1}een Minuut|:count Minuut|:count Minuten', + + 'second' => ':count Sekunn|:count Sekunnen', + 's' => ':counts', + 'a_second' => 'en poor Sekunnen|:count Sekunn|:count Sekunnen', + + 'ago' => 'vör :time', + 'from_now' => 'in :time', + 'before' => ':time vörher', + 'after' => ':time later', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php new file mode 100644 index 000000000..de2c57bcc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandrakesoft.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Jaunuwoa', 'Februwoa', 'Moaz', 'Aprell', 'Mai', 'Juni', 'Juli', 'August', 'Septamba', 'Oktoba', 'Nowamba', 'Dezamba'], + 'months_short' => ['Jan', 'Feb', 'Moz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Now', 'Dez'], + 'weekdays' => ['Sinndag', 'Mondag', 'Dingsdag', 'Meddwäakj', 'Donnadag', 'Friedag', 'Sinnowend'], + 'weekdays_short' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'], + 'weekdays_min' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ne.php b/vendor/nesbot/carbon/src/Carbon/Lang/ne.php new file mode 100644 index 000000000..d4caf0e25 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ne.php @@ -0,0 +1,82 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - nootanghimire + * - Josh Soref + * - Nj Subedi + * - JD Isaacks + */ +return [ + 'year' => 'एक बर्ष|:count बर्ष', + 'y' => ':count वर्ष', + 'month' => 'एक महिना|:count महिना', + 'm' => ':count महिना', + 'week' => ':count हप्ता', + 'w' => ':count हप्ता', + 'day' => 'एक दिन|:count दिन', + 'd' => ':count दिन', + 'hour' => 'एक घण्टा|:count घण्टा', + 'h' => ':count घण्टा', + 'minute' => 'एक मिनेट|:count मिनेट', + 'min' => ':count मिनेट', + 'second' => 'केही क्षण|:count सेकेण्ड', + 's' => ':count सेकेण्ड', + 'ago' => ':time अगाडि', + 'from_now' => ':timeमा', + 'after' => ':time पछि', + 'before' => ':time अघि', + 'diff_now' => 'अहिले', + 'diff_today' => 'आज', + 'diff_yesterday' => 'हिजो', + 'diff_tomorrow' => 'भोलि', + 'formats' => [ + 'LT' => 'Aको h:mm बजे', + 'LTS' => 'Aको h:mm:ss बजे', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, Aको h:mm बजे', + 'LLLL' => 'dddd, D MMMM YYYY, Aको h:mm बजे', + ], + 'calendar' => [ + 'sameDay' => '[आज] LT', + 'nextDay' => '[भोलि] LT', + 'nextWeek' => '[आउँदो] dddd[,] LT', + 'lastDay' => '[हिजो] LT', + 'lastWeek' => '[गएको] dddd[,] LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 3) { + return 'राति'; + } + if ($hour < 12) { + return 'बिहान'; + } + if ($hour < 16) { + return 'दिउँसो'; + } + if ($hour < 20) { + return 'साँझ'; + } + + return 'राति'; + }, + 'months' => ['जनवरी', 'फेब्रुवरी', 'मार्च', 'अप्रिल', 'मई', 'जुन', 'जुलाई', 'अगष्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'], + 'months_short' => ['जन.', 'फेब्रु.', 'मार्च', 'अप्रि.', 'मई', 'जुन', 'जुलाई.', 'अग.', 'सेप्ट.', 'अक्टो.', 'नोभे.', 'डिसे.'], + 'weekdays' => ['आइतबार', 'सोमबार', 'मङ्गलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'], + 'weekdays_short' => ['आइत.', 'सोम.', 'मङ्गल.', 'बुध.', 'बिहि.', 'शुक्र.', 'शनि.'], + 'weekdays_min' => ['आ.', 'सो.', 'मं.', 'बु.', 'बि.', 'शु.', 'श.'], + 'list' => [', ', ' र '], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ne_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ne_IN.php new file mode 100644 index 000000000..f68d00e3e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ne_IN.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ne.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'yy/M/d', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D, h:mm a', + 'LLLL' => 'YYYY MMMM D, dddd, h:mm a', + ], + 'months' => ['जनवरी', 'फेब्रुअरी', 'मार्च', 'अप्रिल', 'मे', 'जुन', 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'], + 'months_short' => ['जनवरी', 'फेब्रुअरी', 'मार्च', 'अप्रिल', 'मे', 'जुन', 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'], + 'weekend' => [0, 0], + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ne_NP.php b/vendor/nesbot/carbon/src/Carbon/Lang/ne_NP.php new file mode 100644 index 000000000..27840c0fe --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ne_NP.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ne.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php b/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php new file mode 100644 index 000000000..5a858315c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/nhn_MX.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php b/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php new file mode 100644 index 000000000..9db88a128 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'], + 'weekdays' => ['teoilhuitl', 'ceilhuitl', 'omeilhuitl', 'yeilhuitl', 'nahuilhuitl', 'macuililhuitl', 'chicuaceilhuitl'], + 'weekdays_short' => ['teo', 'cei', 'ome', 'yei', 'nau', 'mac', 'chi'], + 'weekdays_min' => ['teo', 'cei', 'ome', 'yei', 'nau', 'mac', 'chi'], + 'day_of_first_week_of_year' => 1, + + 'month' => ':count metztli', // less reliable + 'm' => ':count metztli', // less reliable + 'a_month' => ':count metztli', // less reliable + + 'week' => ':count tonalli', // less reliable + 'w' => ':count tonalli', // less reliable + 'a_week' => ':count tonalli', // less reliable + + 'day' => ':count tonatih', // less reliable + 'd' => ':count tonatih', // less reliable + 'a_day' => ':count tonatih', // less reliable + + 'minute' => ':count toltecayotl', // less reliable + 'min' => ':count toltecayotl', // less reliable + 'a_minute' => ':count toltecayotl', // less reliable + + 'second' => ':count ome', // less reliable + 's' => ':count ome', // less reliable + 'a_second' => ':count ome', // less reliable + + 'year' => ':count xihuitl', + 'y' => ':count xihuitl', + 'a_year' => ':count xihuitl', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/niu.php b/vendor/nesbot/carbon/src/Carbon/Lang/niu.php new file mode 100644 index 000000000..bd9be8aae --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/niu.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/niu_NU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php b/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php new file mode 100644 index 000000000..6e7a697bd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RockET Systems Emani Fakaotimanava-Lui emani@niue.nu + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Ianuali', 'Fepuali', 'Masi', 'Apelila', 'Me', 'Iuni', 'Iulai', 'Aokuso', 'Sepetema', 'Oketopa', 'Novema', 'Tesemo'], + 'months_short' => ['Ian', 'Fep', 'Mas', 'Ape', 'Me', 'Iun', 'Iul', 'Aok', 'Sep', 'Oke', 'Nov', 'Tes'], + 'weekdays' => ['Aho Tapu', 'Aho Gofua', 'Aho Ua', 'Aho Lotu', 'Aho Tuloto', 'Aho Falaile', 'Aho Faiumu'], + 'weekdays_short' => ['Tapu', 'Gofua', 'Ua', 'Lotu', 'Tuloto', 'Falaile', 'Faiumu'], + 'weekdays_min' => ['Tapu', 'Gofua', 'Ua', 'Lotu', 'Tuloto', 'Falaile', 'Faiumu'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => ':count tau', + 'y' => ':count tau', + 'a_year' => ':count tau', + + 'month' => ':count mahina', + 'm' => ':count mahina', + 'a_month' => ':count mahina', + + 'week' => ':count faahi tapu', + 'w' => ':count faahi tapu', + 'a_week' => ':count faahi tapu', + + 'day' => ':count aho', + 'd' => ':count aho', + 'a_day' => ':count aho', + + 'hour' => ':count e tulā', + 'h' => ':count e tulā', + 'a_hour' => ':count e tulā', + + 'minute' => ':count minuti', + 'min' => ':count minuti', + 'a_minute' => ':count minuti', + + 'second' => ':count sekone', + 's' => ':count sekone', + 'a_second' => ':count sekone', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl.php new file mode 100644 index 000000000..2d737703d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl.php @@ -0,0 +1,113 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Roy + * - Stephan + * - François B + * - Tim Fish + * - Kevin Huang + * - Jacob Middag + * - JD Isaacks + * - Roy + * - Stephan + * - François B + * - Tim Fish + * - Jacob Middag + * - JD Isaacks + * - Propaganistas + * - MegaXLR + * - adriaanzon + * - MonkeyPhysics + * - JeroenG + * - RikSomers + * - proclame + * - Rik de Groot (hwdegroot) + */ +return [ + 'year' => ':count jaar|:count jaar', + 'a_year' => 'een jaar|:count jaar', + 'y' => ':countj', + 'month' => ':count maand|:count maanden', + 'a_month' => 'een maand|:count maanden', + 'm' => ':countmnd', + 'week' => ':count week|:count weken', + 'a_week' => 'een week|:count weken', + 'w' => ':countw', + 'day' => ':count dag|:count dagen', + 'a_day' => 'een dag|:count dagen', + 'd' => ':countd', + 'hour' => ':count uur|:count uur', + 'a_hour' => 'een uur|:count uur', + 'h' => ':countu', + 'minute' => ':count minuut|:count minuten', + 'a_minute' => 'een minuut|:count minuten', + 'min' => ':countmin', + 'second' => ':count seconde|:count seconden', + 'a_second' => 'een paar seconden|:count seconden', + 's' => ':counts', + 'ago' => ':time geleden', + 'from_now' => 'over :time', + 'after' => ':time later', + 'before' => ':time eerder', + 'diff_now' => 'nu', + 'diff_today' => 'vandaag', + 'diff_today_regexp' => 'vandaag(?:\\s+om)?', + 'diff_yesterday' => 'gisteren', + 'diff_yesterday_regexp' => 'gisteren(?:\\s+om)?', + 'diff_tomorrow' => 'morgen', + 'diff_tomorrow_regexp' => 'morgen(?:\\s+om)?', + 'diff_after_tomorrow' => 'overmorgen', + 'diff_before_yesterday' => 'eergisteren', + 'period_recurrences' => ':count keer', + 'period_interval' => function (string $interval = '') { + /** @var string $output */ + $output = preg_replace('/^(een|één|1)\s+/u', '', $interval); + + if (preg_match('/^(een|één|1)( jaar|j| uur|u)/u', $interval)) { + return "elk $output"; + } + + return "elke $output"; + }, + 'period_start_date' => 'van :date', + 'period_end_date' => 'tot :date', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD-MM-YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[vandaag om] LT', + 'nextDay' => '[morgen om] LT', + 'nextWeek' => 'dddd [om] LT', + 'lastDay' => '[gisteren om] LT', + 'lastWeek' => '[afgelopen] dddd [om] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de'); + }, + 'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + 'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + 'mmm_suffix' => '.', + 'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + 'weekdays_short' => ['zo.', 'ma.', 'di.', 'wo.', 'do.', 'vr.', 'za.'], + 'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' en '], + 'meridiem' => ['\'s ochtends', '\'s middags'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php new file mode 100644 index 000000000..5ec136d1b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Free Software Foundation, Inc. bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/nl.php', [ + 'formats' => [ + 'L' => 'DD-MM-YY', + ], + 'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + 'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + 'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + 'weekdays_short' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + 'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php new file mode 100644 index 000000000..037f5b4aa --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Roy + * - Stephan + * - François B + * - Tim Fish + * - Kevin Huang + * - Jacob Middag + * - JD Isaacks + * - Propaganistas + */ +return array_replace_recursive(require __DIR__.'/nl.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_BQ.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_BQ.php new file mode 100644 index 000000000..c269197b7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_BQ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/nl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_CW.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_CW.php new file mode 100644 index 000000000..c269197b7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_CW.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/nl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php new file mode 100644 index 000000000..14e4853e1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/nl.php', [ + 'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + 'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + 'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + 'weekdays_short' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + 'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_SR.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_SR.php new file mode 100644 index 000000000..c269197b7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_SR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/nl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nl_SX.php b/vendor/nesbot/carbon/src/Carbon/Lang/nl_SX.php new file mode 100644 index 000000000..c269197b7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nl_SX.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/nl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nmg.php b/vendor/nesbot/carbon/src/Carbon/Lang/nmg.php new file mode 100644 index 000000000..4d1df6e50 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nmg.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['maná', 'kugú'], + 'weekdays' => ['sɔ́ndɔ', 'mɔ́ndɔ', 'sɔ́ndɔ mafú mába', 'sɔ́ndɔ mafú málal', 'sɔ́ndɔ mafú mána', 'mabágá má sukul', 'sásadi'], + 'weekdays_short' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'mbs', 'sas'], + 'weekdays_min' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'mbs', 'sas'], + 'months' => ['ngwɛn matáhra', 'ngwɛn ńmba', 'ngwɛn ńlal', 'ngwɛn ńna', 'ngwɛn ńtan', 'ngwɛn ńtuó', 'ngwɛn hɛmbuɛrí', 'ngwɛn lɔmbi', 'ngwɛn rɛbvuâ', 'ngwɛn wum', 'ngwɛn wum navǔr', 'krísimin'], + 'months_short' => ['ng1', 'ng2', 'ng3', 'ng4', 'ng5', 'ng6', 'ng7', 'ng8', 'ng9', 'ng10', 'ng11', 'kris'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nn.php b/vendor/nesbot/carbon/src/Carbon/Lang/nn.php new file mode 100644 index 000000000..041f7b29f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nn.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Alexander Tømmerås + * - Øystein + * - JD Isaacks + * - Gaute Hvoslef Kvalnes (gaute) + */ +return [ + 'year' => ':count år', + 'a_year' => 'eit år|:count år', + 'y' => ':count år', + 'month' => ':count månad|:count månader', + 'a_month' => 'ein månad|:count månader', + 'm' => ':count md', + 'week' => ':count veke|:count veker', + 'a_week' => 'ei veke|:count veker', + 'w' => ':countv', + 'day' => ':count dag|:count dagar', + 'a_day' => 'ein dag|:count dagar', + 'd' => ':countd', + 'hour' => ':count time|:count timar', + 'a_hour' => 'ein time|:count timar', + 'h' => ':countt', + 'minute' => ':count minutt', + 'a_minute' => 'eit minutt|:count minutt', + 'min' => ':countm', + 'second' => ':count sekund', + 'a_second' => 'nokre sekund|:count sekund', + 's' => ':counts', + 'ago' => ':time sidan', + 'from_now' => 'om :time', + 'after' => ':time etter', + 'before' => ':time før', + 'diff_today' => 'I dag', + 'diff_yesterday' => 'I går', + 'diff_yesterday_regexp' => 'I går(?:\\s+klokka)?', + 'diff_tomorrow' => 'I morgon', + 'diff_tomorrow_regexp' => 'I morgon(?:\\s+klokka)?', + 'diff_today_regexp' => 'I dag(?:\\s+klokka)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY [kl.] H:mm', + 'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[I dag klokka] LT', + 'nextDay' => '[I morgon klokka] LT', + 'nextWeek' => 'dddd [klokka] LT', + 'lastDay' => '[I går klokka] LT', + 'lastWeek' => '[Føregåande] dddd [klokka] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'], + 'weekdays' => ['sundag', 'måndag', 'tysdag', 'onsdag', 'torsdag', 'fredag', 'laurdag'], + 'weekdays_short' => ['sun', 'mån', 'tys', 'ons', 'tor', 'fre', 'lau'], + 'weekdays_min' => ['su', 'må', 'ty', 'on', 'to', 'fr', 'la'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' og '], + 'meridiem' => ['f.m.', 'e.m.'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nn_NO.php b/vendor/nesbot/carbon/src/Carbon/Lang/nn_NO.php new file mode 100644 index 000000000..8e1687114 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nn_NO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/nn.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nnh.php b/vendor/nesbot/carbon/src/Carbon/Lang/nnh.php new file mode 100644 index 000000000..007d23993 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nnh.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['mbaʼámbaʼ', 'ncwònzém'], + 'weekdays' => null, + 'weekdays_short' => ['lyɛʼɛ́ sẅíŋtè', 'mvfò lyɛ̌ʼ', 'mbɔ́ɔntè mvfò lyɛ̌ʼ', 'tsètsɛ̀ɛ lyɛ̌ʼ', 'mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ', 'mvfò màga lyɛ̌ʼ', 'màga lyɛ̌ʼ'], + 'weekdays_min' => null, + 'months' => null, + 'months_short' => ['saŋ tsetsɛ̀ɛ lùm', 'saŋ kàg ngwóŋ', 'saŋ lepyè shúm', 'saŋ cÿó', 'saŋ tsɛ̀ɛ cÿó', 'saŋ njÿoláʼ', 'saŋ tyɛ̀b tyɛ̀b mbʉ̀ŋ', 'saŋ mbʉ̀ŋ', 'saŋ ngwɔ̀ʼ mbÿɛ', 'saŋ tàŋa tsetsáʼ', 'saŋ mejwoŋó', 'saŋ lùm'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/yy', + 'LL' => 'D MMM, YYYY', + 'LLL' => '[lyɛ]̌ʼ d [na] MMMM, YYYY HH:mm', + 'LLLL' => 'dddd , [lyɛ]̌ʼ d [na] MMMM, YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/no.php b/vendor/nesbot/carbon/src/Carbon/Lang/no.php new file mode 100644 index 000000000..f4497c759 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/no.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Daniel S. Billing + * - Paul + * - Jimmie Johansson + * - Jens Herlevsen + */ +return array_replace_recursive(require __DIR__.'/nb.php', [ + 'formats' => [ + 'LLL' => 'D. MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D. MMMM YYYY [kl.] HH:mm', + ], + 'calendar' => [ + 'nextWeek' => 'på dddd [kl.] LT', + 'lastWeek' => '[i] dddd[s kl.] LT', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nr.php b/vendor/nesbot/carbon/src/Carbon/Lang/nr.php new file mode 100644 index 000000000..1bc999f9d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nr.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/nr_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php new file mode 100644 index 000000000..f9a7be82e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Janabari', 'uFeberbari', 'uMatjhi', 'u-Apreli', 'Meyi', 'Juni', 'Julayi', 'Arhostosi', 'Septemba', 'Oktoba', 'Usinyikhaba', 'Disemba'], + 'months_short' => ['Jan', 'Feb', 'Mat', 'Apr', 'Mey', 'Jun', 'Jul', 'Arh', 'Sep', 'Okt', 'Usi', 'Dis'], + 'weekdays' => ['uSonto', 'uMvulo', 'uLesibili', 'lesithathu', 'uLesine', 'ngoLesihlanu', 'umGqibelo'], + 'weekdays_short' => ['Son', 'Mvu', 'Bil', 'Tha', 'Ne', 'Hla', 'Gqi'], + 'weekdays_min' => ['Son', 'Mvu', 'Bil', 'Tha', 'Ne', 'Hla', 'Gqi'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nso.php b/vendor/nesbot/carbon/src/Carbon/Lang/nso.php new file mode 100644 index 000000000..2a6cabbf1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nso.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/nso_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php new file mode 100644 index 000000000..b08fe6dcd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Janaware', 'Febereware', 'Matšhe', 'Aprele', 'Mei', 'June', 'Julae', 'Agostose', 'Setemere', 'Oktobere', 'Nofemere', 'Disemere'], + 'months_short' => ['Jan', 'Feb', 'Mat', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Set', 'Okt', 'Nof', 'Dis'], + 'weekdays' => ['LaMorena', 'Mošupologo', 'Labobedi', 'Laboraro', 'Labone', 'Labohlano', 'Mokibelo'], + 'weekdays_short' => ['Son', 'Moš', 'Bed', 'Rar', 'Ne', 'Hla', 'Mok'], + 'weekdays_min' => ['Son', 'Moš', 'Bed', 'Rar', 'Ne', 'Hla', 'Mok'], + 'day_of_first_week_of_year' => 1, + + 'year' => ':count ngwaga', + 'y' => ':count ngwaga', + 'a_year' => ':count ngwaga', + + 'month' => ':count Kgwedi', + 'm' => ':count Kgwedi', + 'a_month' => ':count Kgwedi', + + 'week' => ':count Beke', + 'w' => ':count Beke', + 'a_week' => ':count Beke', + + 'day' => ':count Letšatši', + 'd' => ':count Letšatši', + 'a_day' => ':count Letšatši', + + 'hour' => ':count Iri', + 'h' => ':count Iri', + 'a_hour' => ':count Iri', + + 'minute' => ':count Motsotso', + 'min' => ':count Motsotso', + 'a_minute' => ':count Motsotso', + + 'second' => ':count motsotswana', + 's' => ':count motsotswana', + 'a_second' => ':count motsotswana', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nus.php b/vendor/nesbot/carbon/src/Carbon/Lang/nus.php new file mode 100644 index 000000000..789bc391f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nus.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['RW', 'TŊ'], + 'weekdays' => ['Cäŋ kuɔth', 'Jiec la̱t', 'Rɛw lätni', 'Diɔ̱k lätni', 'Ŋuaan lätni', 'Dhieec lätni', 'Bäkɛl lätni'], + 'weekdays_short' => ['Cäŋ', 'Jiec', 'Rɛw', 'Diɔ̱k', 'Ŋuaan', 'Dhieec', 'Bäkɛl'], + 'weekdays_min' => ['Cäŋ', 'Jiec', 'Rɛw', 'Diɔ̱k', 'Ŋuaan', 'Dhieec', 'Bäkɛl'], + 'months' => ['Tiop thar pɛt', 'Pɛt', 'Duɔ̱ɔ̱ŋ', 'Guak', 'Duät', 'Kornyoot', 'Pay yie̱tni', 'Tho̱o̱r', 'Tɛɛr', 'Laath', 'Kur', 'Tio̱p in di̱i̱t'], + 'months_short' => ['Tiop', 'Pɛt', 'Duɔ̱ɔ̱', 'Guak', 'Duä', 'Kor', 'Pay', 'Thoo', 'Tɛɛ', 'Laa', 'Kur', 'Tid'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd D MMMM YYYY h:mm a', + ], + + 'year' => ':count jiök', // less reliable + 'y' => ':count jiök', // less reliable + 'a_year' => ':count jiök', // less reliable + + 'month' => ':count pay', // less reliable + 'm' => ':count pay', // less reliable + 'a_month' => ':count pay', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/nyn.php b/vendor/nesbot/carbon/src/Carbon/Lang/nyn.php new file mode 100644 index 000000000..8660ea426 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/nyn.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', 'Orwakana', 'Orwakataano', 'Orwamukaaga'], + 'weekdays_short' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'], + 'weekdays_min' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'], + 'months' => ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], + 'months_short' => ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/oc.php b/vendor/nesbot/carbon/src/Carbon/Lang/oc.php new file mode 100644 index 000000000..c9411d69d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/oc.php @@ -0,0 +1,100 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Quentí + */ +// @codeCoverageIgnoreStart +use Symfony\Component\Translation\PluralizationRules; + +if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) { + PluralizationRules::set(static function ($number) { + return $number == 1 ? 0 : 1; + }, 'oc'); +} +// @codeCoverageIgnoreEnd + +return [ + 'year' => ':count an|:count ans', + 'a_year' => 'un an|:count ans', + 'y' => ':count an|:count ans', + 'month' => ':count mes|:count meses', + 'a_month' => 'un mes|:count meses', + 'm' => ':count mes|:count meses', + 'week' => ':count setmana|:count setmanas', + 'a_week' => 'una setmana|:count setmanas', + 'w' => ':count setmana|:count setmanas', + 'day' => ':count jorn|:count jorns', + 'a_day' => 'un jorn|:count jorns', + 'd' => ':count jorn|:count jorns', + 'hour' => ':count ora|:count oras', + 'a_hour' => 'una ora|:count oras', + 'h' => ':count ora|:count oras', + 'minute' => ':count minuta|:count minutas', + 'a_minute' => 'una minuta|:count minutas', + 'min' => ':count minuta|:count minutas', + 'second' => ':count segonda|:count segondas', + 'a_second' => 'una segonda|:count segondas', + 's' => ':count segonda|:count segondas', + 'ago' => 'fa :time', + 'from_now' => 'd\'aquí :time', + 'after' => ':time aprèp', + 'before' => ':time abans', + 'diff_now' => 'ara meteis', + 'diff_today' => 'Uèi', + 'diff_today_regexp' => 'Uèi(?:\\s+a)?', + 'diff_yesterday' => 'ièr', + 'diff_yesterday_regexp' => 'Ièr(?:\\s+a)?', + 'diff_tomorrow' => 'deman', + 'diff_tomorrow_regexp' => 'Deman(?:\\s+a)?', + 'diff_before_yesterday' => 'ièr delà', + 'diff_after_tomorrow' => 'deman passat', + 'period_recurrences' => ':count còp|:count còps', + 'period_interval' => 'cada :interval', + 'period_start_date' => 'de :date', + 'period_end_date' => 'fins a :date', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM [de] YYYY', + 'LLL' => 'D MMMM [de] YYYY [a] H:mm', + 'LLLL' => 'dddd D MMMM [de] YYYY [a] H:mm', + ], + 'calendar' => [ + 'sameDay' => '[Uèi a] LT', + 'nextDay' => '[Deman a] LT', + 'nextWeek' => 'dddd [a] LT', + 'lastDay' => '[Ièr a] LT', + 'lastWeek' => 'dddd [passat a] LT', + 'sameElse' => 'L', + ], + 'months' => ['de genièr', 'de febrièr', 'de març', 'd\'abrial', 'de mai', 'de junh', 'de julhet', 'd\'agost', 'de setembre', 'd’octòbre', 'de novembre', 'de decembre'], + 'months_standalone' => ['genièr', 'febrièr', 'març', 'abrial', 'mai', 'junh', 'julh', 'agost', 'setembre', 'octòbre', 'novembre', 'decembre'], + 'months_short' => ['gen.', 'feb.', 'març', 'abr.', 'mai', 'junh', 'julh', 'ago.', 'sep.', 'oct.', 'nov.', 'dec.'], + 'weekdays' => ['dimenge', 'diluns', 'dimars', 'dimècres', 'dijòus', 'divendres', 'dissabte'], + 'weekdays_short' => ['dg', 'dl', 'dm', 'dc', 'dj', 'dv', 'ds'], + 'weekdays_min' => ['dg', 'dl', 'dm', 'dc', 'dj', 'dv', 'ds'], + 'ordinal' => function ($number, string $period = '') { + $ordinal = [1 => 'èr', 2 => 'nd'][(int) $number] ?? 'en'; + + // feminine for year, week, hour, minute, second + if (preg_match('/^[yYwWhHgGis]$/', $period)) { + $ordinal .= 'a'; + } + + return $number.$ordinal; + }, + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' e '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/oc_FR.php b/vendor/nesbot/carbon/src/Carbon/Lang/oc_FR.php new file mode 100644 index 000000000..01eb5c141 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/oc_FR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/oc.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/om.php b/vendor/nesbot/carbon/src/Carbon/Lang/om.php new file mode 100644 index 000000000..b8d5a0b01 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/om.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation & Sagalee Oromoo Publishing Co. Inc. locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'dd-MMM-YYYY', + 'LLL' => 'dd MMMM YYYY HH:mm', + 'LLLL' => 'dddd, MMMM D, YYYY HH:mm', + ], + 'months' => ['Amajjii', 'Guraandhala', 'Bitooteessa', 'Elba', 'Caamsa', 'Waxabajjii', 'Adooleessa', 'Hagayya', 'Fuulbana', 'Onkololeessa', 'Sadaasa', 'Muddee'], + 'months_short' => ['Ama', 'Gur', 'Bit', 'Elb', 'Cam', 'Wax', 'Ado', 'Hag', 'Ful', 'Onk', 'Sad', 'Mud'], + 'weekdays' => ['Dilbata', 'Wiixata', 'Qibxata', 'Roobii', 'Kamiisa', 'Jimaata', 'Sanbata'], + 'weekdays_short' => ['Dil', 'Wix', 'Qib', 'Rob', 'Kam', 'Jim', 'San'], + 'weekdays_min' => ['Dil', 'Wix', 'Qib', 'Rob', 'Kam', 'Jim', 'San'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['WD', 'WB'], + + 'year' => 'wggoota :count', + 'y' => 'wggoota :count', + 'a_year' => 'wggoota :count', + + 'month' => 'ji’a :count', + 'm' => 'ji’a :count', + 'a_month' => 'ji’a :count', + + 'week' => 'torban :count', + 'w' => 'torban :count', + 'a_week' => 'torban :count', + + 'day' => 'guyyaa :count', + 'd' => 'guyyaa :count', + 'a_day' => 'guyyaa :count', + + 'hour' => 'saʼaatii :count', + 'h' => 'saʼaatii :count', + 'a_hour' => 'saʼaatii :count', + + 'minute' => 'daqiiqaa :count', + 'min' => 'daqiiqaa :count', + 'a_minute' => 'daqiiqaa :count', + + 'second' => 'sekoondii :count', + 's' => 'sekoondii :count', + 'a_second' => 'sekoondii :count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/om_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/om_ET.php new file mode 100644 index 000000000..044760e35 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/om_ET.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/om.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/om_KE.php b/vendor/nesbot/carbon/src/Carbon/Lang/om_KE.php new file mode 100644 index 000000000..f5a4d1c93 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/om_KE.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/om.php', [ + 'day_of_first_week_of_year' => 0, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/or.php b/vendor/nesbot/carbon/src/Carbon/Lang/or.php new file mode 100644 index 000000000..3aa717326 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/or.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/or_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php new file mode 100644 index 000000000..57a89f5df --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM AP Linux Technology Center, Yamato Software Laboratory bug-glibc@gnu.org + */ +return [ + 'diff_now' => 'ବର୍ତ୍ତମାନ', + 'diff_yesterday' => 'ଗତକାଲି', + 'diff_tomorrow' => 'ଆସନ୍ତାକାଲି', + 'formats' => [ + 'LT' => 'Oh:Om A', + 'LTS' => 'Oh:Om:Os A', + 'L' => 'OD-OM-OY', + 'LL' => 'OD MMMM OY', + 'LLL' => 'OD MMMM OY Oh:Om A', + 'LLLL' => 'dddd OD MMMM OY Oh:Om A', + ], + 'months' => ['ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମଇ', 'ଜୁନ', 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର'], + 'months_short' => ['ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମଇ', 'ଜୁନ', 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର'], + 'weekdays' => ['ରବିବାର', 'ସୋମବାର', 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', 'ଶୁକ୍ରବାର', 'ଶନିବାର'], + 'weekdays_short' => ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], + 'weekdays_min' => ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], + 'day_of_first_week_of_year' => 1, + 'alt_numbers' => ['୦', '୧', '୨', '୩', '୪', '୫', '୬', '୭', '୮', '୯', '୧୦', '୧୧', '୧୨', '୧୩', '୧୪', '୧୫', '୧୬', '୧୭', '୧୮', '୧୯', '୨୦', '୨୧', '୨୨', '୨୩', '୨୪', '୨୫', '୨୬', '୨୭', '୨୮', '୨୯', '୩୦', '୩୧', '୩୨', '୩୩', '୩୪', '୩୫', '୩୬', '୩୭', '୩୮', '୩୯', '୪୦', '୪୧', '୪୨', '୪୩', '୪୪', '୪୫', '୪୬', '୪୭', '୪୮', '୪୯', '୫୦', '୫୧', '୫୨', '୫୩', '୫୪', '୫୫', '୫୬', '୫୭', '୫୮', '୫୯', '୬୦', '୬୧', '୬୨', '୬୩', '୬୪', '୬୫', '୬୬', '୬୭', '୬୮', '୬୯', '୭୦', '୭୧', '୭୨', '୭୩', '୭୪', '୭୫', '୭୬', '୭୭', '୭୮', '୭୯', '୮୦', '୮୧', '୮୨', '୮୩', '୮୪', '୮୫', '୮୬', '୮୭', '୮୮', '୮୯', '୯୦', '୯୧', '୯୨', '୯୩', '୯୪', '୯୫', '୯୬', '୯୭', '୯୮', '୯୯'], + 'year' => ':count ବର୍ଷ', + 'y' => ':count ବ.', + 'month' => ':count ମାସ', + 'm' => ':count ମା.', + 'week' => ':count ସପ୍ତାହ', + 'w' => ':count ସପ୍ତା.', + 'day' => ':count ଦିନ', + 'd' => ':count ଦିନ', + 'hour' => ':count ଘଣ୍ତ', + 'h' => ':count ଘ.', + 'minute' => ':count ମିନଟ', + 'min' => ':count ମି.', + 'second' => ':count ସେକଣ୍ଢ', + 's' => ':count ସେ.', + 'ago' => ':time ପୂର୍ବେ', + 'from_now' => ':timeରେ', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/os.php b/vendor/nesbot/carbon/src/Carbon/Lang/os.php new file mode 100644 index 000000000..5f55e8a2d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/os.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/os_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php new file mode 100644 index 000000000..9592d15d5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['январы', 'февралы', 'мартъийы', 'апрелы', 'майы', 'июны', 'июлы', 'августы', 'сентябры', 'октябры', 'ноябры', 'декабры'], + 'months_short' => ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], + 'weekdays' => ['Хуыцаубон', 'Къуырисæр', 'Дыццæг', 'Æртыццæг', 'Цыппæрæм', 'Майрæмбон', 'Сабат'], + 'weekdays_short' => ['Хцб', 'Крс', 'Дцг', 'Æрт', 'Цпр', 'Мрб', 'Сбт'], + 'weekdays_min' => ['Хцб', 'Крс', 'Дцг', 'Æрт', 'Цпр', 'Мрб', 'Сбт'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'minute' => ':count гыццыл', // less reliable + 'min' => ':count гыццыл', // less reliable + 'a_minute' => ':count гыццыл', // less reliable + + 'second' => ':count æндæр', // less reliable + 's' => ':count æндæр', // less reliable + 'a_second' => ':count æндæр', // less reliable + + 'year' => ':count аз', + 'y' => ':count аз', + 'a_year' => ':count аз', + + 'month' => ':count мӕй', + 'm' => ':count мӕй', + 'a_month' => ':count мӕй', + + 'week' => ':count къуыри', + 'w' => ':count къуыри', + 'a_week' => ':count къуыри', + + 'day' => ':count бон', + 'd' => ':count бон', + 'a_day' => ':count бон', + + 'hour' => ':count сахат', + 'h' => ':count сахат', + 'a_hour' => ':count сахат', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pa.php b/vendor/nesbot/carbon/src/Carbon/Lang/pa.php new file mode 100644 index 000000000..48b203316 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pa.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Tsutomu Kuroda + * - Punjab + */ +return [ + 'year' => 'ਇੱਕ ਸਾਲ|:count ਸਾਲ', + 'month' => 'ਇੱਕ ਮਹੀਨਾ|:count ਮਹੀਨੇ', + 'week' => 'ਹਫਤਾ|:count ਹਫ਼ਤੇ', + 'day' => 'ਇੱਕ ਦਿਨ|:count ਦਿਨ', + 'hour' => 'ਇੱਕ ਘੰਟਾ|:count ਘੰਟੇ', + 'minute' => 'ਇਕ ਮਿੰਟ|:count ਮਿੰਟ', + 'second' => 'ਕੁਝ ਸਕਿੰਟ|:count ਸਕਿੰਟ', + 'ago' => ':time ਪਹਿਲਾਂ', + 'from_now' => ':time ਵਿੱਚ', + 'before' => ':time ਤੋਂ ਪਹਿਲਾਂ', + 'after' => ':time ਤੋਂ ਬਾਅਦ', + 'diff_now' => 'ਹੁਣ', + 'diff_today' => 'ਅਜ', + 'diff_yesterday' => 'ਕਲ', + 'diff_tomorrow' => 'ਕਲ', + 'formats' => [ + 'LT' => 'A h:mm ਵਜੇ', + 'LTS' => 'A h:mm:ss ਵਜੇ', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, A h:mm ਵਜੇ', + 'LLLL' => 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + ], + 'calendar' => [ + 'sameDay' => '[ਅਜ] LT', + 'nextDay' => '[ਕਲ] LT', + 'nextWeek' => '[ਅਗਲਾ] dddd, LT', + 'lastDay' => '[ਕਲ] LT', + 'lastWeek' => '[ਪਿਛਲੇ] dddd, LT', + 'sameElse' => 'L', + ], + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'ਰਾਤ'; + } + if ($hour < 10) { + return 'ਸਵੇਰ'; + } + if ($hour < 17) { + return 'ਦੁਪਹਿਰ'; + } + if ($hour < 20) { + return 'ਸ਼ਾਮ'; + } + + return 'ਰਾਤ'; + }, + 'months' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], + 'months_short' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], + 'weekdays' => ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨੀਚਰਵਾਰ'], + 'weekdays_short' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁਧ', 'ਵੀਰ', 'ਸ਼ੁਕਰ', 'ਸ਼ਨੀ'], + 'weekdays_min' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁਧ', 'ਵੀਰ', 'ਸ਼ੁਕਰ', 'ਸ਼ਨੀ'], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' ਅਤੇ '], + 'weekend' => [0, 0], + 'alt_numbers' => ['੦', '੧', '੨', '੩', '੪', '੫', '੬', '੭', '੮', '੯'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pa_Arab.php b/vendor/nesbot/carbon/src/Carbon/Lang/pa_Arab.php new file mode 100644 index 000000000..39b06532d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pa_Arab.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ur.php', [ + 'weekdays' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'], + 'weekdays_short' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'], + 'weekdays_min' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'], + 'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd, DD MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pa_Guru.php b/vendor/nesbot/carbon/src/Carbon/Lang/pa_Guru.php new file mode 100644 index 000000000..7adff5c32 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pa_Guru.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/pa.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D/M/yy', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY, h:mm a', + 'LLLL' => 'dddd, D MMMM YYYY, h:mm a', + ], + 'months' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], + 'months_short' => ['ਜਨ', 'ਫ਼ਰ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾ', 'ਅਗ', 'ਸਤੰ', 'ਅਕਤੂ', 'ਨਵੰ', 'ਦਸੰ'], + 'weekdays' => ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁੱਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨਿੱਚਰਵਾਰ'], + 'weekdays_short' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕਰ', 'ਸ਼ਨਿੱਚਰ'], + 'weekdays_min' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕ', 'ਸ਼ਨਿੱ'], + 'weekend' => [0, 0], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php new file mode 100644 index 000000000..ca67642a5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Guo Xiang Tan + * - Josh Soref + * - Ash + * - harpreetkhalsagtbit + */ +return require __DIR__.'/pa.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php b/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php new file mode 100644 index 000000000..f9af11c60 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['جنوري', 'فروري', 'مارچ', 'اپريل', 'مٓی', 'جون', 'جولاي', 'اگست', 'ستمبر', 'اكتوبر', 'نومبر', 'دسمبر'], + 'months_short' => ['جنوري', 'فروري', 'مارچ', 'اپريل', 'مٓی', 'جون', 'جولاي', 'اگست', 'ستمبر', 'اكتوبر', 'نومبر', 'دسمبر'], + 'weekdays' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'], + 'weekdays_short' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'], + 'weekdays_min' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ص', 'ش'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pap.php b/vendor/nesbot/carbon/src/Carbon/Lang/pap.php new file mode 100644 index 000000000..b4c1706f9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pap.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return [ + 'formats' => [ + 'LT' => 'HH.mm', + 'LTS' => 'HH.mm:ss', + 'L' => 'DD-MM-YY', + 'LL' => 'MMMM [di] DD, YYYY', + 'LLL' => 'DD MMM HH.mm', + 'LLLL' => 'MMMM DD, YYYY HH.mm', + ], + 'months' => ['yanüari', 'febrüari', 'mart', 'aprel', 'mei', 'yüni', 'yüli', 'ougùstùs', 'sèptèmber', 'oktober', 'novèmber', 'desèmber'], + 'months_short' => ['yan', 'feb', 'mar', 'apr', 'mei', 'yün', 'yül', 'oug', 'sèp', 'okt', 'nov', 'des'], + 'weekdays' => ['djadomingo', 'djaluna', 'djamars', 'djawebs', 'djarason', 'djabierne', 'djasabra'], + 'weekdays_short' => ['do', 'lu', 'ma', 'we', 'ra', 'bi', 'sa'], + 'weekdays_min' => ['do', 'lu', 'ma', 'we', 'ra', 'bi', 'sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'year' => ':count aña', + 'month' => ':count luna', + 'week' => ':count siman', + 'day' => ':count dia', + 'hour' => ':count ora', + 'minute' => ':count minüt', + 'second' => ':count sekònde', + 'list' => [', ', ' i '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php b/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php new file mode 100644 index 000000000..e9a48ffc3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - information from native speaker Pablo Saratxaga pablo@mandrakesoft.com + */ +return require __DIR__.'/pap.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php b/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php new file mode 100644 index 000000000..e9a48ffc3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - information from native speaker Pablo Saratxaga pablo@mandrakesoft.com + */ +return require __DIR__.'/pap.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pl.php b/vendor/nesbot/carbon/src/Carbon/Lang/pl.php new file mode 100644 index 000000000..b72053549 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pl.php @@ -0,0 +1,126 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Wacław Jacek + * - François B + * - Tim Fish + * - Serhan Apaydın + * - Massimiliano Caniparoli + * - JD Isaacks + * - Jakub Szwacz + * - Jan + * - Paul + * - damlys + * - Marek (marast78) + * - Peter (UnrulyNatives) + * - Qrzysio + * - Jan (aso824) + * - diverpl + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count rok|:count lata|:count lat', + 'a_year' => 'rok|:count lata|:count lat', + 'y' => ':count r|:count l|:count l', + 'month' => ':count miesiąc|:count miesiące|:count miesięcy', + 'a_month' => 'miesiąc|:count miesiące|:count miesięcy', + 'm' => ':count mies.', + 'week' => ':count tydzień|:count tygodnie|:count tygodni', + 'a_week' => 'tydzień|:count tygodnie|:count tygodni', + 'w' => ':count tyg.', + 'day' => ':count dzień|:count dni|:count dni', + 'a_day' => 'dzień|:count dni|:count dni', + 'd' => ':count d', + 'hour' => ':count godzina|:count godziny|:count godzin', + 'a_hour' => 'godzina|:count godziny|:count godzin', + 'h' => ':count godz.', + 'minute' => ':count minuta|:count minuty|:count minut', + 'a_minute' => 'minuta|:count minuty|:count minut', + 'min' => ':count min', + 'second' => ':count sekunda|:count sekundy|:count sekund', + 'a_second' => '{1}kilka sekund|:count sekunda|:count sekundy|:count sekund', + 's' => ':count sek.', + 'ago' => ':time temu', + 'from_now' => static function ($time) { + return 'za '.strtr($time, [ + 'godzina' => 'godzinę', + 'minuta' => 'minutę', + 'sekunda' => 'sekundę', + ]); + }, + 'after' => ':time po', + 'before' => ':time przed', + 'diff_now' => 'teraz', + 'diff_today' => 'Dziś', + 'diff_today_regexp' => 'Dziś(?:\\s+o)?', + 'diff_yesterday' => 'wczoraj', + 'diff_yesterday_regexp' => 'Wczoraj(?:\\s+o)?', + 'diff_tomorrow' => 'jutro', + 'diff_tomorrow_regexp' => 'Jutro(?:\\s+o)?', + 'diff_before_yesterday' => 'przedwczoraj', + 'diff_after_tomorrow' => 'pojutrze', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Dziś o] LT', + 'nextDay' => '[Jutro o] LT', + 'nextWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[W niedzielę o] LT'; + case 2: + return '[We wtorek o] LT'; + case 3: + return '[W środę o] LT'; + case 6: + return '[W sobotę o] LT'; + default: + return '[W] dddd [o] LT'; + } + }, + 'lastDay' => '[Wczoraj o] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia'], + 'months_standalone' => ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień'], + 'months_short' => ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'], + 'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', + 'weekdays' => ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota'], + 'weekdays_short' => ['ndz', 'pon', 'wt', 'śr', 'czw', 'pt', 'sob'], + 'weekdays_min' => ['Nd', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' i '], + 'meridiem' => ['przed południem', 'po południu'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pl_PL.php b/vendor/nesbot/carbon/src/Carbon/Lang/pl_PL.php new file mode 100644 index 000000000..222bcdb47 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pl_PL.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/prg.php b/vendor/nesbot/carbon/src/Carbon/Lang/prg.php new file mode 100644 index 000000000..6e63f4ad7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/prg.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'], + 'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-dd', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D HH:mm', + 'LLLL' => 'YYYY MMMM D, dddd HH:mm', + ], + + 'year' => ':count meta', + 'y' => ':count meta', + 'a_year' => ':count meta', + + 'month' => ':count mēniks', // less reliable + 'm' => ':count mēniks', // less reliable + 'a_month' => ':count mēniks', // less reliable + + 'week' => ':count sawaītin', // less reliable + 'w' => ':count sawaītin', // less reliable + 'a_week' => ':count sawaītin', // less reliable + + 'day' => ':count di', + 'd' => ':count di', + 'a_day' => ':count di', + + 'hour' => ':count bruktēt', // less reliable + 'h' => ':count bruktēt', // less reliable + 'a_hour' => ':count bruktēt', // less reliable + + 'minute' => ':count līkuts', // less reliable + 'min' => ':count līkuts', // less reliable + 'a_minute' => ':count līkuts', // less reliable + + 'second' => ':count kitan', // less reliable + 's' => ':count kitan', // less reliable + 'a_second' => ':count kitan', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ps.php b/vendor/nesbot/carbon/src/Carbon/Lang/ps.php new file mode 100644 index 000000000..a928b28e3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ps.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Muhammad Nasir Rahimi + * - Nassim Nasibullah (spinzar) + */ +return [ + 'year' => ':count کال|:count کاله', + 'y' => ':countکال|:countکاله', + 'month' => ':count مياشت|:count مياشتي', + 'm' => ':countمياشت|:countمياشتي', + 'week' => ':count اونۍ|:count اونۍ', + 'w' => ':countاونۍ|:countاونۍ', + 'day' => ':count ورځ|:count ورځي', + 'd' => ':countورځ|:countورځي', + 'hour' => ':count ساعت|:count ساعته', + 'h' => ':countساعت|:countساعته', + 'minute' => ':count دقيقه|:count دقيقې', + 'min' => ':countدقيقه|:countدقيقې', + 'second' => ':count ثانيه|:count ثانيې', + 's' => ':countثانيه|:countثانيې', + 'ago' => ':time دمخه', + 'from_now' => ':time له اوس څخه', + 'after' => ':time وروسته', + 'before' => ':time دمخه', + 'list' => ['، ', ' او '], + 'meridiem' => ['غ.م.', 'غ.و.'], + 'weekdays' => ['اتوار', 'ګل', 'نهه', 'شورو', 'زيارت', 'جمعه', 'خالي'], + 'weekdays_short' => ['ا', 'ګ', 'ن', 'ش', 'ز', 'ج', 'خ'], + 'weekdays_min' => ['ا', 'ګ', 'ن', 'ش', 'ز', 'ج', 'خ'], + 'months' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سېپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'months_short' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سېپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'months_standalone' => ['جنوري', 'فېبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'months_short_standalone' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'first_day_of_week' => 6, + 'weekend' => [4, 5], + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'YYYY/M/d', + 'LL' => 'YYYY MMM D', + 'LLL' => 'د YYYY د MMMM D H:mm', + 'LLLL' => 'dddd د YYYY د MMMM D H:mm', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ps_AF.php b/vendor/nesbot/carbon/src/Carbon/Lang/ps_AF.php new file mode 100644 index 000000000..6ec51804b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ps_AF.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ps.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt.php new file mode 100644 index 000000000..bb6359b14 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt.php @@ -0,0 +1,116 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Cassiano Montanari + * - Matt Pope + * - François B + * - Prodis + * - JD Isaacks + * - Raphael Amorim + * - João Magalhães + * - victortobias + * - Paulo Freitas + * - Sebastian Thierer + * - Claudson Martins (claudsonm) + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count ano|:count anos', + 'a_year' => 'um ano|:count anos', + 'y' => ':counta', + 'month' => ':count mês|:count meses', + 'a_month' => 'um mês|:count meses', + 'm' => ':countm', + 'week' => ':count semana|:count semanas', + 'a_week' => 'uma semana|:count semanas', + 'w' => ':countsem', + 'day' => ':count dia|:count dias', + 'a_day' => 'um dia|:count dias', + 'd' => ':countd', + 'hour' => ':count hora|:count horas', + 'a_hour' => 'uma hora|:count horas', + 'h' => ':counth', + 'minute' => ':count minuto|:count minutos', + 'a_minute' => 'um minuto|:count minutos', + 'min' => ':countmin', + 'second' => ':count segundo|:count segundos', + 'a_second' => 'alguns segundos|:count segundos', + 's' => ':counts', + 'millisecond' => ':count milissegundo|:count milissegundos', + 'a_millisecond' => 'um milissegundo|:count milissegundos', + 'ms' => ':countms', + 'microsecond' => ':count microssegundo|:count microssegundos', + 'a_microsecond' => 'um microssegundo|:count microssegundos', + 'µs' => ':countµs', + 'ago' => 'há :time', + 'from_now' => 'em :time', + 'after' => ':time depois', + 'before' => ':time antes', + 'diff_now' => 'agora', + 'diff_today' => 'Hoje', + 'diff_today_regexp' => 'Hoje(?:\\s+às)?', + 'diff_yesterday' => 'ontem', + 'diff_yesterday_regexp' => 'Ontem(?:\\s+às)?', + 'diff_tomorrow' => 'amanhã', + 'diff_tomorrow_regexp' => 'Amanhã(?:\\s+às)?', + 'diff_before_yesterday' => 'anteontem', + 'diff_after_tomorrow' => 'depois de amanhã', + 'period_recurrences' => 'uma vez|:count vezes', + 'period_interval' => 'cada :interval', + 'period_start_date' => 'de :date', + 'period_end_date' => 'até :date', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D [de] MMMM [de] YYYY', + 'LLL' => 'D [de] MMMM [de] YYYY HH:mm', + 'LLLL' => 'dddd, D [de] MMMM [de] YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Hoje às] LT', + 'nextDay' => '[Amanhã às] LT', + 'nextWeek' => 'dddd [às] LT', + 'lastDay' => '[Ontem às] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + case 6: + return '[Último] dddd [às] LT'; + default: + return '[Última] dddd [às] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':numberº', + 'months' => ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'months_short' => ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'], + 'weekdays' => ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + 'weekdays_short' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + 'weekdays_min' => ['Do', '2ª', '3ª', '4ª', '5ª', '6ª', 'Sá'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' e '], + 'ordinal_words' => [ + 'of' => 'de', + 'first' => 'primeira', + 'second' => 'segunda', + 'third' => 'terceira', + 'fourth' => 'quarta', + 'fifth' => 'quinta', + 'last' => 'última', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_AO.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_AO.php new file mode 100644 index 000000000..22c01ec59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_AO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php new file mode 100644 index 000000000..e917c5cde --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Cassiano Montanari + * - Eduardo Dalla Vecchia + * - David Rodrigues + * - Matt Pope + * - François B + * - Prodis + * - Marlon Maxwel + * - JD Isaacks + * - Raphael Amorim + * - Rafael Raupp + * - felipeleite1 + * - swalker + * - Lucas Macedo + * - Paulo Freitas + * - Sebastian Thierer + */ +return array_replace_recursive(require __DIR__.'/pt.php', [ + 'period_recurrences' => 'uma|:count vez', + 'period_interval' => 'toda :interval', + 'formats' => [ + 'LLL' => 'D [de] MMMM [de] YYYY [às] HH:mm', + 'LLLL' => 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + ], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_CH.php new file mode 100644 index 000000000..22c01ec59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_CH.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_CV.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_CV.php new file mode 100644 index 000000000..22c01ec59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_CV.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_GQ.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_GQ.php new file mode 100644 index 000000000..22c01ec59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_GQ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_GW.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_GW.php new file mode 100644 index 000000000..22c01ec59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_GW.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_LU.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_LU.php new file mode 100644 index 000000000..22c01ec59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_LU.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_MO.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_MO.php new file mode 100644 index 000000000..f2b5eab75 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_MO.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/pt.php', [ + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'LLL' => 'D [de] MMMM [de] YYYY, h:mm a', + 'LLLL' => 'dddd, D [de] MMMM [de] YYYY, h:mm a', + ], + 'first_day_of_week' => 0, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_MZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_MZ.php new file mode 100644 index 000000000..fbc0c97b7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_MZ.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/pt.php', [ + 'first_day_of_week' => 0, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php new file mode 100644 index 000000000..2a76fc1fc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RAP bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/pt.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'months_short' => ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'], + 'weekdays' => ['domingo', 'segunda', 'terça', 'quarta', 'quinta', 'sexta', 'sábado'], + 'weekdays_short' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + 'weekdays_min' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_ST.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_ST.php new file mode 100644 index 000000000..22c01ec59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_ST.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/pt_TL.php b/vendor/nesbot/carbon/src/Carbon/Lang/pt_TL.php new file mode 100644 index 000000000..22c01ec59 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/pt_TL.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/pt.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/qu.php b/vendor/nesbot/carbon/src/Carbon/Lang/qu.php new file mode 100644 index 000000000..65278cd11 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/qu.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/es_UY.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM, YYYY HH:mm', + ], + 'first_day_of_week' => 0, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/qu_BO.php b/vendor/nesbot/carbon/src/Carbon/Lang/qu_BO.php new file mode 100644 index 000000000..d5db6bf53 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/qu_BO.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/qu.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/qu_EC.php b/vendor/nesbot/carbon/src/Carbon/Lang/qu_EC.php new file mode 100644 index 000000000..d5db6bf53 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/qu_EC.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/qu.php', [ + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/quz.php b/vendor/nesbot/carbon/src/Carbon/Lang/quz.php new file mode 100644 index 000000000..1640c02fb --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/quz.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/quz_PE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php b/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php new file mode 100644 index 000000000..d32291893 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['iniru', 'phiwriru', 'marsu', 'awril', 'mayu', 'huniyu', 'huliyu', 'agustu', 'siptiyimri', 'uktuwri', 'nuwiyimri', 'tisiyimri'], + 'months_short' => ['ini', 'phi', 'mar', 'awr', 'may', 'hun', 'hul', 'agu', 'sip', 'ukt', 'nuw', 'tis'], + 'weekdays' => ['tuminku', 'lunis', 'martis', 'miyirkulis', 'juywis', 'wiyirnis', 'sawatu'], + 'weekdays_short' => ['tum', 'lun', 'mar', 'miy', 'juy', 'wiy', 'saw'], + 'weekdays_min' => ['tum', 'lun', 'mar', 'miy', 'juy', 'wiy', 'saw'], + 'day_of_first_week_of_year' => 1, + + 'minute' => ':count uchuy', // less reliable + 'min' => ':count uchuy', // less reliable + 'a_minute' => ':count uchuy', // less reliable + + 'year' => ':count wata', + 'y' => ':count wata', + 'a_year' => ':count wata', + + 'month' => ':count killa', + 'm' => ':count killa', + 'a_month' => ':count killa', + + 'week' => ':count simana', + 'w' => ':count simana', + 'a_week' => ':count simana', + + 'day' => ':count pʼunchaw', + 'd' => ':count pʼunchaw', + 'a_day' => ':count pʼunchaw', + + 'hour' => ':count ura', + 'h' => ':count ura', + 'a_hour' => ':count ura', + + 'second' => ':count iskay ñiqin', + 's' => ':count iskay ñiqin', + 'a_second' => ':count iskay ñiqin', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/raj.php b/vendor/nesbot/carbon/src/Carbon/Lang/raj.php new file mode 100644 index 000000000..26138c9b2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/raj.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/raj_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php new file mode 100644 index 000000000..7b4589cd3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - meghrajsuthar03@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर'], + 'months_short' => ['जन', 'फर', 'मार्च', 'अप्रै', 'मई', 'जून', 'जुल', 'अग', 'सित', 'अक्टू', 'नव', 'दिस'], + 'weekdays' => ['रविवार', 'सोमवार', 'मंगल्लवार', 'बुधवार', 'बृहस्पतिवार', 'शुक्रवार', 'शनिवार'], + 'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'], + 'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], + + 'year' => ':count आंहू', // less reliable + 'y' => ':count आंहू', // less reliable + 'a_year' => ':count आंहू', // less reliable + + 'month' => ':count सूरज', // less reliable + 'm' => ':count सूरज', // less reliable + 'a_month' => ':count सूरज', // less reliable + + 'week' => ':count निवाज', // less reliable + 'w' => ':count निवाज', // less reliable + 'a_week' => ':count निवाज', // less reliable + + 'day' => ':count अेक', // less reliable + 'd' => ':count अेक', // less reliable + 'a_day' => ':count अेक', // less reliable + + 'hour' => ':count दुनियांण', // less reliable + 'h' => ':count दुनियांण', // less reliable + 'a_hour' => ':count दुनियांण', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/rm.php b/vendor/nesbot/carbon/src/Carbon/Lang/rm.php new file mode 100644 index 000000000..1843f4563 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/rm.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - tjku + * - Max Melentiev + * - Juanito Fatas + * - Tsutomu Kuroda + * - Akira Matsuda + * - Christopher Dell + * - Enrique Vidal + * - Simone Carletti + * - Aaron Patterson + * - Nicolás Hock Isaza + * - sebastian de castelberg + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'Do MMMM YYYY', + 'LLL' => 'Do MMMM, HH:mm [Uhr]', + 'LLLL' => 'dddd, Do MMMM YYYY, HH:mm [Uhr]', + ], + 'year' => ':count onn|:count onns', + 'month' => ':count mais', + 'week' => ':count emna|:count emnas', + 'day' => ':count di|:count dis', + 'hour' => ':count oura|:count ouras', + 'minute' => ':count minuta|:count minutas', + 'second' => ':count secunda|:count secundas', + 'weekdays' => ['dumengia', 'glindesdi', 'mardi', 'mesemna', 'gievgia', 'venderdi', 'sonda'], + 'weekdays_short' => ['du', 'gli', 'ma', 'me', 'gie', 've', 'so'], + 'weekdays_min' => ['du', 'gli', 'ma', 'me', 'gie', 've', 'so'], + 'months' => ['schaner', 'favrer', 'mars', 'avrigl', 'matg', 'zercladur', 'fanadur', 'avust', 'settember', 'october', 'november', 'december'], + 'months_short' => ['schan', 'favr', 'mars', 'avr', 'matg', 'zercl', 'fan', 'avust', 'sett', 'oct', 'nov', 'dec'], + 'meridiem' => ['avantmezdi', 'suentermezdi'], + 'list' => [', ', ' e '], + 'first_day_of_week' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/rn.php b/vendor/nesbot/carbon/src/Carbon/Lang/rn.php new file mode 100644 index 000000000..8ab958ebe --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/rn.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Z.MU.', 'Z.MW.'], + 'weekdays' => ['Ku w’indwi', 'Ku wa mbere', 'Ku wa kabiri', 'Ku wa gatatu', 'Ku wa kane', 'Ku wa gatanu', 'Ku wa gatandatu'], + 'weekdays_short' => ['cu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', 'gnd.'], + 'weekdays_min' => ['cu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', 'gnd.'], + 'months' => ['Nzero', 'Ruhuhuma', 'Ntwarante', 'Ndamukiza', 'Rusama', 'Ruheshi', 'Mukakaro', 'Nyandagaro', 'Nyakanga', 'Gitugutu', 'Munyonyo', 'Kigarama'], + 'months_short' => ['Mut.', 'Gas.', 'Wer.', 'Mat.', 'Gic.', 'Kam.', 'Nya.', 'Kan.', 'Nze.', 'Ukw.', 'Ugu.', 'Uku.'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + 'year' => 'imyaka :count', + 'y' => 'imyaka :count', + 'a_year' => 'imyaka :count', + + 'month' => 'amezi :count', + 'm' => 'amezi :count', + 'a_month' => 'amezi :count', + + 'week' => 'indwi :count', + 'w' => 'indwi :count', + 'a_week' => 'indwi :count', + + 'day' => 'imisi :count', + 'd' => 'imisi :count', + 'a_day' => 'imisi :count', + + 'hour' => 'amasaha :count', + 'h' => 'amasaha :count', + 'a_hour' => 'amasaha :count', + + 'minute' => 'iminuta :count', + 'min' => 'iminuta :count', + 'a_minute' => 'iminuta :count', + + 'second' => 'inguvu :count', // less reliable + 's' => 'inguvu :count', // less reliable + 'a_second' => 'inguvu :count', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ro.php b/vendor/nesbot/carbon/src/Carbon/Lang/ro.php new file mode 100644 index 000000000..868a3279d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ro.php @@ -0,0 +1,77 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - JD Isaacks + * - Cătălin Georgescu + * - Valentin Ivaşcu (oriceon) + */ +return [ + 'year' => ':count an|:count ani|:count ani', + 'a_year' => 'un an|:count ani|:count ani', + 'y' => ':count a.', + 'month' => ':count lună|:count luni|:count luni', + 'a_month' => 'o lună|:count luni|:count luni', + 'm' => ':count l.', + 'week' => ':count săptămână|:count săptămâni|:count săptămâni', + 'a_week' => 'o săptămână|:count săptămâni|:count săptămâni', + 'w' => ':count săp.', + 'day' => ':count zi|:count zile|:count zile', + 'a_day' => 'o zi|:count zile|:count zile', + 'd' => ':count z.', + 'hour' => ':count oră|:count ore|:count ore', + 'a_hour' => 'o oră|:count ore|:count ore', + 'h' => ':count o.', + 'minute' => ':count minut|:count minute|:count minute', + 'a_minute' => 'un minut|:count minute|:count minute', + 'min' => ':count m.', + 'second' => ':count secundă|:count secunde|:count secunde', + 'a_second' => 'câteva secunde|:count secunde|:count secunde', + 's' => ':count sec.', + 'ago' => ':time în urmă', + 'from_now' => 'peste :time', + 'after' => 'peste :time', + 'before' => 'acum :time', + 'diff_now' => 'acum', + 'diff_today' => 'azi', + 'diff_today_regexp' => 'azi(?:\\s+la)?', + 'diff_yesterday' => 'ieri', + 'diff_yesterday_regexp' => 'ieri(?:\\s+la)?', + 'diff_tomorrow' => 'mâine', + 'diff_tomorrow_regexp' => 'mâine(?:\\s+la)?', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY H:mm', + 'LLLL' => 'dddd, D MMMM YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => '[azi la] LT', + 'nextDay' => '[mâine la] LT', + 'nextWeek' => 'dddd [la] LT', + 'lastDay' => '[ieri la] LT', + 'lastWeek' => '[fosta] dddd [la] LT', + 'sameElse' => 'L', + ], + 'months' => ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'], + 'months_short' => ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'], + 'weekdays' => ['duminică', 'luni', 'marți', 'miercuri', 'joi', 'vineri', 'sâmbătă'], + 'weekdays_short' => ['dum', 'lun', 'mar', 'mie', 'joi', 'vin', 'sâm'], + 'weekdays_min' => ['du', 'lu', 'ma', 'mi', 'jo', 'vi', 'sâ'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' și '], + 'meridiem' => ['a.m.', 'p.m.'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ro_MD.php b/vendor/nesbot/carbon/src/Carbon/Lang/ro_MD.php new file mode 100644 index 000000000..ad1d2fa81 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ro_MD.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ro.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY, HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY, HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ro_RO.php b/vendor/nesbot/carbon/src/Carbon/Lang/ro_RO.php new file mode 100644 index 000000000..102afcde5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ro_RO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ro.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/rof.php b/vendor/nesbot/carbon/src/Carbon/Lang/rof.php new file mode 100644 index 000000000..205fc2663 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/rof.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['kang’ama', 'kingoto'], + 'weekdays' => ['Ijumapili', 'Ijumatatu', 'Ijumanne', 'Ijumatano', 'Alhamisi', 'Ijumaa', 'Ijumamosi'], + 'weekdays_short' => ['Ijp', 'Ijt', 'Ijn', 'Ijtn', 'Alh', 'Iju', 'Ijm'], + 'weekdays_min' => ['Ijp', 'Ijt', 'Ijn', 'Ijtn', 'Alh', 'Iju', 'Ijm'], + 'months' => ['Mweri wa kwanza', 'Mweri wa kaili', 'Mweri wa katatu', 'Mweri wa kaana', 'Mweri wa tanu', 'Mweri wa sita', 'Mweri wa saba', 'Mweri wa nane', 'Mweri wa tisa', 'Mweri wa ikumi', 'Mweri wa ikumi na moja', 'Mweri wa ikumi na mbili'], + 'months_short' => ['M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'M8', 'M9', 'M10', 'M11', 'M12'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru.php new file mode 100644 index 000000000..673b043b2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru.php @@ -0,0 +1,191 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Bari Badamshin + * - Jørn Ølmheim + * - François B + * - Tim Fish + * - Коренберг Марк (imac) + * - Serhan Apaydın + * - RomeroMsk + * - vsn4ik + * - JD Isaacks + * - Bari Badamshin + * - Jørn Ølmheim + * - François B + * - Коренберг Марк (imac) + * - Serhan Apaydın + * - RomeroMsk + * - vsn4ik + * - JD Isaacks + * - Fellzo + * - andrey-helldar + * - Pavel Skripkin (psxx) + * - AlexWalkerson + * - Vladislav UnsealedOne + * - dima-bzz + */ + +use Carbon\CarbonInterface; + +$transformDiff = function ($input) { + return strtr($input, [ + 'неделя' => 'неделю', + 'секунда' => 'секунду', + 'минута' => 'минуту', + ]); +}; + +return [ + 'year' => ':count год|:count года|:count лет', + 'y' => ':count г.|:count г.|:count л.', + 'a_year' => '{1}год|:count год|:count года|:count лет', + 'month' => ':count месяц|:count месяца|:count месяцев', + 'm' => ':count мес.', + 'a_month' => '{1}месяц|:count месяц|:count месяца|:count месяцев', + 'week' => ':count неделя|:count недели|:count недель', + 'w' => ':count нед.', + 'a_week' => '{1}неделя|:count неделю|:count недели|:count недель', + 'day' => ':count день|:count дня|:count дней', + 'd' => ':count д.', + 'a_day' => '{1}день|:count день|:count дня|:count дней', + 'hour' => ':count час|:count часа|:count часов', + 'h' => ':count ч.', + 'a_hour' => '{1}час|:count час|:count часа|:count часов', + 'minute' => ':count минута|:count минуты|:count минут', + 'min' => ':count мин.', + 'a_minute' => '{1}минута|:count минута|:count минуты|:count минут', + 'second' => ':count секунда|:count секунды|:count секунд', + 's' => ':count сек.', + 'a_second' => '{1}несколько секунд|:count секунду|:count секунды|:count секунд', + 'ago' => function ($time) use ($transformDiff) { + return $transformDiff($time).' назад'; + }, + 'from_now' => function ($time) use ($transformDiff) { + return 'через '.$transformDiff($time); + }, + 'after' => function ($time) use ($transformDiff) { + return $transformDiff($time).' после'; + }, + 'before' => function ($time) use ($transformDiff) { + return $transformDiff($time).' до'; + }, + 'diff_now' => 'только что', + 'diff_today' => 'Сегодня,', + 'diff_today_regexp' => 'Сегодня,?(?:\\s+в)?', + 'diff_yesterday' => 'вчера', + 'diff_yesterday_regexp' => 'Вчера,?(?:\\s+в)?', + 'diff_tomorrow' => 'завтра', + 'diff_tomorrow_regexp' => 'Завтра,?(?:\\s+в)?', + 'diff_before_yesterday' => 'позавчера', + 'diff_after_tomorrow' => 'послезавтра', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY г.', + 'LLL' => 'D MMMM YYYY г., H:mm', + 'LLLL' => 'dddd, D MMMM YYYY г., H:mm', + ], + 'calendar' => [ + 'sameDay' => '[Сегодня, в] LT', + 'nextDay' => '[Завтра, в] LT', + 'nextWeek' => function (CarbonInterface $current, CarbonInterface $other) { + if ($current->week !== $other->week) { + switch ($current->dayOfWeek) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } + + if ($current->dayOfWeek === 2) { + return '[Во] dddd, [в] LT'; + } + + return '[В] dddd, [в] LT'; + }, + 'lastDay' => '[Вчера, в] LT', + 'lastWeek' => function (CarbonInterface $current, CarbonInterface $other) { + if ($current->week !== $other->week) { + switch ($current->dayOfWeek) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } + + if ($current->dayOfWeek === 2) { + return '[Во] dddd, [в] LT'; + } + + return '[В] dddd, [в] LT'; + }, + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'M': + case 'd': + case 'DDD': + return $number.'-й'; + case 'D': + return $number.'-го'; + case 'w': + case 'W': + return $number.'-я'; + default: + return $number; + } + }, + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'ночи'; + } + if ($hour < 12) { + return 'утра'; + } + if ($hour < 17) { + return 'дня'; + } + + return 'вечера'; + }, + 'months' => ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'], + 'months_standalone' => ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'], + 'months_short' => ['янв', 'фев', 'мар', 'апр', 'мая', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'], + 'months_short_standalone' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'], + 'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', + 'weekdays' => ['воскресенье', 'понедельник', 'вторник', 'среду', 'четверг', 'пятницу', 'субботу'], + 'weekdays_standalone' => ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'], + 'weekdays_short' => ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'], + 'weekdays_min' => ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + 'weekdays_regexp' => '/\[\s*(В|в)\s*((?:прошлую|следующую|эту)\s*)?\]\s*dddd/', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' и '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru_BY.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru_BY.php new file mode 100644 index 000000000..8ca7df344 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru_BY.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ru.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru_KG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru_KG.php new file mode 100644 index 000000000..8ca7df344 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru_KG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ru.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru_KZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru_KZ.php new file mode 100644 index 000000000..8ca7df344 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru_KZ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ru.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru_MD.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru_MD.php new file mode 100644 index 000000000..8ca7df344 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru_MD.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ru.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru_RU.php new file mode 100644 index 000000000..8ca7df344 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru_RU.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ru.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php new file mode 100644 index 000000000..db958d686 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - RFC 2319 bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/ru.php', [ + 'weekdays' => ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'], + 'weekdays_short' => ['вск', 'пнд', 'вто', 'срд', 'чтв', 'птн', 'суб'], + 'weekdays_min' => ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'су'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/rw.php b/vendor/nesbot/carbon/src/Carbon/Lang/rw.php new file mode 100644 index 000000000..bc4a347f0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/rw.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/rw_RW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php b/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php new file mode 100644 index 000000000..9b3e06825 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Rwanda Steve Murphy murf@e-tools.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Mutarama', 'Gashyantare', 'Werurwe', 'Mata', 'Gicuransi', 'Kamena', 'Nyakanga', 'Kanama', 'Nzeli', 'Ukwakira', 'Ugushyingo', 'Ukuboza'], + 'months_short' => ['Mut', 'Gas', 'Wer', 'Mat', 'Gic', 'Kam', 'Nya', 'Kan', 'Nze', 'Ukw', 'Ugu', 'Uku'], + 'weekdays' => ['Ku cyumweru', 'Kuwa mbere', 'Kuwa kabiri', 'Kuwa gatatu', 'Kuwa kane', 'Kuwa gatanu', 'Kuwa gatandatu'], + 'weekdays_short' => ['Mwe', 'Mbe', 'Kab', 'Gtu', 'Kan', 'Gnu', 'Gnd'], + 'weekdays_min' => ['Mwe', 'Mbe', 'Kab', 'Gtu', 'Kan', 'Gnu', 'Gnd'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'second' => ':count vuna', // less reliable + 's' => ':count vuna', // less reliable + 'a_second' => ':count vuna', // less reliable + + 'year' => 'aka :count', + 'y' => 'aka :count', + 'a_year' => 'aka :count', + + 'month' => 'ezi :count', + 'm' => 'ezi :count', + 'a_month' => 'ezi :count', + + 'week' => ':count icyumweru', + 'w' => ':count icyumweru', + 'a_week' => ':count icyumweru', + + 'day' => ':count nsi', + 'd' => ':count nsi', + 'a_day' => ':count nsi', + + 'hour' => 'saha :count', + 'h' => 'saha :count', + 'a_hour' => 'saha :count', + + 'minute' => ':count -nzinya', + 'min' => ':count -nzinya', + 'a_minute' => ':count -nzinya', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/rwk.php b/vendor/nesbot/carbon/src/Carbon/Lang/rwk.php new file mode 100644 index 000000000..ed92e8e70 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/rwk.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['utuko', 'kyiukonyi'], + 'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sa.php b/vendor/nesbot/carbon/src/Carbon/Lang/sa.php new file mode 100644 index 000000000..1357c0305 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sa.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/sa_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php new file mode 100644 index 000000000..cfda9a636 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - The Debian project Christian Perrier bubulle@debian.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D-MM-YY', + ], + 'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'weekdays' => ['रविवासर:', 'सोमवासर:', 'मंगलवासर:', 'बुधवासर:', 'बृहस्पतिवासरः', 'शुक्रवासर', 'शनिवासर:'], + 'weekdays_short' => ['रविः', 'सोम:', 'मंगल:', 'बुध:', 'बृहस्पतिः', 'शुक्र', 'शनि:'], + 'weekdays_min' => ['रविः', 'सोम:', 'मंगल:', 'बुध:', 'बृहस्पतिः', 'शुक्र', 'शनि:'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], + + 'minute' => ':count होरा', // less reliable + 'min' => ':count होरा', // less reliable + 'a_minute' => ':count होरा', // less reliable + + 'year' => ':count वर्ष', + 'y' => ':count वर्ष', + 'a_year' => ':count वर्ष', + + 'month' => ':count मास', + 'm' => ':count मास', + 'a_month' => ':count मास', + + 'week' => ':count सप्ताहः saptahaĥ', + 'w' => ':count सप्ताहः saptahaĥ', + 'a_week' => ':count सप्ताहः saptahaĥ', + + 'day' => ':count दिन', + 'd' => ':count दिन', + 'a_day' => ':count दिन', + + 'hour' => ':count घण्टा', + 'h' => ':count घण्टा', + 'a_hour' => ':count घण्टा', + + 'second' => ':count द्वितीयः', + 's' => ':count द्वितीयः', + 'a_second' => ':count द्वितीयः', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sah.php b/vendor/nesbot/carbon/src/Carbon/Lang/sah.php new file mode 100644 index 000000000..b82882423 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sah.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/sah_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php new file mode 100644 index 000000000..94cc0cb02 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Valery Timiriliyev Valery Timiriliyev timiriliyev@gmail.com + */ +return array_replace_recursive(require __DIR__.'/ru.php', [ + 'formats' => [ + 'L' => 'YYYY.MM.DD', + ], + 'months' => ['тохсунньу', 'олунньу', 'кулун тутар', 'муус устар', 'ыам ыйын', 'бэс ыйын', 'от ыйын', 'атырдьах ыйын', 'балаҕан ыйын', 'алтынньы', 'сэтинньи', 'ахсынньы'], + 'months_short' => ['тохс', 'олун', 'кул', 'муус', 'ыам', 'бэс', 'от', 'атыр', 'бал', 'алт', 'сэт', 'ахс'], + 'weekdays' => ['баскыһыанньа', 'бэнидиэнньик', 'оптуорунньук', 'сэрэдэ', 'чэппиэр', 'бээтинсэ', 'субуота'], + 'weekdays_short' => ['бс', 'бн', 'оп', 'ср', 'чп', 'бт', 'сб'], + 'weekdays_min' => ['бс', 'бн', 'оп', 'ср', 'чп', 'бт', 'сб'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/saq.php b/vendor/nesbot/carbon/src/Carbon/Lang/saq.php new file mode 100644 index 000000000..ff8bf6044 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/saq.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Tesiran', 'Teipa'], + 'weekdays' => ['Mderot ee are', 'Mderot ee kuni', 'Mderot ee ong’wan', 'Mderot ee inet', 'Mderot ee ile', 'Mderot ee sapa', 'Mderot ee kwe'], + 'weekdays_short' => ['Are', 'Kun', 'Ong', 'Ine', 'Ile', 'Sap', 'Kwe'], + 'weekdays_min' => ['Are', 'Kun', 'Ong', 'Ine', 'Ile', 'Sap', 'Kwe'], + 'months' => ['Lapa le obo', 'Lapa le waare', 'Lapa le okuni', 'Lapa le ong’wan', 'Lapa le imet', 'Lapa le ile', 'Lapa le sapa', 'Lapa le isiet', 'Lapa le saal', 'Lapa le tomon', 'Lapa le tomon obo', 'Lapa le tomon waare'], + 'months_short' => ['Obo', 'Waa', 'Oku', 'Ong', 'Ime', 'Ile', 'Sap', 'Isi', 'Saa', 'Tom', 'Tob', 'Tow'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sat.php b/vendor/nesbot/carbon/src/Carbon/Lang/sat.php new file mode 100644 index 000000000..c9914c668 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sat.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/sat_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php new file mode 100644 index 000000000..632b1af6b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat Pune libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रेल', 'मई', 'जुन', 'जुलाई', 'अगस्त', 'सितम्बर', 'अखथबर', 'नवम्बर', 'दिसम्बर'], + 'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रेल', 'मई', 'जुन', 'जुलाई', 'अगस्त', 'सितम्बर', 'अखथबर', 'नवम्बर', 'दिसम्बर'], + 'weekdays' => ['सिंगेमाँहाँ', 'ओतेमाँहाँ', 'बालेमाँहाँ', 'सागुनमाँहाँ', 'सारदीमाँहाँ', 'जारुममाँहाँ', 'ञुहुममाँहाँ'], + 'weekdays_short' => ['सिंगे', 'ओते', 'बाले', 'सागुन', 'सारदी', 'जारुम', 'ञुहुम'], + 'weekdays_min' => ['सिंगे', 'ओते', 'बाले', 'सागुन', 'सारदी', 'जारुम', 'ञुहुम'], + 'day_of_first_week_of_year' => 1, + + 'month' => ':count ńindạ cando', // less reliable + 'm' => ':count ńindạ cando', // less reliable + 'a_month' => ':count ńindạ cando', // less reliable + + 'week' => ':count mãhã', // less reliable + 'w' => ':count mãhã', // less reliable + 'a_week' => ':count mãhã', // less reliable + + 'hour' => ':count ᱥᱳᱱᱚ', // less reliable + 'h' => ':count ᱥᱳᱱᱚ', // less reliable + 'a_hour' => ':count ᱥᱳᱱᱚ', // less reliable + + 'minute' => ':count ᱯᱤᱞᱪᱩ', // less reliable + 'min' => ':count ᱯᱤᱞᱪᱩ', // less reliable + 'a_minute' => ':count ᱯᱤᱞᱪᱩ', // less reliable + + 'second' => ':count ar', // less reliable + 's' => ':count ar', // less reliable + 'a_second' => ':count ar', // less reliable + + 'year' => ':count ne̲s', + 'y' => ':count ne̲s', + 'a_year' => ':count ne̲s', + + 'day' => ':count ᱫᱤᱱ', + 'd' => ':count ᱫᱤᱱ', + 'a_day' => ':count ᱫᱤᱱ', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sbp.php b/vendor/nesbot/carbon/src/Carbon/Lang/sbp.php new file mode 100644 index 000000000..e29ca379f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sbp.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Lwamilawu', 'Pashamihe'], + 'weekdays' => ['Mulungu', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alahamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['Mul', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'weekdays_min' => ['Mul', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'months' => ['Mupalangulwa', 'Mwitope', 'Mushende', 'Munyi', 'Mushende Magali', 'Mujimbi', 'Mushipepo', 'Mupuguto', 'Munyense', 'Mokhu', 'Musongandembwe', 'Muhaano'], + 'months_short' => ['Mup', 'Mwi', 'Msh', 'Mun', 'Mag', 'Muj', 'Msp', 'Mpg', 'Mye', 'Mok', 'Mus', 'Muh'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sc.php b/vendor/nesbot/carbon/src/Carbon/Lang/sc.php new file mode 100644 index 000000000..7178cf4f1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sc.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/sc_IT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php b/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php new file mode 100644 index 000000000..5d1e4cecc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Sardinian Translators Team Massimeddu Cireddu massimeddu@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD. MM. YY', + ], + 'months' => ['Ghennàrgiu', 'Freàrgiu', 'Martzu', 'Abrile', 'Maju', 'Làmpadas', 'Argiolas//Trìulas', 'Austu', 'Cabudanni', 'Santugaine//Ladàmine', 'Onniasantu//Santandria', 'Nadale//Idas'], + 'months_short' => ['Ghe', 'Fre', 'Mar', 'Abr', 'Maj', 'Làm', 'Arg', 'Aus', 'Cab', 'Lad', 'Onn', 'Nad'], + 'weekdays' => ['Domìnigu', 'Lunis', 'Martis', 'Mèrcuris', 'Giòbia', 'Chenàbura', 'Sàbadu'], + 'weekdays_short' => ['Dom', 'Lun', 'Mar', 'Mèr', 'Giò', 'Che', 'Sàb'], + 'weekdays_min' => ['Dom', 'Lun', 'Mar', 'Mèr', 'Giò', 'Che', 'Sàb'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'minute' => ':count mementu', // less reliable + 'min' => ':count mementu', // less reliable + 'a_minute' => ':count mementu', // less reliable + + 'year' => ':count annu', + 'y' => ':count annu', + 'a_year' => ':count annu', + + 'month' => ':count mese', + 'm' => ':count mese', + 'a_month' => ':count mese', + + 'week' => ':count chida', + 'w' => ':count chida', + 'a_week' => ':count chida', + + 'day' => ':count dí', + 'd' => ':count dí', + 'a_day' => ':count dí', + + 'hour' => ':count ora', + 'h' => ':count ora', + 'a_hour' => ':count ora', + + 'second' => ':count secundu', + 's' => ':count secundu', + 'a_second' => ':count secundu', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sd.php b/vendor/nesbot/carbon/src/Carbon/Lang/sd.php new file mode 100644 index 000000000..0022c5a9c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sd.php @@ -0,0 +1,81 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +$months = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', +]; + +$weekdays = [ + 'آچر', + 'سومر', + 'اڱارو', + 'اربع', + 'خميس', + 'جمع', + 'ڇنڇر', +]; + +/* + * Authors: + * - Narain Sagar + * - Sawood Alam + * - Narain Sagar + */ +return [ + 'year' => '{1}'.'هڪ سال'.'|:count '.'سال', + 'month' => '{1}'.'هڪ مهينو'.'|:count '.'مهينا', + 'week' => '{1}'.'ھڪ ھفتو'.'|:count '.'هفتا', + 'day' => '{1}'.'هڪ ڏينهن'.'|:count '.'ڏينهن', + 'hour' => '{1}'.'هڪ ڪلاڪ'.'|:count '.'ڪلاڪ', + 'minute' => '{1}'.'هڪ منٽ'.'|:count '.'منٽ', + 'second' => '{1}'.'چند سيڪنڊ'.'|:count '.'سيڪنڊ', + 'ago' => ':time اڳ', + 'from_now' => ':time پوء', + 'diff_yesterday' => 'ڪالهه', + 'diff_today' => 'اڄ', + 'diff_tomorrow' => 'سڀاڻي', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd، D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[اڄ] LT', + 'nextDay' => '[سڀاڻي] LT', + 'nextWeek' => 'dddd [اڳين هفتي تي] LT', + 'lastDay' => '[ڪالهه] LT', + 'lastWeek' => '[گزريل هفتي] dddd [تي] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['صبح', 'شام'], + 'months' => $months, + 'months_short' => $months, + 'weekdays' => $weekdays, + 'weekdays_short' => $weekdays, + 'weekdays_min' => $weekdays, + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => ['، ', ' ۽ '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php new file mode 100644 index 000000000..de1dad051 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat, Pune bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/sd.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['جنوري', 'فبروري', 'مارچ', 'اپريل', 'مي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽيمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'], + 'months_short' => ['جنوري', 'فبروري', 'مارچ', 'اپريل', 'مي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽيمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'], + 'weekdays' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'], + 'weekdays_short' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'], + 'weekdays_min' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php b/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php new file mode 100644 index 000000000..061fcc162 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat, Pune bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/sd.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['जनवरी', 'फबरवरी', 'मार्चि', 'अप्रेल', 'मे', 'जूनि', 'जूलाइ', 'आगस्टु', 'सेप्टेंबरू', 'आक्टूबरू', 'नवंबरू', 'ॾिसंबरू'], + 'months_short' => ['जनवरी', 'फबरवरी', 'मार्चि', 'अप्रेल', 'मे', 'जूनि', 'जूलाइ', 'आगस्टु', 'सेप्टेंबरू', 'आक्टूबरू', 'नवंबरू', 'ॾिसंबरू'], + 'weekdays' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'], + 'weekdays_short' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'], + 'weekdays_min' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['म.पू.', 'म.नं.'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/se.php b/vendor/nesbot/carbon/src/Carbon/Lang/se.php new file mode 100644 index 000000000..7c4b92a55 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/se.php @@ -0,0 +1,73 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Karamell + */ +return [ + 'year' => '{1}:count jahki|:count jagit', + 'a_year' => '{1}okta jahki|:count jagit', + 'y' => ':count j.', + 'month' => '{1}:count mánnu|:count mánut', + 'a_month' => '{1}okta mánnu|:count mánut', + 'm' => ':count mán.', + 'week' => '{1}:count vahkku|:count vahkku', + 'a_week' => '{1}okta vahkku|:count vahkku', + 'w' => ':count v.', + 'day' => '{1}:count beaivi|:count beaivvit', + 'a_day' => '{1}okta beaivi|:count beaivvit', + 'd' => ':count b.', + 'hour' => '{1}:count diimmu|:count diimmut', + 'a_hour' => '{1}okta diimmu|:count diimmut', + 'h' => ':count d.', + 'minute' => '{1}:count minuhta|:count minuhtat', + 'a_minute' => '{1}okta minuhta|:count minuhtat', + 'min' => ':count min.', + 'second' => '{1}:count sekunddat|:count sekunddat', + 'a_second' => '{1}moadde sekunddat|:count sekunddat', + 's' => ':count s.', + 'ago' => 'maŋit :time', + 'from_now' => ':time geažes', + 'diff_yesterday' => 'ikte', + 'diff_yesterday_regexp' => 'ikte(?:\\s+ti)?', + 'diff_today' => 'otne', + 'diff_today_regexp' => 'otne(?:\\s+ti)?', + 'diff_tomorrow' => 'ihttin', + 'diff_tomorrow_regexp' => 'ihttin(?:\\s+ti)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'MMMM D. [b.] YYYY', + 'LLL' => 'MMMM D. [b.] YYYY [ti.] HH:mm', + 'LLLL' => 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[otne ti] LT', + 'nextDay' => '[ihttin ti] LT', + 'nextWeek' => 'dddd [ti] LT', + 'lastDay' => '[ikte ti] LT', + 'lastWeek' => '[ovddit] dddd [ti] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'], + 'months_short' => ['ođđj', 'guov', 'njuk', 'cuo', 'mies', 'geas', 'suoi', 'borg', 'čakč', 'golg', 'skáb', 'juov'], + 'weekdays' => ['sotnabeaivi', 'vuossárga', 'maŋŋebárga', 'gaskavahkku', 'duorastat', 'bearjadat', 'lávvardat'], + 'weekdays_short' => ['sotn', 'vuos', 'maŋ', 'gask', 'duor', 'bear', 'láv'], + 'weekdays_min' => ['s', 'v', 'm', 'g', 'd', 'b', 'L'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' ja '], + 'meridiem' => ['i.b.', 'e.b.'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/se_FI.php b/vendor/nesbot/carbon/src/Carbon/Lang/se_FI.php new file mode 100644 index 000000000..cf01805de --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/se_FI.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/se.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'months' => ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'], + 'months_short' => ['ođđj', 'guov', 'njuk', 'cuoŋ', 'mies', 'geas', 'suoi', 'borg', 'čakč', 'golg', 'skáb', 'juov'], + 'weekdays' => ['sotnabeaivi', 'mánnodat', 'disdat', 'gaskavahkku', 'duorastat', 'bearjadat', 'lávvordat'], + 'weekdays_short' => ['so', 'má', 'di', 'ga', 'du', 'be', 'lá'], + 'weekdays_min' => ['so', 'má', 'di', 'ga', 'du', 'be', 'lá'], + 'meridiem' => ['i', 'e'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/se_NO.php b/vendor/nesbot/carbon/src/Carbon/Lang/se_NO.php new file mode 100644 index 000000000..177c7e94e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/se_NO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/se.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/se_SE.php b/vendor/nesbot/carbon/src/Carbon/Lang/se_SE.php new file mode 100644 index 000000000..177c7e94e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/se_SE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/se.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/seh.php b/vendor/nesbot/carbon/src/Carbon/Lang/seh.php new file mode 100644 index 000000000..babf9afb0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/seh.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['Dimingu', 'Chiposi', 'Chipiri', 'Chitatu', 'Chinai', 'Chishanu', 'Sabudu'], + 'weekdays_short' => ['Dim', 'Pos', 'Pir', 'Tat', 'Nai', 'Sha', 'Sab'], + 'weekdays_min' => ['Dim', 'Pos', 'Pir', 'Tat', 'Nai', 'Sha', 'Sab'], + 'months' => ['Janeiro', 'Fevreiro', 'Marco', 'Abril', 'Maio', 'Junho', 'Julho', 'Augusto', 'Setembro', 'Otubro', 'Novembro', 'Decembro'], + 'months_short' => ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Aug', 'Set', 'Otu', 'Nov', 'Dec'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'd [de] MMM [de] YYYY', + 'LLL' => 'd [de] MMMM [de] YYYY HH:mm', + 'LLLL' => 'dddd, d [de] MMMM [de] YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ses.php b/vendor/nesbot/carbon/src/Carbon/Lang/ses.php new file mode 100644 index 000000000..e1099e65a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ses.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Adduha', 'Aluula'], + 'weekdays' => ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamiisa', 'Alzuma', 'Asibti'], + 'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], + 'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], + 'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], + 'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + 'month' => ':count alaada', // less reliable + 'm' => ':count alaada', // less reliable + 'a_month' => ':count alaada', // less reliable + + 'hour' => ':count ɲaajin', // less reliable + 'h' => ':count ɲaajin', // less reliable + 'a_hour' => ':count ɲaajin', // less reliable + + 'minute' => ':count zarbu', // less reliable + 'min' => ':count zarbu', // less reliable + 'a_minute' => ':count zarbu', // less reliable + + 'year' => ':count jiiri', + 'y' => ':count jiiri', + 'a_year' => ':count jiiri', + + 'week' => ':count jirbiiyye', + 'w' => ':count jirbiiyye', + 'a_week' => ':count jirbiiyye', + + 'day' => ':count zaari', + 'd' => ':count zaari', + 'a_day' => ':count zaari', + + 'second' => ':count ihinkante', + 's' => ':count ihinkante', + 'a_second' => ':count ihinkante', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sg.php b/vendor/nesbot/carbon/src/Carbon/Lang/sg.php new file mode 100644 index 000000000..9264e8939 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sg.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['ND', 'LK'], + 'weekdays' => ['Bikua-ôko', 'Bïkua-ûse', 'Bïkua-ptâ', 'Bïkua-usïö', 'Bïkua-okü', 'Lâpôsö', 'Lâyenga'], + 'weekdays_short' => ['Bk1', 'Bk2', 'Bk3', 'Bk4', 'Bk5', 'Lâp', 'Lây'], + 'weekdays_min' => ['Bk1', 'Bk2', 'Bk3', 'Bk4', 'Bk5', 'Lâp', 'Lây'], + 'months' => ['Nyenye', 'Fulundïgi', 'Mbängü', 'Ngubùe', 'Bêläwü', 'Föndo', 'Lengua', 'Kükürü', 'Mvuka', 'Ngberere', 'Nabändüru', 'Kakauka'], + 'months_short' => ['Nye', 'Ful', 'Mbä', 'Ngu', 'Bêl', 'Fön', 'Len', 'Kük', 'Mvu', 'Ngb', 'Nab', 'Kak'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + 'year' => ':count dā', // less reliable + 'y' => ':count dā', // less reliable + 'a_year' => ':count dā', // less reliable + + 'week' => ':count bïkua-okü', // less reliable + 'w' => ':count bïkua-okü', // less reliable + 'a_week' => ':count bïkua-okü', // less reliable + + 'day' => ':count ziggawâ', // less reliable + 'd' => ':count ziggawâ', // less reliable + 'a_day' => ':count ziggawâ', // less reliable + + 'hour' => ':count yângâködörö', // less reliable + 'h' => ':count yângâködörö', // less reliable + 'a_hour' => ':count yângâködörö', // less reliable + + 'second' => ':count bïkua-ôko', // less reliable + 's' => ':count bïkua-ôko', // less reliable + 'a_second' => ':count bïkua-ôko', // less reliable + + 'month' => ':count Nze tî ngu', + 'm' => ':count Nze tî ngu', + 'a_month' => ':count Nze tî ngu', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php b/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php new file mode 100644 index 000000000..864b9892c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/sgs_LT.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php b/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php new file mode 100644 index 000000000..aa9e942e4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Arnas Udovičius bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY.MM.DD', + ], + 'months' => ['sausė', 'vasarė', 'kuova', 'balondė', 'gegožės', 'bėrželė', 'lëpas', 'rogpjūtė', 'siejės', 'spalė', 'lapkrėstė', 'grůdė'], + 'months_short' => ['Sau', 'Vas', 'Kuo', 'Bal', 'Geg', 'Bėr', 'Lëp', 'Rgp', 'Sie', 'Spa', 'Lap', 'Grd'], + 'weekdays' => ['nedielės dëna', 'panedielis', 'oterninks', 'sereda', 'četvergs', 'petnīčė', 'sobata'], + 'weekdays_short' => ['Nd', 'Pn', 'Ot', 'Sr', 'Čt', 'Pt', 'Sb'], + 'weekdays_min' => ['Nd', 'Pn', 'Ot', 'Sr', 'Čt', 'Pt', 'Sb'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'minute' => ':count mažos', // less reliable + 'min' => ':count mažos', // less reliable + 'a_minute' => ':count mažos', // less reliable + + 'year' => ':count metā', + 'y' => ':count metā', + 'a_year' => ':count metā', + + 'month' => ':count mienou', + 'm' => ':count mienou', + 'a_month' => ':count mienou', + + 'week' => ':count nedielė', + 'w' => ':count nedielė', + 'a_week' => ':count nedielė', + + 'day' => ':count dīna', + 'd' => ':count dīna', + 'a_day' => ':count dīna', + + 'hour' => ':count adīna', + 'h' => ':count adīna', + 'a_hour' => ':count adīna', + + 'second' => ':count Sekondė', + 's' => ':count Sekondė', + 'a_second' => ':count Sekondė', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sh.php b/vendor/nesbot/carbon/src/Carbon/Lang/sh.php new file mode 100644 index 000000000..e03b50675 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sh.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +// @codeCoverageIgnoreStart +use Symfony\Component\Translation\PluralizationRules; + +if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) { + PluralizationRules::set(static function ($number) { + return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); + }, 'sh'); +} +// @codeCoverageIgnoreEnd + +/* + * Authors: + * - Томица Кораћ + * - Enrique Vidal + * - Christopher Dell + * - dmilisic + * - danijel + * - Miroslav Matkovic (mikki021) + */ +return [ + 'diff_now' => 'sada', + 'diff_yesterday' => 'juče', + 'diff_tomorrow' => 'sutra', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'MMMM D, YYYY', + 'LLL' => 'DD MMM HH:mm', + 'LLLL' => 'MMMM DD, YYYY HH:mm', + ], + 'year' => ':count godina|:count godine|:count godina', + 'y' => ':count g.', + 'month' => ':count mesec|:count meseca|:count meseci', + 'm' => ':count m.', + 'week' => ':count nedelja|:count nedelje|:count nedelja', + 'w' => ':count n.', + 'day' => ':count dan|:count dana|:count dana', + 'd' => ':count d.', + 'hour' => ':count sat|:count sata|:count sati', + 'h' => ':count č.', + 'minute' => ':count minut|:count minuta|:count minuta', + 'min' => ':count min.', + 'second' => ':count sekund|:count sekunde|:count sekundi', + 's' => ':count s.', + 'ago' => 'pre :time', + 'from_now' => 'za :time', + 'after' => 'nakon :time', + 'before' => ':time raniјe', + 'weekdays' => ['Nedelja', 'Ponedeljak', 'Utorak', 'Sreda', 'Četvrtak', 'Petak', 'Subota'], + 'weekdays_short' => ['Ned', 'Pon', 'Uto', 'Sre', 'Čet', 'Pet', 'Sub'], + 'weekdays_min' => ['Ned', 'Pon', 'Uto', 'Sre', 'Čet', 'Pet', 'Sub'], + 'months' => ['Januar', 'Februar', 'Mart', 'April', 'Maj', 'Jun', 'Jul', 'Avgust', 'Septembar', 'Oktobar', 'Novembar', 'Decembar'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'], + 'list' => [', ', ' i '], + 'meridiem' => ['pre podne', 'po podne'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shi.php b/vendor/nesbot/carbon/src/Carbon/Lang/shi.php new file mode 100644 index 000000000..781518694 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shi.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['ⵜⵉⴼⴰⵡⵜ', 'ⵜⴰⴷⴳⴳⵯⴰⵜ'], + 'weekdays' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵕⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'], + 'weekdays_short' => ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'], + 'weekdays_min' => ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'], + 'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵜⵓⴱⵔ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⴰⵏⴱⵉⵔ'], + 'months_short' => ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', 'ⵎⴰⵢ', 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', 'ⴽⵜⵓ', 'ⵏⵓⵡ', 'ⴷⵓⵊ'], + 'first_day_of_week' => 6, + 'weekend' => [5, 6], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + 'year' => ':count aseggwas', + 'y' => ':count aseggwas', + 'a_year' => ':count aseggwas', + + 'month' => ':count ayyur', + 'm' => ':count ayyur', + 'a_month' => ':count ayyur', + + 'week' => ':count imalass', + 'w' => ':count imalass', + 'a_week' => ':count imalass', + + 'day' => ':count ass', + 'd' => ':count ass', + 'a_day' => ':count ass', + + 'hour' => ':count urɣ', // less reliable + 'h' => ':count urɣ', // less reliable + 'a_hour' => ':count urɣ', // less reliable + + 'minute' => ':count ⴰⵎⵥⵉ', // less reliable + 'min' => ':count ⴰⵎⵥⵉ', // less reliable + 'a_minute' => ':count ⴰⵎⵥⵉ', // less reliable + + 'second' => ':count sin', // less reliable + 's' => ':count sin', // less reliable + 'a_second' => ':count sin', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shi_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/shi_Latn.php new file mode 100644 index 000000000..cddfb242f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shi_Latn.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/shi.php', [ + 'meridiem' => ['tifawt', 'tadggʷat'], + 'weekdays' => ['asamas', 'aynas', 'asinas', 'akṛas', 'akwas', 'asimwas', 'asiḍyas'], + 'weekdays_short' => ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', 'asiḍ'], + 'weekdays_min' => ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', 'asiḍ'], + 'months' => ['innayr', 'bṛayṛ', 'maṛṣ', 'ibrir', 'mayyu', 'yunyu', 'yulyuz', 'ɣuct', 'cutanbir', 'ktubr', 'nuwanbir', 'dujanbir'], + 'months_short' => ['inn', 'bṛa', 'maṛ', 'ibr', 'may', 'yun', 'yul', 'ɣuc', 'cut', 'ktu', 'nuw', 'duj'], + 'first_day_of_week' => 6, + 'weekend' => [5, 6], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + + 'minute' => ':count agur', // less reliable + 'min' => ':count agur', // less reliable + 'a_minute' => ':count agur', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shi_Tfng.php b/vendor/nesbot/carbon/src/Carbon/Lang/shi_Tfng.php new file mode 100644 index 000000000..f3df1f2cc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shi_Tfng.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/shi.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shn.php b/vendor/nesbot/carbon/src/Carbon/Lang/shn.php new file mode 100644 index 000000000..fe7b1ea55 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shn.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/shn_MM.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php b/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php new file mode 100644 index 000000000..f399acf0d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - ubuntu Myanmar LoCo Team https://ubuntu-mm.net Bone Pyae Sone bone.burma@mail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'OY MMM OD dddd', + ], + 'months' => ['လိူၼ်ၵမ်', 'လိူၼ်သၢမ်', 'လိူၼ်သီ', 'လိူၼ်ႁႃႈ', 'လိူၼ်ႁူၵ်း', 'လိူၼ်ၸဵတ်း', 'လိူၼ်ပႅတ်ႇ', 'လိူၼ်ၵဝ်ႈ', 'လိူၼ်သိပ်း', 'လိူၼ်သိပ်းဢိတ်း', 'လိူၼ်သိပ်းဢိတ်းသွင်', 'လိူၼ်ၸဵင်'], + 'months_short' => ['လိူၼ်ၵမ်', 'လိူၼ်သၢမ်', 'လိူၼ်သီ', 'လိူၼ်ႁႃႈ', 'လိူၼ်ႁူၵ်း', 'လိူၼ်ၸဵတ်း', 'လိူၼ်ပႅတ်ႇ', 'လိူၼ်ၵဝ်ႈ', 'လိူၼ်သိပ်း', 'လိူၼ်သိပ်းဢိတ်း', 'လိူၼ်သိပ်းဢိတ်းသွင်', 'လိူၼ်ၸဵင်'], + 'weekdays' => ['ဝၼ်းဢႃးတိတ်ႉ', 'ဝၼ်းၸၼ်', 'ဝၼ်း​ဢၢင်း​ၵၢၼ်း', 'ဝၼ်းပူတ်ႉ', 'ဝၼ်းၽတ်း', 'ဝၼ်းသုၵ်း', 'ဝၼ်းသဝ်'], + 'weekdays_short' => ['တိတ့်', 'ၸၼ်', 'ၵၢၼ်း', 'ပုတ့်', 'ၽတ်း', 'သုၵ်း', 'သဝ်'], + 'weekdays_min' => ['တိတ့်', 'ၸၼ်', 'ၵၢၼ်း', 'ပုတ့်', 'ၽတ်း', 'သုၵ်း', 'သဝ်'], + 'alt_numbers' => ['႐႐', '႐႑', '႐႒', '႐႓', '႐႔', '႐႕', '႐႖', '႐႗', '႐႘', '႐႙', '႑႐', '႑႑', '႑႒', '႑႓', '႑႔', '႑႕', '႑႖', '႑႗', '႑႘', '႑႙', '႒႐', '႒႑', '႒႒', '႒႓', '႒႔', '႒႕', '႒႖', '႒႗', '႒႘', '႒႙', '႓႐', '႓႑', '႓႒', '႓႓', '႓႔', '႓႕', '႓႖', '႓႗', '႓႘', '႓႙', '႔႐', '႔႑', '႔႒', '႔႓', '႔႔', '႔႕', '႔႖', '႔႗', '႔႘', '႔႙', '႕႐', '႕႑', '႕႒', '႕႓', '႕႔', '႕႕', '႕႖', '႕႗', '႕႘', '႕႙', '႖႐', '႖႑', '႖႒', '႖႓', '႖႔', '႖႕', '႖႖', '႖႗', '႖႘', '႖႙', '႗႐', '႗႑', '႗႒', '႗႓', '႗႔', '႗႕', '႗႖', '႗႗', '႗႘', '႗႙', '႘႐', '႘႑', '႘႒', '႘႓', '႘႔', '႘႕', '႘႖', '႘႗', '႘႘', '႘႙', '႙႐', '႙႑', '႙႒', '႙႓', '႙႔', '႙႕', '႙႖', '႙႗', '႙႘', '႙႙'], + 'meridiem' => ['ၵၢင်ၼႂ်', 'တၢမ်းၶမ်ႈ'], + + 'month' => ':count လိူၼ်', // less reliable + 'm' => ':count လိူၼ်', // less reliable + 'a_month' => ':count လိူၼ်', // less reliable + + 'week' => ':count ဝၼ်း', // less reliable + 'w' => ':count ဝၼ်း', // less reliable + 'a_week' => ':count ဝၼ်း', // less reliable + + 'hour' => ':count ຕີ', // less reliable + 'h' => ':count ຕີ', // less reliable + 'a_hour' => ':count ຕີ', // less reliable + + 'minute' => ':count ເດັກ', // less reliable + 'min' => ':count ເດັກ', // less reliable + 'a_minute' => ':count ເດັກ', // less reliable + + 'second' => ':count ဢိုၼ်ႇ', // less reliable + 's' => ':count ဢိုၼ်ႇ', // less reliable + 'a_second' => ':count ဢိုၼ်ႇ', // less reliable + + 'year' => ':count ပီ', + 'y' => ':count ပီ', + 'a_year' => ':count ပီ', + + 'day' => ':count ກາງວັນ', + 'd' => ':count ກາງວັນ', + 'a_day' => ':count ກາງວັນ', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shs.php b/vendor/nesbot/carbon/src/Carbon/Lang/shs.php new file mode 100644 index 000000000..8d2e1d7d5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shs.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/shs_CA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php b/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php new file mode 100644 index 000000000..08d385e66 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Neskie Manuel bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Pellkwet̓min', 'Pelctsipwen̓ten', 'Pellsqépts', 'Peslléwten', 'Pell7ell7é7llqten', 'Pelltspéntsk', 'Pelltqwelq̓wél̓t', 'Pellct̓éxel̓cten', 'Pesqelqlélten', 'Pesllwélsten', 'Pellc7ell7é7llcwten̓', 'Pelltetétq̓em'], + 'months_short' => ['Kwe', 'Tsi', 'Sqe', 'Éwt', 'Ell', 'Tsp', 'Tqw', 'Ct̓é', 'Qel', 'Wél', 'U7l', 'Tet'], + 'weekdays' => ['Sxetspesq̓t', 'Spetkesq̓t', 'Selesq̓t', 'Skellesq̓t', 'Smesesq̓t', 'Stselkstesq̓t', 'Stqmekstesq̓t'], + 'weekdays_short' => ['Sxe', 'Spe', 'Sel', 'Ske', 'Sme', 'Sts', 'Stq'], + 'weekdays_min' => ['Sxe', 'Spe', 'Sel', 'Ske', 'Sme', 'Sts', 'Stq'], + 'day_of_first_week_of_year' => 1, + + 'year' => ':count sqlélten', // less reliable + 'y' => ':count sqlélten', // less reliable + 'a_year' => ':count sqlélten', // less reliable + + 'month' => ':count swewll', // less reliable + 'm' => ':count swewll', // less reliable + 'a_month' => ':count swewll', // less reliable + + 'hour' => ':count seqwlút', // less reliable + 'h' => ':count seqwlút', // less reliable + 'a_hour' => ':count seqwlút', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/si.php b/vendor/nesbot/carbon/src/Carbon/Lang/si.php new file mode 100644 index 000000000..636bf6914 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/si.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Serhan Apaydın + * - JD Isaacks + * - Malinda Weerasinghe (MalindaWMD) + */ +return [ + 'year' => '{1}වසර 1|වසර :count', + 'a_year' => '{1}වසරක්|වසර :count', + 'month' => '{1}මාස 1|මාස :count', + 'a_month' => '{1}මාසය|මාස :count', + 'week' => '{1}සති 1|සති :count', + 'a_week' => '{1}සතියක්|සති :count', + 'day' => '{1}දින 1|දින :count', + 'a_day' => '{1}දිනක්|දින :count', + 'hour' => '{1}පැය 1|පැය :count', + 'a_hour' => '{1}පැයක්|පැය :count', + 'minute' => '{1}මිනිත්තු 1|මිනිත්තු :count', + 'a_minute' => '{1}මිනිත්තුවක්|මිනිත්තු :count', + 'second' => '{1}තත්පර 1|තත්පර :count', + 'a_second' => '{1}තත්පර කිහිපයකට|තත්පර :count', + 'ago' => ':time කට පෙර', + 'from_now' => function ($time) { + if (preg_match('/දින \d/u', $time)) { + return $time.' න්'; + } + + return $time.' කින්'; + }, + 'before' => ':time කට පෙර', + 'after' => function ($time) { + if (preg_match('/දින \d/u', $time)) { + return $time.' න්'; + } + + return $time.' කින්'; + }, + 'diff_now' => 'දැන්', + 'diff_today' => 'අද', + 'diff_yesterday' => 'ඊයේ', + 'diff_tomorrow' => 'හෙට', + 'formats' => [ + 'LT' => 'a h:mm', + 'LTS' => 'a h:mm:ss', + 'L' => 'YYYY/MM/DD', + 'LL' => 'YYYY MMMM D', + 'LLL' => 'YYYY MMMM D, a h:mm', + 'LLLL' => 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + ], + 'calendar' => [ + 'sameDay' => '[අද] LT[ට]', + 'nextDay' => '[හෙට] LT[ට]', + 'nextWeek' => 'dddd LT[ට]', + 'lastDay' => '[ඊයේ] LT[ට]', + 'lastWeek' => '[පසුගිය] dddd LT[ට]', + 'sameElse' => 'L', + ], + 'ordinal' => ':number වැනි', + 'meridiem' => ['පෙර වරු', 'පස් වරු', 'පෙ.ව.', 'ප.ව.'], + 'months' => ['ජනවාරි', 'පෙබරවාරි', 'මාර්තු', 'අප්‍රේල්', 'මැයි', 'ජූනි', 'ජූලි', 'අගෝස්තු', 'සැප්තැම්බර්', 'ඔක්තෝබර්', 'නොවැම්බර්', 'දෙසැම්බර්'], + 'months_short' => ['ජන', 'පෙබ', 'මාර්', 'අප්', 'මැයි', 'ජූනි', 'ජූලි', 'අගෝ', 'සැප්', 'ඔක්', 'නොවැ', 'දෙසැ'], + 'weekdays' => ['ඉරිදා', 'සඳුදා', 'අඟහරුවාදා', 'බදාදා', 'බ්‍රහස්පතින්දා', 'සිකුරාදා', 'සෙනසුරාදා'], + 'weekdays_short' => ['ඉරි', 'සඳු', 'අඟ', 'බදා', 'බ්‍රහ', 'සිකු', 'සෙන'], + 'weekdays_min' => ['ඉ', 'ස', 'අ', 'බ', 'බ්‍ර', 'සි', 'සෙ'], + 'first_day_of_week' => 1, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/si_LK.php b/vendor/nesbot/carbon/src/Carbon/Lang/si_LK.php new file mode 100644 index 000000000..81c44e0e1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/si_LK.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/si.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sid.php b/vendor/nesbot/carbon/src/Carbon/Lang/sid.php new file mode 100644 index 000000000..b1c652183 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sid.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/sid_ET.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php new file mode 100644 index 000000000..1296f9be7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'weekdays' => ['Sambata', 'Sanyo', 'Maakisanyo', 'Roowe', 'Hamuse', 'Arbe', 'Qidaame'], + 'weekdays_short' => ['Sam', 'San', 'Mak', 'Row', 'Ham', 'Arb', 'Qid'], + 'weekdays_min' => ['Sam', 'San', 'Mak', 'Row', 'Ham', 'Arb', 'Qid'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['soodo', 'hawwaro'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sk.php b/vendor/nesbot/carbon/src/Carbon/Lang/sk.php new file mode 100644 index 000000000..08af197cf --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sk.php @@ -0,0 +1,83 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Martin Suja + * - Tsutomu Kuroda + * - tjku + * - Max Melentiev + * - Juanito Fatas + * - Ivan Stana + * - Akira Matsuda + * - Christopher Dell + * - James McKinney + * - Enrique Vidal + * - Simone Carletti + * - Aaron Patterson + * - Jozef Fulop + * - Nicolás Hock Isaza + * - Tom Hughes + * - Simon Hürlimann (CyT) + * - jofi + * - Jakub ADAMEC + * - Marek Adamický + * - AlterwebStudio + */ +return [ + 'year' => 'rok|:count roky|:count rokov', + 'y' => ':count r', + 'month' => 'mesiac|:count mesiace|:count mesiacov', + 'm' => ':count m', + 'week' => 'týždeň|:count týždne|:count týždňov', + 'w' => ':count t', + 'day' => 'deň|:count dni|:count dní', + 'd' => ':count d', + 'hour' => 'hodinu|:count hodiny|:count hodín', + 'h' => ':count h', + 'minute' => 'minútu|:count minúty|:count minút', + 'min' => ':count min', + 'second' => 'sekundu|:count sekundy|:count sekúnd', + 'a_second' => 'pár sekúnd|:count sekundy|:count sekúnd', + 's' => ':count s', + 'ago' => 'pred :time', + 'from_now' => 'o :time', + 'after' => ':time po', + 'before' => ':time pred', + 'year_ago' => 'rokom|:count rokmi|:count rokmi', + 'month_ago' => 'mesiacom|:count mesiacmi|:count mesiacmi', + 'week_ago' => 'týždňom|:count týždňami|:count týždňami', + 'day_ago' => 'dňom|:count dňami|:count dňami', + 'hour_ago' => 'hodinou|:count hodinami|:count hodinami', + 'minute_ago' => 'minútou|:count minútami|:count minútami', + 'second_ago' => 'sekundou|:count sekundami|:count sekundami', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' a '], + 'diff_now' => 'teraz', + 'diff_yesterday' => 'včera', + 'diff_tomorrow' => 'zajtra', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'DD. MMMM YYYY', + 'LLL' => 'D. M. HH:mm', + 'LLLL' => 'dddd D. MMMM YYYY HH:mm', + ], + 'weekdays' => ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', 'sobota'], + 'weekdays_short' => ['ned', 'pod', 'uto', 'str', 'štv', 'pia', 'sob'], + 'weekdays_min' => ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'], + 'months' => ['január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'], + 'meridiem' => ['dopoludnia', 'popoludní'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sk_SK.php b/vendor/nesbot/carbon/src/Carbon/Lang/sk_SK.php new file mode 100644 index 000000000..0515601a1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sk_SK.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/sk.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sl.php b/vendor/nesbot/carbon/src/Carbon/Lang/sl.php new file mode 100644 index 000000000..b000e30e3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sl.php @@ -0,0 +1,129 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Tsutomu Kuroda + * - tjku + * - Max Melentiev + * - Juanito Fatas + * - Akira Matsuda + * - Christopher Dell + * - Enrique Vidal + * - Simone Carletti + * - Aaron Patterson + * - Nicolás Hock Isaza + * - Miha Rebernik + * - Gal Jakič (morpheus7CS) + * - Glavić + * - Anže Časar + * - Lovro Tramšek (Lovro1107) + * - burut13 + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count leto|:count leti|:count leta|:count let', + 'y' => ':count leto|:count leti|:count leta|:count let', + 'month' => ':count mesec|:count meseca|:count mesece|:count mesecev', + 'm' => ':count mes.', + 'week' => ':count teden|:count tedna|:count tedne|:count tednov', + 'w' => ':count ted.', + 'day' => ':count dan|:count dni|:count dni|:count dni', + 'd' => ':count dan|:count dni|:count dni|:count dni', + 'hour' => ':count ura|:count uri|:count ure|:count ur', + 'h' => ':count h', + 'minute' => ':count minuta|:count minuti|:count minute|:count minut', + 'min' => ':count min.', + 'second' => ':count sekunda|:count sekundi|:count sekunde|:count sekund', + 'a_second' => '{1}nekaj sekund|:count sekunda|:count sekundi|:count sekunde|:count sekund', + 's' => ':count s', + + 'year_ago' => ':count letom|:count letoma|:count leti|:count leti', + 'y_ago' => ':count letom|:count letoma|:count leti|:count leti', + 'month_ago' => ':count mesecem|:count meseci|:count meseci|:count meseci', + 'week_ago' => ':count tednom|:count tednoma|:count tedni|:count tedni', + 'day_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi', + 'd_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi', + 'hour_ago' => ':count uro|:count urama|:count urami|:count urami', + 'minute_ago' => ':count minuto|:count minutama|:count minutami|:count minutami', + 'second_ago' => ':count sekundo|:count sekundama|:count sekundami|:count sekundami', + + 'day_from_now' => ':count dan|:count dneva|:count dni|:count dni', + 'd_from_now' => ':count dan|:count dneva|:count dni|:count dni', + 'hour_from_now' => ':count uro|:count uri|:count ure|:count ur', + 'minute_from_now' => ':count minuto|:count minuti|:count minute|:count minut', + 'second_from_now' => ':count sekundo|:count sekundi|:count sekunde|:count sekund', + + 'ago' => 'pred :time', + 'from_now' => 'čez :time', + 'after' => ':time kasneje', + 'before' => ':time prej', + + 'diff_now' => 'ravnokar', + 'diff_today' => 'danes', + 'diff_today_regexp' => 'danes(?:\\s+ob)?', + 'diff_yesterday' => 'včeraj', + 'diff_yesterday_regexp' => 'včeraj(?:\\s+ob)?', + 'diff_tomorrow' => 'jutri', + 'diff_tomorrow_regexp' => 'jutri(?:\\s+ob)?', + 'diff_before_yesterday' => 'predvčerajšnjim', + 'diff_after_tomorrow' => 'pojutrišnjem', + + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'period_start_date' => 'od :date', + 'period_end_date' => 'do :date', + + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY H:mm', + 'LLLL' => 'dddd, D. MMMM YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => '[danes ob] LT', + 'nextDay' => '[jutri ob] LT', + 'nextWeek' => 'dddd [ob] LT', + 'lastDay' => '[včeraj ob] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[preteklo] [nedeljo] [ob] LT'; + case 1: + return '[pretekli] [ponedeljek] [ob] LT'; + case 2: + return '[pretekli] [torek] [ob] LT'; + case 3: + return '[preteklo] [sredo] [ob] LT'; + case 4: + return '[pretekli] [četrtek] [ob] LT'; + case 5: + return '[pretekli] [petek] [ob] LT'; + case 6: + return '[preteklo] [soboto] [ob] LT'; + } + }, + 'sameElse' => 'L', + ], + 'months' => ['januar', 'februar', 'marec', 'april', 'maj', 'junij', 'julij', 'avgust', 'september', 'oktober', 'november', 'december'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', 'okt', 'nov', 'dec'], + 'weekdays' => ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', 'petek', 'sobota'], + 'weekdays_short' => ['ned', 'pon', 'tor', 'sre', 'čet', 'pet', 'sob'], + 'weekdays_min' => ['ne', 'po', 'to', 'sr', 'če', 'pe', 'so'], + 'list' => [', ', ' in '], + 'meridiem' => ['dopoldan', 'popoldan'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sl_SI.php b/vendor/nesbot/carbon/src/Carbon/Lang/sl_SI.php new file mode 100644 index 000000000..5dad8c816 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sl_SI.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/sl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sm.php b/vendor/nesbot/carbon/src/Carbon/Lang/sm.php new file mode 100644 index 000000000..e8c118acf --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sm.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/sm_WS.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php b/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php new file mode 100644 index 000000000..f06606871 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Ianuari', 'Fepuari', 'Mati', 'Aperila', 'Me', 'Iuni', 'Iulai', 'Auguso', 'Setema', 'Oketopa', 'Novema', 'Tesema'], + 'months_short' => ['Ian', 'Fep', 'Mat', 'Ape', 'Me', 'Iun', 'Iul', 'Aug', 'Set', 'Oke', 'Nov', 'Tes'], + 'weekdays' => ['Aso Sa', 'Aso Gafua', 'Aso Lua', 'Aso Lulu', 'Aso Tofi', 'Aso Farail', 'Aso To\'ana\'i'], + 'weekdays_short' => ['Aso Sa', 'Aso Gaf', 'Aso Lua', 'Aso Lul', 'Aso Tof', 'Aso Far', 'Aso To\''], + 'weekdays_min' => ['Aso Sa', 'Aso Gaf', 'Aso Lua', 'Aso Lul', 'Aso Tof', 'Aso Far', 'Aso To\''], + + 'hour' => ':count uati', // less reliable + 'h' => ':count uati', // less reliable + 'a_hour' => ':count uati', // less reliable + + 'minute' => ':count itiiti', // less reliable + 'min' => ':count itiiti', // less reliable + 'a_minute' => ':count itiiti', // less reliable + + 'second' => ':count lua', // less reliable + 's' => ':count lua', // less reliable + 'a_second' => ':count lua', // less reliable + + 'year' => ':count tausaga', + 'y' => ':count tausaga', + 'a_year' => ':count tausaga', + + 'month' => ':count māsina', + 'm' => ':count māsina', + 'a_month' => ':count māsina', + + 'week' => ':count vaiaso', + 'w' => ':count vaiaso', + 'a_week' => ':count vaiaso', + + 'day' => ':count aso', + 'd' => ':count aso', + 'a_day' => ':count aso', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/smn.php b/vendor/nesbot/carbon/src/Carbon/Lang/smn.php new file mode 100644 index 000000000..20add0239 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/smn.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['ip.', 'ep.'], + 'weekdays' => ['pasepeeivi', 'vuossaargâ', 'majebaargâ', 'koskoho', 'tuorâstuv', 'vástuppeeivi', 'lávurduv'], + 'weekdays_short' => ['pas', 'vuo', 'maj', 'kos', 'tuo', 'vás', 'láv'], + 'weekdays_min' => ['pa', 'vu', 'ma', 'ko', 'tu', 'vá', 'lá'], + 'weekdays_standalone' => ['pasepeivi', 'vuossargâ', 'majebargâ', 'koskokko', 'tuorâstâh', 'vástuppeivi', 'lávurdâh'], + 'months' => ['uđđâivemáánu', 'kuovâmáánu', 'njuhčâmáánu', 'cuáŋuimáánu', 'vyesimáánu', 'kesimáánu', 'syeinimáánu', 'porgemáánu', 'čohčâmáánu', 'roovvâdmáánu', 'skammâmáánu', 'juovlâmáánu'], + 'months_short' => ['uđiv', 'kuovâ', 'njuhčâ', 'cuáŋui', 'vyesi', 'kesi', 'syeini', 'porge', 'čohčâ', 'roovvâd', 'skammâ', 'juovlâ'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'H.mm', + 'LTS' => 'H.mm.ss', + 'L' => 'D.M.YYYY', + 'LL' => 'MMM D. YYYY', + 'LLL' => 'MMMM D. YYYY H.mm', + 'LLLL' => 'dddd, MMMM D. YYYY H.mm', + ], + + 'hour' => ':count äigi', // less reliable + 'h' => ':count äigi', // less reliable + 'a_hour' => ':count äigi', // less reliable + + 'year' => ':count ihe', + 'y' => ':count ihe', + 'a_year' => ':count ihe', + + 'month' => ':count mánuppaje', + 'm' => ':count mánuppaje', + 'a_month' => ':count mánuppaje', + + 'week' => ':count okko', + 'w' => ':count okko', + 'a_week' => ':count okko', + + 'day' => ':count peivi', + 'd' => ':count peivi', + 'a_day' => ':count peivi', + + 'minute' => ':count miinut', + 'min' => ':count miinut', + 'a_minute' => ':count miinut', + + 'second' => ':count nubbe', + 's' => ':count nubbe', + 'a_second' => ':count nubbe', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sn.php b/vendor/nesbot/carbon/src/Carbon/Lang/sn.php new file mode 100644 index 000000000..4f25028a3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sn.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['a', 'p'], + 'weekdays' => ['Svondo', 'Muvhuro', 'Chipiri', 'Chitatu', 'China', 'Chishanu', 'Mugovera'], + 'weekdays_short' => ['Svo', 'Muv', 'Chp', 'Cht', 'Chn', 'Chs', 'Mug'], + 'weekdays_min' => ['Sv', 'Mu', 'Cp', 'Ct', 'Cn', 'Cs', 'Mg'], + 'months' => ['Ndira', 'Kukadzi', 'Kurume', 'Kubvumbi', 'Chivabvu', 'Chikumi', 'Chikunguru', 'Nyamavhuvhu', 'Gunyana', 'Gumiguru', 'Mbudzi', 'Zvita'], + 'months_short' => ['Ndi', 'Kuk', 'Kur', 'Kub', 'Chv', 'Chk', 'Chg', 'Nya', 'Gun', 'Gum', 'Mbu', 'Zvi'], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-dd', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D HH:mm', + 'LLLL' => 'YYYY MMMM D, dddd HH:mm', + ], + + 'year' => 'makore :count', + 'y' => 'makore :count', + 'a_year' => 'makore :count', + + 'month' => 'mwedzi :count', + 'm' => 'mwedzi :count', + 'a_month' => 'mwedzi :count', + + 'week' => 'vhiki :count', + 'w' => 'vhiki :count', + 'a_week' => 'vhiki :count', + + 'day' => 'mazuva :count', + 'd' => 'mazuva :count', + 'a_day' => 'mazuva :count', + + 'hour' => 'maawa :count', + 'h' => 'maawa :count', + 'a_hour' => 'maawa :count', + + 'minute' => 'minitsi :count', + 'min' => 'minitsi :count', + 'a_minute' => 'minitsi :count', + + 'second' => 'sekonzi :count', + 's' => 'sekonzi :count', + 'a_second' => 'sekonzi :count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so.php b/vendor/nesbot/carbon/src/Carbon/Lang/so.php new file mode 100644 index 000000000..578527197 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Author: + * - Abdifatah Abdilahi(@abdifatahz) + */ +return [ + 'year' => ':count sanad|:count sanadood', + 'a_year' => 'sanad|:count sanadood', + 'y' => '{1}:countsn|{0}:countsns|]1,Inf[:countsn', + 'month' => ':count bil|:count bilood', + 'a_month' => 'bil|:count bilood', + 'm' => ':countbil', + 'week' => ':count isbuuc', + 'a_week' => 'isbuuc|:count isbuuc', + 'w' => ':countis', + 'day' => ':count maalin|:count maalmood', + 'a_day' => 'maalin|:count maalmood', + 'd' => ':countml', + 'hour' => ':count saac', + 'a_hour' => 'saacad|:count saac', + 'h' => ':countsc', + 'minute' => ':count daqiiqo', + 'a_minute' => 'daqiiqo|:count daqiiqo', + 'min' => ':countdq', + 'second' => ':count ilbidhiqsi', + 'a_second' => 'xooga ilbidhiqsiyo|:count ilbidhiqsi', + 's' => ':countil', + 'ago' => ':time kahor', + 'from_now' => ':time gudahood', + 'after' => ':time kedib', + 'before' => ':time kahor', + 'diff_now' => 'hada', + 'diff_today' => 'maanta', + 'diff_today_regexp' => 'maanta(?:\s+markay\s+(?:tahay|ahayd))?', + 'diff_yesterday' => 'shalayto', + 'diff_yesterday_regexp' => 'shalayto(?:\s+markay\s+ahayd)?', + 'diff_tomorrow' => 'beri', + 'diff_tomorrow_regexp' => 'beri(?:\s+markay\s+tahay)?', + 'diff_before_yesterday' => 'doraato', + 'diff_after_tomorrow' => 'saadanbe', + 'period_recurrences' => 'mar|:count jeer', + 'period_interval' => ':interval kasta', + 'period_start_date' => 'laga bilaabo :date', + 'period_end_date' => 'ilaa :date', + 'months' => ['Janaayo', 'Febraayo', 'Abriil', 'Maajo', 'Juun', 'Luuliyo', 'Agoosto', 'Sebteembar', 'Oktoobar', 'Nofeembar', 'Diseembar'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Abr', 'Mjo', 'Jun', 'Lyo', 'Agt', 'Seb', 'Okt', 'Nof', 'Dis'], + 'weekdays' => ['Axad', 'Isniin', 'Talaada', 'Arbaca', 'Khamiis', 'Jimce', 'Sabti'], + 'weekdays_short' => ['Axd', 'Isn', 'Tal', 'Arb', 'Kha', 'Jim', 'Sbt'], + 'weekdays_min' => ['Ax', 'Is', 'Ta', 'Ar', 'Kh', 'Ji', 'Sa'], + 'list' => [', ', ' and '], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'calendar' => [ + 'sameDay' => '[Maanta markay tahay] LT', + 'nextDay' => '[Beri markay tahay] LT', + 'nextWeek' => 'dddd [markay tahay] LT', + 'lastDay' => '[Shalay markay ahayd] LT', + 'lastWeek' => '[Hore] dddd [Markay ahayd] LT', + 'sameElse' => 'L', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php new file mode 100644 index 000000000..273dda8de --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/so.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php new file mode 100644 index 000000000..7b699715b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return require __DIR__.'/so.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php b/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php new file mode 100644 index 000000000..7b699715b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return require __DIR__.'/so.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php b/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php new file mode 100644 index 000000000..7b699715b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return require __DIR__.'/so.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sq.php b/vendor/nesbot/carbon/src/Carbon/Lang/sq.php new file mode 100644 index 000000000..ffa592ecf --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sq.php @@ -0,0 +1,79 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - JD Isaacks + * - Fadion Dashi + */ +return [ + 'year' => ':count vit|:count vjet', + 'a_year' => 'një vit|:count vite', + 'y' => ':count v.', + 'month' => ':count muaj', + 'a_month' => 'një muaj|:count muaj', + 'm' => ':count muaj', + 'week' => ':count javë', + 'a_week' => ':count javë|:count javë', + 'w' => ':count j.', + 'day' => ':count ditë', + 'a_day' => 'një ditë|:count ditë', + 'd' => ':count d.', + 'hour' => ':count orë', + 'a_hour' => 'një orë|:count orë', + 'h' => ':count o.', + 'minute' => ':count minutë|:count minuta', + 'a_minute' => 'një minutë|:count minuta', + 'min' => ':count min.', + 'second' => ':count sekondë|:count sekonda', + 'a_second' => 'disa sekonda|:count sekonda', + 's' => ':count s.', + 'ago' => ':time më parë', + 'from_now' => 'në :time', + 'after' => ':time pas', + 'before' => ':time para', + 'diff_now' => 'tani', + 'diff_today' => 'Sot', + 'diff_today_regexp' => 'Sot(?:\\s+në)?', + 'diff_yesterday' => 'dje', + 'diff_yesterday_regexp' => 'Dje(?:\\s+në)?', + 'diff_tomorrow' => 'nesër', + 'diff_tomorrow_regexp' => 'Nesër(?:\\s+në)?', + 'diff_before_yesterday' => 'pardje', + 'diff_after_tomorrow' => 'pasnesër', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Sot në] LT', + 'nextDay' => '[Nesër në] LT', + 'nextWeek' => 'dddd [në] LT', + 'lastDay' => '[Dje në] LT', + 'lastWeek' => 'dddd [e kaluar në] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'meridiem' => ['PD', 'MD'], + 'months' => ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + 'months_short' => ['jan', 'shk', 'mar', 'pri', 'maj', 'qer', 'kor', 'gus', 'sht', 'tet', 'nën', 'dhj'], + 'weekdays' => ['e diel', 'e hënë', 'e martë', 'e mërkurë', 'e enjte', 'e premte', 'e shtunë'], + 'weekdays_short' => ['die', 'hën', 'mar', 'mër', 'enj', 'pre', 'sht'], + 'weekdays_min' => ['d', 'h', 'ma', 'më', 'e', 'p', 'sh'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' dhe '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sq_AL.php b/vendor/nesbot/carbon/src/Carbon/Lang/sq_AL.php new file mode 100644 index 000000000..ea5df3f26 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sq_AL.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/sq.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sq_MK.php b/vendor/nesbot/carbon/src/Carbon/Lang/sq_MK.php new file mode 100644 index 000000000..62f752c44 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sq_MK.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/sq.php', [ + 'formats' => [ + 'L' => 'D.M.YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY, HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY, HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sq_XK.php b/vendor/nesbot/carbon/src/Carbon/Lang/sq_XK.php new file mode 100644 index 000000000..62f752c44 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sq_XK.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/sq.php', [ + 'formats' => [ + 'L' => 'D.M.YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY, HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY, HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr.php new file mode 100644 index 000000000..68ba663aa --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr.php @@ -0,0 +1,112 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - shaishavgandhi05 + * - Serhan Apaydın + * - JD Isaacks + * - Glavić + * - Milos Sakovic + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count godina|:count godine|:count godina', + 'y' => ':count g.', + 'month' => ':count mesec|:count meseca|:count meseci', + 'm' => ':count mj.', + 'week' => ':count nedelja|:count nedelje|:count nedelja', + 'w' => ':count ned.', + 'day' => ':count dan|:count dana|:count dana', + 'd' => ':count d.', + 'hour' => ':count sat|:count sata|:count sati', + 'h' => ':count č.', + 'minute' => ':count minut|:count minuta|:count minuta', + 'min' => ':count min.', + 'second' => ':count sekundu|:count sekunde|:count sekundi', + 's' => ':count sek.', + 'ago' => 'pre :time', + 'from_now' => 'za :time', + 'after' => 'nakon :time', + 'before' => 'pre :time', + + 'year_from_now' => ':count godinu|:count godine|:count godina', + 'year_ago' => ':count godinu|:count godine|:count godina', + 'week_from_now' => ':count nedelju|:count nedelje|:count nedelja', + 'week_ago' => ':count nedelju|:count nedelje|:count nedelja', + + 'diff_now' => 'upravo sada', + 'diff_today' => 'danas', + 'diff_today_regexp' => 'danas(?:\\s+u)?', + 'diff_yesterday' => 'juče', + 'diff_yesterday_regexp' => 'juče(?:\\s+u)?', + 'diff_tomorrow' => 'sutra', + 'diff_tomorrow_regexp' => 'sutra(?:\\s+u)?', + 'diff_before_yesterday' => 'prekjuče', + 'diff_after_tomorrow' => 'preksutra', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY H:mm', + 'LLLL' => 'dddd, D. MMMM YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => '[danas u] LT', + 'nextDay' => '[sutra u] LT', + 'nextWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[u nedelju u] LT'; + case 3: + return '[u sredu u] LT'; + case 6: + return '[u subotu u] LT'; + default: + return '[u] dddd [u] LT'; + } + }, + 'lastDay' => '[juče u] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[prošle nedelje u] LT'; + case 1: + return '[prošlog ponedeljka u] LT'; + case 2: + return '[prošlog utorka u] LT'; + case 3: + return '[prošle srede u] LT'; + case 4: + return '[prošlog četvrtka u] LT'; + case 5: + return '[prošlog petka u] LT'; + default: + return '[prošle subote u] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], + 'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'], + 'weekdays' => ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'], + 'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'], + 'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' i '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php new file mode 100644 index 000000000..8becbc576 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php @@ -0,0 +1,112 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - shaishavgandhi05 + * - Serhan Apaydın + * - JD Isaacks + * - Glavić + * - Nikola Zeravcic + * - Milos Sakovic + */ + +use Carbon\CarbonInterface; + +return [ + 'year' => ':count година|:count године|:count година', + 'y' => ':count г.', + 'month' => ':count месец|:count месеца|:count месеци', + 'm' => ':count м.', + 'week' => ':count недеља|:count недеље|:count недеља', + 'w' => ':count нед.', + 'day' => ':count дан|:count дана|:count дана', + 'd' => ':count д.', + 'hour' => ':count сат|:count сата|:count сати', + 'h' => ':count ч.', + 'minute' => ':count минут|:count минута|:count минута', + 'min' => ':count мин.', + 'second' => ':count секунд|:count секунде|:count секунди', + 's' => ':count сек.', + 'ago' => 'пре :time', + 'from_now' => 'за :time', + 'after' => ':time након', + 'before' => ':time пре', + 'year_from_now' => ':count годину|:count године|:count година', + 'year_ago' => ':count годину|:count године|:count година', + 'week_from_now' => ':count недељу|:count недеље|:count недеља', + 'week_ago' => ':count недељу|:count недеље|:count недеља', + 'diff_now' => 'управо сада', + 'diff_today' => 'данас', + 'diff_today_regexp' => 'данас(?:\\s+у)?', + 'diff_yesterday' => 'јуче', + 'diff_yesterday_regexp' => 'јуче(?:\\s+у)?', + 'diff_tomorrow' => 'сутра', + 'diff_tomorrow_regexp' => 'сутра(?:\\s+у)?', + 'diff_before_yesterday' => 'прекјуче', + 'diff_after_tomorrow' => 'прекосутра', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY H:mm', + 'LLLL' => 'dddd, D. MMMM YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => '[данас у] LT', + 'nextDay' => '[сутра у] LT', + 'nextWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[у недељу у] LT'; + case 3: + return '[у среду у] LT'; + case 6: + return '[у суботу у] LT'; + default: + return '[у] dddd [у] LT'; + } + }, + 'lastDay' => '[јуче у] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[прошле недеље у] LT'; + case 1: + return '[прошлог понедељка у] LT'; + case 2: + return '[прошлог уторка у] LT'; + case 3: + return '[прошле среде у] LT'; + case 4: + return '[прошлог четвртка у] LT'; + case 5: + return '[прошлог петка у] LT'; + default: + return '[прошле суботе у] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'], + 'months_short' => ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'], + 'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'], + 'weekdays_short' => ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'], + 'weekdays_min' => ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' и '], + 'meridiem' => ['АМ', 'ПМ'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php new file mode 100644 index 000000000..4b29a45c7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Cyrl_BA'); +} +// @codeCoverageIgnoreEnd + +return array_replace_recursive(require __DIR__.'/sr_Cyrl.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D.M.yy.', + 'LL' => 'DD.MM.YYYY.', + 'LLL' => 'DD. MMMM YYYY. HH:mm', + 'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm', + ], + 'weekdays' => ['недјеља', 'понедељак', 'уторак', 'сриједа', 'четвртак', 'петак', 'субота'], + 'weekdays_short' => ['нед.', 'пон.', 'ут.', 'ср.', 'чет.', 'пет.', 'суб.'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php new file mode 100644 index 000000000..28d22fd2c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php @@ -0,0 +1,118 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Glavić + * - Milos Sakovic + */ + +use Carbon\CarbonInterface; +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Cyrl_ME'); +} +// @codeCoverageIgnoreEnd + +return [ + 'year' => ':count година|:count године|:count година', + 'y' => ':count г.', + 'month' => ':count мјесец|:count мјесеца|:count мјесеци', + 'm' => ':count мј.', + 'week' => ':count недјеља|:count недјеље|:count недјеља', + 'w' => ':count нед.', + 'day' => ':count дан|:count дана|:count дана', + 'd' => ':count д.', + 'hour' => ':count сат|:count сата|:count сати', + 'h' => ':count ч.', + 'minute' => ':count минут|:count минута|:count минута', + 'min' => ':count мин.', + 'second' => ':count секунд|:count секунде|:count секунди', + 's' => ':count сек.', + 'ago' => 'прије :time', + 'from_now' => 'за :time', + 'after' => ':time након', + 'before' => ':time прије', + + 'year_from_now' => ':count годину|:count године|:count година', + 'year_ago' => ':count годину|:count године|:count година', + + 'week_from_now' => ':count недјељу|:count недјеље|:count недјеља', + 'week_ago' => ':count недјељу|:count недјеље|:count недјеља', + + 'diff_now' => 'управо сада', + 'diff_today' => 'данас', + 'diff_today_regexp' => 'данас(?:\\s+у)?', + 'diff_yesterday' => 'јуче', + 'diff_yesterday_regexp' => 'јуче(?:\\s+у)?', + 'diff_tomorrow' => 'сутра', + 'diff_tomorrow_regexp' => 'сутра(?:\\s+у)?', + 'diff_before_yesterday' => 'прекјуче', + 'diff_after_tomorrow' => 'прекосјутра', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM YYYY', + 'LLL' => 'D. MMMM YYYY H:mm', + 'LLLL' => 'dddd, D. MMMM YYYY H:mm', + ], + 'calendar' => [ + 'sameDay' => '[данас у] LT', + 'nextDay' => '[сутра у] LT', + 'nextWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[у недељу у] LT'; + case 3: + return '[у среду у] LT'; + case 6: + return '[у суботу у] LT'; + default: + return '[у] dddd [у] LT'; + } + }, + 'lastDay' => '[јуче у] LT', + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[прошле недеље у] LT'; + case 1: + return '[прошлог понедељка у] LT'; + case 2: + return '[прошлог уторка у] LT'; + case 3: + return '[прошле среде у] LT'; + case 4: + return '[прошлог четвртка у] LT'; + case 5: + return '[прошлог петка у] LT'; + default: + return '[прошле суботе у] LT'; + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'], + 'months_short' => ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'], + 'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'], + 'weekdays_short' => ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'], + 'weekdays_min' => ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' и '], + 'meridiem' => ['АМ', 'ПМ'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php new file mode 100644 index 000000000..d6e29b86b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Cyrl_XK'); +} +// @codeCoverageIgnoreEnd + +return array_replace_recursive(require __DIR__.'/sr_Cyrl_BA.php', [ + 'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn.php new file mode 100644 index 000000000..997167470 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/sr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php new file mode 100644 index 000000000..95b2770db --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Latn_BA'); +} +// @codeCoverageIgnoreEnd + +return array_replace_recursive(require __DIR__.'/sr_Latn.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D.M.yy.', + 'LL' => 'DD.MM.YYYY.', + 'LLL' => 'DD. MMMM YYYY. HH:mm', + 'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm', + ], + 'weekdays' => ['nedjelja', 'ponedeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'], + 'weekdays_short' => ['ned.', 'pon.', 'ut.', 'sr.', 'čet.', 'pet.', 'sub.'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php new file mode 100644 index 000000000..5b8f2d062 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Glavić + * - Milos Sakovic + */ + +use Carbon\CarbonInterface; +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Latn_ME'); +} +// @codeCoverageIgnoreEnd + +return array_replace_recursive(require __DIR__.'/sr.php', [ + 'month' => ':count mjesec|:count mjeseca|:count mjeseci', + 'week' => ':count nedjelja|:count nedjelje|:count nedjelja', + 'second' => ':count sekund|:count sekunde|:count sekundi', + 'ago' => 'prije :time', + 'from_now' => 'za :time', + 'after' => ':time nakon', + 'before' => ':time prije', + 'week_from_now' => ':count nedjelju|:count nedjelje|:count nedjelja', + 'week_ago' => ':count nedjelju|:count nedjelje|:count nedjelja', + 'second_ago' => ':count sekund|:count sekunde|:count sekundi', + 'diff_tomorrow' => 'sjutra', + 'calendar' => [ + 'nextDay' => '[sjutra u] LT', + 'nextWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[u nedjelju u] LT'; + case 3: + return '[u srijedu u] LT'; + case 6: + return '[u subotu u] LT'; + default: + return '[u] dddd [u] LT'; + } + }, + 'lastWeek' => function (CarbonInterface $date) { + switch ($date->dayOfWeek) { + case 0: + return '[prošle nedjelje u] LT'; + case 1: + return '[prošle nedjelje u] LT'; + case 2: + return '[prošlog utorka u] LT'; + case 3: + return '[prošle srijede u] LT'; + case 4: + return '[prošlog četvrtka u] LT'; + case 5: + return '[prošlog petka u] LT'; + default: + return '[prošle subote u] LT'; + } + }, + ], + 'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'], + 'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php new file mode 100644 index 000000000..5278e2e5a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Component\Translation\PluralizationRules; + +// @codeCoverageIgnoreStart +if (class_exists(PluralizationRules::class)) { + PluralizationRules::set(static function ($number) { + return PluralizationRules::get($number, 'sr'); + }, 'sr_Latn_XK'); +} +// @codeCoverageIgnoreEnd + +return array_replace_recursive(require __DIR__.'/sr_Latn_BA.php', [ + 'weekdays' => ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php new file mode 100644 index 000000000..d7c65b91a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/sr_Latn_ME.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php new file mode 100644 index 000000000..bc5e04bf8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - sr_YU, sr_CS locale Danilo Segan bug-glibc-locales@gnu.org + */ +return require __DIR__.'/sr_Cyrl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS@latin.php b/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS@latin.php new file mode 100644 index 000000000..997167470 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS@latin.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/sr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ss.php b/vendor/nesbot/carbon/src/Carbon/Lang/ss.php new file mode 100644 index 000000000..1c52c9bf6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ss.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Nicolai Davies + */ +return [ + 'year' => '{1}umnyaka|:count iminyaka', + 'month' => '{1}inyanga|:count tinyanga', + 'week' => '{1}:count liviki|:count emaviki', + 'day' => '{1}lilanga|:count emalanga', + 'hour' => '{1}lihora|:count emahora', + 'minute' => '{1}umzuzu|:count emizuzu', + 'second' => '{1}emizuzwana lomcane|:count mzuzwana', + 'ago' => 'wenteka nga :time', + 'from_now' => 'nga :time', + 'diff_yesterday' => 'Itolo', + 'diff_yesterday_regexp' => 'Itolo(?:\\s+nga)?', + 'diff_today' => 'Namuhla', + 'diff_today_regexp' => 'Namuhla(?:\\s+nga)?', + 'diff_tomorrow' => 'Kusasa', + 'diff_tomorrow_regexp' => 'Kusasa(?:\\s+nga)?', + 'formats' => [ + 'LT' => 'h:mm A', + 'LTS' => 'h:mm:ss A', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm A', + 'LLLL' => 'dddd, D MMMM YYYY h:mm A', + ], + 'calendar' => [ + 'sameDay' => '[Namuhla nga] LT', + 'nextDay' => '[Kusasa nga] LT', + 'nextWeek' => 'dddd [nga] LT', + 'lastDay' => '[Itolo nga] LT', + 'lastWeek' => 'dddd [leliphelile] [nga] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + $lastDigit = $number % 10; + + return $number.( + ((int) ($number % 100 / 10) === 1) ? 'e' : ( + ($lastDigit === 1 || $lastDigit === 2) ? 'a' : 'e' + ) + ); + }, + 'meridiem' => function ($hour) { + if ($hour < 11) { + return 'ekuseni'; + } + if ($hour < 15) { + return 'emini'; + } + if ($hour < 19) { + return 'entsambama'; + } + + return 'ebusuku'; + }, + 'months' => ['Bhimbidvwane', 'Indlovana', 'Indlov\'lenkhulu', 'Mabasa', 'Inkhwekhweti', 'Inhlaba', 'Kholwane', 'Ingci', 'Inyoni', 'Imphala', 'Lweti', 'Ingongoni'], + 'months_short' => ['Bhi', 'Ina', 'Inu', 'Mab', 'Ink', 'Inh', 'Kho', 'Igc', 'Iny', 'Imp', 'Lwe', 'Igo'], + 'weekdays' => ['Lisontfo', 'Umsombuluko', 'Lesibili', 'Lesitsatfu', 'Lesine', 'Lesihlanu', 'Umgcibelo'], + 'weekdays_short' => ['Lis', 'Umb', 'Lsb', 'Les', 'Lsi', 'Lsh', 'Umg'], + 'weekdays_min' => ['Li', 'Us', 'Lb', 'Lt', 'Ls', 'Lh', 'Ug'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ss_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ss_ZA.php new file mode 100644 index 000000000..ba89527c4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ss_ZA.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/ss.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/st.php b/vendor/nesbot/carbon/src/Carbon/Lang/st.php new file mode 100644 index 000000000..b065445b5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/st.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/st_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php new file mode 100644 index 000000000..5bce7f20f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Pherekgong', 'Hlakola', 'Tlhakubele', 'Mmese', 'Motsheanong', 'Phupjane', 'Phupu', 'Phato', 'Leotse', 'Mphalane', 'Pudungwana', 'Tshitwe'], + 'months_short' => ['Phe', 'Hla', 'TlH', 'Mme', 'Mot', 'Jan', 'Upu', 'Pha', 'Leo', 'Mph', 'Pud', 'Tsh'], + 'weekdays' => ['Sontaha', 'Mantaha', 'Labobedi', 'Laboraro', 'Labone', 'Labohlano', 'Moqebelo'], + 'weekdays_short' => ['Son', 'Mma', 'Bed', 'Rar', 'Ne', 'Hla', 'Moq'], + 'weekdays_min' => ['Son', 'Mma', 'Bed', 'Rar', 'Ne', 'Hla', 'Moq'], + 'day_of_first_week_of_year' => 1, + + 'week' => ':count Sontaha', // less reliable + 'w' => ':count Sontaha', // less reliable + 'a_week' => ':count Sontaha', // less reliable + + 'day' => ':count letsatsi', // less reliable + 'd' => ':count letsatsi', // less reliable + 'a_day' => ':count letsatsi', // less reliable + + 'hour' => ':count sešupanako', // less reliable + 'h' => ':count sešupanako', // less reliable + 'a_hour' => ':count sešupanako', // less reliable + + 'minute' => ':count menyane', // less reliable + 'min' => ':count menyane', // less reliable + 'a_minute' => ':count menyane', // less reliable + + 'second' => ':count thusa', // less reliable + 's' => ':count thusa', // less reliable + 'a_second' => ':count thusa', // less reliable + + 'year' => ':count selemo', + 'y' => ':count selemo', + 'a_year' => ':count selemo', + + 'month' => ':count kgwedi', + 'm' => ':count kgwedi', + 'a_month' => ':count kgwedi', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sv.php b/vendor/nesbot/carbon/src/Carbon/Lang/sv.php new file mode 100644 index 000000000..1706c7191 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sv.php @@ -0,0 +1,87 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Kristoffer Snabb + * - JD Isaacks + * - Jens Herlevsen + * - Nightpine + * - Anders Nygren (litemerafrukt) + */ +return [ + 'year' => ':count år', + 'a_year' => 'ett år|:count år', + 'y' => ':count år', + 'month' => ':count månad|:count månader', + 'a_month' => 'en månad|:count månader', + 'm' => ':count mån', + 'week' => ':count vecka|:count veckor', + 'a_week' => 'en vecka|:count veckor', + 'w' => ':count v', + 'day' => ':count dag|:count dagar', + 'a_day' => 'en dag|:count dagar', + 'd' => ':count dgr', + 'hour' => ':count timme|:count timmar', + 'a_hour' => 'en timme|:count timmar', + 'h' => ':count tim', + 'minute' => ':count minut|:count minuter', + 'a_minute' => 'en minut|:count minuter', + 'min' => ':count min', + 'second' => ':count sekund|:count sekunder', + 'a_second' => 'några sekunder|:count sekunder', + 's' => ':count s', + 'ago' => 'för :time sedan', + 'from_now' => 'om :time', + 'after' => ':time efter', + 'before' => ':time före', + 'diff_now' => 'nu', + 'diff_today' => 'I dag', + 'diff_yesterday' => 'i går', + 'diff_yesterday_regexp' => 'I går', + 'diff_tomorrow' => 'i morgon', + 'diff_tomorrow_regexp' => 'I morgon', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY [kl.] HH:mm', + 'LLLL' => 'dddd D MMMM YYYY [kl.] HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[I dag] LT', + 'nextDay' => '[I morgon] LT', + 'nextWeek' => '[På] dddd LT', + 'lastDay' => '[I går] LT', + 'lastWeek' => '[I] dddd[s] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + $lastDigit = $number % 10; + + return $number.( + ((int) ($number % 100 / 10) === 1) ? 'e' : ( + ($lastDigit === 1 || $lastDigit === 2) ? 'a' : 'e' + ) + ); + }, + 'months' => ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december'], + 'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + 'weekdays' => ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag'], + 'weekdays_short' => ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'], + 'weekdays_min' => ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' och '], + 'meridiem' => ['fm', 'em'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sv_AX.php b/vendor/nesbot/carbon/src/Carbon/Lang/sv_AX.php new file mode 100644 index 000000000..70cc55853 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sv_AX.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/sv.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-dd', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sv_FI.php b/vendor/nesbot/carbon/src/Carbon/Lang/sv_FI.php new file mode 100644 index 000000000..d7182c83c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sv_FI.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/sv.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sv_SE.php b/vendor/nesbot/carbon/src/Carbon/Lang/sv_SE.php new file mode 100644 index 000000000..d7182c83c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sv_SE.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/sv.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sw.php b/vendor/nesbot/carbon/src/Carbon/Lang/sw.php new file mode 100644 index 000000000..f8630d53b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sw.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - leyluj + * - Josh Soref + * - ryanhart2 + */ +return [ + 'year' => 'mwaka :count|miaka :count', + 'a_year' => 'mwaka mmoja|miaka :count', + 'y' => 'mwaka :count|miaka :count', + 'month' => 'mwezi :count|miezi :count', + 'a_month' => 'mwezi mmoja|miezi :count', + 'm' => 'mwezi :count|miezi :count', + 'week' => 'wiki :count', + 'a_week' => 'wiki mmoja|wiki :count', + 'w' => 'w. :count', + 'day' => 'siku :count', + 'a_day' => 'siku moja|masiku :count', + 'd' => 'si. :count', + 'hour' => 'saa :count|masaa :count', + 'a_hour' => 'saa limoja|masaa :count', + 'h' => 'saa :count|masaa :count', + 'minute' => 'dakika :count', + 'a_minute' => 'dakika moja|dakika :count', + 'min' => 'd. :count', + 'second' => 'sekunde :count', + 'a_second' => 'hivi punde|sekunde :count', + 's' => 'se. :count', + 'ago' => 'tokea :time', + 'from_now' => ':time baadaye', + 'after' => ':time baada', + 'before' => ':time kabla', + 'diff_now' => 'sasa hivi', + 'diff_today' => 'leo', + 'diff_today_regexp' => 'leo(?:\\s+saa)?', + 'diff_yesterday' => 'jana', + 'diff_tomorrow' => 'kesho', + 'diff_tomorrow_regexp' => 'kesho(?:\\s+saa)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[leo saa] LT', + 'nextDay' => '[kesho saa] LT', + 'nextWeek' => '[wiki ijayo] dddd [saat] LT', + 'lastDay' => '[jana] LT', + 'lastWeek' => '[wiki iliyopita] dddd [saat] LT', + 'sameElse' => 'L', + ], + 'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['Jpl', 'Jtat', 'Jnne', 'Jtan', 'Alh', 'Ijm', 'Jmos'], + 'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' na '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sw_CD.php b/vendor/nesbot/carbon/src/Carbon/Lang/sw_CD.php new file mode 100644 index 000000000..ec9117b53 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sw_CD.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/sw.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php b/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php new file mode 100644 index 000000000..2ace0db29 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kamusi Project Martin Benjamin locales@kamusi.org + */ +return array_replace_recursive(require __DIR__.'/sw.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], + 'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['asubuhi', 'alasiri'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php new file mode 100644 index 000000000..fab3cd683 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kamusi Project Martin Benjamin locales@kamusi.org + */ +return array_replace_recursive(require __DIR__.'/sw.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], + 'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['asubuhi', 'alasiri'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/sw_UG.php b/vendor/nesbot/carbon/src/Carbon/Lang/sw_UG.php new file mode 100644 index 000000000..ec9117b53 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/sw_UG.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/sw.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/szl.php b/vendor/nesbot/carbon/src/Carbon/Lang/szl.php new file mode 100644 index 000000000..4429c4f56 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/szl.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/szl_PL.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php b/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php new file mode 100644 index 000000000..9adddcf87 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - szl_PL locale Przemyslaw Buczkowski libc-alpha@sourceware.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['styczyń', 'luty', 'merc', 'kwjeciyń', 'moj', 'czyrwjyń', 'lipjyń', 'siyrpjyń', 'wrzesiyń', 'październik', 'listopad', 'grudziyń'], + 'months_short' => ['sty', 'lut', 'mer', 'kwj', 'moj', 'czy', 'lip', 'siy', 'wrz', 'paź', 'lis', 'gru'], + 'weekdays' => ['niydziela', 'pyńdziŏek', 'wtŏrek', 'strzŏda', 'sztwortek', 'pjōntek', 'sobŏta'], + 'weekdays_short' => ['niy', 'pyń', 'wtŏ', 'str', 'szt', 'pjō', 'sob'], + 'weekdays_min' => ['niy', 'pyń', 'wtŏ', 'str', 'szt', 'pjō', 'sob'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count rok', + 'y' => ':count rok', + 'a_year' => ':count rok', + + 'month' => ':count mjeśůnc', + 'm' => ':count mjeśůnc', + 'a_month' => ':count mjeśůnc', + + 'week' => ':count tydźyń', + 'w' => ':count tydźyń', + 'a_week' => ':count tydźyń', + + 'day' => ':count dźyń', + 'd' => ':count dźyń', + 'a_day' => ':count dźyń', + + 'hour' => ':count godzina', + 'h' => ':count godzina', + 'a_hour' => ':count godzina', + + 'minute' => ':count minuta', + 'min' => ':count minuta', + 'a_minute' => ':count minuta', + + 'second' => ':count sekůnda', + 's' => ':count sekůnda', + 'a_second' => ':count sekůnda', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ta.php b/vendor/nesbot/carbon/src/Carbon/Lang/ta.php new file mode 100644 index 000000000..c1d89cbb3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ta.php @@ -0,0 +1,97 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - François B + * - JD Isaacks + * - Satheez + */ +return [ + 'year' => ':count வருடம்|:count ஆண்டுகள்', + 'a_year' => 'ஒரு வருடம்|:count ஆண்டுகள்', + 'y' => ':count வருட.|:count ஆண்.', + 'month' => ':count மாதம்|:count மாதங்கள்', + 'a_month' => 'ஒரு மாதம்|:count மாதங்கள்', + 'm' => ':count மாத.', + 'week' => ':count வாரம்|:count வாரங்கள்', + 'a_week' => 'ஒரு வாரம்|:count வாரங்கள்', + 'w' => ':count வார.', + 'day' => ':count நாள்|:count நாட்கள்', + 'a_day' => 'ஒரு நாள்|:count நாட்கள்', + 'd' => ':count நாள்|:count நாட்.', + 'hour' => ':count மணி நேரம்|:count மணி நேரம்', + 'a_hour' => 'ஒரு மணி நேரம்|:count மணி நேரம்', + 'h' => ':count மணி.', + 'minute' => ':count நிமிடம்|:count நிமிடங்கள்', + 'a_minute' => 'ஒரு நிமிடம்|:count நிமிடங்கள்', + 'min' => ':count நிமி.', + 'second' => ':count சில விநாடிகள்|:count விநாடிகள்', + 'a_second' => 'ஒரு சில விநாடிகள்|:count விநாடிகள்', + 's' => ':count விநா.', + 'ago' => ':time முன்', + 'from_now' => ':time இல்', + 'before' => ':time முன்', + 'after' => ':time பின்', + 'diff_now' => 'இப்போது', + 'diff_today' => 'இன்று', + 'diff_yesterday' => 'நேற்று', + 'diff_tomorrow' => 'நாளை', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY, HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[இன்று] LT', + 'nextDay' => '[நாளை] LT', + 'nextWeek' => 'dddd, LT', + 'lastDay' => '[நேற்று] LT', + 'lastWeek' => '[கடந்த வாரம்] dddd, LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':numberவது', + 'meridiem' => function ($hour) { + if ($hour < 2) { + return ' யாமம்'; + } + if ($hour < 6) { + return ' வைகறை'; + } + if ($hour < 10) { + return ' காலை'; + } + if ($hour < 14) { + return ' நண்பகல்'; + } + if ($hour < 18) { + return ' எற்பாடு'; + } + if ($hour < 22) { + return ' மாலை'; + } + + return ' யாமம்'; + }, + 'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டெம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'], + 'months_short' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டெம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'], + 'weekdays' => ['ஞாயிற்றுக்கிழமை', 'திங்கட்கிழமை', 'செவ்வாய்கிழமை', 'புதன்கிழமை', 'வியாழக்கிழமை', 'வெள்ளிக்கிழமை', 'சனிக்கிழமை'], + 'weekdays_short' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'], + 'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' மற்றும் '], + 'weekend' => [0, 0], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php new file mode 100644 index 000000000..492d4c56d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/ta.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'], + 'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'], + 'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'], + 'weekdays_short' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'], + 'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['காலை', 'மாலை'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php b/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php new file mode 100644 index 000000000..8e2afbf63 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - J.Yogaraj 94-777-315206 yogaraj.ubuntu@gmail.com + */ +return array_replace_recursive(require __DIR__.'/ta.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'], + 'months_short' => ['ஜன', 'பிப்', 'மார்', 'ஏப்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக', 'செப்', 'அக்', 'நவ', 'டிச'], + 'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'], + 'weekdays_short' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'], + 'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['காலை', 'மாலை'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ta_MY.php b/vendor/nesbot/carbon/src/Carbon/Lang/ta_MY.php new file mode 100644 index 000000000..a6cd8b517 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ta_MY.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ta.php', [ + 'formats' => [ + 'LT' => 'a h:mm', + 'LTS' => 'a h:mm:ss', + 'L' => 'D/M/yy', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM, YYYY, a h:mm', + 'LLLL' => 'dddd, D MMMM, YYYY, a h:mm', + ], + 'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'], + 'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'], + 'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'], + 'weekdays_short' => ['ஞாயி.', 'திங்.', 'செவ்.', 'புத.', 'வியா.', 'வெள்.', 'சனி'], + 'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'], + 'first_day_of_week' => 1, + 'meridiem' => ['மு.ப', 'பி.ப'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ta_SG.php b/vendor/nesbot/carbon/src/Carbon/Lang/ta_SG.php new file mode 100644 index 000000000..7dbedeee8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ta_SG.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ta.php', [ + 'formats' => [ + 'LT' => 'a h:mm', + 'LTS' => 'a h:mm:ss', + 'L' => 'D/M/yy', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM, YYYY, a h:mm', + 'LLLL' => 'dddd, D MMMM, YYYY, a h:mm', + ], + 'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'], + 'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'], + 'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'], + 'weekdays_short' => ['ஞாயி.', 'திங்.', 'செவ்.', 'புத.', 'வியா.', 'வெள்.', 'சனி'], + 'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'], + 'meridiem' => ['மு.ப', 'பி.ப'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php b/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php new file mode 100644 index 000000000..2eb99057c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/tcy_IN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php new file mode 100644 index 000000000..2ff20e0e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IndLinux.org, Samsung Electronics Co., Ltd. alexey.merzlyakov@samsung.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['ಜನವರಿ', 'ಫೆಬ್ರುವರಿ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್‌‌', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂಬರ್‌', 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'], + 'months_short' => ['ಜ', 'ಫೆ', 'ಮಾ', 'ಏ', 'ಮೇ', 'ಜೂ', 'ಜು', 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], + 'weekdays' => ['ಐಥಾರ', 'ಸೋಮಾರ', 'ಅಂಗರೆ', 'ಬುಧಾರ', 'ಗುರುವಾರ', 'ಶುಕ್ರರ', 'ಶನಿವಾರ'], + 'weekdays_short' => ['ಐ', 'ಸೋ', 'ಅಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'], + 'weekdays_min' => ['ಐ', 'ಸೋ', 'ಅಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ಕಾಂಡೆ', 'ಬಯ್ಯ'], + + 'year' => ':count ನೀರ್', // less reliable + 'y' => ':count ನೀರ್', // less reliable + 'a_year' => ':count ನೀರ್', // less reliable + + 'month' => ':count ಮೀನ್', // less reliable + 'm' => ':count ಮೀನ್', // less reliable + 'a_month' => ':count ಮೀನ್', // less reliable + + 'day' => ':count ಸುಗ್ಗಿ', // less reliable + 'd' => ':count ಸುಗ್ಗಿ', // less reliable + 'a_day' => ':count ಸುಗ್ಗಿ', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/te.php b/vendor/nesbot/carbon/src/Carbon/Lang/te.php new file mode 100644 index 000000000..ac38218f3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/te.php @@ -0,0 +1,89 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kunal Marwaha + * - Josh Soref + * - François B + * - kc + */ +return [ + 'year' => ':count సంవత్సరం|:count సంవత్సరాలు', + 'a_year' => 'ఒక సంవత్సరం|:count సంవత్సరాలు', + 'y' => ':count సం.', + 'month' => ':count నెల|:count నెలలు', + 'a_month' => 'ఒక నెల|:count నెలలు', + 'm' => ':count నెల|:count నెల.', + 'week' => ':count వారం|:count వారాలు', + 'a_week' => 'ఒక వారం|:count వారాలు', + 'w' => ':count వార.|:count వారా.', + 'day' => ':count రోజు|:count రోజులు', + 'a_day' => 'ఒక రోజు|:count రోజులు', + 'd' => ':count రోజు|:count రోజు.', + 'hour' => ':count గంట|:count గంటలు', + 'a_hour' => 'ఒక గంట|:count గంటలు', + 'h' => ':count గం.', + 'minute' => ':count నిమిషం|:count నిమిషాలు', + 'a_minute' => 'ఒక నిమిషం|:count నిమిషాలు', + 'min' => ':count నిమి.', + 'second' => ':count సెకను|:count సెకన్లు', + 'a_second' => 'కొన్ని క్షణాలు|:count సెకన్లు', + 's' => ':count సెక.', + 'ago' => ':time క్రితం', + 'from_now' => ':time లో', + 'diff_now' => 'ప్రస్తుతం', + 'diff_today' => 'నేడు', + 'diff_yesterday' => 'నిన్న', + 'diff_tomorrow' => 'రేపు', + 'formats' => [ + 'LT' => 'A h:mm', + 'LTS' => 'A h:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, A h:mm', + 'LLLL' => 'dddd, D MMMM YYYY, A h:mm', + ], + 'calendar' => [ + 'sameDay' => '[నేడు] LT', + 'nextDay' => '[రేపు] LT', + 'nextWeek' => 'dddd, LT', + 'lastDay' => '[నిన్న] LT', + 'lastWeek' => '[గత] dddd, LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':numberవ', + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'రాత్రి'; + } + if ($hour < 10) { + return 'ఉదయం'; + } + if ($hour < 17) { + return 'మధ్యాహ్నం'; + } + if ($hour < 20) { + return 'సాయంత్రం'; + } + + return ' రాత్రి'; + }, + 'months' => ['జనవరి', 'ఫిబ్రవరి', 'మార్చి', 'ఏప్రిల్', 'మే', 'జూన్', 'జూలై', 'ఆగస్టు', 'సెప్టెంబర్', 'అక్టోబర్', 'నవంబర్', 'డిసెంబర్'], + 'months_short' => ['జన.', 'ఫిబ్ర.', 'మార్చి', 'ఏప్రి.', 'మే', 'జూన్', 'జూలై', 'ఆగ.', 'సెప్.', 'అక్టో.', 'నవ.', 'డిసె.'], + 'weekdays' => ['ఆదివారం', 'సోమవారం', 'మంగళవారం', 'బుధవారం', 'గురువారం', 'శుక్రవారం', 'శనివారం'], + 'weekdays_short' => ['ఆది', 'సోమ', 'మంగళ', 'బుధ', 'గురు', 'శుక్ర', 'శని'], + 'weekdays_min' => ['ఆ', 'సో', 'మం', 'బు', 'గు', 'శు', 'శ'], + 'list' => ', ', + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'weekend' => [0, 0], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/te_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/te_IN.php new file mode 100644 index 000000000..3963f8d50 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/te_IN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/te.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/teo.php b/vendor/nesbot/carbon/src/Carbon/Lang/teo.php new file mode 100644 index 000000000..ca30c37d7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/teo.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ta.php', [ + 'meridiem' => ['Taparachu', 'Ebongi'], + 'weekdays' => ['Nakaejuma', 'Nakaebarasa', 'Nakaare', 'Nakauni', 'Nakaung’on', 'Nakakany', 'Nakasabiti'], + 'weekdays_short' => ['Jum', 'Bar', 'Aar', 'Uni', 'Ung', 'Kan', 'Sab'], + 'weekdays_min' => ['Jum', 'Bar', 'Aar', 'Uni', 'Ung', 'Kan', 'Sab'], + 'months' => ['Orara', 'Omuk', 'Okwamg’', 'Odung’el', 'Omaruk', 'Omodok’king’ol', 'Ojola', 'Opedel', 'Osokosokoma', 'Otibar', 'Olabor', 'Opoo'], + 'months_short' => ['Rar', 'Muk', 'Kwa', 'Dun', 'Mar', 'Mod', 'Jol', 'Ped', 'Sok', 'Tib', 'Lab', 'Poo'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/teo_KE.php b/vendor/nesbot/carbon/src/Carbon/Lang/teo_KE.php new file mode 100644 index 000000000..010a04f54 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/teo_KE.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/teo.php', [ + 'first_day_of_week' => 0, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tet.php b/vendor/nesbot/carbon/src/Carbon/Lang/tet.php new file mode 100644 index 000000000..d0544d4e4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tet.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Joshua Brooks + * - François B + */ +return [ + 'year' => 'tinan :count', + 'a_year' => '{1}tinan ida|tinan :count', + 'month' => 'fulan :count', + 'a_month' => '{1}fulan ida|fulan :count', + 'week' => 'semana :count', + 'a_week' => '{1}semana ida|semana :count', + 'day' => 'loron :count', + 'a_day' => '{1}loron ida|loron :count', + 'hour' => 'oras :count', + 'a_hour' => '{1}oras ida|oras :count', + 'minute' => 'minutu :count', + 'a_minute' => '{1}minutu ida|minutu :count', + 'second' => 'segundu :count', + 'a_second' => '{1}segundu balun|segundu :count', + 'ago' => ':time liuba', + 'from_now' => 'iha :time', + 'diff_yesterday' => 'Horiseik', + 'diff_yesterday_regexp' => 'Horiseik(?:\\s+iha)?', + 'diff_today' => 'Ohin', + 'diff_today_regexp' => 'Ohin(?:\\s+iha)?', + 'diff_tomorrow' => 'Aban', + 'diff_tomorrow_regexp' => 'Aban(?:\\s+iha)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Ohin iha] LT', + 'nextDay' => '[Aban iha] LT', + 'nextWeek' => 'dddd [iha] LT', + 'lastDay' => '[Horiseik iha] LT', + 'lastWeek' => 'dddd [semana kotuk] [iha] LT', + 'sameElse' => 'L', + ], + 'ordinal' => ':numberº', + 'months' => ['Janeiru', 'Fevereiru', 'Marsu', 'Abril', 'Maiu', 'Juñu', 'Jullu', 'Agustu', 'Setembru', 'Outubru', 'Novembru', 'Dezembru'], + 'months_short' => ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'], + 'weekdays' => ['Domingu', 'Segunda', 'Tersa', 'Kuarta', 'Kinta', 'Sesta', 'Sabadu'], + 'weekdays_short' => ['Dom', 'Seg', 'Ters', 'Kua', 'Kint', 'Sest', 'Sab'], + 'weekdays_min' => ['Do', 'Seg', 'Te', 'Ku', 'Ki', 'Ses', 'Sa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tg.php b/vendor/nesbot/carbon/src/Carbon/Lang/tg.php new file mode 100644 index 000000000..b7df893c1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tg.php @@ -0,0 +1,104 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Orif N. Jr + */ +return [ + 'year' => '{1}як сол|:count сол', + 'month' => '{1}як моҳ|:count моҳ', + 'week' => '{1}як ҳафта|:count ҳафта', + 'day' => '{1}як рӯз|:count рӯз', + 'hour' => '{1}як соат|:count соат', + 'minute' => '{1}як дақиқа|:count дақиқа', + 'second' => '{1}якчанд сония|:count сония', + 'ago' => ':time пеш', + 'from_now' => 'баъди :time', + 'diff_today' => 'Имрӯз', + 'diff_yesterday' => 'Дирӯз', + 'diff_yesterday_regexp' => 'Дирӯз(?:\\s+соати)?', + 'diff_tomorrow' => 'Пагоҳ', + 'diff_tomorrow_regexp' => 'Пагоҳ(?:\\s+соати)?', + 'diff_today_regexp' => 'Имрӯз(?:\\s+соати)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Имрӯз соати] LT', + 'nextDay' => '[Пагоҳ соати] LT', + 'nextWeek' => 'dddd[и] [ҳафтаи оянда соати] LT', + 'lastDay' => '[Дирӯз соати] LT', + 'lastWeek' => 'dddd[и] [ҳафтаи гузашта соати] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number) { + if ($number === 0) { // special case for zero + return "$number-ıncı"; + } + + static $suffixes = [ + 0 => '-ум', + 1 => '-ум', + 2 => '-юм', + 3 => '-юм', + 4 => '-ум', + 5 => '-ум', + 6 => '-ум', + 7 => '-ум', + 8 => '-ум', + 9 => '-ум', + 10 => '-ум', + 12 => '-ум', + 13 => '-ум', + 20 => '-ум', + 30 => '-юм', + 40 => '-ум', + 50 => '-ум', + 60 => '-ум', + 70 => '-ум', + 80 => '-ум', + 90 => '-ум', + 100 => '-ум', + ]; + + return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? ''); + }, + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'шаб'; + } + if ($hour < 11) { + return 'субҳ'; + } + if ($hour < 16) { + return 'рӯз'; + } + if ($hour < 19) { + return 'бегоҳ'; + } + + return 'шаб'; + }, + 'months' => ['январ', 'феврал', 'март', 'апрел', 'май', 'июн', 'июл', 'август', 'сентябр', 'октябр', 'ноябр', 'декабр'], + 'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'], + 'weekdays' => ['якшанбе', 'душанбе', 'сешанбе', 'чоршанбе', 'панҷшанбе', 'ҷумъа', 'шанбе'], + 'weekdays_short' => ['яшб', 'дшб', 'сшб', 'чшб', 'пшб', 'ҷум', 'шнб'], + 'weekdays_min' => ['яш', 'дш', 'сш', 'чш', 'пш', 'ҷм', 'шб'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' ва '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tg_TJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/tg_TJ.php new file mode 100644 index 000000000..badc7d1f2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tg_TJ.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/tg.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/th.php b/vendor/nesbot/carbon/src/Carbon/Lang/th.php new file mode 100644 index 000000000..6397f6e46 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/th.php @@ -0,0 +1,73 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Nate Whittaker + * - John MacAslan + * - Chanintorn Asavavichairoj + * - JD Isaacks + * - ROKAISAKKON + * - RO'KAISAKKON + * - Andreas Möller + * - nithisa + */ +return [ + 'year' => ':count ปี', + 'y' => ':count ปี', + 'month' => ':count เดือน', + 'm' => ':count เดือน', + 'week' => ':count สัปดาห์', + 'w' => ':count สัปดาห์', + 'day' => ':count วัน', + 'd' => ':count วัน', + 'hour' => ':count ชั่วโมง', + 'h' => ':count ชั่วโมง', + 'minute' => ':count นาที', + 'min' => ':count นาที', + 'second' => ':count วินาที', + 'a_second' => '{1}ไม่กี่วินาที|]1,Inf[:count วินาที', + 's' => ':count วินาที', + 'ago' => ':timeที่แล้ว', + 'from_now' => 'อีก :time', + 'after' => ':timeหลังจากนี้', + 'before' => ':timeก่อน', + 'diff_now' => 'ขณะนี้', + 'diff_today' => 'วันนี้', + 'diff_today_regexp' => 'วันนี้(?:\\s+เวลา)?', + 'diff_yesterday' => 'เมื่อวาน', + 'diff_yesterday_regexp' => 'เมื่อวานนี้(?:\\s+เวลา)?', + 'diff_tomorrow' => 'พรุ่งนี้', + 'diff_tomorrow_regexp' => 'พรุ่งนี้(?:\\s+เวลา)?', + 'formats' => [ + 'LT' => 'H:mm', + 'LTS' => 'H:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY เวลา H:mm', + 'LLLL' => 'วันddddที่ D MMMM YYYY เวลา H:mm', + ], + 'calendar' => [ + 'sameDay' => '[วันนี้ เวลา] LT', + 'nextDay' => '[พรุ่งนี้ เวลา] LT', + 'nextWeek' => 'dddd[หน้า เวลา] LT', + 'lastDay' => '[เมื่อวานนี้ เวลา] LT', + 'lastWeek' => '[วัน]dddd[ที่แล้ว เวลา] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ก่อนเที่ยง', 'หลังเที่ยง'], + 'months' => ['มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'], + 'months_short' => ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'], + 'weekdays' => ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัสบดี', 'ศุกร์', 'เสาร์'], + 'weekdays_short' => ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัส', 'ศุกร์', 'เสาร์'], + 'weekdays_min' => ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'], + 'list' => [', ', ' และ '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/th_TH.php b/vendor/nesbot/carbon/src/Carbon/Lang/th_TH.php new file mode 100644 index 000000000..b9f94b2dd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/th_TH.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/th.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/the.php b/vendor/nesbot/carbon/src/Carbon/Lang/the.php new file mode 100644 index 000000000..85f8333b8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/the.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/the_NP.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php b/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php new file mode 100644 index 000000000..34da16278 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Chitwanix OS Development info@chitwanix.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'dddd DD MMM YYYY', + ], + 'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + 'weekdays' => ['आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'], + 'weekdays_short' => ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'], + 'weekdays_min' => ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['पूर्वाह्न', 'अपराह्न'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ti.php b/vendor/nesbot/carbon/src/Carbon/Lang/ti.php new file mode 100644 index 000000000..ffd323694 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ti.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ti_ER.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php new file mode 100644 index 000000000..310c51cce --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['ጥሪ', 'ለካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'], + 'months_short' => ['ጥሪ ', 'ለካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰነ ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', 'ሕዳር', 'ታሕሳ'], + 'weekdays' => ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'weekdays_short' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'weekdays_min' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ንጉሆ ሰዓተ', 'ድሕር ሰዓት'], + + 'year' => ':count ዓመት', + 'y' => ':count ዓመት', + 'a_year' => ':count ዓመት', + + 'month' => 'ወርሒ :count', + 'm' => 'ወርሒ :count', + 'a_month' => 'ወርሒ :count', + + 'week' => ':count ሰሙን', + 'w' => ':count ሰሙን', + 'a_week' => ':count ሰሙን', + + 'day' => ':count መዓልቲ', + 'd' => ':count መዓልቲ', + 'a_day' => ':count መዓልቲ', + + 'hour' => ':count ሰዓት', + 'h' => ':count ሰዓት', + 'a_hour' => ':count ሰዓት', + + 'minute' => ':count ደቒቕ', + 'min' => ':count ደቒቕ', + 'a_minute' => ':count ደቒቕ', + + 'second' => ':count ሰከንድ', + 's' => ':count ሰከንድ', + 'a_second' => ':count ሰከንድ', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php new file mode 100644 index 000000000..024217f2f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], + 'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'], + 'weekdays' => ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'weekdays_short' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'weekdays_min' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ንጉሆ ሰዓተ', 'ድሕር ሰዓት'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tig.php b/vendor/nesbot/carbon/src/Carbon/Lang/tig.php new file mode 100644 index 000000000..186fe713c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tig.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/tig_ER.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php b/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php new file mode 100644 index 000000000..46887b05d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['ጥሪ', 'ለካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'], + 'months_short' => ['ጥሪ ', 'ለካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰነ ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', 'ሕዳር', 'ታሕሳ'], + 'weekdays' => ['ሰንበት ዓባይ', 'ሰኖ', 'ታላሸኖ', 'ኣረርባዓ', 'ከሚሽ', 'ጅምዓት', 'ሰንበት ንኢሽ'], + 'weekdays_short' => ['ሰ//ዓ', 'ሰኖ ', 'ታላሸ', 'ኣረር', 'ከሚሽ', 'ጅምዓ', 'ሰ//ን'], + 'weekdays_min' => ['ሰ//ዓ', 'ሰኖ ', 'ታላሸ', 'ኣረር', 'ከሚሽ', 'ጅምዓ', 'ሰ//ን'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ቀደም ሰር ምዕል', 'ሓቆ ሰር ምዕል'], + + 'year' => ':count ማይ', // less reliable + 'y' => ':count ማይ', // less reliable + 'a_year' => ':count ማይ', // less reliable + + 'month' => ':count ሸምሽ', // less reliable + 'm' => ':count ሸምሽ', // less reliable + 'a_month' => ':count ሸምሽ', // less reliable + + 'week' => ':count ሰቡዕ', // less reliable + 'w' => ':count ሰቡዕ', // less reliable + 'a_week' => ':count ሰቡዕ', // less reliable + + 'day' => ':count ዎሮ', // less reliable + 'd' => ':count ዎሮ', // less reliable + 'a_day' => ':count ዎሮ', // less reliable + + 'hour' => ':count ሰዓት', // less reliable + 'h' => ':count ሰዓት', // less reliable + 'a_hour' => ':count ሰዓት', // less reliable + + 'minute' => ':count ካልኣይት', // less reliable + 'min' => ':count ካልኣይት', // less reliable + 'a_minute' => ':count ካልኣይት', // less reliable + + 'second' => ':count ካልኣይ', + 's' => ':count ካልኣይ', + 'a_second' => ':count ካልኣይ', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tk.php b/vendor/nesbot/carbon/src/Carbon/Lang/tk.php new file mode 100644 index 000000000..d8f7d19d6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tk.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/tk_TM.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php b/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php new file mode 100644 index 000000000..f949a4300 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php @@ -0,0 +1,77 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Authors: + * - Ghorban M. Tavakoly Pablo Saratxaga & Ghorban M. Tavakoly pablo@walon.org & gmt314@yahoo.com + * - SuperManPHP + * - Maksat Meredow (isadma) + */ +$transformDiff = function ($input) { + return strtr($input, [ + 'sekunt' => 'sekunt', + 'hepde' => 'hepde', + ]); +}; + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Ýanwar', 'Fewral', 'Mart', 'Aprel', 'Maý', 'Iýun', 'Iýul', 'Awgust', 'Sentýabr', 'Oktýabr', 'Noýabr', 'Dekabr'], + 'months_short' => ['Ýan', 'Few', 'Mar', 'Apr', 'Maý', 'Iýn', 'Iýl', 'Awg', 'Sen', 'Okt', 'Noý', 'Dek'], + 'weekdays' => ['Duşenbe', 'Sişenbe', 'Çarşenbe', 'Penşenbe', 'Anna', 'Şenbe', 'Ýekşenbe'], + 'weekdays_short' => ['Duş', 'Siş', 'Çar', 'Pen', 'Ann', 'Şen', 'Ýek'], + 'weekdays_min' => ['Du', 'Si', 'Ça', 'Pe', 'An', 'Şe', 'Ýe'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + + 'year' => ':count ýyl', + 'y' => ':count ýyl', + 'a_year' => ':count ýyl', + + 'month' => ':count aý', + 'm' => ':count aý', + 'a_month' => ':count aý', + + 'week' => ':count hepde', + 'w' => ':count hepde', + 'a_week' => ':count hepde', + + 'day' => ':count gün', + 'd' => ':count gün', + 'a_day' => ':count gün', + + 'hour' => ':count sagat', + 'h' => ':count sagat', + 'a_hour' => ':count sagat', + + 'minute' => ':count minut', + 'min' => ':count minut', + 'a_minute' => ':count minut', + + 'second' => ':count sekunt', + 's' => ':count sekunt', + 'a_second' => ':count sekunt', + + 'ago' => function ($time) use ($transformDiff) { + return $transformDiff($time).' ozal'; + }, + 'from_now' => function ($time) use ($transformDiff) { + return $transformDiff($time).' soňra'; + }, + 'after' => function ($time) use ($transformDiff) { + return $transformDiff($time).' soň'; + }, + 'before' => function ($time) use ($transformDiff) { + return $transformDiff($time).' öň'; + }, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tl.php b/vendor/nesbot/carbon/src/Carbon/Lang/tl.php new file mode 100644 index 000000000..410a2660f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tl.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + 'year' => ':count taon', + 'a_year' => '{1}isang taon|:count taon', + 'month' => ':count buwan', + 'a_month' => '{1}isang buwan|:count buwan', + 'week' => ':count linggo', + 'a_week' => '{1}isang linggo|:count linggo', + 'day' => ':count araw', + 'a_day' => '{1}isang araw|:count araw', + 'hour' => ':count oras', + 'a_hour' => '{1}isang oras|:count oras', + 'minute' => ':count minuto', + 'a_minute' => '{1}isang minuto|:count minuto', + 'min' => ':count min.', + 'second' => ':count segundo', + 'a_second' => '{1}ilang segundo|:count segundo', + 's' => ':count seg.', + 'ago' => ':time ang nakalipas', + 'from_now' => 'sa loob ng :time', + 'diff_now' => 'ngayon', + 'diff_today' => 'ngayong', + 'diff_today_regexp' => 'ngayong(?:\\s+araw)?', + 'diff_yesterday' => 'kahapon', + 'diff_tomorrow' => 'bukas', + 'diff_tomorrow_regexp' => 'Bukas(?:\\s+ng)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'MM/D/YYYY', + 'LL' => 'MMMM D, YYYY', + 'LLL' => 'MMMM D, YYYY HH:mm', + 'LLLL' => 'dddd, MMMM DD, YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => 'LT [ngayong araw]', + 'nextDay' => '[Bukas ng] LT', + 'nextWeek' => 'LT [sa susunod na] dddd', + 'lastDay' => 'LT [kahapon]', + 'lastWeek' => 'LT [noong nakaraang] dddd', + 'sameElse' => 'L', + ], + 'months' => ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], + 'months_short' => ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', 'Okt', 'Nob', 'Dis'], + 'weekdays' => ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', 'Biyernes', 'Sabado'], + 'weekdays_short' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'], + 'weekdays_min' => ['Li', 'Lu', 'Ma', 'Mi', 'Hu', 'Bi', 'Sab'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' at '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php b/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php new file mode 100644 index 000000000..95f508c34 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Ian De La Cruz + * - JD Isaacks + */ +return require __DIR__.'/tl.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tlh.php b/vendor/nesbot/carbon/src/Carbon/Lang/tlh.php new file mode 100644 index 000000000..fbf9e6f72 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tlh.php @@ -0,0 +1,72 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Serhan Apaydın + * - Dominika + */ +return [ + 'year' => '{1}wa’ DIS|:count DIS', + 'month' => '{1}wa’ jar|:count jar', + 'week' => '{1}wa’ hogh|:count hogh', + 'day' => '{1}wa’ jaj|:count jaj', + 'hour' => '{1}wa’ rep|:count rep', + 'minute' => '{1}wa’ tup|:count tup', + 'second' => '{1}puS lup|:count lup', + 'ago' => function ($time) { + $output = strtr($time, [ + 'jaj' => 'Hu’', + 'jar' => 'wen', + 'DIS' => 'ben', + ]); + + return $output === $time ? "$time ret" : $output; + }, + 'from_now' => function ($time) { + $output = strtr($time, [ + 'jaj' => 'leS', + 'jar' => 'waQ', + 'DIS' => 'nem', + ]); + + return $output === $time ? "$time pIq" : $output; + }, + 'diff_yesterday' => 'wa’Hu’', + 'diff_today' => 'DaHjaj', + 'diff_tomorrow' => 'wa’leS', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[DaHjaj] LT', + 'nextDay' => '[wa’leS] LT', + 'nextWeek' => 'LLL', + 'lastDay' => '[wa’Hu’] LT', + 'lastWeek' => 'LLL', + 'sameElse' => 'L', + ], + 'ordinal' => ':number.', + 'months' => ['tera’ jar wa’', 'tera’ jar cha’', 'tera’ jar wej', 'tera’ jar loS', 'tera’ jar vagh', 'tera’ jar jav', 'tera’ jar Soch', 'tera’ jar chorgh', 'tera’ jar Hut', 'tera’ jar wa’maH', 'tera’ jar wa’maH wa’', 'tera’ jar wa’maH cha’'], + 'months_short' => ['jar wa’', 'jar cha’', 'jar wej', 'jar loS', 'jar vagh', 'jar jav', 'jar Soch', 'jar chorgh', 'jar Hut', 'jar wa’maH', 'jar wa’maH wa’', 'jar wa’maH cha’'], + 'weekdays' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'], + 'weekdays_short' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'], + 'weekdays_min' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' ’ej '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tn.php b/vendor/nesbot/carbon/src/Carbon/Lang/tn.php new file mode 100644 index 000000000..f29bdf680 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tn.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/tn_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php new file mode 100644 index 000000000..aada7db58 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Ferikgong', 'Tlhakole', 'Mopitlwe', 'Moranang', 'Motsheganong', 'Seetebosigo', 'Phukwi', 'Phatwe', 'Lwetse', 'Diphalane', 'Ngwanatsele', 'Sedimonthole'], + 'months_short' => ['Fer', 'Tlh', 'Mop', 'Mor', 'Mot', 'See', 'Phu', 'Pha', 'Lwe', 'Dip', 'Ngw', 'Sed'], + 'weekdays' => ['laTshipi', 'Mosupologo', 'Labobedi', 'Laboraro', 'Labone', 'Labotlhano', 'Lamatlhatso'], + 'weekdays_short' => ['Tsh', 'Mos', 'Bed', 'Rar', 'Ne', 'Tlh', 'Mat'], + 'weekdays_min' => ['Tsh', 'Mos', 'Bed', 'Rar', 'Ne', 'Tlh', 'Mat'], + 'day_of_first_week_of_year' => 1, + + 'year' => 'dingwaga di le :count', + 'y' => 'dingwaga di le :count', + 'a_year' => 'dingwaga di le :count', + + 'month' => 'dikgwedi di le :count', + 'm' => 'dikgwedi di le :count', + 'a_month' => 'dikgwedi di le :count', + + 'week' => 'dibeke di le :count', + 'w' => 'dibeke di le :count', + 'a_week' => 'dibeke di le :count', + + 'day' => 'malatsi :count', + 'd' => 'malatsi :count', + 'a_day' => 'malatsi :count', + + 'hour' => 'diura di le :count', + 'h' => 'diura di le :count', + 'a_hour' => 'diura di le :count', + + 'minute' => 'metsotso e le :count', + 'min' => 'metsotso e le :count', + 'a_minute' => 'metsotso e le :count', + + 'second' => 'metsotswana e le :count', + 's' => 'metsotswana e le :count', + 'a_second' => 'metsotswana e le :count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/to.php b/vendor/nesbot/carbon/src/Carbon/Lang/to.php new file mode 100644 index 000000000..20581bbac --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/to.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/to_TO.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php b/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php new file mode 100644 index 000000000..335c69a85 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - International Components for Unicode akhilesh.k@samsung.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'dddd DD MMM YYYY', + ], + 'months' => ['Sānuali', 'Fēpueli', 'Maʻasi', 'ʻEpeleli', 'Mē', 'Sune', 'Siulai', 'ʻAokosi', 'Sepitema', 'ʻOkatopa', 'Nōvema', 'Tīsema'], + 'months_short' => ['Sān', 'Fēp', 'Maʻa', 'ʻEpe', 'Mē', 'Sun', 'Siu', 'ʻAok', 'Sep', 'ʻOka', 'Nōv', 'Tīs'], + 'weekdays' => ['Sāpate', 'Mōnite', 'Tūsite', 'Pulelulu', 'Tuʻapulelulu', 'Falaite', 'Tokonaki'], + 'weekdays_short' => ['Sāp', 'Mōn', 'Tūs', 'Pul', 'Tuʻa', 'Fal', 'Tok'], + 'weekdays_min' => ['Sāp', 'Mōn', 'Tūs', 'Pul', 'Tuʻa', 'Fal', 'Tok'], + 'meridiem' => ['hengihengi', 'efiafi'], + + 'year' => ':count fitu', // less reliable + 'y' => ':count fitu', // less reliable + 'a_year' => ':count fitu', // less reliable + + 'month' => ':count mahina', // less reliable + 'm' => ':count mahina', // less reliable + 'a_month' => ':count mahina', // less reliable + + 'week' => ':count Sapate', // less reliable + 'w' => ':count Sapate', // less reliable + 'a_week' => ':count Sapate', // less reliable + + 'day' => ':count ʻaho', // less reliable + 'd' => ':count ʻaho', // less reliable + 'a_day' => ':count ʻaho', // less reliable + + 'hour' => ':count houa', + 'h' => ':count houa', + 'a_hour' => ':count houa', + + 'minute' => ':count miniti', + 'min' => ':count miniti', + 'a_minute' => ':count miniti', + + 'second' => ':count sekoni', + 's' => ':count sekoni', + 'a_second' => ':count sekoni', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php b/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php new file mode 100644 index 000000000..7d38daed7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/tpi_PG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php b/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php new file mode 100644 index 000000000..5f58c44c0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Samsung Electronics Co., Ltd. akhilesh.k@samsung.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Janueri', 'Februeri', 'Mas', 'Epril', 'Me', 'Jun', 'Julai', 'Ogas', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mas', 'Epr', 'Me', 'Jun', 'Jul', 'Oga', 'Sep', 'Okt', 'Nov', 'Des'], + 'weekdays' => ['Sande', 'Mande', 'Tunde', 'Trinde', 'Fonde', 'Fraide', 'Sarere'], + 'weekdays_short' => ['San', 'Man', 'Tun', 'Tri', 'Fon', 'Fra', 'Sar'], + 'weekdays_min' => ['San', 'Man', 'Tun', 'Tri', 'Fon', 'Fra', 'Sar'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['biknait', 'apinun'], + + 'year' => 'yia :count', + 'y' => 'yia :count', + 'a_year' => 'yia :count', + + 'month' => ':count mun', + 'm' => ':count mun', + 'a_month' => ':count mun', + + 'week' => ':count wik', + 'w' => ':count wik', + 'a_week' => ':count wik', + + 'day' => ':count de', + 'd' => ':count de', + 'a_day' => ':count de', + + 'hour' => ':count aua', + 'h' => ':count aua', + 'a_hour' => ':count aua', + + 'minute' => ':count minit', + 'min' => ':count minit', + 'a_minute' => ':count minit', + + 'second' => ':count namba tu', + 's' => ':count namba tu', + 'a_second' => ':count namba tu', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tr.php b/vendor/nesbot/carbon/src/Carbon/Lang/tr.php new file mode 100644 index 000000000..f5d9f4cc5 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tr.php @@ -0,0 +1,121 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - Alan Agius + * - Erhan Gundogan + * - François B + * - JD Isaacks + * - Murat Yüksel + * - Baran Şengül + * - Selami (selamialtin) + * - TeomanBey + */ +return [ + 'year' => ':count yıl', + 'a_year' => '{1}bir yıl|]1,Inf[:count yıl', + 'y' => ':county', + 'month' => ':count ay', + 'a_month' => '{1}bir ay|]1,Inf[:count ay', + 'm' => ':countay', + 'week' => ':count hafta', + 'a_week' => '{1}bir hafta|]1,Inf[:count hafta', + 'w' => ':counth', + 'day' => ':count gün', + 'a_day' => '{1}bir gün|]1,Inf[:count gün', + 'd' => ':countg', + 'hour' => ':count saat', + 'a_hour' => '{1}bir saat|]1,Inf[:count saat', + 'h' => ':countsa', + 'minute' => ':count dakika', + 'a_minute' => '{1}bir dakika|]1,Inf[:count dakika', + 'min' => ':countdk', + 'second' => ':count saniye', + 'a_second' => '{1}birkaç saniye|]1,Inf[:count saniye', + 's' => ':countsn', + 'ago' => ':time önce', + 'from_now' => ':time sonra', + 'after' => ':time sonra', + 'before' => ':time önce', + 'diff_now' => 'şimdi', + 'diff_today' => 'bugün', + 'diff_today_regexp' => 'bugün(?:\\s+saat)?', + 'diff_yesterday' => 'dün', + 'diff_tomorrow' => 'yarın', + 'diff_tomorrow_regexp' => 'yarın(?:\\s+saat)?', + 'diff_before_yesterday' => 'evvelsi gün', + 'diff_after_tomorrow' => 'öbür gün', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[bugün saat] LT', + 'nextDay' => '[yarın saat] LT', + 'nextWeek' => '[gelecek] dddd [saat] LT', + 'lastDay' => '[dün] LT', + 'lastWeek' => '[geçen] dddd [saat] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return $number; + default: + if ($number === 0) { // special case for zero + return "$number'ıncı"; + } + + static $suffixes = [ + 1 => '\'inci', + 5 => '\'inci', + 8 => '\'inci', + 70 => '\'inci', + 80 => '\'inci', + 2 => '\'nci', + 7 => '\'nci', + 20 => '\'nci', + 50 => '\'nci', + 3 => '\'üncü', + 4 => '\'üncü', + 100 => '\'üncü', + 6 => '\'ncı', + 9 => '\'uncu', + 10 => '\'uncu', + 30 => '\'uncu', + 60 => '\'ıncı', + 90 => '\'ıncı', + ]; + + $lastDigit = $number % 10; + + return $number.($suffixes[$lastDigit] ?? $suffixes[$number % 100 - $lastDigit] ?? $suffixes[$number >= 100 ? 100 : -1] ?? ''); + } + }, + 'meridiem' => ['ÖÖ', 'ÖS', 'öö', 'ös'], + 'months' => ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], + 'months_short' => ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'], + 'weekdays' => ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'], + 'weekdays_short' => ['Paz', 'Pts', 'Sal', 'Çar', 'Per', 'Cum', 'Cts'], + 'weekdays_min' => ['Pz', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' ve '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tr_CY.php b/vendor/nesbot/carbon/src/Carbon/Lang/tr_CY.php new file mode 100644 index 000000000..23f114491 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tr_CY.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/tr.php', [ + 'weekdays_short' => ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'], + 'weekdays_min' => ['Pa', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'], + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'D.MM.YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'D MMMM YYYY dddd h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tr_TR.php b/vendor/nesbot/carbon/src/Carbon/Lang/tr_TR.php new file mode 100644 index 000000000..9e9948248 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tr_TR.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/tr.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ts.php b/vendor/nesbot/carbon/src/Carbon/Lang/ts.php new file mode 100644 index 000000000..525736bfe --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ts.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ts_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php new file mode 100644 index 000000000..37a24ec49 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Sunguti', 'Nyenyenyani', 'Nyenyankulu', 'Dzivamisoko', 'Mudyaxihi', 'Khotavuxika', 'Mawuwani', 'Mhawuri', 'Ndzhati', 'Nhlangula', 'Hukuri', 'N\'wendzamhala'], + 'months_short' => ['Sun', 'Yan', 'Kul', 'Dzi', 'Mud', 'Kho', 'Maw', 'Mha', 'Ndz', 'Nhl', 'Huk', 'N\'w'], + 'weekdays' => ['Sonto', 'Musumbhunuku', 'Ravumbirhi', 'Ravunharhu', 'Ravumune', 'Ravuntlhanu', 'Mugqivela'], + 'weekdays_short' => ['Son', 'Mus', 'Bir', 'Har', 'Ne', 'Tlh', 'Mug'], + 'weekdays_min' => ['Son', 'Mus', 'Bir', 'Har', 'Ne', 'Tlh', 'Mug'], + 'day_of_first_week_of_year' => 1, + + 'year' => 'malembe ya :count', + 'y' => 'malembe ya :count', + 'a_year' => 'malembe ya :count', + + 'month' => 'tin’hweti ta :count', + 'm' => 'tin’hweti ta :count', + 'a_month' => 'tin’hweti ta :count', + + 'week' => 'mavhiki ya :count', + 'w' => 'mavhiki ya :count', + 'a_week' => 'mavhiki ya :count', + + 'day' => 'masiku :count', + 'd' => 'masiku :count', + 'a_day' => 'masiku :count', + + 'hour' => 'tiawara ta :count', + 'h' => 'tiawara ta :count', + 'a_hour' => 'tiawara ta :count', + + 'minute' => 'timinete ta :count', + 'min' => 'timinete ta :count', + 'a_minute' => 'timinete ta :count', + + 'second' => 'tisekoni ta :count', + 's' => 'tisekoni ta :count', + 'a_second' => 'tisekoni ta :count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tt.php b/vendor/nesbot/carbon/src/Carbon/Lang/tt.php new file mode 100644 index 000000000..d67d896ec --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tt.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/tt_RU.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php b/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php new file mode 100644 index 000000000..38e42d054 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Rinat Norkin Pablo Saratxaga, Rinat Norkin pablo@mandrakesoft.com, rinat@taif.ru + */ +return [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'DD MMM, HH:mm', + 'LLLL' => 'DD MMMM YYYY, HH:mm', + ], + 'months' => ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'], + 'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'], + 'weekdays' => ['якшәмбе', 'дышәмбе', 'сишәмбе', 'чәршәәмбе', 'пәнҗешмбе', 'җомга', 'шимбә'], + 'weekdays_short' => ['якш', 'дыш', 'сиш', 'чәрш', 'пәнҗ', 'җом', 'шим'], + 'weekdays_min' => ['якш', 'дыш', 'сиш', 'чәрш', 'пәнҗ', 'җом', 'шим'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'year' => ':count ел', + 'month' => ':count ай', + 'week' => ':count атна', + 'day' => ':count көн', + 'hour' => ':count сәгать', + 'minute' => ':count минут', + 'second' => ':count секунд', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php b/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php new file mode 100644 index 000000000..16b8efb1f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Reshat Sabiq tatar.iqtelif.i18n@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD.MM.YYYY', + ], + 'months' => ['Ğınwar', 'Fiwral\'', 'Mart', 'April', 'May', 'Yün', 'Yül', 'Awgust', 'Sintebír', 'Üktebír', 'Noyebír', 'Dikebír'], + 'months_short' => ['Ğın', 'Fiw', 'Mar', 'Apr', 'May', 'Yün', 'Yül', 'Awg', 'Sin', 'Ükt', 'Noy', 'Dik'], + 'weekdays' => ['Yekşembí', 'Düşembí', 'Sişembí', 'Çerşembí', 'Pencíşembí', 'Comğa', 'Şimbe'], + 'weekdays_short' => ['Yek', 'Düş', 'Siş', 'Çer', 'Pen', 'Com', 'Şim'], + 'weekdays_min' => ['Yek', 'Düş', 'Siş', 'Çer', 'Pen', 'Com', 'Şim'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ÖA', 'ÖS'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/twq.php b/vendor/nesbot/carbon/src/Carbon/Lang/twq.php new file mode 100644 index 000000000..5cbb46e01 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/twq.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/ses.php', [ + 'meridiem' => ['Subbaahi', 'Zaarikay b'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tzl.php b/vendor/nesbot/carbon/src/Carbon/Lang/tzl.php new file mode 100644 index 000000000..50bf26d26 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tzl.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + 'year' => '[0,1]:count ar|:count ars', + 'y' => '[0,1]:count ar|:count ars', + 'month' => '[0,1]:count mes|:count mesen', + 'm' => '[0,1]:count mes|:count mesen', + 'week' => '[0,1]:count seifetziua|:count seifetziuas', + 'w' => '[0,1]:count seifetziua|:count seifetziuas', + 'day' => '[0,1]:count ziua|:count ziuas', + 'd' => '[0,1]:count ziua|:count ziuas', + 'hour' => '[0,1]:count þora|:count þoras', + 'h' => '[0,1]:count þora|:count þoras', + 'minute' => '[0,1]:count míut|:count míuts', + 'min' => '[0,1]:count míut|:count míuts', + 'second' => ':count secunds', + 's' => ':count secunds', + + 'ago' => 'ja :time', + 'from_now' => 'osprei :time', + + 'diff_yesterday' => 'ieiri', + 'diff_yesterday_regexp' => 'ieiri(?:\\s+à)?', + 'diff_today' => 'oxhi', + 'diff_today_regexp' => 'oxhi(?:\\s+à)?', + 'diff_tomorrow' => 'demà', + 'diff_tomorrow_regexp' => 'demà(?:\\s+à)?', + + 'formats' => [ + 'LT' => 'HH.mm', + 'LTS' => 'HH.mm.ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D. MMMM [dallas] YYYY', + 'LLL' => 'D. MMMM [dallas] YYYY HH.mm', + 'LLLL' => 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + ], + + 'calendar' => [ + 'sameDay' => '[oxhi à] LT', + 'nextDay' => '[demà à] LT', + 'nextWeek' => 'dddd [à] LT', + 'lastDay' => '[ieiri à] LT', + 'lastWeek' => '[sür el] dddd [lasteu à] LT', + 'sameElse' => 'L', + ], + + 'meridiem' => ["D'A", "D'O"], + 'months' => ['Januar', 'Fevraglh', 'Març', 'Avrïu', 'Mai', 'Gün', 'Julia', 'Guscht', 'Setemvar', 'Listopäts', 'Noemvar', 'Zecemvar'], + 'months_short' => ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Gün', 'Jul', 'Gus', 'Set', 'Lis', 'Noe', 'Zec'], + 'weekdays' => ['Súladi', 'Lúneçi', 'Maitzi', 'Márcuri', 'Xhúadi', 'Viénerçi', 'Sáturi'], + 'weekdays_short' => ['Súl', 'Lún', 'Mai', 'Már', 'Xhú', 'Vié', 'Sát'], + 'weekdays_min' => ['Sú', 'Lú', 'Ma', 'Má', 'Xh', 'Vi', 'Sá'], + 'ordinal' => ':number.', + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tzm.php b/vendor/nesbot/carbon/src/Carbon/Lang/tzm.php new file mode 100644 index 000000000..2a1a0f2bc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tzm.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - JD Isaacks + */ +return [ + 'year' => '{1}ⴰⵙⴳⴰⵙ|:count ⵉⵙⴳⴰⵙⵏ', + 'month' => '{1}ⴰⵢoⵓⵔ|:count ⵉⵢⵢⵉⵔⵏ', + 'week' => ':count ⵉⵎⴰⵍⴰⵙⵙ', + 'day' => '{1}ⴰⵙⵙ|:count oⵙⵙⴰⵏ', + 'hour' => '{1}ⵙⴰⵄⴰ|:count ⵜⴰⵙⵙⴰⵄⵉⵏ', + 'minute' => '{1}ⵎⵉⵏⵓⴺ|:count ⵎⵉⵏⵓⴺ', + 'second' => '{1}ⵉⵎⵉⴽ|:count ⵉⵎⵉⴽ', + 'ago' => 'ⵢⴰⵏ :time', + 'from_now' => 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ :time', + 'diff_today' => 'ⴰⵙⴷⵅ', + 'diff_yesterday' => 'ⴰⵚⴰⵏⵜ', + 'diff_yesterday_regexp' => 'ⴰⵚⴰⵏⵜ(?:\\s+ⴴ)?', + 'diff_tomorrow' => 'ⴰⵙⴽⴰ', + 'diff_tomorrow_regexp' => 'ⴰⵙⴽⴰ(?:\\s+ⴴ)?', + 'diff_today_regexp' => 'ⴰⵙⴷⵅ(?:\\s+ⴴ)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[ⴰⵙⴷⵅ ⴴ] LT', + 'nextDay' => '[ⴰⵙⴽⴰ ⴴ] LT', + 'nextWeek' => 'dddd [ⴴ] LT', + 'lastDay' => '[ⴰⵚⴰⵏⵜ ⴴ] LT', + 'lastWeek' => 'dddd [ⴴ] LT', + 'sameElse' => 'L', + ], + 'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⵏⴱⵉⵔ'], + 'months_short' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⵏⴱⵉⵔ'], + 'weekdays' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'], + 'weekdays_short' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'], + 'weekdays_min' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, + 'weekend' => [5, 6], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/tzm_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/tzm_Latn.php new file mode 100644 index 000000000..5840d2092 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/tzm_Latn.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - JD Isaacks + */ +return [ + 'year' => '{1}:count asgas|:count isgasn', + 'a_year' => 'asgas|:count isgasn', + 'month' => '{1}:count ayowr|:count iyyirn', + 'a_month' => 'ayowr|:count iyyirn', + 'week' => ':count imalass', + 'a_week' => ':imalass', + 'day' => '{1}:count ass|:count ossan', + 'a_day' => 'ass|:count ossan', + 'hour' => '{1}:count saɛa|:count tassaɛin', + 'a_hour' => '{1}saɛa|:count tassaɛin', + 'minute' => ':count minuḍ', + 'a_minute' => '{1}minuḍ|:count minuḍ', + 'second' => ':count imik', + 'a_second' => '{1}imik|:count imik', + 'ago' => 'yan :time', + 'from_now' => 'dadkh s yan :time', + 'diff_yesterday' => 'assant', + 'diff_yesterday_regexp' => 'assant(?:\\s+g)?', + 'diff_today' => 'asdkh', + 'diff_today_regexp' => 'asdkh(?:\\s+g)?', + 'diff_tomorrow' => 'aska', + 'diff_tomorrow_regexp' => 'aska(?:\\s+g)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[asdkh g] LT', + 'nextDay' => '[aska g] LT', + 'nextWeek' => 'dddd [g] LT', + 'lastDay' => '[assant g] LT', + 'lastWeek' => 'dddd [g] LT', + 'sameElse' => 'L', + ], + 'months' => ['innayr', 'brˤayrˤ', 'marˤsˤ', 'ibrir', 'mayyw', 'ywnyw', 'ywlywz', 'ɣwšt', 'šwtanbir', 'ktˤwbrˤ', 'nwwanbir', 'dwjnbir'], + 'months_short' => ['innayr', 'brˤayrˤ', 'marˤsˤ', 'ibrir', 'mayyw', 'ywnyw', 'ywlywz', 'ɣwšt', 'šwtanbir', 'ktˤwbrˤ', 'nwwanbir', 'dwjnbir'], + 'weekdays' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'], + 'weekdays_short' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'], + 'weekdays_min' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'], + 'meridiem' => ['Zdat azal', 'Ḍeffir aza'], + 'first_day_of_week' => 6, + 'day_of_first_week_of_year' => 1, +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ug.php b/vendor/nesbot/carbon/src/Carbon/Lang/ug.php new file mode 100644 index 000000000..259b99a48 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ug.php @@ -0,0 +1,90 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Philippe Vaucher + * - Tsutomu Kuroda + * - yasinn + */ +return [ + 'year' => '{1}'.'بىر يىل'.'|:count '.'يىل', + 'month' => '{1}'.'بىر ئاي'.'|:count '.'ئاي', + 'week' => '{1}'.'بىر ھەپتە'.'|:count '.'ھەپتە', + 'day' => '{1}'.'بىر كۈن'.'|:count '.'كۈن', + 'hour' => '{1}'.'بىر سائەت'.'|:count '.'سائەت', + 'minute' => '{1}'.'بىر مىنۇت'.'|:count '.'مىنۇت', + 'second' => '{1}'.'نەچچە سېكونت'.'|:count '.'سېكونت', + 'ago' => ':time بۇرۇن', + 'from_now' => ':time كېيىن', + 'diff_today' => 'بۈگۈن', + 'diff_yesterday' => 'تۆنۈگۈن', + 'diff_tomorrow' => 'ئەتە', + 'diff_tomorrow_regexp' => 'ئەتە(?:\\s+سائەت)?', + 'diff_today_regexp' => 'بۈگۈن(?:\\s+سائەت)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-DD', + 'LL' => 'YYYY-يىلىM-ئاينىڭD-كۈنى', + 'LLL' => 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + 'LLLL' => 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[بۈگۈن سائەت] LT', + 'nextDay' => '[ئەتە سائەت] LT', + 'nextWeek' => '[كېلەركى] dddd [سائەت] LT', + 'lastDay' => '[تۆنۈگۈن] LT', + 'lastWeek' => '[ئالدىنقى] dddd [سائەت] LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'd': + case 'D': + case 'DDD': + return $number.'-كۈنى'; + case 'w': + case 'W': + return $number.'-ھەپتە'; + default: + return $number; + } + }, + 'meridiem' => function ($hour, $minute) { + $time = $hour * 100 + $minute; + if ($time < 600) { + return 'يېرىم كېچە'; + } + if ($time < 900) { + return 'سەھەر'; + } + if ($time < 1130) { + return 'چۈشتىن بۇرۇن'; + } + if ($time < 1230) { + return 'چۈش'; + } + if ($time < 1800) { + return 'چۈشتىن كېيىن'; + } + + return 'كەچ'; + }, + 'months' => ['يانۋار', 'فېۋرال', 'مارت', 'ئاپرېل', 'ماي', 'ئىيۇن', 'ئىيۇل', 'ئاۋغۇست', 'سېنتەبىر', 'ئۆكتەبىر', 'نويابىر', 'دېكابىر'], + 'months_short' => ['يانۋار', 'فېۋرال', 'مارت', 'ئاپرېل', 'ماي', 'ئىيۇن', 'ئىيۇل', 'ئاۋغۇست', 'سېنتەبىر', 'ئۆكتەبىر', 'نويابىر', 'دېكابىر'], + 'weekdays' => ['يەكشەنبە', 'دۈشەنبە', 'سەيشەنبە', 'چارشەنبە', 'پەيشەنبە', 'جۈمە', 'شەنبە'], + 'weekdays_short' => ['يە', 'دۈ', 'سە', 'چا', 'پە', 'جۈ', 'شە'], + 'weekdays_min' => ['يە', 'دۈ', 'سە', 'چا', 'پە', 'جۈ', 'شە'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' ۋە '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php new file mode 100644 index 000000000..deb828c50 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Kunal Marwaha + * - Alim Boyaq + */ +return require __DIR__.'/ug.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uk.php b/vendor/nesbot/carbon/src/Carbon/Lang/uk.php new file mode 100644 index 000000000..1d5ba703f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uk.php @@ -0,0 +1,212 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Carbon\CarbonInterface; + +$processHoursFunction = function (CarbonInterface $date, string $format) { + return $format.'о'.($date->hour === 11 ? 'б' : '').'] LT'; +}; + +/* + * Authors: + * - Kunal Marwaha + * - Josh Soref + * - François B + * - Tim Fish + * - Serhan Apaydın + * - Max Mykhailenko + * - JD Isaacks + * - Max Kovpak + * - AucT + * - Philippe Vaucher + * - Ilya Shaplyko + * - Vadym Ievsieiev + * - Denys Kurets + * - Igor Kasyanchuk + * - Tsutomu Kuroda + * - tjku + * - Max Melentiev + * - Oleh + * - epaminond + * - Juanito Fatas + * - Vitalii Khustochka + * - Akira Matsuda + * - Christopher Dell + * - Enrique Vidal + * - Simone Carletti + * - Aaron Patterson + * - Andriy Tyurnikov + * - Nicolás Hock Isaza + * - Iwakura Taro + * - Andrii Ponomarov + * - alecrabbit + * - vystepanenko + * - AlexWalkerson + * - Andre Havryliuk (Andrend) + * - Max Datsenko (datsenko-md) + */ +return [ + 'year' => ':count рік|:count роки|:count років', + 'y' => ':countр', + 'a_year' => '{1}рік|:count рік|:count роки|:count років', + 'month' => ':count місяць|:count місяці|:count місяців', + 'm' => ':countм', + 'a_month' => '{1}місяць|:count місяць|:count місяці|:count місяців', + 'week' => ':count тиждень|:count тижні|:count тижнів', + 'w' => ':countт', + 'a_week' => '{1}тиждень|:count тиждень|:count тижні|:count тижнів', + 'day' => ':count день|:count дні|:count днів', + 'd' => ':countд', + 'a_day' => '{1}день|:count день|:count дні|:count днів', + 'hour' => ':count година|:count години|:count годин', + 'h' => ':countг', + 'a_hour' => '{1}година|:count година|:count години|:count годин', + 'minute' => ':count хвилина|:count хвилини|:count хвилин', + 'min' => ':countхв', + 'a_minute' => '{1}хвилина|:count хвилина|:count хвилини|:count хвилин', + 'second' => ':count секунда|:count секунди|:count секунд', + 's' => ':countсек', + 'a_second' => '{1}декілька секунд|:count секунда|:count секунди|:count секунд', + + 'hour_ago' => ':count годину|:count години|:count годин', + 'a_hour_ago' => '{1}годину|:count годину|:count години|:count годин', + 'minute_ago' => ':count хвилину|:count хвилини|:count хвилин', + 'a_minute_ago' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин', + 'second_ago' => ':count секунду|:count секунди|:count секунд', + 'a_second_ago' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд', + + 'hour_from_now' => ':count годину|:count години|:count годин', + 'a_hour_from_now' => '{1}годину|:count годину|:count години|:count годин', + 'minute_from_now' => ':count хвилину|:count хвилини|:count хвилин', + 'a_minute_from_now' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин', + 'second_from_now' => ':count секунду|:count секунди|:count секунд', + 'a_second_from_now' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд', + + 'hour_after' => ':count годину|:count години|:count годин', + 'a_hour_after' => '{1}годину|:count годину|:count години|:count годин', + 'minute_after' => ':count хвилину|:count хвилини|:count хвилин', + 'a_minute_after' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин', + 'second_after' => ':count секунду|:count секунди|:count секунд', + 'a_second_after' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд', + + 'hour_before' => ':count годину|:count години|:count годин', + 'a_hour_before' => '{1}годину|:count годину|:count години|:count годин', + 'minute_before' => ':count хвилину|:count хвилини|:count хвилин', + 'a_minute_before' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин', + 'second_before' => ':count секунду|:count секунди|:count секунд', + 'a_second_before' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд', + + 'ago' => ':time тому', + 'from_now' => 'за :time', + 'after' => ':time після', + 'before' => ':time до', + 'diff_now' => 'щойно', + 'diff_today' => 'Сьогодні', + 'diff_today_regexp' => 'Сьогодні(?:\\s+о)?', + 'diff_yesterday' => 'вчора', + 'diff_yesterday_regexp' => 'Вчора(?:\\s+о)?', + 'diff_tomorrow' => 'завтра', + 'diff_tomorrow_regexp' => 'Завтра(?:\\s+о)?', + 'diff_before_yesterday' => 'позавчора', + 'diff_after_tomorrow' => 'післязавтра', + 'period_recurrences' => 'один раз|:count рази|:count разів', + 'period_interval' => 'кожні :interval', + 'period_start_date' => 'з :date', + 'period_end_date' => 'до :date', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY, HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY, HH:mm', + ], + 'calendar' => [ + 'sameDay' => function (CarbonInterface $date) use ($processHoursFunction) { + return $processHoursFunction($date, '[Сьогодні '); + }, + 'nextDay' => function (CarbonInterface $date) use ($processHoursFunction) { + return $processHoursFunction($date, '[Завтра '); + }, + 'nextWeek' => function (CarbonInterface $date) use ($processHoursFunction) { + return $processHoursFunction($date, '[У] dddd ['); + }, + 'lastDay' => function (CarbonInterface $date) use ($processHoursFunction) { + return $processHoursFunction($date, '[Вчора '); + }, + 'lastWeek' => function (CarbonInterface $date) use ($processHoursFunction) { + switch ($date->dayOfWeek) { + case 0: + case 3: + case 5: + case 6: + return $processHoursFunction($date, '[Минулої] dddd ['); + default: + return $processHoursFunction($date, '[Минулого] dddd ['); + } + }, + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return $number.'-й'; + case 'D': + return $number.'-го'; + default: + return $number; + } + }, + 'meridiem' => function ($hour) { + if ($hour < 4) { + return 'ночі'; + } + if ($hour < 12) { + return 'ранку'; + } + if ($hour < 17) { + return 'дня'; + } + + return 'вечора'; + }, + 'months' => ['січня', 'лютого', 'березня', 'квітня', 'травня', 'червня', 'липня', 'серпня', 'вересня', 'жовтня', 'листопада', 'грудня'], + 'months_standalone' => ['січень', 'лютий', 'березень', 'квітень', 'травень', 'червень', 'липень', 'серпень', 'вересень', 'жовтень', 'листопад', 'грудень'], + 'months_short' => ['січ', 'лют', 'бер', 'кві', 'тра', 'чер', 'лип', 'сер', 'вер', 'жов', 'лис', 'гру'], + 'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/', + 'weekdays' => function (CarbonInterface $date, $format, $index) { + static $words = [ + 'nominative' => ['неділя', 'понеділок', 'вівторок', 'середа', 'четвер', 'п’ятниця', 'субота'], + 'accusative' => ['неділю', 'понеділок', 'вівторок', 'середу', 'четвер', 'п’ятницю', 'суботу'], + 'genitive' => ['неділі', 'понеділка', 'вівторка', 'середи', 'четверга', 'п’ятниці', 'суботи'], + ]; + + $format = $format ?? ''; + $nounCase = preg_match('/(\[(В|в|У|у)\])\s+dddd/u', $format) + ? 'accusative' + : ( + preg_match('/\[?(?:минулої|наступної)?\s*\]\s+dddd/u', $format) + ? 'genitive' + : 'nominative' + ); + + return $words[$nounCase][$index] ?? null; + }, + 'weekdays_short' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + 'weekdays_min' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' i '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uk_UA.php b/vendor/nesbot/carbon/src/Carbon/Lang/uk_UA.php new file mode 100644 index 000000000..bd11d86e3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uk_UA.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/uk.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/unm.php b/vendor/nesbot/carbon/src/Carbon/Lang/unm.php new file mode 100644 index 000000000..d3f19f069 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/unm.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/unm_US.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php new file mode 100644 index 000000000..fa5c374e3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['enikwsi', 'chkwali', 'xamokhwite', 'kwetayoxe', 'tainipen', 'kichinipen', 'lainipen', 'winaminke', 'kichitahkok', 'puksit', 'wini', 'muxkotae'], + 'months_short' => ['eni', 'chk', 'xam', 'kwe', 'tai', 'nip', 'lai', 'win', 'tah', 'puk', 'kun', 'mux'], + 'weekdays' => ['kentuwei', 'manteke', 'tusteke', 'lelai', 'tasteke', 'pelaiteke', 'sateteke'], + 'weekdays_short' => ['ken', 'man', 'tus', 'lel', 'tas', 'pel', 'sat'], + 'weekdays_min' => ['ken', 'man', 'tus', 'lel', 'tas', 'pel', 'sat'], + 'day_of_first_week_of_year' => 1, + + // Too unreliable + /* + 'year' => ':count kaxtëne', + 'y' => ':count kaxtëne', + 'a_year' => ':count kaxtëne', + + 'month' => ':count piskewëni kishux', // less reliable + 'm' => ':count piskewëni kishux', // less reliable + 'a_month' => ':count piskewëni kishux', // less reliable + + 'week' => ':count kishku', // less reliable + 'w' => ':count kishku', // less reliable + 'a_week' => ':count kishku', // less reliable + + 'day' => ':count kishku', + 'd' => ':count kishku', + 'a_day' => ':count kishku', + + 'hour' => ':count xkuk', // less reliable + 'h' => ':count xkuk', // less reliable + 'a_hour' => ':count xkuk', // less reliable + + 'minute' => ':count txituwàk', // less reliable + 'min' => ':count txituwàk', // less reliable + 'a_minute' => ':count txituwàk', // less reliable + + 'second' => ':count nisha', // less reliable + 's' => ':count nisha', // less reliable + 'a_second' => ':count nisha', // less reliable + */ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ur.php b/vendor/nesbot/carbon/src/Carbon/Lang/ur.php new file mode 100644 index 000000000..dc16c2c35 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ur.php @@ -0,0 +1,94 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +$months = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', +]; + +$weekdays = [ + 'اتوار', + 'پیر', + 'منگل', + 'بدھ', + 'جمعرات', + 'جمعہ', + 'ہفتہ', +]; + +/* + * Authors: + * - Sawood Alam + * - Mehshan + * - Philippe Vaucher + * - Tsutomu Kuroda + * - tjku + * - Zaid Akram + * - Max Melentiev + * - hafezdivandari + * - Hossein Jabbari + * - nimamo + */ +return [ + 'year' => 'ایک سال|:count سال', + 'month' => 'ایک ماہ|:count ماہ', + 'week' => ':count ہفتے', + 'day' => 'ایک دن|:count دن', + 'hour' => 'ایک گھنٹہ|:count گھنٹے', + 'minute' => 'ایک منٹ|:count منٹ', + 'second' => 'چند سیکنڈ|:count سیکنڈ', + 'ago' => ':time قبل', + 'from_now' => ':time بعد', + 'after' => ':time بعد', + 'before' => ':time پہلے', + 'diff_now' => 'اب', + 'diff_today' => 'آج', + 'diff_today_regexp' => 'آج(?:\\s+بوقت)?', + 'diff_yesterday' => 'گزشتہ کل', + 'diff_yesterday_regexp' => 'گذشتہ(?:\\s+روز)?(?:\\s+بوقت)?', + 'diff_tomorrow' => 'آئندہ کل', + 'diff_tomorrow_regexp' => 'کل(?:\\s+بوقت)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd، D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[آج بوقت] LT', + 'nextDay' => '[کل بوقت] LT', + 'nextWeek' => 'dddd [بوقت] LT', + 'lastDay' => '[گذشتہ روز بوقت] LT', + 'lastWeek' => '[گذشتہ] dddd [بوقت] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['صبح', 'شام'], + 'months' => $months, + 'months_short' => $months, + 'weekdays' => $weekdays, + 'weekdays_short' => $weekdays, + 'weekdays_min' => $weekdays, + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => ['، ', ' اور '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php b/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php new file mode 100644 index 000000000..f81c84d39 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Red Hat, Pune bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/ur.php', [ + 'formats' => [ + 'L' => 'D/M/YY', + ], + 'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'weekdays' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'], + 'weekdays_short' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'], + 'weekdays_min' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php b/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php new file mode 100644 index 000000000..8cd593db6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/ur.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'weekdays' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'], + 'weekdays_short' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'], + 'weekdays_min' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ص', 'ش'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz.php new file mode 100644 index 000000000..61f3b64b3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz.php @@ -0,0 +1,85 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Dmitriy Shabanov + * - JD Isaacks + * - Inoyatulloh + * - Jamshid + * - aarkhipov + * - Philippe Vaucher + * - felixthemagnificent + * - Tsutomu Kuroda + * - tjku + * - Max Melentiev + * - Juanito Fatas + * - Alisher Ulugbekov + * - Ergashev Adizbek + */ +return [ + 'year' => ':count йил', + 'a_year' => '{1}бир йил|:count йил', + 'y' => ':count й', + 'month' => ':count ой', + 'a_month' => '{1}бир ой|:count ой', + 'm' => ':count о', + 'week' => ':count ҳафта', + 'a_week' => '{1}бир ҳафта|:count ҳафта', + 'w' => ':count ҳ', + 'day' => ':count кун', + 'a_day' => '{1}бир кун|:count кун', + 'd' => ':count к', + 'hour' => ':count соат', + 'a_hour' => '{1}бир соат|:count соат', + 'h' => ':count с', + 'minute' => ':count дақиқа', + 'a_minute' => '{1}бир дақиқа|:count дақиқа', + 'min' => ':count д', + 'second' => ':count сония', + 'a_second' => '{1}сония|:count сония', + 's' => ':count с', + 'ago' => ':time аввал', + 'from_now' => 'Якин :time ичида', + 'after' => ':timeдан кейин', + 'before' => ':time олдин', + 'diff_now' => 'ҳозир', + 'diff_today' => 'Бугун', + 'diff_today_regexp' => 'Бугун(?:\\s+соат)?', + 'diff_yesterday' => 'Кеча', + 'diff_yesterday_regexp' => 'Кеча(?:\\s+соат)?', + 'diff_tomorrow' => 'Эртага', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'D MMMM YYYY, dddd HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Бугун соат] LT [да]', + 'nextDay' => '[Эртага] LT [да]', + 'nextWeek' => 'dddd [куни соат] LT [да]', + 'lastDay' => '[Кеча соат] LT [да]', + 'lastWeek' => '[Утган] dddd [куни соат] LT [да]', + 'sameElse' => 'L', + ], + 'months' => ['январ', 'феврал', 'март', 'апрел', 'май', 'июн', 'июл', 'август', 'сентябр', 'октябр', 'ноябр', 'декабр'], + 'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'], + 'weekdays' => ['якшанба', 'душанба', 'сешанба', 'чоршанба', 'пайшанба', 'жума', 'шанба'], + 'weekdays_short' => ['якш', 'душ', 'сеш', 'чор', 'пай', 'жум', 'шан'], + 'weekdays_min' => ['як', 'ду', 'се', 'чо', 'па', 'жу', 'ша'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['эрталаб', 'кечаси'], + 'list' => [', ', ' ва '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz_Arab.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz_Arab.php new file mode 100644 index 000000000..ffb51319d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz_Arab.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/fa.php', [ + 'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'weekdays_short' => ['ی.', 'د.', 'س.', 'چ.', 'پ.', 'ج.', 'ش.'], + 'weekdays_min' => ['ی.', 'د.', 'س.', 'چ.', 'پ.', 'ج.', 'ش.'], + 'months' => ['جنوری', 'فبروری', 'مارچ', 'اپریل', 'می', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'], + 'months_short' => ['جنو', 'فبر', 'مار', 'اپر', 'می', 'جون', 'جول', 'اگس', 'سپت', 'اکت', 'نوم', 'دسم'], + 'first_day_of_week' => 6, + 'weekend' => [4, 5], + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-dd', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D HH:mm', + 'LLLL' => 'YYYY MMMM D, dddd HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz_Cyrl.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz_Cyrl.php new file mode 100644 index 000000000..89e997181 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz_Cyrl.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/uz.php', [ + 'formats' => [ + 'L' => 'DD/MM/yy', + 'LL' => 'D MMM, YYYY', + 'LLL' => 'D MMMM, YYYY HH:mm', + 'LLLL' => 'dddd, DD MMMM, YYYY HH:mm', + ], + 'meridiem' => ['ТО', 'ТК'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php new file mode 100644 index 000000000..ecceeaa3d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Josh Soref + * - Rasulbek + * - Ilyosjon Kamoldinov (ilyosjon09) + */ +return [ + 'year' => ':count yil', + 'a_year' => '{1}bir yil|:count yil', + 'y' => ':count y', + 'month' => ':count oy', + 'a_month' => '{1}bir oy|:count oy', + 'm' => ':count o', + 'week' => ':count hafta', + 'a_week' => '{1}bir hafta|:count hafta', + 'w' => ':count h', + 'day' => ':count kun', + 'a_day' => '{1}bir kun|:count kun', + 'd' => ':count k', + 'hour' => ':count soat', + 'a_hour' => '{1}bir soat|:count soat', + 'h' => ':count soat', + 'minute' => ':count daqiqa', + 'a_minute' => '{1}bir daqiqa|:count daqiqa', + 'min' => ':count d', + 'second' => ':count soniya', + 'a_second' => '{1}soniya|:count soniya', + 's' => ':count son.', + 'ago' => ':time avval', + 'from_now' => 'Yaqin :time ichida', + 'after' => ':timedan keyin', + 'before' => ':time oldin', + 'diff_yesterday' => 'Kecha', + 'diff_yesterday_regexp' => 'Kecha(?:\\s+soat)?', + 'diff_today' => 'Bugun', + 'diff_today_regexp' => 'Bugun(?:\\s+soat)?', + 'diff_tomorrow' => 'Ertaga', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'D MMMM YYYY, dddd HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Bugun soat] LT [da]', + 'nextDay' => '[Ertaga] LT [da]', + 'nextWeek' => 'dddd [kuni soat] LT [da]', + 'lastDay' => '[Kecha soat] LT [da]', + 'lastWeek' => '[O\'tgan] dddd [kuni soat] LT [da]', + 'sameElse' => 'L', + ], + 'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avgust', 'Sentabr', 'Oktabr', 'Noyabr', 'Dekabr'], + 'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'Iyun', 'Iyul', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'], + 'weekdays' => ['Yakshanba', 'Dushanba', 'Seshanba', 'Chorshanba', 'Payshanba', 'Juma', 'Shanba'], + 'weekdays_short' => ['Yak', 'Dush', 'Sesh', 'Chor', 'Pay', 'Jum', 'Shan'], + 'weekdays_min' => ['Ya', 'Du', 'Se', 'Cho', 'Pa', 'Ju', 'Sha'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' va '], + 'meridiem' => ['TO', 'TK'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php new file mode 100644 index 000000000..d41bfee27 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Bobir Ismailov Bobir Ismailov, Pablo Saratxaga, Mashrab Kuvatov bobir_is@yahoo.com, pablo@mandrakesoft.com, kmashrab@uni-bremen.de + */ +return array_replace_recursive(require __DIR__.'/uz_Latn.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avgust', 'Sentabr', 'Oktabr', 'Noyabr', 'Dekabr'], + 'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'Iyn', 'Iyl', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'], + 'weekdays' => ['Yakshanba', 'Dushanba', 'Seshanba', 'Chorshanba', 'Payshanba', 'Juma', 'Shanba'], + 'weekdays_short' => ['Yak', 'Du', 'Se', 'Cho', 'Pay', 'Ju', 'Sha'], + 'weekdays_min' => ['Yak', 'Du', 'Se', 'Cho', 'Pay', 'Ju', 'Sha'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php b/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php new file mode 100644 index 000000000..2fa967c94 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Mashrab Kuvatov Mashrab Kuvatov, Pablo Saratxaga kmashrab@uni-bremen.de, pablo@mandrakesoft.com + */ +return array_replace_recursive(require __DIR__.'/uz.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['Январ', 'Феврал', 'Март', 'Апрел', 'Май', 'Июн', 'Июл', 'Август', 'Сентябр', 'Октябр', 'Ноябр', 'Декабр'], + 'months_short' => ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], + 'weekdays' => ['Якшанба', 'Душанба', 'Сешанба', 'Чоршанба', 'Пайшанба', 'Жума', 'Шанба'], + 'weekdays_short' => ['Якш', 'Душ', 'Сеш', 'Чор', 'Пай', 'Жум', 'Шан'], + 'weekdays_min' => ['Якш', 'Душ', 'Сеш', 'Чор', 'Пай', 'Жум', 'Шан'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vai.php b/vendor/nesbot/carbon/src/Carbon/Lang/vai.php new file mode 100644 index 000000000..3c378dfba --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/vai.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], + 'weekdays_short' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], + 'weekdays_min' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], + 'months' => ['ꖨꖕ ꕪꕴ ꔞꔀꕮꕊ', 'ꕒꕡꖝꖕ', 'ꕾꖺ', 'ꖢꖕ', 'ꖑꕱ', 'ꖱꘋ', 'ꖱꕞꔤ', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋꕔꕿ ꕸꖃꗏ', 'ꖨꖕ ꕪꕴ ꗏꖺꕮꕊ'], + 'months_short' => ['ꖨꖕꔞ', 'ꕒꕡ', 'ꕾꖺ', 'ꖢꖕ', 'ꖑꕱ', 'ꖱꘋ', 'ꖱꕞ', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋ', 'ꖨꖕꗏ'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd, D MMMM YYYY h:mm a', + ], + + 'year' => ':count ꕀ', // less reliable + 'y' => ':count ꕀ', // less reliable + 'a_year' => ':count ꕀ', // less reliable + + 'second' => ':count ꗱꕞꕯꕊ', // less reliable + 's' => ':count ꗱꕞꕯꕊ', // less reliable + 'a_second' => ':count ꗱꕞꕯꕊ', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vai_Latn.php b/vendor/nesbot/carbon/src/Carbon/Lang/vai_Latn.php new file mode 100644 index 000000000..51e83cc5f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/vai_Latn.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'weekdays' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'], + 'weekdays_short' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'], + 'weekdays_min' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'], + 'months' => ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], + 'months_short' => ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'h:mm a', + 'LTS' => 'h:mm:ss a', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm a', + 'LLLL' => 'dddd, D MMMM YYYY h:mm a', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vai_Vaii.php b/vendor/nesbot/carbon/src/Carbon/Lang/vai_Vaii.php new file mode 100644 index 000000000..b4bb533f2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/vai_Vaii.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/vai.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ve.php b/vendor/nesbot/carbon/src/Carbon/Lang/ve.php new file mode 100644 index 000000000..7f10aeb95 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ve.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/ve_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php new file mode 100644 index 000000000..5eb2b9128 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Phando', 'Luhuhi', 'Ṱhafamuhwe', 'Lambamai', 'Shundunthule', 'Fulwi', 'Fulwana', 'Ṱhangule', 'Khubvumedzi', 'Tshimedzi', 'Ḽara', 'Nyendavhusiku'], + 'months_short' => ['Pha', 'Luh', 'Fam', 'Lam', 'Shu', 'Lwi', 'Lwa', 'Ngu', 'Khu', 'Tsh', 'Ḽar', 'Nye'], + 'weekdays' => ['Swondaha', 'Musumbuluwo', 'Ḽavhuvhili', 'Ḽavhuraru', 'Ḽavhuṋa', 'Ḽavhuṱanu', 'Mugivhela'], + 'weekdays_short' => ['Swo', 'Mus', 'Vhi', 'Rar', 'ṋa', 'Ṱan', 'Mug'], + 'weekdays_min' => ['Swo', 'Mus', 'Vhi', 'Rar', 'ṋa', 'Ṱan', 'Mug'], + 'day_of_first_week_of_year' => 1, + + // Too unreliable + /* + 'day' => ':count vhege', // less reliable + 'd' => ':count vhege', // less reliable + 'a_day' => ':count vhege', // less reliable + + 'hour' => ':count watshi', // less reliable + 'h' => ':count watshi', // less reliable + 'a_hour' => ':count watshi', // less reliable + + 'minute' => ':count watshi', // less reliable + 'min' => ':count watshi', // less reliable + 'a_minute' => ':count watshi', // less reliable + + 'second' => ':count Mu', // less reliable + 's' => ':count Mu', // less reliable + 'a_second' => ':count Mu', // less reliable + + 'week' => ':count vhege', + 'w' => ':count vhege', + 'a_week' => ':count vhege', + */ +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vi.php b/vendor/nesbot/carbon/src/Carbon/Lang/vi.php new file mode 100644 index 000000000..73e2852eb --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/vi.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Andre Polykanine A.K.A. Menelion Elensúlë + * - JD Isaacks + */ +return [ + 'year' => ':count năm', + 'a_year' => '{1}một năm|]1, Inf[:count năm', + 'y' => ':count năm', + 'month' => ':count tháng', + 'a_month' => '{1}một tháng|]1, Inf[:count tháng', + 'm' => ':count tháng', + 'week' => ':count tuần', + 'a_week' => '{1}một tuần|]1, Inf[:count tuần', + 'w' => ':count tuần', + 'day' => ':count ngày', + 'a_day' => '{1}một ngày|]1, Inf[:count ngày', + 'd' => ':count ngày', + 'hour' => ':count giờ', + 'a_hour' => '{1}một giờ|]1, Inf[:count giờ', + 'h' => ':count giờ', + 'minute' => ':count phút', + 'a_minute' => '{1}một phút|]1, Inf[:count phút', + 'min' => ':count phút', + 'second' => ':count giây', + 'a_second' => '{1}vài giây|]1, Inf[:count giây', + 's' => ':count giây', + 'ago' => ':time trước', + 'from_now' => ':time tới', + 'after' => ':time sau', + 'before' => ':time trước', + 'diff_now' => 'bây giờ', + 'diff_today' => 'Hôm', + 'diff_today_regexp' => 'Hôm(?:\\s+nay)?(?:\\s+lúc)?', + 'diff_yesterday' => 'Hôm qua', + 'diff_yesterday_regexp' => 'Hôm(?:\\s+qua)?(?:\\s+lúc)?', + 'diff_tomorrow' => 'Ngày mai', + 'diff_tomorrow_regexp' => 'Ngày(?:\\s+mai)?(?:\\s+lúc)?', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM [năm] YYYY', + 'LLL' => 'D MMMM [năm] YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM [năm] YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[Hôm nay lúc] LT', + 'nextDay' => '[Ngày mai lúc] LT', + 'nextWeek' => 'dddd [tuần tới lúc] LT', + 'lastDay' => '[Hôm qua lúc] LT', + 'lastWeek' => 'dddd [tuần trước lúc] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['SA', 'CH'], + 'months' => ['tháng 1', 'tháng 2', 'tháng 3', 'tháng 4', 'tháng 5', 'tháng 6', 'tháng 7', 'tháng 8', 'tháng 9', 'tháng 10', 'tháng 11', 'tháng 12'], + 'months_short' => ['Th01', 'Th02', 'Th03', 'Th04', 'Th05', 'Th06', 'Th07', 'Th08', 'Th09', 'Th10', 'Th11', 'Th12'], + 'weekdays' => ['chủ nhật', 'thứ hai', 'thứ ba', 'thứ tư', 'thứ năm', 'thứ sáu', 'thứ bảy'], + 'weekdays_short' => ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + 'weekdays_min' => ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => [', ', ' và '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vi_VN.php b/vendor/nesbot/carbon/src/Carbon/Lang/vi_VN.php new file mode 100644 index 000000000..18d898769 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/vi_VN.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/vi.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vo.php b/vendor/nesbot/carbon/src/Carbon/Lang/vo.php new file mode 100644 index 000000000..e273033fa --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/vo.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'], + 'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY-MM-dd', + 'LL' => 'YYYY MMM D', + 'LLL' => 'YYYY MMMM D HH:mm', + 'LLLL' => 'YYYY MMMM D, dddd HH:mm', + ], + + 'year' => ':count yel', + 'y' => ':count yel', + 'a_year' => ':count yel', + + 'month' => ':count mul', + 'm' => ':count mul', + 'a_month' => ':count mul', + + 'week' => ':count vig', + 'w' => ':count vig', + 'a_week' => ':count vig', + + 'day' => ':count del', + 'd' => ':count del', + 'a_day' => ':count del', + + 'hour' => ':count düp', + 'h' => ':count düp', + 'a_hour' => ':count düp', + + 'minute' => ':count minut', + 'min' => ':count minut', + 'a_minute' => ':count minut', + + 'second' => ':count sekun', + 's' => ':count sekun', + 'a_second' => ':count sekun', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/vun.php b/vendor/nesbot/carbon/src/Carbon/Lang/vun.php new file mode 100644 index 000000000..ed92e8e70 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/vun.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['utuko', 'kyiukonyi'], + 'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], + 'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wa.php b/vendor/nesbot/carbon/src/Carbon/Lang/wa.php new file mode 100644 index 000000000..f6dc4ccd3 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wa.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/wa_BE.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php b/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php new file mode 100644 index 000000000..a76d80d93 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Djan SACRE Pablo Saratxaga pablo@mandrakesoft.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['di djanvî', 'di fevrî', 'di måss', 'd’ avri', 'di may', 'di djun', 'di djulete', 'd’ awousse', 'di setimbe', 'd’ octôbe', 'di nôvimbe', 'di decimbe'], + 'months_short' => ['dja', 'fev', 'mås', 'avr', 'may', 'djn', 'djl', 'awo', 'set', 'oct', 'nôv', 'dec'], + 'weekdays' => ['dimegne', 'londi', 'mårdi', 'mierkidi', 'djudi', 'vénrdi', 'semdi'], + 'weekdays_short' => ['dim', 'lon', 'mår', 'mie', 'dju', 'vén', 'sem'], + 'weekdays_min' => ['dim', 'lon', 'mår', 'mie', 'dju', 'vén', 'sem'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'year' => ':count anêye', + 'y' => ':count anêye', + 'a_year' => ':count anêye', + + 'month' => ':count meûs', + 'm' => ':count meûs', + 'a_month' => ':count meûs', + + 'week' => ':count samwinne', + 'w' => ':count samwinne', + 'a_week' => ':count samwinne', + + 'day' => ':count djoû', + 'd' => ':count djoû', + 'a_day' => ':count djoû', + + 'hour' => ':count eure', + 'h' => ':count eure', + 'a_hour' => ':count eure', + + 'minute' => ':count munute', + 'min' => ':count munute', + 'a_minute' => ':count munute', + + 'second' => ':count Sigonde', + 's' => ':count Sigonde', + 'a_second' => ':count Sigonde', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wae.php b/vendor/nesbot/carbon/src/Carbon/Lang/wae.php new file mode 100644 index 000000000..bf57f23e6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wae.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/wae_CH.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php b/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php new file mode 100644 index 000000000..2af50b4b2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Walser Translation Team ml@translate-wae.ch + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-DD', + ], + 'months' => ['Jenner', 'Hornig', 'Märze', 'Abrille', 'Meije', 'Bráčet', 'Heiwet', 'Öigšte', 'Herbštmánet', 'Wímánet', 'Wintermánet', 'Chrištmánet'], + 'months_short' => ['Jen', 'Hor', 'Mär', 'Abr', 'Mei', 'Brá', 'Hei', 'Öig', 'Her', 'Wím', 'Win', 'Chr'], + 'weekdays' => ['Suntag', 'Mäntag', 'Zischtag', 'Mittwuch', 'Frontag', 'Fritag', 'Samschtag'], + 'weekdays_short' => ['Sun', 'Män', 'Zis', 'Mit', 'Fro', 'Fri', 'Sam'], + 'weekdays_min' => ['Sun', 'Män', 'Zis', 'Mit', 'Fro', 'Fri', 'Sam'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + + 'month' => ':count Maano', // less reliable + 'm' => ':count Maano', // less reliable + 'a_month' => ':count Maano', // less reliable +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wal.php b/vendor/nesbot/carbon/src/Carbon/Lang/wal.php new file mode 100644 index 000000000..e8ec40ff6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wal.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/wal_ET.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php b/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php new file mode 100644 index 000000000..a4e619a87 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Ge'ez Frontier Foundation locales@geez.org + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], + 'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'], + 'weekdays' => ['ወጋ', 'ሳይኖ', 'ማቆሳኛ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ'], + 'weekdays_short' => ['ወጋ ', 'ሳይኖ', 'ማቆሳ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ '], + 'weekdays_min' => ['ወጋ ', 'ሳይኖ', 'ማቆሳ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ '], + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['ማለዶ', 'ቃማ'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wo.php b/vendor/nesbot/carbon/src/Carbon/Lang/wo.php new file mode 100644 index 000000000..74b95df0a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wo.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/wo_SN.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php b/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php new file mode 100644 index 000000000..f8a85b3e4 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - The Debian Project Christian Perrier bubulle@debian.org + */ +return [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD.MM.YYYY', + 'LL' => 'MMMM DD, YYYY', + 'LLL' => 'DD MMM HH:mm', + 'LLLL' => 'MMMM DD, YYYY HH:mm', + ], + 'months' => ['sanwiy\'e', 'feebriy\'e', 'mars', 'awril', 'me', 'suwen', 'sulet', 'uut', 'septaambar', 'oktoobar', 'nowaambar', 'desaambar'], + 'months_short' => ['san', 'fee', 'mar', 'awr', 'me ', 'suw', 'sul', 'uut', 'sep', 'okt', 'now', 'des'], + 'weekdays' => ['dib\'eer', 'altine', 'talaata', 'allarba', 'alxames', 'ajjuma', 'gaawu'], + 'weekdays_short' => ['dib', 'alt', 'tal', 'all', 'alx', 'ajj', 'gaa'], + 'weekdays_min' => ['dib', 'alt', 'tal', 'all', 'alx', 'ajj', 'gaa'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'year' => ':count at', + 'month' => ':count wèr', + 'week' => ':count ayubés', + 'day' => ':count bés', + 'hour' => ':count waxtu', + 'minute' => ':count simili', + 'second' => ':count saa', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/xh.php b/vendor/nesbot/carbon/src/Carbon/Lang/xh.php new file mode 100644 index 000000000..e88c78d9d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/xh.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/xh_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php new file mode 100644 index 000000000..910f8311e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['eyoMqungu', 'eyoMdumba', 'eyoKwindla', 'uTshazimpuzi', 'uCanzibe', 'eyeSilimela', 'eyeKhala', 'eyeThupa', 'eyoMsintsi', 'eyeDwarha', 'eyeNkanga', 'eyoMnga'], + 'months_short' => ['Mqu', 'Mdu', 'Kwi', 'Tsh', 'Can', 'Sil', 'Kha', 'Thu', 'Msi', 'Dwa', 'Nka', 'Mng'], + 'weekdays' => ['iCawa', 'uMvulo', 'lwesiBini', 'lwesiThathu', 'ulweSine', 'lwesiHlanu', 'uMgqibelo'], + 'weekdays_short' => ['Caw', 'Mvu', 'Bin', 'Tha', 'Sin', 'Hla', 'Mgq'], + 'weekdays_min' => ['Caw', 'Mvu', 'Bin', 'Tha', 'Sin', 'Hla', 'Mgq'], + 'day_of_first_week_of_year' => 1, + + 'year' => ':count ihlobo', // less reliable + 'y' => ':count ihlobo', // less reliable + 'a_year' => ':count ihlobo', // less reliable + + 'hour' => ':count iwotshi', // less reliable + 'h' => ':count iwotshi', // less reliable + 'a_hour' => ':count iwotshi', // less reliable + + 'minute' => ':count ingqalelo', // less reliable + 'min' => ':count ingqalelo', // less reliable + 'a_minute' => ':count ingqalelo', // less reliable + + 'second' => ':count nceda', // less reliable + 's' => ':count nceda', // less reliable + 'a_second' => ':count nceda', // less reliable + + 'month' => ':count inyanga', + 'm' => ':count inyanga', + 'a_month' => ':count inyanga', + + 'week' => ':count veki', + 'w' => ':count veki', + 'a_week' => ':count veki', + + 'day' => ':count imini', + 'd' => ':count imini', + 'a_day' => ':count imini', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/xog.php b/vendor/nesbot/carbon/src/Carbon/Lang/xog.php new file mode 100644 index 000000000..eb55b4ab8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/xog.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['Munkyo', 'Eigulo'], + 'weekdays' => ['Sabiiti', 'Balaza', 'Owokubili', 'Owokusatu', 'Olokuna', 'Olokutaanu', 'Olomukaaga'], + 'weekdays_short' => ['Sabi', 'Bala', 'Kubi', 'Kusa', 'Kuna', 'Kuta', 'Muka'], + 'weekdays_min' => ['Sabi', 'Bala', 'Kubi', 'Kusa', 'Kuna', 'Kuta', 'Muka'], + 'months' => ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'], + 'months_short' => ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', 'Agu', 'Seb', 'Oki', 'Nov', 'Des'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yav.php b/vendor/nesbot/carbon/src/Carbon/Lang/yav.php new file mode 100644 index 000000000..225a20d8f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yav.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/en.php', [ + 'meridiem' => ['kiɛmɛ́ɛm', 'kisɛ́ndɛ'], + 'weekdays' => ['sɔ́ndiɛ', 'móndie', 'muányáŋmóndie', 'metúkpíápɛ', 'kúpélimetúkpiapɛ', 'feléte', 'séselé'], + 'weekdays_short' => ['sd', 'md', 'mw', 'et', 'kl', 'fl', 'ss'], + 'weekdays_min' => ['sd', 'md', 'mw', 'et', 'kl', 'fl', 'ss'], + 'months' => ['pikítíkítie, oólí ú kutúan', 'siɛyɛ́, oóli ú kándíɛ', 'ɔnsúmbɔl, oóli ú kátátúɛ', 'mesiŋ, oóli ú kénie', 'ensil, oóli ú kátánuɛ', 'ɔsɔn', 'efute', 'pisuyú', 'imɛŋ i puɔs', 'imɛŋ i putúk,oóli ú kátíɛ', 'makandikɛ', 'pilɔndɔ́'], + 'months_short' => ['o.1', 'o.2', 'o.3', 'o.4', 'o.5', 'o.6', 'o.7', 'o.8', 'o.9', 'o.10', 'o.11', 'o.12'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'D/M/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yi.php b/vendor/nesbot/carbon/src/Carbon/Lang/yi.php new file mode 100644 index 000000000..8f3202294 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yi.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/yi_US.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php b/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php new file mode 100644 index 000000000..f764d36f6 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - http://www.uyip.org/ Pablo Saratxaga pablo@mandrakesoft.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['יאַנואַר', 'פֿעברואַר', 'מערץ', 'אַפּריל', 'מיי', 'יוני', 'יולי', 'אויגוסט', 'סעפּטעמבער', 'אקטאבער', 'נאוועמבער', 'דעצעמבער'], + 'months_short' => ['יאַנ', 'פֿעב', 'מאַר', 'אַפּר', 'מײַ ', 'יונ', 'יול', 'אױג', 'סעפּ', 'אָקט', 'נאָװ', 'דעצ'], + 'weekdays' => ['זונטיק', 'מאָנטיק', 'דינסטיק', 'מיטװאָך', 'דאָנערשטיק', 'פֿרײַטיק', 'שבת'], + 'weekdays_short' => ['זונ\'', 'מאָנ\'', 'דינ\'', 'מיט\'', 'דאָנ\'', 'פֿרײַ\'', 'שבת'], + 'weekdays_min' => ['זונ\'', 'מאָנ\'', 'דינ\'', 'מיט\'', 'דאָנ\'', 'פֿרײַ\'', 'שבת'], + 'day_of_first_week_of_year' => 1, + + 'year' => ':count יאר', + 'y' => ':count יאר', + 'a_year' => ':count יאר', + + 'month' => ':count חודש', + 'm' => ':count חודש', + 'a_month' => ':count חודש', + + 'week' => ':count וואָך', + 'w' => ':count וואָך', + 'a_week' => ':count וואָך', + + 'day' => ':count טאָג', + 'd' => ':count טאָג', + 'a_day' => ':count טאָג', + + 'hour' => ':count שעה', + 'h' => ':count שעה', + 'a_hour' => ':count שעה', + + 'minute' => ':count מינוט', + 'min' => ':count מינוט', + 'a_minute' => ':count מינוט', + + 'second' => ':count סעקונדע', + 's' => ':count סעקונדע', + 'a_second' => ':count סעקונדע', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yo.php b/vendor/nesbot/carbon/src/Carbon/Lang/yo.php new file mode 100644 index 000000000..0a829810a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yo.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - François B + * - Atolagbe Abisoye + */ +return [ + 'year' => 'ọdún :count', + 'a_year' => '{1}ọdún kan|ọdún :count', + 'month' => 'osù :count', + 'a_month' => '{1}osù kan|osù :count', + 'week' => 'ọsẹ :count', + 'a_week' => '{1}ọsẹ kan|ọsẹ :count', + 'day' => 'ọjọ́ :count', + 'a_day' => '{1}ọjọ́ kan|ọjọ́ :count', + 'hour' => 'wákati :count', + 'a_hour' => '{1}wákati kan|wákati :count', + 'minute' => 'ìsẹjú :count', + 'a_minute' => '{1}ìsẹjú kan|ìsẹjú :count', + 'second' => 'iaayá :count', + 'a_second' => '{1}ìsẹjú aayá die|aayá :count', + 'ago' => ':time kọjá', + 'from_now' => 'ní :time', + 'diff_yesterday' => 'Àna', + 'diff_yesterday_regexp' => 'Àna(?:\\s+ni)?', + 'diff_today' => 'Ònì', + 'diff_today_regexp' => 'Ònì(?:\\s+ni)?', + 'diff_tomorrow' => 'Ọ̀la', + 'diff_tomorrow_regexp' => 'Ọ̀la(?:\\s+ni)?', + 'formats' => [ + 'LT' => 'h:mm A', + 'LTS' => 'h:mm:ss A', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY h:mm A', + 'LLLL' => 'dddd, D MMMM YYYY h:mm A', + ], + 'calendar' => [ + 'sameDay' => '[Ònì ni] LT', + 'nextDay' => '[Ọ̀la ni] LT', + 'nextWeek' => 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT', + 'lastDay' => '[Àna ni] LT', + 'lastWeek' => 'dddd [Ọsẹ̀ tólọ́] [ni] LT', + 'sameElse' => 'L', + ], + 'ordinal' => 'ọjọ́ :number', + 'months' => ['Sẹ́rẹ́', 'Èrèlè', 'Ẹrẹ̀nà', 'Ìgbé', 'Èbibi', 'Òkùdu', 'Agẹmo', 'Ògún', 'Owewe', 'Ọ̀wàrà', 'Bélú', 'Ọ̀pẹ̀̀'], + 'months_short' => ['Sẹ́r', 'Èrl', 'Ẹrn', 'Ìgb', 'Èbi', 'Òkù', 'Agẹ', 'Ògú', 'Owe', 'Ọ̀wà', 'Bél', 'Ọ̀pẹ̀̀'], + 'weekdays' => ['Àìkú', 'Ajé', 'Ìsẹ́gun', 'Ọjọ́rú', 'Ọjọ́bọ', 'Ẹtì', 'Àbámẹ́ta'], + 'weekdays_short' => ['Àìk', 'Ajé', 'Ìsẹ́', 'Ọjr', 'Ọjb', 'Ẹtì', 'Àbá'], + 'weekdays_min' => ['Àì', 'Aj', 'Ìs', 'Ọr', 'Ọb', 'Ẹt', 'Àb'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'meridiem' => ['Àárọ̀', 'Ọ̀sán'], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yo_BJ.php b/vendor/nesbot/carbon/src/Carbon/Lang/yo_BJ.php new file mode 100644 index 000000000..12b9e815c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yo_BJ.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array_replace_recursive(require __DIR__.'/yo.php', [ + 'meridiem' => ['Àárɔ̀', 'Ɔ̀sán'], + 'weekdays' => ['Ɔjɔ́ Àìkú', 'Ɔjɔ́ Ajé', 'Ɔjɔ́ Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɔjɔ́ Ɛtì', 'Ɔjɔ́ Àbámɛ́ta'], + 'weekdays_short' => ['Àìkú', 'Ajé', 'Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɛtì', 'Àbámɛ́ta'], + 'weekdays_min' => ['Àìkú', 'Ajé', 'Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɛtì', 'Àbámɛ́ta'], + 'months' => ['Oshù Shɛ́rɛ́', 'Oshù Èrèlè', 'Oshù Ɛrɛ̀nà', 'Oshù Ìgbé', 'Oshù Ɛ̀bibi', 'Oshù Òkúdu', 'Oshù Agɛmɔ', 'Oshù Ògún', 'Oshù Owewe', 'Oshù Ɔ̀wàrà', 'Oshù Bélú', 'Oshù Ɔ̀pɛ̀'], + 'months_short' => ['Shɛ́rɛ́', 'Èrèlè', 'Ɛrɛ̀nà', 'Ìgbé', 'Ɛ̀bibi', 'Òkúdu', 'Agɛmɔ', 'Ògún', 'Owewe', 'Ɔ̀wàrà', 'Bélú', 'Ɔ̀pɛ̀'], + 'first_day_of_week' => 1, + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd, D MMMM YYYY HH:mm', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yo_NG.php b/vendor/nesbot/carbon/src/Carbon/Lang/yo_NG.php new file mode 100644 index 000000000..6860bc1a9 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yo_NG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/yo.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yue.php b/vendor/nesbot/carbon/src/Carbon/Lang/yue.php new file mode 100644 index 000000000..ce233a4f8 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yue.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/yue_HK.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php b/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php new file mode 100644 index 000000000..4e7d5c368 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/zh_HK.php', [ + 'formats' => [ + 'L' => 'YYYY年MM月DD日 dddd', + ], + 'months' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], + 'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], + 'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], + 'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'], + 'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'], + 'first_day_of_week' => 0, + 'day_of_first_week_of_year' => 1, + 'meridiem' => ['上午', '下午'], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hans.php b/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hans.php new file mode 100644 index 000000000..db913caae --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hans.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hans.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hant.php b/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hant.php new file mode 100644 index 000000000..e2526f131 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hant.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hant.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php b/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php new file mode 100644 index 000000000..8efdc9378 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/yuw_PG.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php b/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php new file mode 100644 index 000000000..b99ad2e8e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Information from native speakers Hannah Sarvasy nungon.localization@gmail.com + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YY', + ], + 'months' => ['jenuari', 'febuari', 'mas', 'epril', 'mei', 'jun', 'julai', 'ögus', 'septemba', 'öktoba', 'nöwemba', 'diksemba'], + 'months_short' => ['jen', 'feb', 'mas', 'epr', 'mei', 'jun', 'jul', 'ögu', 'sep', 'ökt', 'nöw', 'dis'], + 'weekdays' => ['sönda', 'mönda', 'sinda', 'mitiwö', 'sogipbono', 'nenggo', 'söndanggie'], + 'weekdays_short' => ['sön', 'mön', 'sin', 'mit', 'soi', 'nen', 'sab'], + 'weekdays_min' => ['sön', 'mön', 'sin', 'mit', 'soi', 'nen', 'sab'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php b/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php new file mode 100644 index 000000000..4d2c3b376 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - BAKTETE Miloud + */ +return [ + 'year' => ':count ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ', + 'a_year' => 'ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ', + 'y' => ':count ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ', + 'month' => ':count ⵡⴰⵢⵢⵓⵔ|:count ⴰⵢⵢⵓⵔⵏ', + 'a_month' => 'ⵉⴷⵊ ⵡⴰⵢⵢⵓⵔ|:count ⴰⵢⵢⵓⵔⵏ', + 'm' => ':count ⴰⵢⵢⵓⵔⵏ', + 'week' => ':count ⵉⵎⴰⵍⴰⵙⵙ|:count ⵉⵎⴰⵍⴰⵙⵙⵏ', + 'a_week' => 'ⵉⵛⵜ ⵉⵎⴰⵍⴰⵙⵙ|:count ⵉⵎⴰⵍⴰⵙⵙⵏ', + 'w' => ':count ⵉⵎⴰⵍⴰⵙⵙ.', + 'day' => ':count ⵡⴰⵙⵙ|:count ⵓⵙⵙⴰⵏ', + 'a_day' => 'ⵉⴷⵊ ⵡⴰⵙⵙ|:count ⵓⵙⵙⴰⵏ', + 'd' => ':count ⵓ', + 'hour' => ':count ⵜⵙⵔⴰⴳⵜ|:count ⵜⵉⵙⵔⴰⴳⵉⵏ', + 'a_hour' => 'ⵉⵛⵜ ⵜⵙⵔⴰⴳⵜ|:count ⵜⵉⵙⵔⴰⴳⵉⵏ', + 'h' => ':count ⵜ', + 'minute' => ':count ⵜⵓⵙⴷⵉⴷⵜ|:count ⵜⵓⵙⴷⵉⴷⵉⵏ', + 'a_minute' => 'ⵉⵛⵜ ⵜⵓⵙⴷⵉⴷⵜ|:count ⵜⵓⵙⴷⵉⴷⵉⵏ', + 'min' => ':count ⵜⵓⵙ', + 'second' => ':count ⵜⵙⵉⵏⵜ|:count ⵜⵉⵙⵉⵏⴰ', + 'a_second' => 'ⴽⵔⴰ ⵜⵉⵙⵉⵏⴰ|:count ⵜⵉⵙⵉⵏⴰ', + 's' => ':count ⵜ', + 'ago' => 'ⵣⴳ :time', + 'from_now' => 'ⴷⴳ :time', + 'after' => ':time ⴰⵡⴰⵔ', + 'before' => ':time ⴷⴰⵜ', + 'diff_now' => 'ⴰⴷⵡⴰⵍⵉ', + 'diff_today' => 'ⴰⵙⵙ', + 'diff_today_regexp' => 'ⴰⵙⵙ(?:\\s+ⴰ/ⴰⴷ)?(?:\\s+ⴳ)?', + 'diff_yesterday' => 'ⴰⵙⵙⵏⵏⴰⵟ', + 'diff_yesterday_regexp' => 'ⴰⵙⵙⵏⵏⴰⵟ(?:\\s+ⴳ)?', + 'diff_tomorrow' => 'ⴰⵙⴽⴽⴰ', + 'diff_tomorrow_regexp' => 'ⴰⵙⴽⴽⴰ(?:\\s+ⴳ)?', + 'diff_before_yesterday' => 'ⴼⵔ ⵉⴹⵏⵏⴰⵟ', + 'diff_after_tomorrow' => 'ⵏⴰⴼ ⵓⵙⴽⴽⴰ', + 'period_recurrences' => ':count ⵜⵉⴽⴽⴰⵍ', + 'period_interval' => 'ⴽⵓ :interval', + 'period_start_date' => 'ⴳ :date', + 'period_end_date' => 'ⵉ :date', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'DD/MM/YYYY', + 'LL' => 'D MMMM YYYY', + 'LLL' => 'D MMMM YYYY HH:mm', + 'LLLL' => 'dddd D MMMM YYYY HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[ⴰⵙⵙ ⴰ/ⴰⴷ ⴳ] LT', + 'nextDay' => '[ⴰⵙⴽⴽⴰ ⴳ] LT', + 'nextWeek' => 'dddd [ⴳ] LT', + 'lastDay' => '[ⴰⵙⵙⵏⵏⴰⵟ ⴳ] LT', + 'lastWeek' => 'dddd [ⴰⵎⴳⴳⴰⵔⵓ ⴳ] LT', + 'sameElse' => 'L', + ], + 'meridiem' => ['ⵜⵉⴼⴰⵡⵜ', 'ⵜⴰⴷⴳⴳⵯⴰⵜ'], + 'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⴰⵏⴱⵉⵔ'], + 'months_short' => ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', 'ⵎⴰⵢ', 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', 'ⴽⵟⵓ', 'ⵏⵓⵡ', 'ⴷⵓⵊ'], + 'weekdays' => ['ⵓⵙⴰⵎⴰⵙ', 'ⵡⴰⵢⵏⴰⵙ', 'ⵓⵙⵉⵏⴰⵙ', 'ⵡⴰⴽⵕⴰⵙ', 'ⵓⴽⵡⴰⵙ', 'ⵓⵙⵉⵎⵡⴰⵙ', 'ⵓⵙⵉⴹⵢⴰⵙ'], + 'weekdays_short' => ['ⵓⵙⴰ', 'ⵡⴰⵢ', 'ⵓⵙⵉ', 'ⵡⴰⴽ', 'ⵓⴽⵡ', 'ⵓⵙⵉⵎ', 'ⵓⵙⵉⴹ'], + 'weekdays_min' => ['ⵓⵙⴰ', 'ⵡⴰⵢ', 'ⵓⵙⵉ', 'ⵡⴰⴽ', 'ⵓⴽⵡ', 'ⵓⵙⵉⵎ', 'ⵓⵙⵉⴹ'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 1, + 'list' => [', ', ' ⴷ '], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh.php new file mode 100644 index 000000000..1187c3d77 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - xuri + * - sycuato + * - bokideckonja + * - Luo Ning + * - William Yang (williamyang233) + */ +return array_merge(require __DIR__.'/zh_Hans.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY/MM/DD', + 'LL' => 'YYYY年M月D日', + 'LLL' => 'YYYY年M月D日 A h点mm分', + 'LLLL' => 'YYYY年M月D日dddd A h点mm分', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php new file mode 100644 index 000000000..9c05d5a8d --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - monkeycon + * - François B + * - Jason Katz-Brown + * - Serhan Apaydın + * - Matt Johnson + * - JD Isaacks + * - Zeno Zeng + * - Chris Hemp + * - shankesgk2 + */ +return array_merge(require __DIR__.'/zh.php', [ + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY/MM/DD', + 'LL' => 'YYYY年M月D日', + 'LLL' => 'YYYY年M月D日Ah点mm分', + 'LLLL' => 'YYYY年M月D日ddddAh点mm分', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_HK.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_HK.php new file mode 100644 index 000000000..c3ee9fcb2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_HK.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hant_HK.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php new file mode 100644 index 000000000..9b91785e1 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php @@ -0,0 +1,109 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - monkeycon + * - François B + * - Jason Katz-Brown + * - Konstantin Konev + * - Chris Lam + * - Serhan Apaydın + * - Gary Lo + * - JD Isaacks + * - Chris Hemp + * - shankesgk2 + * - Daniel Cheung (danvim) + */ +return [ + 'year' => ':count:optional-space年', + 'y' => ':count:optional-space年', + 'month' => ':count:optional-space个月', + 'm' => ':count:optional-space个月', + 'week' => ':count:optional-space周', + 'w' => ':count:optional-space周', + 'day' => ':count:optional-space天', + 'd' => ':count:optional-space天', + 'hour' => ':count:optional-space小时', + 'h' => ':count:optional-space小时', + 'minute' => ':count:optional-space分钟', + 'min' => ':count:optional-space分钟', + 'second' => ':count:optional-space秒', + 'a_second' => '{1}几秒|]1,Inf[:count:optional-space秒', + 's' => ':count:optional-space秒', + 'ago' => ':time前', + 'from_now' => ':time后', + 'after' => ':time后', + 'before' => ':time前', + 'diff_now' => '现在', + 'diff_today' => '今天', + 'diff_yesterday' => '昨天', + 'diff_tomorrow' => '明天', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY/MM/DD', + 'LL' => 'YYYY年M月D日', + 'LLL' => 'YYYY年M月D日 HH:mm', + 'LLLL' => 'YYYY年M月D日dddd HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[今天]LT', + 'nextDay' => '[明天]LT', + 'nextWeek' => '[下]ddddLT', + 'lastDay' => '[昨天]LT', + 'lastWeek' => '[上]ddddLT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'd': + case 'D': + case 'DDD': + return $number.'日'; + case 'M': + return $number.'月'; + case 'w': + case 'W': + return $number.'周'; + default: + return $number; + } + }, + 'meridiem' => function ($hour, $minute) { + $time = $hour * 100 + $minute; + if ($time < 600) { + return '凌晨'; + } + if ($time < 900) { + return '早上'; + } + if ($time < 1130) { + return '上午'; + } + if ($time < 1230) { + return '中午'; + } + if ($time < 1800) { + return '下午'; + } + + return '晚上'; + }, + 'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], + 'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], + 'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], + 'weekdays_short' => ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], + 'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => '', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_HK.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_HK.php new file mode 100644 index 000000000..db913caae --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_HK.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hans.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_MO.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_MO.php new file mode 100644 index 000000000..db913caae --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_MO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hans.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_SG.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_SG.php new file mode 100644 index 000000000..db913caae --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_SG.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hans.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php new file mode 100644 index 000000000..a27b61093 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php @@ -0,0 +1,111 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Adam + * - monkeycon + * - François B + * - Jason Katz-Brown + * - Chris Lam + * - Serhan Apaydın + * - Gary Lo + * - JD Isaacks + * - Chris Hemp + * - Eddie + * - KID + * - shankesgk2 + * - Daniel Cheung (danvim) + */ +return [ + 'year' => ':count:optional-space年', + 'y' => ':count:optional-space年', + 'month' => ':count:optional-space個月', + 'm' => ':count:optional-space月', + 'week' => ':count:optional-space週', + 'w' => ':count:optional-space週', + 'day' => ':count:optional-space天', + 'd' => ':count:optional-space天', + 'hour' => ':count:optional-space小時', + 'h' => ':count:optional-space小時', + 'minute' => ':count:optional-space分鐘', + 'min' => ':count:optional-space分鐘', + 'second' => ':count:optional-space秒', + 'a_second' => '{1}幾秒|]1,Inf[:count:optional-space秒', + 's' => ':count:optional-space秒', + 'ago' => ':time前', + 'from_now' => ':time後', + 'after' => ':time後', + 'before' => ':time前', + 'diff_now' => '現在', + 'diff_today' => '今天', + 'diff_yesterday' => '昨天', + 'diff_tomorrow' => '明天', + 'formats' => [ + 'LT' => 'HH:mm', + 'LTS' => 'HH:mm:ss', + 'L' => 'YYYY/MM/DD', + 'LL' => 'YYYY年M月D日', + 'LLL' => 'YYYY年M月D日 HH:mm', + 'LLLL' => 'YYYY年M月D日dddd HH:mm', + ], + 'calendar' => [ + 'sameDay' => '[今天] LT', + 'nextDay' => '[明天] LT', + 'nextWeek' => '[下]dddd LT', + 'lastDay' => '[昨天] LT', + 'lastWeek' => '[上]dddd LT', + 'sameElse' => 'L', + ], + 'ordinal' => function ($number, $period) { + switch ($period) { + case 'd': + case 'D': + case 'DDD': + return $number.'日'; + case 'M': + return $number.'月'; + case 'w': + case 'W': + return $number.'周'; + default: + return $number; + } + }, + 'meridiem' => function ($hour, $minute) { + $time = $hour * 100 + $minute; + if ($time < 600) { + return '凌晨'; + } + if ($time < 900) { + return '早上'; + } + if ($time < 1130) { + return '上午'; + } + if ($time < 1230) { + return '中午'; + } + if ($time < 1800) { + return '下午'; + } + + return '晚上'; + }, + 'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], + 'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], + 'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], + 'weekdays_short' => ['週日', '週一', '週二', '週三', '週四', '週五', '週六'], + 'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'], + 'first_day_of_week' => 1, + 'day_of_first_week_of_year' => 4, + 'list' => '', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_HK.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_HK.php new file mode 100644 index 000000000..e2526f131 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_HK.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hant.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_MO.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_MO.php new file mode 100644 index 000000000..e2526f131 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_MO.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hant.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_TW.php new file mode 100644 index 000000000..e2526f131 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_TW.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hant.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_MO.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_MO.php new file mode 100644 index 000000000..1c86d477f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_MO.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - tarunvelli + * - Eddie + * - KID + * - shankesgk2 + */ +return array_replace_recursive(require __DIR__.'/zh_Hant.php', [ + 'after' => ':time后', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php new file mode 100644 index 000000000..c451a562c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/zh.php', [ + 'formats' => [ + 'L' => 'YYYY年MM月DD日', + ], + 'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], + 'months_short' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], + 'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], + 'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'], + 'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'], + 'day_of_first_week_of_year' => 1, +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php new file mode 100644 index 000000000..c6789ed2f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php @@ -0,0 +1,12 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return require __DIR__.'/zh_Hant_TW.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php b/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php new file mode 100644 index 000000000..b0d9ba862 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - IBM Globalization Center of Competency, Yamato Software Laboratory bug-glibc-locales@gnu.org + */ +return array_replace_recursive(require __DIR__.'/zh.php', [ + 'formats' => [ + 'L' => 'YYYY-MM-DD', + ], +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zu.php b/vendor/nesbot/carbon/src/Carbon/Lang/zu.php new file mode 100644 index 000000000..9a6cce02c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zu.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Unknown default region, use the first alphabetically. + */ +return require __DIR__.'/zu_ZA.php'; diff --git a/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php b/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php new file mode 100644 index 000000000..6bfb72f0a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Authors: + * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za + */ +return array_replace_recursive(require __DIR__.'/en.php', [ + 'formats' => [ + 'L' => 'DD/MM/YYYY', + ], + 'months' => ['Januwari', 'Februwari', 'Mashi', 'Ephreli', 'Meyi', 'Juni', 'Julayi', 'Agasti', 'Septhemba', 'Okthoba', 'Novemba', 'Disemba'], + 'months_short' => ['Jan', 'Feb', 'Mas', 'Eph', 'Mey', 'Jun', 'Jul', 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'], + 'weekdays' => ['iSonto', 'uMsombuluko', 'uLwesibili', 'uLwesithathu', 'uLwesine', 'uLwesihlanu', 'uMgqibelo'], + 'weekdays_short' => ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'], + 'weekdays_min' => ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'], + 'day_of_first_week_of_year' => 1, + + 'year' => 'kweminyaka engu-:count', + 'y' => 'kweminyaka engu-:count', + 'a_year' => 'kweminyaka engu-:count', + + 'month' => 'izinyanga ezingu-:count', + 'm' => 'izinyanga ezingu-:count', + 'a_month' => 'izinyanga ezingu-:count', + + 'week' => 'lwamasonto angu-:count', + 'w' => 'lwamasonto angu-:count', + 'a_week' => 'lwamasonto angu-:count', + + 'day' => 'ezingaba ngu-:count', + 'd' => 'ezingaba ngu-:count', + 'a_day' => 'ezingaba ngu-:count', + + 'hour' => 'amahora angu-:count', + 'h' => 'amahora angu-:count', + 'a_hour' => 'amahora angu-:count', + + 'minute' => 'ngemizuzu engu-:count', + 'min' => 'ngemizuzu engu-:count', + 'a_minute' => 'ngemizuzu engu-:count', + + 'second' => 'imizuzwana engu-:count', + 's' => 'imizuzwana engu-:count', + 'a_second' => 'imizuzwana engu-:count', +]); diff --git a/vendor/nesbot/carbon/src/Carbon/Language.php b/vendor/nesbot/carbon/src/Carbon/Language.php new file mode 100644 index 000000000..1fb5bafdc --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Language.php @@ -0,0 +1,342 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use JsonSerializable; +use ReturnTypeWillChange; + +class Language implements JsonSerializable +{ + /** + * @var array + */ + protected static $languagesNames; + + /** + * @var array + */ + protected static $regionsNames; + + /** + * @var string + */ + protected $id; + + /** + * @var string + */ + protected $code; + + /** + * @var string|null + */ + protected $variant; + + /** + * @var string|null + */ + protected $region; + + /** + * @var array + */ + protected $names; + + /** + * @var string + */ + protected $isoName; + + /** + * @var string + */ + protected $nativeName; + + public function __construct(string $id) + { + $this->id = str_replace('-', '_', $id); + $parts = explode('_', $this->id); + $this->code = $parts[0]; + + if (isset($parts[1])) { + if (!preg_match('/^[A-Z]+$/', $parts[1])) { + $this->variant = $parts[1]; + $parts[1] = $parts[2] ?? null; + } + if ($parts[1]) { + $this->region = $parts[1]; + } + } + } + + /** + * Get the list of the known languages. + * + * @return array + */ + public static function all() + { + if (!static::$languagesNames) { + static::$languagesNames = require __DIR__.'/List/languages.php'; + } + + return static::$languagesNames; + } + + /** + * Get the list of the known regions. + * + * @return array + */ + public static function regions() + { + if (!static::$regionsNames) { + static::$regionsNames = require __DIR__.'/List/regions.php'; + } + + return static::$regionsNames; + } + + /** + * Get both isoName and nativeName as an array. + * + * @return array + */ + public function getNames(): array + { + if (!$this->names) { + $this->names = static::all()[$this->code] ?? [ + 'isoName' => $this->code, + 'nativeName' => $this->code, + ]; + } + + return $this->names; + } + + /** + * Returns the original locale ID. + * + * @return string + */ + public function getId(): string + { + return $this->id; + } + + /** + * Returns the code of the locale "en"/"fr". + * + * @return string + */ + public function getCode(): string + { + return $this->code; + } + + /** + * Returns the variant code such as cyrl/latn. + * + * @return string|null + */ + public function getVariant(): ?string + { + return $this->variant; + } + + /** + * Returns the variant such as Cyrillic/Latin. + * + * @return string|null + */ + public function getVariantName(): ?string + { + if ($this->variant === 'Latn') { + return 'Latin'; + } + + if ($this->variant === 'Cyrl') { + return 'Cyrillic'; + } + + return $this->variant; + } + + /** + * Returns the region part of the locale. + * + * @return string|null + */ + public function getRegion(): ?string + { + return $this->region; + } + + /** + * Returns the region name for the current language. + * + * @return string|null + */ + public function getRegionName(): ?string + { + return $this->region ? (static::regions()[$this->region] ?? $this->region) : null; + } + + /** + * Returns the long ISO language name. + * + * @return string + */ + public function getFullIsoName(): string + { + if (!$this->isoName) { + $this->isoName = $this->getNames()['isoName']; + } + + return $this->isoName; + } + + /** + * Set the ISO language name. + * + * @param string $isoName + */ + public function setIsoName(string $isoName): self + { + $this->isoName = $isoName; + + return $this; + } + + /** + * Return the full name of the language in this language. + * + * @return string + */ + public function getFullNativeName(): string + { + if (!$this->nativeName) { + $this->nativeName = $this->getNames()['nativeName']; + } + + return $this->nativeName; + } + + /** + * Set the name of the language in this language. + * + * @param string $nativeName + */ + public function setNativeName(string $nativeName): self + { + $this->nativeName = $nativeName; + + return $this; + } + + /** + * Returns the short ISO language name. + * + * @return string + */ + public function getIsoName(): string + { + $name = $this->getFullIsoName(); + + return trim(strstr($name, ',', true) ?: $name); + } + + /** + * Get the short name of the language in this language. + * + * @return string + */ + public function getNativeName(): string + { + $name = $this->getFullNativeName(); + + return trim(strstr($name, ',', true) ?: $name); + } + + /** + * Get a string with short ISO name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + public function getIsoDescription() + { + $region = $this->getRegionName(); + $variant = $this->getVariantName(); + + return $this->getIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : ''); + } + + /** + * Get a string with short native name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + public function getNativeDescription() + { + $region = $this->getRegionName(); + $variant = $this->getVariantName(); + + return $this->getNativeName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : ''); + } + + /** + * Get a string with long ISO name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + public function getFullIsoDescription() + { + $region = $this->getRegionName(); + $variant = $this->getVariantName(); + + return $this->getFullIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : ''); + } + + /** + * Get a string with long native name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + public function getFullNativeDescription() + { + $region = $this->getRegionName(); + $variant = $this->getVariantName(); + + return $this->getFullNativeName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : ''); + } + + /** + * Returns the original locale ID. + * + * @return string + */ + public function __toString() + { + return $this->getId(); + } + + /** + * Get a string with short ISO name, region in parentheses if applicable, variant in parentheses if applicable. + * + * @return string + */ + #[ReturnTypeWillChange] + public function jsonSerialize() + { + return $this->getIsoDescription(); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php b/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php new file mode 100644 index 000000000..84e241e3e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php @@ -0,0 +1,127 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Laravel; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterval; +use Carbon\CarbonPeriod; +use Illuminate\Contracts\Events\Dispatcher as DispatcherContract; +use Illuminate\Events\Dispatcher; +use Illuminate\Events\EventDispatcher; +use Illuminate\Support\Carbon as IlluminateCarbon; +use Illuminate\Support\Facades\Date; +use Throwable; + +class ServiceProvider extends \Illuminate\Support\ServiceProvider +{ + /** @var callable|null */ + protected $appGetter = null; + + /** @var callable|null */ + protected $localeGetter = null; + + public function setAppGetter(?callable $appGetter): void + { + $this->appGetter = $appGetter; + } + + public function setLocaleGetter(?callable $localeGetter): void + { + $this->localeGetter = $localeGetter; + } + + public function boot() + { + $this->updateLocale(); + + if (!$this->app->bound('events')) { + return; + } + + $service = $this; + $events = $this->app['events']; + + if ($this->isEventDispatcher($events)) { + $events->listen(class_exists('Illuminate\Foundation\Events\LocaleUpdated') ? 'Illuminate\Foundation\Events\LocaleUpdated' : 'locale.changed', function () use ($service) { + $service->updateLocale(); + }); + } + } + + public function updateLocale() + { + $locale = $this->getLocale(); + + if ($locale === null) { + return; + } + + Carbon::setLocale($locale); + CarbonImmutable::setLocale($locale); + CarbonPeriod::setLocale($locale); + CarbonInterval::setLocale($locale); + + if (class_exists(IlluminateCarbon::class)) { + IlluminateCarbon::setLocale($locale); + } + + if (class_exists(Date::class)) { + try { + $root = Date::getFacadeRoot(); + $root->setLocale($locale); + } catch (Throwable $e) { + // Non Carbon class in use in Date facade + } + } + } + + public function register() + { + // Needed for Laravel < 5.3 compatibility + } + + protected function getLocale() + { + if ($this->localeGetter) { + return ($this->localeGetter)(); + } + + $app = $this->getApp(); + $app = $app && method_exists($app, 'getLocale') + ? $app + : $this->getGlobalApp('translator'); + + return $app ? $app->getLocale() : null; + } + + protected function getApp() + { + if ($this->appGetter) { + return ($this->appGetter)(); + } + + return $this->app ?? $this->getGlobalApp(); + } + + protected function getGlobalApp(...$args) + { + return \function_exists('app') ? \app(...$args) : null; + } + + protected function isEventDispatcher($instance) + { + return $instance instanceof EventDispatcher + || $instance instanceof Dispatcher + || $instance instanceof DispatcherContract; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/List/languages.php b/vendor/nesbot/carbon/src/Carbon/List/languages.php new file mode 100644 index 000000000..5b5d9a1e7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/List/languages.php @@ -0,0 +1,1239 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return [ + /* + * ISO 639-2 + */ + 'ab' => [ + 'isoName' => 'Abkhazian', + 'nativeName' => 'аҧсуа бызшәа, аҧсшәа', + ], + 'aa' => [ + 'isoName' => 'Afar', + 'nativeName' => 'Afaraf', + ], + 'af' => [ + 'isoName' => 'Afrikaans', + 'nativeName' => 'Afrikaans', + ], + 'ak' => [ + 'isoName' => 'Akan', + 'nativeName' => 'Akan', + ], + 'sq' => [ + 'isoName' => 'Albanian', + 'nativeName' => 'Shqip', + ], + 'am' => [ + 'isoName' => 'Amharic', + 'nativeName' => 'አማርኛ', + ], + 'ar' => [ + 'isoName' => 'Arabic', + 'nativeName' => 'العربية', + ], + 'an' => [ + 'isoName' => 'Aragonese', + 'nativeName' => 'aragonés', + ], + 'hy' => [ + 'isoName' => 'Armenian', + 'nativeName' => 'Հայերեն', + ], + 'as' => [ + 'isoName' => 'Assamese', + 'nativeName' => 'অসমীয়া', + ], + 'av' => [ + 'isoName' => 'Avaric', + 'nativeName' => 'авар мацӀ, магӀарул мацӀ', + ], + 'ae' => [ + 'isoName' => 'Avestan', + 'nativeName' => 'avesta', + ], + 'ay' => [ + 'isoName' => 'Aymara', + 'nativeName' => 'aymar aru', + ], + 'az' => [ + 'isoName' => 'Azerbaijani', + 'nativeName' => 'azərbaycan dili', + ], + 'bm' => [ + 'isoName' => 'Bambara', + 'nativeName' => 'bamanankan', + ], + 'ba' => [ + 'isoName' => 'Bashkir', + 'nativeName' => 'башҡорт теле', + ], + 'eu' => [ + 'isoName' => 'Basque', + 'nativeName' => 'euskara, euskera', + ], + 'be' => [ + 'isoName' => 'Belarusian', + 'nativeName' => 'беларуская мова', + ], + 'bn' => [ + 'isoName' => 'Bengali', + 'nativeName' => 'বাংলা', + ], + 'bh' => [ + 'isoName' => 'Bihari languages', + 'nativeName' => 'भोजपुरी', + ], + 'bi' => [ + 'isoName' => 'Bislama', + 'nativeName' => 'Bislama', + ], + 'bs' => [ + 'isoName' => 'Bosnian', + 'nativeName' => 'bosanski jezik', + ], + 'br' => [ + 'isoName' => 'Breton', + 'nativeName' => 'brezhoneg', + ], + 'bg' => [ + 'isoName' => 'Bulgarian', + 'nativeName' => 'български език', + ], + 'my' => [ + 'isoName' => 'Burmese', + 'nativeName' => 'ဗမာစာ', + ], + 'ca' => [ + 'isoName' => 'Catalan, Valencian', + 'nativeName' => 'català, valencià', + ], + 'ch' => [ + 'isoName' => 'Chamorro', + 'nativeName' => 'Chamoru', + ], + 'ce' => [ + 'isoName' => 'Chechen', + 'nativeName' => 'нохчийн мотт', + ], + 'ny' => [ + 'isoName' => 'Chichewa, Chewa, Nyanja', + 'nativeName' => 'chiCheŵa, chinyanja', + ], + 'zh' => [ + 'isoName' => 'Chinese', + 'nativeName' => '中文 (Zhōngwén), 汉语, 漢語', + ], + 'cv' => [ + 'isoName' => 'Chuvash', + 'nativeName' => 'чӑваш чӗлхи', + ], + 'kw' => [ + 'isoName' => 'Cornish', + 'nativeName' => 'Kernewek', + ], + 'co' => [ + 'isoName' => 'Corsican', + 'nativeName' => 'corsu, lingua corsa', + ], + 'cr' => [ + 'isoName' => 'Cree', + 'nativeName' => 'ᓀᐦᐃᔭᐍᐏᐣ', + ], + 'hr' => [ + 'isoName' => 'Croatian', + 'nativeName' => 'hrvatski jezik', + ], + 'cs' => [ + 'isoName' => 'Czech', + 'nativeName' => 'čeština, český jazyk', + ], + 'da' => [ + 'isoName' => 'Danish', + 'nativeName' => 'dansk', + ], + 'dv' => [ + 'isoName' => 'Divehi, Dhivehi, Maldivian', + 'nativeName' => 'ދިވެހި', + ], + 'nl' => [ + 'isoName' => 'Dutch, Flemish', + 'nativeName' => 'Nederlands, Vlaams', + ], + 'dz' => [ + 'isoName' => 'Dzongkha', + 'nativeName' => 'རྫོང་ཁ', + ], + 'en' => [ + 'isoName' => 'English', + 'nativeName' => 'English', + ], + 'eo' => [ + 'isoName' => 'Esperanto', + 'nativeName' => 'Esperanto', + ], + 'et' => [ + 'isoName' => 'Estonian', + 'nativeName' => 'eesti, eesti keel', + ], + 'ee' => [ + 'isoName' => 'Ewe', + 'nativeName' => 'Eʋegbe', + ], + 'fo' => [ + 'isoName' => 'Faroese', + 'nativeName' => 'føroyskt', + ], + 'fj' => [ + 'isoName' => 'Fijian', + 'nativeName' => 'vosa Vakaviti', + ], + 'fi' => [ + 'isoName' => 'Finnish', + 'nativeName' => 'suomi, suomen kieli', + ], + 'fr' => [ + 'isoName' => 'French', + 'nativeName' => 'français', + ], + 'ff' => [ + 'isoName' => 'Fulah', + 'nativeName' => 'Fulfulde, Pulaar, Pular', + ], + 'gl' => [ + 'isoName' => 'Galician', + 'nativeName' => 'Galego', + ], + 'ka' => [ + 'isoName' => 'Georgian', + 'nativeName' => 'ქართული', + ], + 'de' => [ + 'isoName' => 'German', + 'nativeName' => 'Deutsch', + ], + 'el' => [ + 'isoName' => 'Greek (modern)', + 'nativeName' => 'ελληνικά', + ], + 'gn' => [ + 'isoName' => 'Guaraní', + 'nativeName' => 'Avañe\'ẽ', + ], + 'gu' => [ + 'isoName' => 'Gujarati', + 'nativeName' => 'ગુજરાતી', + ], + 'ht' => [ + 'isoName' => 'Haitian, Haitian Creole', + 'nativeName' => 'Kreyòl ayisyen', + ], + 'ha' => [ + 'isoName' => 'Hausa', + 'nativeName' => '(Hausa) هَوُسَ', + ], + 'he' => [ + 'isoName' => 'Hebrew (modern)', + 'nativeName' => 'עברית', + ], + 'hz' => [ + 'isoName' => 'Herero', + 'nativeName' => 'Otjiherero', + ], + 'hi' => [ + 'isoName' => 'Hindi', + 'nativeName' => 'हिन्दी, हिंदी', + ], + 'ho' => [ + 'isoName' => 'Hiri Motu', + 'nativeName' => 'Hiri Motu', + ], + 'hu' => [ + 'isoName' => 'Hungarian', + 'nativeName' => 'magyar', + ], + 'ia' => [ + 'isoName' => 'Interlingua', + 'nativeName' => 'Interlingua', + ], + 'id' => [ + 'isoName' => 'Indonesian', + 'nativeName' => 'Bahasa Indonesia', + ], + 'ie' => [ + 'isoName' => 'Interlingue', + 'nativeName' => 'Originally called Occidental; then Interlingue after WWII', + ], + 'ga' => [ + 'isoName' => 'Irish', + 'nativeName' => 'Gaeilge', + ], + 'ig' => [ + 'isoName' => 'Igbo', + 'nativeName' => 'Asụsụ Igbo', + ], + 'ik' => [ + 'isoName' => 'Inupiaq', + 'nativeName' => 'Iñupiaq, Iñupiatun', + ], + 'io' => [ + 'isoName' => 'Ido', + 'nativeName' => 'Ido', + ], + 'is' => [ + 'isoName' => 'Icelandic', + 'nativeName' => 'Íslenska', + ], + 'it' => [ + 'isoName' => 'Italian', + 'nativeName' => 'Italiano', + ], + 'iu' => [ + 'isoName' => 'Inuktitut', + 'nativeName' => 'ᐃᓄᒃᑎᑐᑦ', + ], + 'ja' => [ + 'isoName' => 'Japanese', + 'nativeName' => '日本語 (にほんご)', + ], + 'jv' => [ + 'isoName' => 'Javanese', + 'nativeName' => 'ꦧꦱꦗꦮ, Basa Jawa', + ], + 'kl' => [ + 'isoName' => 'Kalaallisut, Greenlandic', + 'nativeName' => 'kalaallisut, kalaallit oqaasii', + ], + 'kn' => [ + 'isoName' => 'Kannada', + 'nativeName' => 'ಕನ್ನಡ', + ], + 'kr' => [ + 'isoName' => 'Kanuri', + 'nativeName' => 'Kanuri', + ], + 'ks' => [ + 'isoName' => 'Kashmiri', + 'nativeName' => 'कश्मीरी, كشميري‎', + ], + 'kk' => [ + 'isoName' => 'Kazakh', + 'nativeName' => 'қазақ тілі', + ], + 'km' => [ + 'isoName' => 'Central Khmer', + 'nativeName' => 'ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ', + ], + 'ki' => [ + 'isoName' => 'Kikuyu, Gikuyu', + 'nativeName' => 'Gĩkũyũ', + ], + 'rw' => [ + 'isoName' => 'Kinyarwanda', + 'nativeName' => 'Ikinyarwanda', + ], + 'ky' => [ + 'isoName' => 'Kirghiz, Kyrgyz', + 'nativeName' => 'Кыргызча, Кыргыз тили', + ], + 'kv' => [ + 'isoName' => 'Komi', + 'nativeName' => 'коми кыв', + ], + 'kg' => [ + 'isoName' => 'Kongo', + 'nativeName' => 'Kikongo', + ], + 'ko' => [ + 'isoName' => 'Korean', + 'nativeName' => '한국어', + ], + 'ku' => [ + 'isoName' => 'Kurdish', + 'nativeName' => 'Kurdî, کوردی‎', + ], + 'kj' => [ + 'isoName' => 'Kuanyama, Kwanyama', + 'nativeName' => 'Kuanyama', + ], + 'la' => [ + 'isoName' => 'Latin', + 'nativeName' => 'latine, lingua latina', + ], + 'lb' => [ + 'isoName' => 'Luxembourgish, Letzeburgesch', + 'nativeName' => 'Lëtzebuergesch', + ], + 'lg' => [ + 'isoName' => 'Ganda', + 'nativeName' => 'Luganda', + ], + 'li' => [ + 'isoName' => 'Limburgan, Limburger, Limburgish', + 'nativeName' => 'Limburgs', + ], + 'ln' => [ + 'isoName' => 'Lingala', + 'nativeName' => 'Lingála', + ], + 'lo' => [ + 'isoName' => 'Lao', + 'nativeName' => 'ພາສາລາວ', + ], + 'lt' => [ + 'isoName' => 'Lithuanian', + 'nativeName' => 'lietuvių kalba', + ], + 'lu' => [ + 'isoName' => 'Luba-Katanga', + 'nativeName' => 'Kiluba', + ], + 'lv' => [ + 'isoName' => 'Latvian', + 'nativeName' => 'latviešu valoda', + ], + 'gv' => [ + 'isoName' => 'Manx', + 'nativeName' => 'Gaelg, Gailck', + ], + 'mk' => [ + 'isoName' => 'Macedonian', + 'nativeName' => 'македонски јазик', + ], + 'mg' => [ + 'isoName' => 'Malagasy', + 'nativeName' => 'fiteny malagasy', + ], + 'ms' => [ + 'isoName' => 'Malay', + 'nativeName' => 'Bahasa Melayu, بهاس ملايو‎', + ], + 'ml' => [ + 'isoName' => 'Malayalam', + 'nativeName' => 'മലയാളം', + ], + 'mt' => [ + 'isoName' => 'Maltese', + 'nativeName' => 'Malti', + ], + 'mi' => [ + 'isoName' => 'Maori', + 'nativeName' => 'te reo Māori', + ], + 'mr' => [ + 'isoName' => 'Marathi', + 'nativeName' => 'मराठी', + ], + 'mh' => [ + 'isoName' => 'Marshallese', + 'nativeName' => 'Kajin M̧ajeļ', + ], + 'mn' => [ + 'isoName' => 'Mongolian', + 'nativeName' => 'Монгол хэл', + ], + 'na' => [ + 'isoName' => 'Nauru', + 'nativeName' => 'Dorerin Naoero', + ], + 'nv' => [ + 'isoName' => 'Navajo, Navaho', + 'nativeName' => 'Diné bizaad', + ], + 'nd' => [ + 'isoName' => 'North Ndebele', + 'nativeName' => 'isiNdebele', + ], + 'ne' => [ + 'isoName' => 'Nepali', + 'nativeName' => 'नेपाली', + ], + 'ng' => [ + 'isoName' => 'Ndonga', + 'nativeName' => 'Owambo', + ], + 'nb' => [ + 'isoName' => 'Norwegian Bokmål', + 'nativeName' => 'Norsk Bokmål', + ], + 'nn' => [ + 'isoName' => 'Norwegian Nynorsk', + 'nativeName' => 'Norsk Nynorsk', + ], + 'no' => [ + 'isoName' => 'Norwegian', + 'nativeName' => 'Norsk', + ], + 'ii' => [ + 'isoName' => 'Sichuan Yi, Nuosu', + 'nativeName' => 'ꆈꌠ꒿ Nuosuhxop', + ], + 'nr' => [ + 'isoName' => 'South Ndebele', + 'nativeName' => 'isiNdebele', + ], + 'oc' => [ + 'isoName' => 'Occitan', + 'nativeName' => 'occitan, lenga d\'òc', + ], + 'oj' => [ + 'isoName' => 'Ojibwa', + 'nativeName' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ', + ], + 'cu' => [ + 'isoName' => 'Church Slavic, Church Slavonic, Old Church Slavonic, Old Slavonic, Old Bulgarian', + 'nativeName' => 'ѩзыкъ словѣньскъ', + ], + 'om' => [ + 'isoName' => 'Oromo', + 'nativeName' => 'Afaan Oromoo', + ], + 'or' => [ + 'isoName' => 'Oriya', + 'nativeName' => 'ଓଡ଼ିଆ', + ], + 'os' => [ + 'isoName' => 'Ossetian, Ossetic', + 'nativeName' => 'ирон æвзаг', + ], + 'pa' => [ + 'isoName' => 'Panjabi, Punjabi', + 'nativeName' => 'ਪੰਜਾਬੀ', + ], + 'pi' => [ + 'isoName' => 'Pali', + 'nativeName' => 'पाऴि', + ], + 'fa' => [ + 'isoName' => 'Persian', + 'nativeName' => 'فارسی', + ], + 'pl' => [ + 'isoName' => 'Polish', + 'nativeName' => 'język polski, polszczyzna', + ], + 'ps' => [ + 'isoName' => 'Pashto, Pushto', + 'nativeName' => 'پښتو', + ], + 'pt' => [ + 'isoName' => 'Portuguese', + 'nativeName' => 'Português', + ], + 'qu' => [ + 'isoName' => 'Quechua', + 'nativeName' => 'Runa Simi, Kichwa', + ], + 'rm' => [ + 'isoName' => 'Romansh', + 'nativeName' => 'Rumantsch Grischun', + ], + 'rn' => [ + 'isoName' => 'Rundi', + 'nativeName' => 'Ikirundi', + ], + 'ro' => [ + 'isoName' => 'Romanian, Moldavian, Moldovan', + 'nativeName' => 'Română', + ], + 'ru' => [ + 'isoName' => 'Russian', + 'nativeName' => 'русский', + ], + 'sa' => [ + 'isoName' => 'Sanskrit', + 'nativeName' => 'संस्कृतम्', + ], + 'sc' => [ + 'isoName' => 'Sardinian', + 'nativeName' => 'sardu', + ], + 'sd' => [ + 'isoName' => 'Sindhi', + 'nativeName' => 'सिन्धी, سنڌي، سندھی‎', + ], + 'se' => [ + 'isoName' => 'Northern Sami', + 'nativeName' => 'Davvisámegiella', + ], + 'sm' => [ + 'isoName' => 'Samoan', + 'nativeName' => 'gagana fa\'a Samoa', + ], + 'sg' => [ + 'isoName' => 'Sango', + 'nativeName' => 'yângâ tî sängö', + ], + 'sr' => [ + 'isoName' => 'Serbian', + 'nativeName' => 'српски језик', + ], + 'gd' => [ + 'isoName' => 'Gaelic, Scottish Gaelic', + 'nativeName' => 'Gàidhlig', + ], + 'sn' => [ + 'isoName' => 'Shona', + 'nativeName' => 'chiShona', + ], + 'si' => [ + 'isoName' => 'Sinhala, Sinhalese', + 'nativeName' => 'සිංහල', + ], + 'sk' => [ + 'isoName' => 'Slovak', + 'nativeName' => 'Slovenčina, Slovenský Jazyk', + ], + 'sl' => [ + 'isoName' => 'Slovene', + 'nativeName' => 'Slovenski Jezik, Slovenščina', + ], + 'so' => [ + 'isoName' => 'Somali', + 'nativeName' => 'Soomaaliga, af Soomaali', + ], + 'st' => [ + 'isoName' => 'Southern Sotho', + 'nativeName' => 'Sesotho', + ], + 'es' => [ + 'isoName' => 'Spanish, Castilian', + 'nativeName' => 'Español', + ], + 'su' => [ + 'isoName' => 'Sundanese', + 'nativeName' => 'Basa Sunda', + ], + 'sw' => [ + 'isoName' => 'Swahili', + 'nativeName' => 'Kiswahili', + ], + 'ss' => [ + 'isoName' => 'Swati', + 'nativeName' => 'SiSwati', + ], + 'sv' => [ + 'isoName' => 'Swedish', + 'nativeName' => 'Svenska', + ], + 'ta' => [ + 'isoName' => 'Tamil', + 'nativeName' => 'தமிழ்', + ], + 'te' => [ + 'isoName' => 'Telugu', + 'nativeName' => 'తెలుగు', + ], + 'tg' => [ + 'isoName' => 'Tajik', + 'nativeName' => 'тоҷикӣ, toçikī, تاجیکی‎', + ], + 'th' => [ + 'isoName' => 'Thai', + 'nativeName' => 'ไทย', + ], + 'ti' => [ + 'isoName' => 'Tigrinya', + 'nativeName' => 'ትግርኛ', + ], + 'bo' => [ + 'isoName' => 'Tibetan', + 'nativeName' => 'བོད་ཡིག', + ], + 'tk' => [ + 'isoName' => 'Turkmen', + 'nativeName' => 'Türkmen, Түркмен', + ], + 'tl' => [ + 'isoName' => 'Tagalog', + 'nativeName' => 'Wikang Tagalog', + ], + 'tn' => [ + 'isoName' => 'Tswana', + 'nativeName' => 'Setswana', + ], + 'to' => [ + 'isoName' => 'Tongan (Tonga Islands)', + 'nativeName' => 'Faka Tonga', + ], + 'tr' => [ + 'isoName' => 'Turkish', + 'nativeName' => 'Türkçe', + ], + 'ts' => [ + 'isoName' => 'Tsonga', + 'nativeName' => 'Xitsonga', + ], + 'tt' => [ + 'isoName' => 'Tatar', + 'nativeName' => 'татар теле, tatar tele', + ], + 'tw' => [ + 'isoName' => 'Twi', + 'nativeName' => 'Twi', + ], + 'ty' => [ + 'isoName' => 'Tahitian', + 'nativeName' => 'Reo Tahiti', + ], + 'ug' => [ + 'isoName' => 'Uighur, Uyghur', + 'nativeName' => 'Uyƣurqə, ‫ئۇيغۇرچ', + ], + 'uk' => [ + 'isoName' => 'Ukrainian', + 'nativeName' => 'Українська', + ], + 'ur' => [ + 'isoName' => 'Urdu', + 'nativeName' => 'اردو', + ], + 'uz' => [ + 'isoName' => 'Uzbek', + 'nativeName' => 'Oʻzbek, Ўзбек, أۇزبېك‎', + ], + 've' => [ + 'isoName' => 'Venda', + 'nativeName' => 'Tshivenḓa', + ], + 'vi' => [ + 'isoName' => 'Vietnamese', + 'nativeName' => 'Tiếng Việt', + ], + 'vo' => [ + 'isoName' => 'Volapük', + 'nativeName' => 'Volapük', + ], + 'wa' => [ + 'isoName' => 'Walloon', + 'nativeName' => 'Walon', + ], + 'cy' => [ + 'isoName' => 'Welsh', + 'nativeName' => 'Cymraeg', + ], + 'wo' => [ + 'isoName' => 'Wolof', + 'nativeName' => 'Wollof', + ], + 'fy' => [ + 'isoName' => 'Western Frisian', + 'nativeName' => 'Frysk', + ], + 'xh' => [ + 'isoName' => 'Xhosa', + 'nativeName' => 'isiXhosa', + ], + 'yi' => [ + 'isoName' => 'Yiddish', + 'nativeName' => 'ייִדיש', + ], + 'yo' => [ + 'isoName' => 'Yoruba', + 'nativeName' => 'Yorùbá', + ], + 'za' => [ + 'isoName' => 'Zhuang, Chuang', + 'nativeName' => 'Saɯ cueŋƅ, Saw cuengh', + ], + 'zu' => [ + 'isoName' => 'Zulu', + 'nativeName' => 'isiZulu', + ], + /* + * Add ISO 639-3 languages available in Carbon + */ + 'agq' => [ + 'isoName' => 'Aghem', + 'nativeName' => 'Aghem', + ], + 'agr' => [ + 'isoName' => 'Aguaruna', + 'nativeName' => 'Aguaruna', + ], + 'anp' => [ + 'isoName' => 'Angika', + 'nativeName' => 'Angika', + ], + 'asa' => [ + 'isoName' => 'Asu', + 'nativeName' => 'Asu', + ], + 'ast' => [ + 'isoName' => 'Asturian', + 'nativeName' => 'Asturian', + ], + 'ayc' => [ + 'isoName' => 'Southern Aymara', + 'nativeName' => 'Southern Aymara', + ], + 'bas' => [ + 'isoName' => 'Basaa', + 'nativeName' => 'Basaa', + ], + 'bem' => [ + 'isoName' => 'Bemba', + 'nativeName' => 'Bemba', + ], + 'bez' => [ + 'isoName' => 'Bena', + 'nativeName' => 'Bena', + ], + 'bhb' => [ + 'isoName' => 'Bhili', + 'nativeName' => 'Bhili', + ], + 'bho' => [ + 'isoName' => 'Bhojpuri', + 'nativeName' => 'Bhojpuri', + ], + 'brx' => [ + 'isoName' => 'Bodo', + 'nativeName' => 'Bodo', + ], + 'byn' => [ + 'isoName' => 'Bilin', + 'nativeName' => 'Bilin', + ], + 'ccp' => [ + 'isoName' => 'Chakma', + 'nativeName' => 'Chakma', + ], + 'cgg' => [ + 'isoName' => 'Chiga', + 'nativeName' => 'Chiga', + ], + 'chr' => [ + 'isoName' => 'Cherokee', + 'nativeName' => 'Cherokee', + ], + 'cmn' => [ + 'isoName' => 'Chinese', + 'nativeName' => 'Chinese', + ], + 'crh' => [ + 'isoName' => 'Crimean Turkish', + 'nativeName' => 'Crimean Turkish', + ], + 'csb' => [ + 'isoName' => 'Kashubian', + 'nativeName' => 'Kashubian', + ], + 'dav' => [ + 'isoName' => 'Taita', + 'nativeName' => 'Taita', + ], + 'dje' => [ + 'isoName' => 'Zarma', + 'nativeName' => 'Zarma', + ], + 'doi' => [ + 'isoName' => 'Dogri (macrolanguage)', + 'nativeName' => 'Dogri (macrolanguage)', + ], + 'dsb' => [ + 'isoName' => 'Lower Sorbian', + 'nativeName' => 'Lower Sorbian', + ], + 'dua' => [ + 'isoName' => 'Duala', + 'nativeName' => 'Duala', + ], + 'dyo' => [ + 'isoName' => 'Jola-Fonyi', + 'nativeName' => 'Jola-Fonyi', + ], + 'ebu' => [ + 'isoName' => 'Embu', + 'nativeName' => 'Embu', + ], + 'ewo' => [ + 'isoName' => 'Ewondo', + 'nativeName' => 'Ewondo', + ], + 'fil' => [ + 'isoName' => 'Filipino', + 'nativeName' => 'Filipino', + ], + 'fur' => [ + 'isoName' => 'Friulian', + 'nativeName' => 'Friulian', + ], + 'gez' => [ + 'isoName' => 'Geez', + 'nativeName' => 'Geez', + ], + 'gom' => [ + 'isoName' => 'Konkani, Goan', + 'nativeName' => 'ಕೊಂಕಣಿ', + ], + 'gsw' => [ + 'isoName' => 'Swiss German', + 'nativeName' => 'Swiss German', + ], + 'guz' => [ + 'isoName' => 'Gusii', + 'nativeName' => 'Gusii', + ], + 'hak' => [ + 'isoName' => 'Hakka Chinese', + 'nativeName' => 'Hakka Chinese', + ], + 'haw' => [ + 'isoName' => 'Hawaiian', + 'nativeName' => 'Hawaiian', + ], + 'hif' => [ + 'isoName' => 'Fiji Hindi', + 'nativeName' => 'Fiji Hindi', + ], + 'hne' => [ + 'isoName' => 'Chhattisgarhi', + 'nativeName' => 'Chhattisgarhi', + ], + 'hsb' => [ + 'isoName' => 'Upper Sorbian', + 'nativeName' => 'Upper Sorbian', + ], + 'jgo' => [ + 'isoName' => 'Ngomba', + 'nativeName' => 'Ngomba', + ], + 'jmc' => [ + 'isoName' => 'Machame', + 'nativeName' => 'Machame', + ], + 'kab' => [ + 'isoName' => 'Kabyle', + 'nativeName' => 'Kabyle', + ], + 'kam' => [ + 'isoName' => 'Kamba', + 'nativeName' => 'Kamba', + ], + 'kde' => [ + 'isoName' => 'Makonde', + 'nativeName' => 'Makonde', + ], + 'kea' => [ + 'isoName' => 'Kabuverdianu', + 'nativeName' => 'Kabuverdianu', + ], + 'khq' => [ + 'isoName' => 'Koyra Chiini', + 'nativeName' => 'Koyra Chiini', + ], + 'kkj' => [ + 'isoName' => 'Kako', + 'nativeName' => 'Kako', + ], + 'kln' => [ + 'isoName' => 'Kalenjin', + 'nativeName' => 'Kalenjin', + ], + 'kok' => [ + 'isoName' => 'Konkani', + 'nativeName' => 'Konkani', + ], + 'ksb' => [ + 'isoName' => 'Shambala', + 'nativeName' => 'Shambala', + ], + 'ksf' => [ + 'isoName' => 'Bafia', + 'nativeName' => 'Bafia', + ], + 'ksh' => [ + 'isoName' => 'Colognian', + 'nativeName' => 'Colognian', + ], + 'lag' => [ + 'isoName' => 'Langi', + 'nativeName' => 'Langi', + ], + 'lij' => [ + 'isoName' => 'Ligurian', + 'nativeName' => 'Ligurian', + ], + 'lkt' => [ + 'isoName' => 'Lakota', + 'nativeName' => 'Lakota', + ], + 'lrc' => [ + 'isoName' => 'Northern Luri', + 'nativeName' => 'Northern Luri', + ], + 'luo' => [ + 'isoName' => 'Luo', + 'nativeName' => 'Luo', + ], + 'luy' => [ + 'isoName' => 'Luyia', + 'nativeName' => 'Luyia', + ], + 'lzh' => [ + 'isoName' => 'Literary Chinese', + 'nativeName' => 'Literary Chinese', + ], + 'mag' => [ + 'isoName' => 'Magahi', + 'nativeName' => 'Magahi', + ], + 'mai' => [ + 'isoName' => 'Maithili', + 'nativeName' => 'Maithili', + ], + 'mas' => [ + 'isoName' => 'Masai', + 'nativeName' => 'Masai', + ], + 'mer' => [ + 'isoName' => 'Meru', + 'nativeName' => 'Meru', + ], + 'mfe' => [ + 'isoName' => 'Morisyen', + 'nativeName' => 'Morisyen', + ], + 'mgh' => [ + 'isoName' => 'Makhuwa-Meetto', + 'nativeName' => 'Makhuwa-Meetto', + ], + 'mgo' => [ + 'isoName' => 'Metaʼ', + 'nativeName' => 'Metaʼ', + ], + 'mhr' => [ + 'isoName' => 'Eastern Mari', + 'nativeName' => 'Eastern Mari', + ], + 'miq' => [ + 'isoName' => 'Mískito', + 'nativeName' => 'Mískito', + ], + 'mjw' => [ + 'isoName' => 'Karbi', + 'nativeName' => 'Karbi', + ], + 'mni' => [ + 'isoName' => 'Manipuri', + 'nativeName' => 'Manipuri', + ], + 'mua' => [ + 'isoName' => 'Mundang', + 'nativeName' => 'Mundang', + ], + 'mzn' => [ + 'isoName' => 'Mazanderani', + 'nativeName' => 'Mazanderani', + ], + 'nan' => [ + 'isoName' => 'Min Nan Chinese', + 'nativeName' => 'Min Nan Chinese', + ], + 'naq' => [ + 'isoName' => 'Nama', + 'nativeName' => 'Nama', + ], + 'nds' => [ + 'isoName' => 'Low German', + 'nativeName' => 'Low German', + ], + 'nhn' => [ + 'isoName' => 'Central Nahuatl', + 'nativeName' => 'Central Nahuatl', + ], + 'niu' => [ + 'isoName' => 'Niuean', + 'nativeName' => 'Niuean', + ], + 'nmg' => [ + 'isoName' => 'Kwasio', + 'nativeName' => 'Kwasio', + ], + 'nnh' => [ + 'isoName' => 'Ngiemboon', + 'nativeName' => 'Ngiemboon', + ], + 'nso' => [ + 'isoName' => 'Northern Sotho', + 'nativeName' => 'Northern Sotho', + ], + 'nus' => [ + 'isoName' => 'Nuer', + 'nativeName' => 'Nuer', + ], + 'nyn' => [ + 'isoName' => 'Nyankole', + 'nativeName' => 'Nyankole', + ], + 'pap' => [ + 'isoName' => 'Papiamento', + 'nativeName' => 'Papiamento', + ], + 'prg' => [ + 'isoName' => 'Prussian', + 'nativeName' => 'Prussian', + ], + 'quz' => [ + 'isoName' => 'Cusco Quechua', + 'nativeName' => 'Cusco Quechua', + ], + 'raj' => [ + 'isoName' => 'Rajasthani', + 'nativeName' => 'Rajasthani', + ], + 'rof' => [ + 'isoName' => 'Rombo', + 'nativeName' => 'Rombo', + ], + 'rwk' => [ + 'isoName' => 'Rwa', + 'nativeName' => 'Rwa', + ], + 'sah' => [ + 'isoName' => 'Sakha', + 'nativeName' => 'Sakha', + ], + 'saq' => [ + 'isoName' => 'Samburu', + 'nativeName' => 'Samburu', + ], + 'sat' => [ + 'isoName' => 'Santali', + 'nativeName' => 'Santali', + ], + 'sbp' => [ + 'isoName' => 'Sangu', + 'nativeName' => 'Sangu', + ], + 'scr' => [ + 'isoName' => 'Serbo Croatian', + 'nativeName' => 'Serbo Croatian', + ], + 'seh' => [ + 'isoName' => 'Sena', + 'nativeName' => 'Sena', + ], + 'ses' => [ + 'isoName' => 'Koyraboro Senni', + 'nativeName' => 'Koyraboro Senni', + ], + 'sgs' => [ + 'isoName' => 'Samogitian', + 'nativeName' => 'Samogitian', + ], + 'shi' => [ + 'isoName' => 'Tachelhit', + 'nativeName' => 'Tachelhit', + ], + 'shn' => [ + 'isoName' => 'Shan', + 'nativeName' => 'Shan', + ], + 'shs' => [ + 'isoName' => 'Shuswap', + 'nativeName' => 'Shuswap', + ], + 'sid' => [ + 'isoName' => 'Sidamo', + 'nativeName' => 'Sidamo', + ], + 'smn' => [ + 'isoName' => 'Inari Sami', + 'nativeName' => 'Inari Sami', + ], + 'szl' => [ + 'isoName' => 'Silesian', + 'nativeName' => 'Silesian', + ], + 'tcy' => [ + 'isoName' => 'Tulu', + 'nativeName' => 'Tulu', + ], + 'teo' => [ + 'isoName' => 'Teso', + 'nativeName' => 'Teso', + ], + 'tet' => [ + 'isoName' => 'Tetum', + 'nativeName' => 'Tetum', + ], + 'the' => [ + 'isoName' => 'Chitwania Tharu', + 'nativeName' => 'Chitwania Tharu', + ], + 'tig' => [ + 'isoName' => 'Tigre', + 'nativeName' => 'Tigre', + ], + 'tlh' => [ + 'isoName' => 'Klingon', + 'nativeName' => 'tlhIngan Hol', + ], + 'tpi' => [ + 'isoName' => 'Tok Pisin', + 'nativeName' => 'Tok Pisin', + ], + 'twq' => [ + 'isoName' => 'Tasawaq', + 'nativeName' => 'Tasawaq', + ], + 'tzl' => [ + 'isoName' => 'Talossan', + 'nativeName' => 'Talossan', + ], + 'tzm' => [ + 'isoName' => 'Tamazight, Central Atlas', + 'nativeName' => 'ⵜⵎⴰⵣⵉⵖⵜ', + ], + 'unm' => [ + 'isoName' => 'Unami', + 'nativeName' => 'Unami', + ], + 'vai' => [ + 'isoName' => 'Vai', + 'nativeName' => 'Vai', + ], + 'vun' => [ + 'isoName' => 'Vunjo', + 'nativeName' => 'Vunjo', + ], + 'wae' => [ + 'isoName' => 'Walser', + 'nativeName' => 'Walser', + ], + 'wal' => [ + 'isoName' => 'Wolaytta', + 'nativeName' => 'Wolaytta', + ], + 'xog' => [ + 'isoName' => 'Soga', + 'nativeName' => 'Soga', + ], + 'yav' => [ + 'isoName' => 'Yangben', + 'nativeName' => 'Yangben', + ], + 'yue' => [ + 'isoName' => 'Cantonese', + 'nativeName' => 'Cantonese', + ], + 'yuw' => [ + 'isoName' => 'Yau (Morobe Province)', + 'nativeName' => 'Yau (Morobe Province)', + ], + 'zgh' => [ + 'isoName' => 'Standard Moroccan Tamazight', + 'nativeName' => 'Standard Moroccan Tamazight', + ], +]; diff --git a/vendor/nesbot/carbon/src/Carbon/List/regions.php b/vendor/nesbot/carbon/src/Carbon/List/regions.php new file mode 100644 index 000000000..8ab8a9e3a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/List/regions.php @@ -0,0 +1,265 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * ISO 3166-2 + */ +return [ + 'AD' => 'Andorra', + 'AE' => 'United Arab Emirates', + 'AF' => 'Afghanistan', + 'AG' => 'Antigua and Barbuda', + 'AI' => 'Anguilla', + 'AL' => 'Albania', + 'AM' => 'Armenia', + 'AO' => 'Angola', + 'AQ' => 'Antarctica', + 'AR' => 'Argentina', + 'AS' => 'American Samoa', + 'AT' => 'Austria', + 'AU' => 'Australia', + 'AW' => 'Aruba', + 'AX' => 'Åland Islands', + 'AZ' => 'Azerbaijan', + 'BA' => 'Bosnia and Herzegovina', + 'BB' => 'Barbados', + 'BD' => 'Bangladesh', + 'BE' => 'Belgium', + 'BF' => 'Burkina Faso', + 'BG' => 'Bulgaria', + 'BH' => 'Bahrain', + 'BI' => 'Burundi', + 'BJ' => 'Benin', + 'BL' => 'Saint Barthélemy', + 'BM' => 'Bermuda', + 'BN' => 'Brunei Darussalam', + 'BO' => 'Bolivia (Plurinational State of)', + 'BQ' => 'Bonaire, Sint Eustatius and Saba', + 'BR' => 'Brazil', + 'BS' => 'Bahamas', + 'BT' => 'Bhutan', + 'BV' => 'Bouvet Island', + 'BW' => 'Botswana', + 'BY' => 'Belarus', + 'BZ' => 'Belize', + 'CA' => 'Canada', + 'CC' => 'Cocos (Keeling) Islands', + 'CD' => 'Congo, Democratic Republic of the', + 'CF' => 'Central African Republic', + 'CG' => 'Congo', + 'CH' => 'Switzerland', + 'CI' => 'Côte d\'Ivoire', + 'CK' => 'Cook Islands', + 'CL' => 'Chile', + 'CM' => 'Cameroon', + 'CN' => 'China', + 'CO' => 'Colombia', + 'CR' => 'Costa Rica', + 'CU' => 'Cuba', + 'CV' => 'Cabo Verde', + 'CW' => 'Curaçao', + 'CX' => 'Christmas Island', + 'CY' => 'Cyprus', + 'CZ' => 'Czechia', + 'DE' => 'Germany', + 'DJ' => 'Djibouti', + 'DK' => 'Denmark', + 'DM' => 'Dominica', + 'DO' => 'Dominican Republic', + 'DZ' => 'Algeria', + 'EC' => 'Ecuador', + 'EE' => 'Estonia', + 'EG' => 'Egypt', + 'EH' => 'Western Sahara', + 'ER' => 'Eritrea', + 'ES' => 'Spain', + 'ET' => 'Ethiopia', + 'FI' => 'Finland', + 'FJ' => 'Fiji', + 'FK' => 'Falkland Islands (Malvinas)', + 'FM' => 'Micronesia (Federated States of)', + 'FO' => 'Faroe Islands', + 'FR' => 'France', + 'GA' => 'Gabon', + 'GB' => 'United Kingdom of Great Britain and Northern Ireland', + 'GD' => 'Grenada', + 'GE' => 'Georgia', + 'GF' => 'French Guiana', + 'GG' => 'Guernsey', + 'GH' => 'Ghana', + 'GI' => 'Gibraltar', + 'GL' => 'Greenland', + 'GM' => 'Gambia', + 'GN' => 'Guinea', + 'GP' => 'Guadeloupe', + 'GQ' => 'Equatorial Guinea', + 'GR' => 'Greece', + 'GS' => 'South Georgia and the South Sandwich Islands', + 'GT' => 'Guatemala', + 'GU' => 'Guam', + 'GW' => 'Guinea-Bissau', + 'GY' => 'Guyana', + 'HK' => 'Hong Kong', + 'HM' => 'Heard Island and McDonald Islands', + 'HN' => 'Honduras', + 'HR' => 'Croatia', + 'HT' => 'Haiti', + 'HU' => 'Hungary', + 'ID' => 'Indonesia', + 'IE' => 'Ireland', + 'IL' => 'Israel', + 'IM' => 'Isle of Man', + 'IN' => 'India', + 'IO' => 'British Indian Ocean Territory', + 'IQ' => 'Iraq', + 'IR' => 'Iran (Islamic Republic of)', + 'IS' => 'Iceland', + 'IT' => 'Italy', + 'JE' => 'Jersey', + 'JM' => 'Jamaica', + 'JO' => 'Jordan', + 'JP' => 'Japan', + 'KE' => 'Kenya', + 'KG' => 'Kyrgyzstan', + 'KH' => 'Cambodia', + 'KI' => 'Kiribati', + 'KM' => 'Comoros', + 'KN' => 'Saint Kitts and Nevis', + 'KP' => 'Korea (Democratic People\'s Republic of)', + 'KR' => 'Korea, Republic of', + 'KW' => 'Kuwait', + 'KY' => 'Cayman Islands', + 'KZ' => 'Kazakhstan', + 'LA' => 'Lao People\'s Democratic Republic', + 'LB' => 'Lebanon', + 'LC' => 'Saint Lucia', + 'LI' => 'Liechtenstein', + 'LK' => 'Sri Lanka', + 'LR' => 'Liberia', + 'LS' => 'Lesotho', + 'LT' => 'Lithuania', + 'LU' => 'Luxembourg', + 'LV' => 'Latvia', + 'LY' => 'Libya', + 'MA' => 'Morocco', + 'MC' => 'Monaco', + 'MD' => 'Moldova, Republic of', + 'ME' => 'Montenegro', + 'MF' => 'Saint Martin (French part)', + 'MG' => 'Madagascar', + 'MH' => 'Marshall Islands', + 'MK' => 'Macedonia, the former Yugoslav Republic of', + 'ML' => 'Mali', + 'MM' => 'Myanmar', + 'MN' => 'Mongolia', + 'MO' => 'Macao', + 'MP' => 'Northern Mariana Islands', + 'MQ' => 'Martinique', + 'MR' => 'Mauritania', + 'MS' => 'Montserrat', + 'MT' => 'Malta', + 'MU' => 'Mauritius', + 'MV' => 'Maldives', + 'MW' => 'Malawi', + 'MX' => 'Mexico', + 'MY' => 'Malaysia', + 'MZ' => 'Mozambique', + 'NA' => 'Namibia', + 'NC' => 'New Caledonia', + 'NE' => 'Niger', + 'NF' => 'Norfolk Island', + 'NG' => 'Nigeria', + 'NI' => 'Nicaragua', + 'NL' => 'Netherlands', + 'NO' => 'Norway', + 'NP' => 'Nepal', + 'NR' => 'Nauru', + 'NU' => 'Niue', + 'NZ' => 'New Zealand', + 'OM' => 'Oman', + 'PA' => 'Panama', + 'PE' => 'Peru', + 'PF' => 'French Polynesia', + 'PG' => 'Papua New Guinea', + 'PH' => 'Philippines', + 'PK' => 'Pakistan', + 'PL' => 'Poland', + 'PM' => 'Saint Pierre and Miquelon', + 'PN' => 'Pitcairn', + 'PR' => 'Puerto Rico', + 'PS' => 'Palestine, State of', + 'PT' => 'Portugal', + 'PW' => 'Palau', + 'PY' => 'Paraguay', + 'QA' => 'Qatar', + 'RE' => 'Réunion', + 'RO' => 'Romania', + 'RS' => 'Serbia', + 'RU' => 'Russian Federation', + 'RW' => 'Rwanda', + 'SA' => 'Saudi Arabia', + 'SB' => 'Solomon Islands', + 'SC' => 'Seychelles', + 'SD' => 'Sudan', + 'SE' => 'Sweden', + 'SG' => 'Singapore', + 'SH' => 'Saint Helena, Ascension and Tristan da Cunha', + 'SI' => 'Slovenia', + 'SJ' => 'Svalbard and Jan Mayen', + 'SK' => 'Slovakia', + 'SL' => 'Sierra Leone', + 'SM' => 'San Marino', + 'SN' => 'Senegal', + 'SO' => 'Somalia', + 'SR' => 'Suriname', + 'SS' => 'South Sudan', + 'ST' => 'Sao Tome and Principe', + 'SV' => 'El Salvador', + 'SX' => 'Sint Maarten (Dutch part)', + 'SY' => 'Syrian Arab Republic', + 'SZ' => 'Eswatini', + 'TC' => 'Turks and Caicos Islands', + 'TD' => 'Chad', + 'TF' => 'French Southern Territories', + 'TG' => 'Togo', + 'TH' => 'Thailand', + 'TJ' => 'Tajikistan', + 'TK' => 'Tokelau', + 'TL' => 'Timor-Leste', + 'TM' => 'Turkmenistan', + 'TN' => 'Tunisia', + 'TO' => 'Tonga', + 'TR' => 'Turkey', + 'TT' => 'Trinidad and Tobago', + 'TV' => 'Tuvalu', + 'TW' => 'Taiwan, Province of China', + 'TZ' => 'Tanzania, United Republic of', + 'UA' => 'Ukraine', + 'UG' => 'Uganda', + 'UM' => 'United States Minor Outlying Islands', + 'US' => 'United States of America', + 'UY' => 'Uruguay', + 'UZ' => 'Uzbekistan', + 'VA' => 'Holy See', + 'VC' => 'Saint Vincent and the Grenadines', + 'VE' => 'Venezuela (Bolivarian Republic of)', + 'VG' => 'Virgin Islands (British)', + 'VI' => 'Virgin Islands (U.S.)', + 'VN' => 'Viet Nam', + 'VU' => 'Vanuatu', + 'WF' => 'Wallis and Futuna', + 'WS' => 'Samoa', + 'YE' => 'Yemen', + 'YT' => 'Mayotte', + 'ZA' => 'South Africa', + 'ZM' => 'Zambia', + 'ZW' => 'Zimbabwe', +]; diff --git a/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php b/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php new file mode 100644 index 000000000..a230b0631 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/MessageFormatter/MessageFormatterMapper.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\MessageFormatter; + +use ReflectionMethod; +use Symfony\Component\Translation\Formatter\MessageFormatter; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +$transMethod = new ReflectionMethod(MessageFormatterInterface::class, 'format'); + +require $transMethod->getParameters()[0]->hasType() + ? __DIR__.'/../../../lazy/Carbon/MessageFormatter/MessageFormatterMapperStrongType.php' + : __DIR__.'/../../../lazy/Carbon/MessageFormatter/MessageFormatterMapperWeakType.php'; + +final class MessageFormatterMapper extends LazyMessageFormatter +{ + /** + * Wrapped formatter. + * + * @var MessageFormatterInterface + */ + protected $formatter; + + public function __construct(?MessageFormatterInterface $formatter = null) + { + $this->formatter = $formatter ?? new MessageFormatter(); + } + + protected function transformLocale(?string $locale): ?string + { + return $locale ? preg_replace('/[_@][A-Za-z][a-z]{2,}/', '', $locale) : $locale; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php b/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php new file mode 100644 index 000000000..5123d1e74 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/PHPStan/AbstractMacro.php @@ -0,0 +1,288 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use Closure; +use InvalidArgumentException; +use PHPStan\BetterReflection\Reflection\Adapter\ReflectionParameter as AdapterReflectionParameter; +use PHPStan\BetterReflection\Reflection\Adapter\ReflectionType as AdapterReflectionType; +use PHPStan\BetterReflection\Reflection\ReflectionClass as BetterReflectionClass; +use PHPStan\BetterReflection\Reflection\ReflectionFunction as BetterReflectionFunction; +use PHPStan\BetterReflection\Reflection\ReflectionParameter as BetterReflectionParameter; +use PHPStan\Reflection\Php\BuiltinMethodReflection; +use PHPStan\TrinaryLogic; +use ReflectionClass; +use ReflectionFunction; +use ReflectionMethod; +use ReflectionParameter; +use ReflectionType; +use stdClass; +use Throwable; + +abstract class AbstractMacro implements BuiltinMethodReflection +{ + /** + * The reflection function/method. + * + * @var ReflectionFunction|ReflectionMethod + */ + protected $reflectionFunction; + + /** + * The class name. + * + * @var class-string + */ + private $className; + + /** + * The method name. + * + * @var string + */ + private $methodName; + + /** + * The parameters. + * + * @var ReflectionParameter[] + */ + private $parameters; + + /** + * The is static. + * + * @var bool + */ + private $static = false; + + /** + * Macro constructor. + * + * @param string $className + * @phpstan-param class-string $className + * + * @param string $methodName + * @param callable $macro + */ + public function __construct(string $className, string $methodName, $macro) + { + $this->className = $className; + $this->methodName = $methodName; + $rawReflectionFunction = \is_array($macro) + ? new ReflectionMethod($macro[0], $macro[1]) + : new ReflectionFunction($macro); + $this->reflectionFunction = self::hasModernParser() + ? $this->getReflectionFunction($macro) + : $rawReflectionFunction; // @codeCoverageIgnore + $this->parameters = array_map( + function ($parameter) { + if ($parameter instanceof BetterReflectionParameter) { + return new AdapterReflectionParameter($parameter); + } + + return $parameter; // @codeCoverageIgnore + }, + $this->reflectionFunction->getParameters() + ); + + if ($rawReflectionFunction->isClosure()) { + try { + $closure = $rawReflectionFunction->getClosure(); + $boundClosure = Closure::bind($closure, new stdClass()); + $this->static = (!$boundClosure || (new ReflectionFunction($boundClosure))->getClosureThis() === null); + } catch (Throwable $e) { + $this->static = true; + } + } + } + + private function getReflectionFunction($spec) + { + if (\is_array($spec) && \count($spec) === 2 && \is_string($spec[1])) { + \assert($spec[1] !== ''); + + if (\is_object($spec[0])) { + return BetterReflectionClass::createFromInstance($spec[0]) + ->getMethod($spec[1]); + } + + return BetterReflectionClass::createFromName($spec[0]) + ->getMethod($spec[1]); + } + + if (\is_string($spec)) { + return BetterReflectionFunction::createFromName($spec); + } + + if ($spec instanceof Closure) { + return BetterReflectionFunction::createFromClosure($spec); + } + + throw new InvalidArgumentException('Could not create reflection from the spec given'); // @codeCoverageIgnore + } + + /** + * {@inheritdoc} + */ + public function getDeclaringClass(): ReflectionClass + { + return new ReflectionClass($this->className); + } + + /** + * {@inheritdoc} + */ + public function isPrivate(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isPublic(): bool + { + return true; + } + + /** + * {@inheritdoc} + */ + public function isFinal(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isInternal(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isAbstract(): bool + { + return false; + } + + /** + * {@inheritdoc} + */ + public function isStatic(): bool + { + return $this->static; + } + + /** + * {@inheritdoc} + */ + public function getDocComment(): ?string + { + return $this->reflectionFunction->getDocComment() ?: null; + } + + /** + * {@inheritdoc} + */ + public function getName(): string + { + return $this->methodName; + } + + /** + * {@inheritdoc} + */ + public function getParameters(): array + { + return $this->parameters; + } + + /** + * {@inheritdoc} + */ + public function getReturnType(): ?ReflectionType + { + $type = $this->reflectionFunction->getReturnType(); + + if ($type instanceof ReflectionType) { + return $type; // @codeCoverageIgnore + } + + return self::adaptType($type); + } + + /** + * {@inheritdoc} + */ + public function isDeprecated(): TrinaryLogic + { + return TrinaryLogic::createFromBoolean( + $this->reflectionFunction->isDeprecated() || + preg_match('/@deprecated/i', $this->getDocComment() ?: '') + ); + } + + /** + * {@inheritdoc} + */ + public function isVariadic(): bool + { + return $this->reflectionFunction->isVariadic(); + } + + /** + * {@inheritdoc} + */ + public function getPrototype(): BuiltinMethodReflection + { + return $this; + } + + public function getTentativeReturnType(): ?ReflectionType + { + return null; + } + + public function returnsByReference(): TrinaryLogic + { + return TrinaryLogic::createNo(); + } + + private static function adaptType($type) + { + $method = method_exists(AdapterReflectionType::class, 'fromTypeOrNull') + ? 'fromTypeOrNull' + : 'fromReturnTypeOrNull'; // @codeCoverageIgnore + + return AdapterReflectionType::$method($type); + } + + private static function hasModernParser(): bool + { + static $modernParser = null; + + if ($modernParser !== null) { + return $modernParser; + } + + $modernParser = method_exists(AdapterReflectionType::class, 'fromTypeOrNull'); + + return $modernParser; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php b/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php new file mode 100644 index 000000000..de3e51f6a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\BetterReflection\Reflection\Adapter; +use PHPStan\Reflection\Php\BuiltinMethodReflection; +use ReflectionMethod; + +$method = new ReflectionMethod(BuiltinMethodReflection::class, 'getReflection'); + +require $method->hasReturnType() && $method->getReturnType()->getName() === Adapter\ReflectionMethod::class + ? __DIR__.'/../../../lazy/Carbon/PHPStan/AbstractMacroStatic.php' + : __DIR__.'/../../../lazy/Carbon/PHPStan/AbstractMacroBuiltin.php'; + +$method = new ReflectionMethod(BuiltinMethodReflection::class, 'getFileName'); + +require $method->hasReturnType() + ? __DIR__.'/../../../lazy/Carbon/PHPStan/MacroStrongType.php' + : __DIR__.'/../../../lazy/Carbon/PHPStan/MacroWeakType.php'; + +final class Macro extends LazyMacro +{ +} diff --git a/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php b/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php new file mode 100644 index 000000000..2cd6fce54 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php @@ -0,0 +1,88 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use PHPStan\Reflection\Assertions; +use PHPStan\Reflection\ClassReflection; +use PHPStan\Reflection\MethodReflection; +use PHPStan\Reflection\MethodsClassReflectionExtension; +use PHPStan\Reflection\Php\PhpMethodReflectionFactory; +use PHPStan\Reflection\ReflectionProvider; +use PHPStan\Type\TypehintHelper; + +/** + * Class MacroExtension. + * + * @codeCoverageIgnore Pure PHPStan wrapper. + */ +final class MacroExtension implements MethodsClassReflectionExtension +{ + /** + * @var PhpMethodReflectionFactory + */ + protected $methodReflectionFactory; + + /** + * @var MacroScanner + */ + protected $scanner; + + /** + * Extension constructor. + * + * @param PhpMethodReflectionFactory $methodReflectionFactory + * @param ReflectionProvider $reflectionProvider + */ + public function __construct( + PhpMethodReflectionFactory $methodReflectionFactory, + ReflectionProvider $reflectionProvider + ) { + $this->scanner = new MacroScanner($reflectionProvider); + $this->methodReflectionFactory = $methodReflectionFactory; + } + + /** + * {@inheritdoc} + */ + public function hasMethod(ClassReflection $classReflection, string $methodName): bool + { + return $this->scanner->hasMethod($classReflection->getName(), $methodName); + } + + /** + * {@inheritdoc} + */ + public function getMethod(ClassReflection $classReflection, string $methodName): MethodReflection + { + $builtinMacro = $this->scanner->getMethod($classReflection->getName(), $methodName); + $supportAssertions = class_exists(Assertions::class); + + return $this->methodReflectionFactory->create( + $classReflection, + null, + $builtinMacro, + $classReflection->getActiveTemplateTypeMap(), + [], + TypehintHelper::decideTypeFromReflection($builtinMacro->getReturnType()), + null, + null, + $builtinMacro->isDeprecated()->yes(), + $builtinMacro->isInternal(), + $builtinMacro->isFinal(), + $supportAssertions ? null : $builtinMacro->getDocComment(), + $supportAssertions ? Assertions::createEmpty() : null, + null, + $builtinMacro->getDocComment(), + [] + ); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php b/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php new file mode 100644 index 000000000..c88e49e57 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php @@ -0,0 +1,87 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\PHPStan; + +use Carbon\CarbonInterface; +use PHPStan\Reflection\ReflectionProvider; +use ReflectionClass; +use ReflectionException; + +final class MacroScanner +{ + /** + * @var \PHPStan\Reflection\ReflectionProvider + */ + private $reflectionProvider; + + /** + * MacroScanner constructor. + * + * @param \PHPStan\Reflection\ReflectionProvider $reflectionProvider + */ + public function __construct(ReflectionProvider $reflectionProvider) + { + $this->reflectionProvider = $reflectionProvider; + } + + /** + * Return true if the given pair class-method is a Carbon macro. + * + * @param string $className + * @phpstan-param class-string $className + * + * @param string $methodName + * + * @return bool + */ + public function hasMethod(string $className, string $methodName): bool + { + $classReflection = $this->reflectionProvider->getClass($className); + + if ( + $classReflection->getName() !== CarbonInterface::class && + !$classReflection->isSubclassOf(CarbonInterface::class) + ) { + return false; + } + + return \is_callable([$className, 'hasMacro']) && + $className::hasMacro($methodName); + } + + /** + * Return the Macro for a given pair class-method. + * + * @param string $className + * @phpstan-param class-string $className + * + * @param string $methodName + * + * @throws ReflectionException + * + * @return Macro + */ + public function getMethod(string $className, string $methodName): Macro + { + $reflectionClass = new ReflectionClass($className); + $property = $reflectionClass->getProperty('globalMacros'); + + $property->setAccessible(true); + $macro = $property->getValue()[$methodName]; + + return new Macro( + $className, + $methodName, + $macro + ); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php b/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php new file mode 100644 index 000000000..71bbb7230 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php @@ -0,0 +1,443 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Exceptions\UnknownUnitException; + +/** + * Trait Boundaries. + * + * startOf, endOf and derived method for each unit. + * + * Depends on the following properties: + * + * @property int $year + * @property int $month + * @property int $daysInMonth + * @property int $quarter + * + * Depends on the following methods: + * + * @method $this setTime(int $hour, int $minute, int $second = 0, int $microseconds = 0) + * @method $this setDate(int $year, int $month, int $day) + * @method $this addMonths(int $value = 1) + */ +trait Boundaries +{ + /** + * Resets the time to 00:00:00 start of day + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfDay(); + * ``` + * + * @return static + */ + public function startOfDay() + { + return $this->setTime(0, 0, 0, 0); + } + + /** + * Resets the time to 23:59:59.999999 end of day + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfDay(); + * ``` + * + * @return static + */ + public function endOfDay() + { + return $this->setTime(static::HOURS_PER_DAY - 1, static::MINUTES_PER_HOUR - 1, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1); + } + + /** + * Resets the date to the first day of the month and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMonth(); + * ``` + * + * @return static + */ + public function startOfMonth() + { + return $this->setDate($this->year, $this->month, 1)->startOfDay(); + } + + /** + * Resets the date to end of the month and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMonth(); + * ``` + * + * @return static + */ + public function endOfMonth() + { + return $this->setDate($this->year, $this->month, $this->daysInMonth)->endOfDay(); + } + + /** + * Resets the date to the first day of the quarter and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfQuarter(); + * ``` + * + * @return static + */ + public function startOfQuarter() + { + $month = ($this->quarter - 1) * static::MONTHS_PER_QUARTER + 1; + + return $this->setDate($this->year, $month, 1)->startOfDay(); + } + + /** + * Resets the date to end of the quarter and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfQuarter(); + * ``` + * + * @return static + */ + public function endOfQuarter() + { + return $this->startOfQuarter()->addMonths(static::MONTHS_PER_QUARTER - 1)->endOfMonth(); + } + + /** + * Resets the date to the first day of the year and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfYear(); + * ``` + * + * @return static + */ + public function startOfYear() + { + return $this->setDate($this->year, 1, 1)->startOfDay(); + } + + /** + * Resets the date to end of the year and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfYear(); + * ``` + * + * @return static + */ + public function endOfYear() + { + return $this->setDate($this->year, 12, 31)->endOfDay(); + } + + /** + * Resets the date to the first day of the decade and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfDecade(); + * ``` + * + * @return static + */ + public function startOfDecade() + { + $year = $this->year - $this->year % static::YEARS_PER_DECADE; + + return $this->setDate($year, 1, 1)->startOfDay(); + } + + /** + * Resets the date to end of the decade and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfDecade(); + * ``` + * + * @return static + */ + public function endOfDecade() + { + $year = $this->year - $this->year % static::YEARS_PER_DECADE + static::YEARS_PER_DECADE - 1; + + return $this->setDate($year, 12, 31)->endOfDay(); + } + + /** + * Resets the date to the first day of the century and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfCentury(); + * ``` + * + * @return static + */ + public function startOfCentury() + { + $year = $this->year - ($this->year - 1) % static::YEARS_PER_CENTURY; + + return $this->setDate($year, 1, 1)->startOfDay(); + } + + /** + * Resets the date to end of the century and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfCentury(); + * ``` + * + * @return static + */ + public function endOfCentury() + { + $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_CENTURY + static::YEARS_PER_CENTURY; + + return $this->setDate($year, 12, 31)->endOfDay(); + } + + /** + * Resets the date to the first day of the millennium and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMillennium(); + * ``` + * + * @return static + */ + public function startOfMillennium() + { + $year = $this->year - ($this->year - 1) % static::YEARS_PER_MILLENNIUM; + + return $this->setDate($year, 1, 1)->startOfDay(); + } + + /** + * Resets the date to end of the millennium and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMillennium(); + * ``` + * + * @return static + */ + public function endOfMillennium() + { + $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_MILLENNIUM + static::YEARS_PER_MILLENNIUM; + + return $this->setDate($year, 12, 31)->endOfDay(); + } + + /** + * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->startOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek(Carbon::SUNDAY) . "\n"; + * ``` + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return static + */ + public function startOfWeek($weekStartsAt = null) + { + return $this->subDays((7 + $this->dayOfWeek - ($weekStartsAt ?? $this->firstWeekDay)) % 7)->startOfDay(); + } + + /** + * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59.999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->endOfWeek() . "\n"; + * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek(Carbon::SATURDAY) . "\n"; + * ``` + * + * @param int $weekEndsAt optional start allow you to specify the day of week to use to end the week + * + * @return static + */ + public function endOfWeek($weekEndsAt = null) + { + return $this->addDays((7 - $this->dayOfWeek + ($weekEndsAt ?? $this->lastWeekDay)) % 7)->endOfDay(); + } + + /** + * Modify to start of current hour, minutes and seconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfHour(); + * ``` + * + * @return static + */ + public function startOfHour() + { + return $this->setTime($this->hour, 0, 0, 0); + } + + /** + * Modify to end of current hour, minutes and seconds become 59 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfHour(); + * ``` + * + * @return static + */ + public function endOfHour() + { + return $this->setTime($this->hour, static::MINUTES_PER_HOUR - 1, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1); + } + + /** + * Modify to start of current minute, seconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->startOfMinute(); + * ``` + * + * @return static + */ + public function startOfMinute() + { + return $this->setTime($this->hour, $this->minute, 0, 0); + } + + /** + * Modify to end of current minute, seconds become 59 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16')->endOfMinute(); + * ``` + * + * @return static + */ + public function endOfMinute() + { + return $this->setTime($this->hour, $this->minute, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1); + } + + /** + * Modify to start of current second, microseconds become 0 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOfSecond() + * ->format('H:i:s.u'); + * ``` + * + * @return static + */ + public function startOfSecond() + { + return $this->setTime($this->hour, $this->minute, $this->second, 0); + } + + /** + * Modify to end of current second, microseconds become 999999 + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->endOfSecond() + * ->format('H:i:s.u'); + * ``` + * + * @return static + */ + public function endOfSecond() + { + return $this->setTime($this->hour, $this->minute, $this->second, static::MICROSECONDS_PER_SECOND - 1); + } + + /** + * Modify to start of current given unit. + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOf('month') + * ->endOf('week', Carbon::FRIDAY); + * ``` + * + * @param string $unit + * @param array $params + * + * @return static + */ + public function startOf($unit, ...$params) + { + $ucfUnit = ucfirst(static::singularUnit($unit)); + $method = "startOf$ucfUnit"; + if (!method_exists($this, $method)) { + throw new UnknownUnitException($unit); + } + + return $this->$method(...$params); + } + + /** + * Modify to end of current given unit. + * + * @example + * ``` + * echo Carbon::parse('2018-07-25 12:45:16.334455') + * ->startOf('month') + * ->endOf('week', Carbon::FRIDAY); + * ``` + * + * @param string $unit + * @param array $params + * + * @return static + */ + public function endOf($unit, ...$params) + { + $ucfUnit = ucfirst(static::singularUnit($unit)); + $method = "endOf$ucfUnit"; + if (!method_exists($this, $method)) { + throw new UnknownUnitException($unit); + } + + return $this->$method(...$params); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php b/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php new file mode 100644 index 000000000..5f7c7c011 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Exceptions\InvalidCastException; +use DateTimeInterface; + +/** + * Trait Cast. + * + * Utils to cast into an other class. + */ +trait Cast +{ + /** + * Cast the current instance into the given class. + * + * @param string $className The $className::instance() method will be called to cast the current object. + * + * @return DateTimeInterface + */ + public function cast(string $className) + { + if (!method_exists($className, 'instance')) { + if (is_a($className, DateTimeInterface::class, true)) { + return new $className($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone()); + } + + throw new InvalidCastException("$className has not the instance() method needed to cast the date."); + } + + return $className::instance($this); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php b/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php new file mode 100644 index 000000000..f6261d882 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php @@ -0,0 +1,1125 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use BadMethodCallException; +use Carbon\CarbonInterface; +use Carbon\Exceptions\BadComparisonUnitException; +use InvalidArgumentException; + +/** + * Trait Comparison. + * + * Comparison utils and testers. All the following methods return booleans. + * nowWithSameTz + * + * Depends on the following methods: + * + * @method static resolveCarbon($date) + * @method static copy() + * @method static nowWithSameTz() + * @method static static yesterday($timezone = null) + * @method static static tomorrow($timezone = null) + */ +trait Comparison +{ + /** @var bool */ + protected $endOfTime = false; + + /** @var bool */ + protected $startOfTime = false; + + /** + * Determines if the instance is equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->eq(Carbon::parse('2018-07-25 12:45:16')); // true + * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see equalTo() + * + * @return bool + */ + public function eq($date): bool + { + return $this->equalTo($date); + } + + /** + * Determines if the instance is equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->equalTo(Carbon::parse('2018-07-25 12:45:16')); // true + * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function equalTo($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this == $this->resolveCarbon($date); + } + + /** + * Determines if the instance is not equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->ne(Carbon::parse('2018-07-25 12:45:16')); // false + * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see notEqualTo() + * + * @return bool + */ + public function ne($date): bool + { + return $this->notEqualTo($date); + } + + /** + * Determines if the instance is not equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo(Carbon::parse('2018-07-25 12:45:16')); // false + * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function notEqualTo($date): bool + { + return !$this->equalTo($date); + } + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThan() + * + * @return bool + */ + public function gt($date): bool + { + return $this->greaterThan($date); + } + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function greaterThan($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this > $this->resolveCarbon($date); + } + + /** + * Determines if the instance is greater (after) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThan() + * + * @return bool + */ + public function isAfter($date): bool + { + return $this->greaterThan($date); + } + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see greaterThanOrEqualTo() + * + * @return bool + */ + public function gte($date): bool + { + return $this->greaterThanOrEqualTo($date); + } + + /** + * Determines if the instance is greater (after) than or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:15'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:17'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function greaterThanOrEqualTo($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this >= $this->resolveCarbon($date); + } + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThan() + * + * @return bool + */ + public function lt($date): bool + { + return $this->lessThan($date); + } + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function lessThan($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this < $this->resolveCarbon($date); + } + + /** + * Determines if the instance is less (before) than another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:16'); // false + * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThan() + * + * @return bool + */ + public function isBefore($date): bool + { + return $this->lessThan($date); + } + + /** + * Determines if the instance is less (before) or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see lessThanOrEqualTo() + * + * @return bool + */ + public function lte($date): bool + { + return $this->lessThanOrEqualTo($date); + } + + /** + * Determines if the instance is less (before) or equal to another + * + * @example + * ``` + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:15'); // false + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:16'); // true + * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:17'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return bool + */ + public function lessThanOrEqualTo($date): bool + { + $this->discourageNull($date); + $this->discourageBoolean($date); + + return $this <= $this->resolveCarbon($date); + } + + /** + * Determines if the instance is between two others. + * + * The third argument allow you to specify if bounds are included or not (true by default) + * but for when you including/excluding bounds may produce different results in your application, + * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', false); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function between($date1, $date2, $equal = true): bool + { + $date1 = $this->resolveCarbon($date1); + $date2 = $this->resolveCarbon($date2); + + if ($date1->greaterThan($date2)) { + [$date1, $date2] = [$date2, $date1]; + } + + if ($equal) { + return $this >= $date1 && $this <= $date2; + } + + return $this > $date1 && $this < $date2; + } + + /** + * Determines if the instance is between two others, bounds included. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenIncluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-25', '2018-08-01'); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenIncluded($date1, $date2): bool + { + return $this->between($date1, $date2, true); + } + + /** + * Determines if the instance is between two others, bounds excluded. + * + * @example + * ``` + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->betweenExcluded('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-25', '2018-08-01'); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return bool + */ + public function betweenExcluded($date1, $date2): bool + { + return $this->between($date1, $date2, false); + } + + /** + * Determines if the instance is between two others + * + * @example + * ``` + * Carbon::parse('2018-07-25')->isBetween('2018-07-14', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-08-01', '2018-08-20'); // false + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01'); // true + * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01', false); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * @param bool $equal Indicates if an equal to comparison should be done + * + * @return bool + */ + public function isBetween($date1, $date2, $equal = true): bool + { + return $this->between($date1, $date2, $equal); + } + + /** + * Determines if the instance is a weekday. + * + * @example + * ``` + * Carbon::parse('2019-07-14')->isWeekday(); // false + * Carbon::parse('2019-07-15')->isWeekday(); // true + * ``` + * + * @return bool + */ + public function isWeekday() + { + return !$this->isWeekend(); + } + + /** + * Determines if the instance is a weekend day. + * + * @example + * ``` + * Carbon::parse('2019-07-14')->isWeekend(); // true + * Carbon::parse('2019-07-15')->isWeekend(); // false + * ``` + * + * @return bool + */ + public function isWeekend() + { + return \in_array($this->dayOfWeek, static::$weekendDays, true); + } + + /** + * Determines if the instance is yesterday. + * + * @example + * ``` + * Carbon::yesterday()->isYesterday(); // true + * Carbon::tomorrow()->isYesterday(); // false + * ``` + * + * @return bool + */ + public function isYesterday() + { + return $this->toDateString() === static::yesterday($this->getTimezone())->toDateString(); + } + + /** + * Determines if the instance is today. + * + * @example + * ``` + * Carbon::today()->isToday(); // true + * Carbon::tomorrow()->isToday(); // false + * ``` + * + * @return bool + */ + public function isToday() + { + return $this->toDateString() === $this->nowWithSameTz()->toDateString(); + } + + /** + * Determines if the instance is tomorrow. + * + * @example + * ``` + * Carbon::tomorrow()->isTomorrow(); // true + * Carbon::yesterday()->isTomorrow(); // false + * ``` + * + * @return bool + */ + public function isTomorrow() + { + return $this->toDateString() === static::tomorrow($this->getTimezone())->toDateString(); + } + + /** + * Determines if the instance is in the future, ie. greater (after) than now. + * + * @example + * ``` + * Carbon::now()->addHours(5)->isFuture(); // true + * Carbon::now()->subHours(5)->isFuture(); // false + * ``` + * + * @return bool + */ + public function isFuture() + { + return $this->greaterThan($this->nowWithSameTz()); + } + + /** + * Determines if the instance is in the past, ie. less (before) than now. + * + * @example + * ``` + * Carbon::now()->subHours(5)->isPast(); // true + * Carbon::now()->addHours(5)->isPast(); // false + * ``` + * + * @return bool + */ + public function isPast() + { + return $this->lessThan($this->nowWithSameTz()); + } + + /** + * Determines if the instance is a leap year. + * + * @example + * ``` + * Carbon::parse('2020-01-01')->isLeapYear(); // true + * Carbon::parse('2019-01-01')->isLeapYear(); // false + * ``` + * + * @return bool + */ + public function isLeapYear() + { + return $this->rawFormat('L') === '1'; + } + + /** + * Determines if the instance is a long year (using calendar year). + * + * ⚠️ This method completely ignores month and day to use the numeric year number, + * it's not correct if the exact date matters. For instance as `2019-12-30` is already + * in the first week of the 2020 year, if you want to know from this date if ISO week + * year 2020 is a long year, use `isLongIsoYear` instead. + * + * @example + * ``` + * Carbon::create(2015)->isLongYear(); // true + * Carbon::create(2016)->isLongYear(); // false + * ``` + * + * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates + * + * @return bool + */ + public function isLongYear() + { + return static::create($this->year, 12, 28, 0, 0, 0, $this->tz)->weekOfYear === 53; + } + + /** + * Determines if the instance is a long year (using ISO 8601 year). + * + * @example + * ``` + * Carbon::parse('2015-01-01')->isLongIsoYear(); // true + * Carbon::parse('2016-01-01')->isLongIsoYear(); // true + * Carbon::parse('2016-01-03')->isLongIsoYear(); // false + * Carbon::parse('2019-12-29')->isLongIsoYear(); // false + * Carbon::parse('2019-12-30')->isLongIsoYear(); // true + * ``` + * + * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates + * + * @return bool + */ + public function isLongIsoYear() + { + return static::create($this->isoWeekYear, 12, 28, 0, 0, 0, $this->tz)->weekOfYear === 53; + } + + /** + * Compares the formatted values of the two dates. + * + * @example + * ``` + * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-12-13')); // true + * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-06-14')); // false + * ``` + * + * @param string $format date formats to compare. + * @param \Carbon\Carbon|\DateTimeInterface|string|null $date instance to compare with or null to use current day. + * + * @return bool + */ + public function isSameAs($format, $date = null) + { + return $this->rawFormat($format) === $this->resolveCarbon($date)->rawFormat($format); + } + + /** + * Determines if the instance is in the current unit given. + * + * @example + * ``` + * Carbon::parse('2019-01-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // true + * Carbon::parse('2018-12-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // false + * ``` + * + * @param string $unit singular unit string + * @param \Carbon\Carbon|\DateTimeInterface|null $date instance to compare with or null to use current day. + * + * @throws BadComparisonUnitException + * + * @return bool + */ + public function isSameUnit($unit, $date = null) + { + $units = [ + // @call isSameUnit + 'year' => 'Y', + // @call isSameUnit + 'week' => 'o-W', + // @call isSameUnit + 'day' => 'Y-m-d', + // @call isSameUnit + 'hour' => 'Y-m-d H', + // @call isSameUnit + 'minute' => 'Y-m-d H:i', + // @call isSameUnit + 'second' => 'Y-m-d H:i:s', + // @call isSameUnit + 'micro' => 'Y-m-d H:i:s.u', + // @call isSameUnit + 'microsecond' => 'Y-m-d H:i:s.u', + ]; + + if (isset($units[$unit])) { + return $this->isSameAs($units[$unit], $date); + } + + if (isset($this->$unit)) { + return $this->resolveCarbon($date)->$unit === $this->$unit; + } + + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new BadComparisonUnitException($unit); + } + + return false; + } + + /** + * Determines if the instance is in the current unit given. + * + * @example + * ``` + * Carbon::now()->isCurrentUnit('hour'); // true + * Carbon::now()->subHours(2)->isCurrentUnit('hour'); // false + * ``` + * + * @param string $unit The unit to test. + * + * @throws BadMethodCallException + * + * @return bool + */ + public function isCurrentUnit($unit) + { + return $this->{'isSame'.ucfirst($unit)}(); + } + + /** + * Checks if the passed in date is in the same quarter as the instance quarter (and year if needed). + * + * @example + * ``` + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-03-01')); // true + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-04-01')); // false + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01')); // false + * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01'), false); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|string|null $date The instance to compare with or null to use current day. + * @param bool $ofSameYear Check if it is the same month in the same year. + * + * @return bool + */ + public function isSameQuarter($date = null, $ofSameYear = true) + { + $date = $this->resolveCarbon($date); + + return $this->quarter === $date->quarter && (!$ofSameYear || $this->isSameYear($date)); + } + + /** + * Checks if the passed in date is in the same month as the instance´s month. + * + * @example + * ``` + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-01-01')); // true + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-02-01')); // false + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01')); // false + * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01'), false); // true + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use the current date. + * @param bool $ofSameYear Check if it is the same month in the same year. + * + * @return bool + */ + public function isSameMonth($date = null, $ofSameYear = true) + { + return $this->isSameAs($ofSameYear ? 'Y-m' : 'm', $date); + } + + /** + * Checks if this day is a specific day of the week. + * + * @example + * ``` + * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::WEDNESDAY); // true + * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::FRIDAY); // false + * Carbon::parse('2019-07-17')->isDayOfWeek('Wednesday'); // true + * Carbon::parse('2019-07-17')->isDayOfWeek('Friday'); // false + * ``` + * + * @param int $dayOfWeek + * + * @return bool + */ + public function isDayOfWeek($dayOfWeek) + { + if (\is_string($dayOfWeek) && \defined($constant = static::class.'::'.strtoupper($dayOfWeek))) { + $dayOfWeek = \constant($constant); + } + + return $this->dayOfWeek === $dayOfWeek; + } + + /** + * Check if its the birthday. Compares the date/month values of the two dates. + * + * @example + * ``` + * Carbon::now()->subYears(5)->isBirthday(); // true + * Carbon::now()->subYears(5)->subDay()->isBirthday(); // false + * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-05')); // true + * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-06')); // false + * ``` + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use current day. + * + * @return bool + */ + public function isBirthday($date = null) + { + return $this->isSameAs('md', $date); + } + + /** + * Check if today is the last day of the Month + * + * @example + * ``` + * Carbon::parse('2019-02-28')->isLastOfMonth(); // true + * Carbon::parse('2019-03-28')->isLastOfMonth(); // false + * Carbon::parse('2019-03-30')->isLastOfMonth(); // false + * Carbon::parse('2019-03-31')->isLastOfMonth(); // true + * Carbon::parse('2019-04-30')->isLastOfMonth(); // true + * ``` + * + * @return bool + */ + public function isLastOfMonth() + { + return $this->day === $this->daysInMonth; + } + + /** + * Check if the instance is start of day / midnight. + * + * @example + * ``` + * Carbon::parse('2019-02-28 00:00:00')->isStartOfDay(); // true + * Carbon::parse('2019-02-28 00:00:00.999999')->isStartOfDay(); // true + * Carbon::parse('2019-02-28 00:00:01')->isStartOfDay(); // false + * Carbon::parse('2019-02-28 00:00:00.000000')->isStartOfDay(true); // true + * Carbon::parse('2019-02-28 00:00:00.000012')->isStartOfDay(true); // false + * ``` + * + * @param bool $checkMicroseconds check time at microseconds precision + * + * @return bool + */ + public function isStartOfDay($checkMicroseconds = false) + { + /* @var CarbonInterface $this */ + return $checkMicroseconds + ? $this->rawFormat('H:i:s.u') === '00:00:00.000000' + : $this->rawFormat('H:i:s') === '00:00:00'; + } + + /** + * Check if the instance is end of day. + * + * @example + * ``` + * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(); // true + * Carbon::parse('2019-02-28 23:59:58.999999')->isEndOfDay(); // false + * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(true); // true + * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(true); // false + * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(true); // false + * ``` + * + * @param bool $checkMicroseconds check time at microseconds precision + * + * @return bool + */ + public function isEndOfDay($checkMicroseconds = false) + { + /* @var CarbonInterface $this */ + return $checkMicroseconds + ? $this->rawFormat('H:i:s.u') === '23:59:59.999999' + : $this->rawFormat('H:i:s') === '23:59:59'; + } + + /** + * Check if the instance is start of day / midnight. + * + * @example + * ``` + * Carbon::parse('2019-02-28 00:00:00')->isMidnight(); // true + * Carbon::parse('2019-02-28 00:00:00.999999')->isMidnight(); // true + * Carbon::parse('2019-02-28 00:00:01')->isMidnight(); // false + * ``` + * + * @return bool + */ + public function isMidnight() + { + return $this->isStartOfDay(); + } + + /** + * Check if the instance is midday. + * + * @example + * ``` + * Carbon::parse('2019-02-28 11:59:59.999999')->isMidday(); // false + * Carbon::parse('2019-02-28 12:00:00')->isMidday(); // true + * Carbon::parse('2019-02-28 12:00:00.999999')->isMidday(); // true + * Carbon::parse('2019-02-28 12:00:01')->isMidday(); // false + * ``` + * + * @return bool + */ + public function isMidday() + { + /* @var CarbonInterface $this */ + return $this->rawFormat('G:i:s') === static::$midDayAt.':00:00'; + } + + /** + * Checks if the (date)time string is in a given format. + * + * @example + * ``` + * Carbon::hasFormat('11:12:45', 'h:i:s'); // true + * Carbon::hasFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function hasFormat($date, $format) + { + // createFromFormat() is known to handle edge cases silently. + // E.g. "1975-5-1" (Y-n-j) will still be parsed correctly when "Y-m-d" is supplied as the format. + // To ensure we're really testing against our desired format, perform an additional regex validation. + + return self::matchFormatPattern((string) $date, preg_quote((string) $format, '/'), static::$regexFormats); + } + + /** + * Checks if the (date)time string is in a given format. + * + * @example + * ``` + * Carbon::hasFormatWithModifiers('31/08/2015', 'd#m#Y'); // true + * Carbon::hasFormatWithModifiers('31/08/2015', 'm#d#Y'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function hasFormatWithModifiers($date, $format): bool + { + return self::matchFormatPattern((string) $date, (string) $format, array_merge(static::$regexFormats, static::$regexFormatModifiers)); + } + + /** + * Checks if the (date)time string is in a given format and valid to create a + * new instance. + * + * @example + * ``` + * Carbon::canBeCreatedFromFormat('11:12:45', 'h:i:s'); // true + * Carbon::canBeCreatedFromFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * + * @return bool + */ + public static function canBeCreatedFromFormat($date, $format) + { + try { + // Try to create a DateTime object. Throws an InvalidArgumentException if the provided time string + // doesn't match the format in any way. + if (!static::rawCreateFromFormat($format, $date)) { + return false; + } + } catch (InvalidArgumentException $e) { + return false; + } + + return static::hasFormatWithModifiers($date, $format); + } + + /** + * Returns true if the current date matches the given string. + * + * @example + * ``` + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2018')); // false + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('06-02')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06-02')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('Sunday')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('June')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:45')); // true + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:00')); // false + * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12h')); // true + * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3pm')); // true + * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3am')); // false + * ``` + * + * @param string $tester day name, month name, hour, date, etc. as string + * + * @return bool + */ + public function is(string $tester) + { + $tester = trim($tester); + + if (preg_match('/^\d+$/', $tester)) { + return $this->year === (int) $tester; + } + + if (preg_match('/^\d{3,}-\d{1,2}$/', $tester)) { + return $this->isSameMonth(static::parse($tester)); + } + + if (preg_match('/^\d{1,2}-\d{1,2}$/', $tester)) { + return $this->isSameDay(static::parse($this->year.'-'.$tester)); + } + + $modifier = preg_replace('/(\d)h$/i', '$1:00', $tester); + + /* @var CarbonInterface $max */ + $median = static::parse('5555-06-15 12:30:30.555555')->modify($modifier); + $current = $this->avoidMutation(); + /* @var CarbonInterface $other */ + $other = $this->avoidMutation()->modify($modifier); + + if ($current->eq($other)) { + return true; + } + + if (preg_match('/\d:\d{1,2}:\d{1,2}$/', $tester)) { + return $current->startOfSecond()->eq($other); + } + + if (preg_match('/\d:\d{1,2}$/', $tester)) { + return $current->startOfMinute()->eq($other); + } + + if (preg_match('/\d(?:h|am|pm)$/', $tester)) { + return $current->startOfHour()->eq($other); + } + + if (preg_match( + '/^(?:january|february|march|april|may|june|july|august|september|october|november|december)(?:\s+\d+)?$/i', + $tester + )) { + return $current->startOfMonth()->eq($other->startOfMonth()); + } + + $units = [ + 'month' => [1, 'year'], + 'day' => [1, 'month'], + 'hour' => [0, 'day'], + 'minute' => [0, 'hour'], + 'second' => [0, 'minute'], + 'microsecond' => [0, 'second'], + ]; + + foreach ($units as $unit => [$minimum, $startUnit]) { + if ($minimum === $median->$unit) { + $current = $current->startOf($startUnit); + + break; + } + } + + return $current->eq($other); + } + + /** + * Checks if the (date)time string is in a given format with + * given list of pattern replacements. + * + * @example + * ``` + * Carbon::hasFormat('11:12:45', 'h:i:s'); // true + * Carbon::hasFormat('13:12:45', 'h:i:s'); // false + * ``` + * + * @param string $date + * @param string $format + * @param array $replacements + * + * @return bool + */ + private static function matchFormatPattern(string $date, string $format, array $replacements): bool + { + // Preg quote, but remove escaped backslashes since we'll deal with escaped characters in the format string. + $regex = str_replace('\\\\', '\\', $format); + // Replace not-escaped letters + $regex = preg_replace_callback( + '/(?startOfTime ?? false; + } + + /** + * Returns true if the date was created using CarbonImmutable::endOfTime() + * + * @return bool + */ + public function isEndOfTime(): bool + { + return $this->endOfTime ?? false; + } + + private function discourageNull($value): void + { + if ($value === null) { + @trigger_error("Since 2.61.0, it's deprecated to compare a date to null, meaning of such comparison is ambiguous and will no longer be possible in 3.0.0, you should explicitly pass 'now' or make an other check to eliminate null values.", \E_USER_DEPRECATED); + } + } + + private function discourageBoolean($value): void + { + if (\is_bool($value)) { + @trigger_error("Since 2.61.0, it's deprecated to compare a date to true or false, meaning of such comparison is ambiguous and will no longer be possible in 3.0.0, you should explicitly pass 'now' or make an other check to eliminate boolean values.", \E_USER_DEPRECATED); + } + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php b/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php new file mode 100644 index 000000000..fff8a600a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php @@ -0,0 +1,639 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterface; +use Carbon\CarbonInterval; +use Carbon\CarbonPeriod; +use Carbon\CarbonPeriodImmutable; +use Carbon\Exceptions\UnitException; +use Closure; +use DateTime; +use DateTimeImmutable; +use ReturnTypeWillChange; + +/** + * Trait Converter. + * + * Change date into different string formats and types and + * handle the string cast. + * + * Depends on the following methods: + * + * @method static copy() + */ +trait Converter +{ + use ToStringFormat; + + /** + * Returns the formatted date string on success or FALSE on failure. + * + * @see https://php.net/manual/en/datetime.format.php + * + * @param string $format + * + * @return string + */ + #[ReturnTypeWillChange] + public function format($format) + { + $function = $this->localFormatFunction ?: static::$formatFunction; + + if (!$function) { + return $this->rawFormat($format); + } + + if (\is_string($function) && method_exists($this, $function)) { + $function = [$this, $function]; + } + + return $function(...\func_get_args()); + } + + /** + * @see https://php.net/manual/en/datetime.format.php + * + * @param string $format + * + * @return string + */ + public function rawFormat($format) + { + return parent::format($format); + } + + /** + * Format the instance as a string using the set format + * + * @example + * ``` + * echo Carbon::now(); // Carbon instances can be cast to string + * ``` + * + * @return string + */ + public function __toString() + { + $format = $this->localToStringFormat ?? static::$toStringFormat; + + return $format instanceof Closure + ? $format($this) + : $this->rawFormat($format ?: ( + \defined('static::DEFAULT_TO_STRING_FORMAT') + ? static::DEFAULT_TO_STRING_FORMAT + : CarbonInterface::DEFAULT_TO_STRING_FORMAT + )); + } + + /** + * Format the instance as date + * + * @example + * ``` + * echo Carbon::now()->toDateString(); + * ``` + * + * @return string + */ + public function toDateString() + { + return $this->rawFormat('Y-m-d'); + } + + /** + * Format the instance as a readable date + * + * @example + * ``` + * echo Carbon::now()->toFormattedDateString(); + * ``` + * + * @return string + */ + public function toFormattedDateString() + { + return $this->rawFormat('M j, Y'); + } + + /** + * Format the instance with the day, and a readable date + * + * @example + * ``` + * echo Carbon::now()->toFormattedDayDateString(); + * ``` + * + * @return string + */ + public function toFormattedDayDateString(): string + { + return $this->rawFormat('D, M j, Y'); + } + + /** + * Format the instance as time + * + * @example + * ``` + * echo Carbon::now()->toTimeString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toTimeString($unitPrecision = 'second') + { + return $this->rawFormat(static::getTimeFormatByPrecision($unitPrecision)); + } + + /** + * Format the instance as date and time + * + * @example + * ``` + * echo Carbon::now()->toDateTimeString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toDateTimeString($unitPrecision = 'second') + { + return $this->rawFormat('Y-m-d '.static::getTimeFormatByPrecision($unitPrecision)); + } + + /** + * Return a format from H:i to H:i:s.u according to given unit precision. + * + * @param string $unitPrecision "minute", "second", "millisecond" or "microsecond" + * + * @return string + */ + public static function getTimeFormatByPrecision($unitPrecision) + { + switch (static::singularUnit($unitPrecision)) { + case 'minute': + return 'H:i'; + case 'second': + return 'H:i:s'; + case 'm': + case 'millisecond': + return 'H:i:s.v'; + case 'µ': + case 'microsecond': + return 'H:i:s.u'; + } + + throw new UnitException('Precision unit expected among: minute, second, millisecond and microsecond.'); + } + + /** + * Format the instance as date and time T-separated with no timezone + * + * @example + * ``` + * echo Carbon::now()->toDateTimeLocalString(); + * echo "\n"; + * echo Carbon::now()->toDateTimeLocalString('minute'); // You can specify precision among: minute, second, millisecond and microsecond + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toDateTimeLocalString($unitPrecision = 'second') + { + return $this->rawFormat('Y-m-d\T'.static::getTimeFormatByPrecision($unitPrecision)); + } + + /** + * Format the instance with day, date and time + * + * @example + * ``` + * echo Carbon::now()->toDayDateTimeString(); + * ``` + * + * @return string + */ + public function toDayDateTimeString() + { + return $this->rawFormat('D, M j, Y g:i A'); + } + + /** + * Format the instance as ATOM + * + * @example + * ``` + * echo Carbon::now()->toAtomString(); + * ``` + * + * @return string + */ + public function toAtomString() + { + return $this->rawFormat(DateTime::ATOM); + } + + /** + * Format the instance as COOKIE + * + * @example + * ``` + * echo Carbon::now()->toCookieString(); + * ``` + * + * @return string + */ + public function toCookieString() + { + return $this->rawFormat(DateTime::COOKIE); + } + + /** + * Format the instance as ISO8601 + * + * @example + * ``` + * echo Carbon::now()->toIso8601String(); + * ``` + * + * @return string + */ + public function toIso8601String() + { + return $this->toAtomString(); + } + + /** + * Format the instance as RFC822 + * + * @example + * ``` + * echo Carbon::now()->toRfc822String(); + * ``` + * + * @return string + */ + public function toRfc822String() + { + return $this->rawFormat(DateTime::RFC822); + } + + /** + * Convert the instance to UTC and return as Zulu ISO8601 + * + * @example + * ``` + * echo Carbon::now()->toIso8601ZuluString(); + * ``` + * + * @param string $unitPrecision + * + * @return string + */ + public function toIso8601ZuluString($unitPrecision = 'second') + { + return $this->avoidMutation() + ->utc() + ->rawFormat('Y-m-d\T'.static::getTimeFormatByPrecision($unitPrecision).'\Z'); + } + + /** + * Format the instance as RFC850 + * + * @example + * ``` + * echo Carbon::now()->toRfc850String(); + * ``` + * + * @return string + */ + public function toRfc850String() + { + return $this->rawFormat(DateTime::RFC850); + } + + /** + * Format the instance as RFC1036 + * + * @example + * ``` + * echo Carbon::now()->toRfc1036String(); + * ``` + * + * @return string + */ + public function toRfc1036String() + { + return $this->rawFormat(DateTime::RFC1036); + } + + /** + * Format the instance as RFC1123 + * + * @example + * ``` + * echo Carbon::now()->toRfc1123String(); + * ``` + * + * @return string + */ + public function toRfc1123String() + { + return $this->rawFormat(DateTime::RFC1123); + } + + /** + * Format the instance as RFC2822 + * + * @example + * ``` + * echo Carbon::now()->toRfc2822String(); + * ``` + * + * @return string + */ + public function toRfc2822String() + { + return $this->rawFormat(DateTime::RFC2822); + } + + /** + * Format the instance as RFC3339 + * + * @param bool $extended + * + * @example + * ``` + * echo Carbon::now()->toRfc3339String() . "\n"; + * echo Carbon::now()->toRfc3339String(true) . "\n"; + * ``` + * + * @return string + */ + public function toRfc3339String($extended = false) + { + $format = DateTime::RFC3339; + if ($extended) { + $format = DateTime::RFC3339_EXTENDED; + } + + return $this->rawFormat($format); + } + + /** + * Format the instance as RSS + * + * @example + * ``` + * echo Carbon::now()->toRssString(); + * ``` + * + * @return string + */ + public function toRssString() + { + return $this->rawFormat(DateTime::RSS); + } + + /** + * Format the instance as W3C + * + * @example + * ``` + * echo Carbon::now()->toW3cString(); + * ``` + * + * @return string + */ + public function toW3cString() + { + return $this->rawFormat(DateTime::W3C); + } + + /** + * Format the instance as RFC7231 + * + * @example + * ``` + * echo Carbon::now()->toRfc7231String(); + * ``` + * + * @return string + */ + public function toRfc7231String() + { + return $this->avoidMutation() + ->setTimezone('GMT') + ->rawFormat(\defined('static::RFC7231_FORMAT') ? static::RFC7231_FORMAT : CarbonInterface::RFC7231_FORMAT); + } + + /** + * Get default array representation. + * + * @example + * ``` + * var_dump(Carbon::now()->toArray()); + * ``` + * + * @return array + */ + public function toArray() + { + return [ + 'year' => $this->year, + 'month' => $this->month, + 'day' => $this->day, + 'dayOfWeek' => $this->dayOfWeek, + 'dayOfYear' => $this->dayOfYear, + 'hour' => $this->hour, + 'minute' => $this->minute, + 'second' => $this->second, + 'micro' => $this->micro, + 'timestamp' => $this->timestamp, + 'formatted' => $this->rawFormat(\defined('static::DEFAULT_TO_STRING_FORMAT') ? static::DEFAULT_TO_STRING_FORMAT : CarbonInterface::DEFAULT_TO_STRING_FORMAT), + 'timezone' => $this->timezone, + ]; + } + + /** + * Get default object representation. + * + * @example + * ``` + * var_dump(Carbon::now()->toObject()); + * ``` + * + * @return object + */ + public function toObject() + { + return (object) $this->toArray(); + } + + /** + * Returns english human readable complete date string. + * + * @example + * ``` + * echo Carbon::now()->toString(); + * ``` + * + * @return string + */ + public function toString() + { + return $this->avoidMutation()->locale('en')->isoFormat('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + /** + * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept: + * 1977-04-22T01:00:00-05:00). + * + * @example + * ``` + * echo Carbon::now('America/Toronto')->toISOString() . "\n"; + * echo Carbon::now('America/Toronto')->toISOString(true) . "\n"; + * ``` + * + * @param bool $keepOffset Pass true to keep the date offset. Else forced to UTC. + * + * @return null|string + */ + public function toISOString($keepOffset = false) + { + if (!$this->isValid()) { + return null; + } + + $yearFormat = $this->year < 0 || $this->year > 9999 ? 'YYYYYY' : 'YYYY'; + $tzFormat = $keepOffset ? 'Z' : '[Z]'; + $date = $keepOffset ? $this : $this->avoidMutation()->utc(); + + return $date->isoFormat("$yearFormat-MM-DD[T]HH:mm:ss.SSSSSS$tzFormat"); + } + + /** + * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z) with UTC timezone. + * + * @example + * ``` + * echo Carbon::now('America/Toronto')->toJSON(); + * ``` + * + * @return null|string + */ + public function toJSON() + { + return $this->toISOString(); + } + + /** + * Return native DateTime PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDateTime()); + * ``` + * + * @return DateTime + */ + public function toDateTime() + { + return new DateTime($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone()); + } + + /** + * Return native toDateTimeImmutable PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDateTimeImmutable()); + * ``` + * + * @return DateTimeImmutable + */ + public function toDateTimeImmutable() + { + return new DateTimeImmutable($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone()); + } + + /** + * @alias toDateTime + * + * Return native DateTime PHP object matching the current instance. + * + * @example + * ``` + * var_dump(Carbon::now()->toDate()); + * ``` + * + * @return DateTime + */ + public function toDate() + { + return $this->toDateTime(); + } + + /** + * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval). + * + * @param \DateTimeInterface|Carbon|CarbonImmutable|int|null $end period end date or recurrences count if int + * @param int|\DateInterval|string|null $interval period default interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return CarbonPeriod + */ + public function toPeriod($end = null, $interval = null, $unit = null) + { + if ($unit) { + $interval = CarbonInterval::make("$interval ".static::pluralUnit($unit)); + } + + $period = ($this->isMutable() ? new CarbonPeriod() : new CarbonPeriodImmutable()) + ->setDateClass(static::class) + ->setStartDate($this); + + if ($interval) { + $period = $period->setDateInterval($interval); + } + + if (\is_int($end) || (\is_string($end) && ctype_digit($end))) { + $period = $period->setRecurrences($end); + } elseif ($end) { + $period = $period->setEndDate($end); + } + + return $period; + } + + /** + * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval). + * + * @param \DateTimeInterface|Carbon|CarbonImmutable|null $end period end date + * @param int|\DateInterval|string|null $interval period default interval or number of the given $unit + * @param string|null $unit if specified, $interval must be an integer + * + * @return CarbonPeriod + */ + public function range($end = null, $interval = null, $unit = null) + { + return $this->toPeriod($end, $interval, $unit); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php b/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php new file mode 100644 index 000000000..184f81080 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php @@ -0,0 +1,974 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterface; +use Carbon\Exceptions\InvalidDateException; +use Carbon\Exceptions\InvalidFormatException; +use Carbon\Exceptions\OutOfRangeException; +use Carbon\Translator; +use Closure; +use DateMalformedStringException; +use DateTimeInterface; +use DateTimeZone; +use Exception; +use ReturnTypeWillChange; + +/** + * Trait Creator. + * + * Static creators. + * + * Depends on the following methods: + * + * @method static Carbon|CarbonImmutable getTestNow() + */ +trait Creator +{ + use ObjectInitialisation; + + /** + * The errors that can occur. + * + * @var array + */ + protected static $lastErrors; + + /** + * Create a new Carbon instance. + * + * Please see the testing aids section (specifically static::setTestNow()) + * for more on the possibility of this constructor returning a test instance. + * + * @param DateTimeInterface|string|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + */ + public function __construct($time = null, $tz = null) + { + if ($time instanceof DateTimeInterface) { + $time = $this->constructTimezoneFromDateTime($time, $tz)->format('Y-m-d H:i:s.u'); + } + + if (is_numeric($time) && (!\is_string($time) || !preg_match('/^\d{1,14}$/', $time))) { + $time = static::createFromTimestampUTC($time)->format('Y-m-d\TH:i:s.uP'); + } + + // If the class has a test now set and we are trying to create a now() + // instance then override as required + $isNow = empty($time) || $time === 'now'; + + if (method_exists(static::class, 'hasTestNow') && + method_exists(static::class, 'getTestNow') && + static::hasTestNow() && + ($isNow || static::hasRelativeKeywords($time)) + ) { + static::mockConstructorParameters($time, $tz); + } + + // Work-around for PHP bug https://bugs.php.net/bug.php?id=67127 + if (!str_contains((string) .1, '.')) { + $locale = setlocale(LC_NUMERIC, '0'); // @codeCoverageIgnore + setlocale(LC_NUMERIC, 'C'); // @codeCoverageIgnore + } + + try { + parent::__construct($time ?: 'now', static::safeCreateDateTimeZone($tz) ?: null); + } catch (Exception $exception) { + throw new InvalidFormatException($exception->getMessage(), 0, $exception); + } + + $this->constructedObjectId = spl_object_hash($this); + + if (isset($locale)) { + setlocale(LC_NUMERIC, $locale); // @codeCoverageIgnore + } + + self::setLastErrors(parent::getLastErrors()); + } + + /** + * Get timezone from a datetime instance. + * + * @param DateTimeInterface $date + * @param DateTimeZone|string|null $tz + * + * @return DateTimeInterface + */ + private function constructTimezoneFromDateTime(DateTimeInterface $date, &$tz) + { + if ($tz !== null) { + $safeTz = static::safeCreateDateTimeZone($tz); + + if ($safeTz) { + return $date->setTimezone($safeTz); + } + + return $date; + } + + $tz = $date->getTimezone(); + + return $date; + } + + /** + * Update constructedObjectId on cloned. + */ + public function __clone() + { + $this->constructedObjectId = spl_object_hash($this); + } + + /** + * Create a Carbon instance from a DateTime one. + * + * @param DateTimeInterface $date + * + * @return static + */ + public static function instance($date) + { + if ($date instanceof static) { + return clone $date; + } + + static::expectDateTime($date); + + $instance = new static($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); + + if ($date instanceof CarbonInterface) { + $settings = $date->getSettings(); + + if (!$date->hasLocalTranslator()) { + unset($settings['locale']); + } + + $instance->settings($settings); + } + + return $instance; + } + + /** + * Create a carbon instance from a string. + * + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * + * @param string|DateTimeInterface|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function rawParse($time = null, $tz = null) + { + if ($time instanceof DateTimeInterface) { + return static::instance($time); + } + + try { + return new static($time, $tz); + } catch (Exception $exception) { + // @codeCoverageIgnoreStart + try { + $date = @static::now($tz)->change($time); + } catch (DateMalformedStringException $ignoredException) { + $date = null; + } + // @codeCoverageIgnoreEnd + + if (!$date) { + throw new InvalidFormatException("Could not parse '$time': ".$exception->getMessage(), 0, $exception); + } + + return $date; + } + } + + /** + * Create a carbon instance from a string. + * + * This is an alias for the constructor that allows better fluent syntax + * as it allows you to do Carbon::parse('Monday next week')->fn() rather + * than (new Carbon('Monday next week'))->fn(). + * + * @param string|DateTimeInterface|null $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function parse($time = null, $tz = null) + { + $function = static::$parseFunction; + + if (!$function) { + return static::rawParse($time, $tz); + } + + if (\is_string($function) && method_exists(static::class, $function)) { + $function = [static::class, $function]; + } + + return $function(...\func_get_args()); + } + + /** + * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.). + * + * @param string $time date/time string in the given language (may also contain English). + * @param string|null $locale if locale is null or not specified, current global locale will be + * used instead. + * @param DateTimeZone|string|null $tz optional timezone for the new instance. + * + * @throws InvalidFormatException + * + * @return static + */ + public static function parseFromLocale($time, $locale = null, $tz = null) + { + return static::rawParse(static::translateTimeString($time, $locale, 'en'), $tz); + } + + /** + * Get a Carbon instance for the current date and time. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function now($tz = null) + { + return new static(null, $tz); + } + + /** + * Create a Carbon instance for today. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function today($tz = null) + { + return static::rawParse('today', $tz); + } + + /** + * Create a Carbon instance for tomorrow. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function tomorrow($tz = null) + { + return static::rawParse('tomorrow', $tz); + } + + /** + * Create a Carbon instance for yesterday. + * + * @param DateTimeZone|string|null $tz + * + * @return static + */ + public static function yesterday($tz = null) + { + return static::rawParse('yesterday', $tz); + } + + /** + * Create a Carbon instance for the greatest supported date. + * + * @return static + */ + public static function maxValue() + { + if (self::$PHPIntSize === 4) { + // 32 bit + return static::createFromTimestamp(PHP_INT_MAX); // @codeCoverageIgnore + } + + // 64 bit + return static::create(9999, 12, 31, 23, 59, 59); + } + + /** + * Create a Carbon instance for the lowest supported date. + * + * @return static + */ + public static function minValue() + { + if (self::$PHPIntSize === 4) { + // 32 bit + return static::createFromTimestamp(~PHP_INT_MAX); // @codeCoverageIgnore + } + + // 64 bit + return static::create(1, 1, 1, 0, 0, 0); + } + + private static function assertBetween($unit, $value, $min, $max) + { + if (static::isStrictModeEnabled() && ($value < $min || $value > $max)) { + throw new OutOfRangeException($unit, $min, $max, $value); + } + } + + private static function createNowInstance($tz) + { + if (!static::hasTestNow()) { + return static::now($tz); + } + + $now = static::getTestNow(); + + if ($now instanceof Closure) { + return $now(static::now($tz)); + } + + return $now->avoidMutation()->tz($tz); + } + + /** + * Create a new Carbon instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values will + * be used. + * + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * @param DateTimeInterface|int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null) + { + if ((\is_string($year) && !is_numeric($year)) || $year instanceof DateTimeInterface) { + return static::parse($year, $tz ?: (\is_string($month) || $month instanceof DateTimeZone ? $month : null)); + } + + $defaults = null; + $getDefault = function ($unit) use ($tz, &$defaults) { + if ($defaults === null) { + $now = self::createNowInstance($tz); + + $defaults = array_combine([ + 'year', + 'month', + 'day', + 'hour', + 'minute', + 'second', + ], explode('-', $now->rawFormat('Y-n-j-G-i-s.u'))); + } + + return $defaults[$unit]; + }; + + $year = $year ?? $getDefault('year'); + $month = $month ?? $getDefault('month'); + $day = $day ?? $getDefault('day'); + $hour = $hour ?? $getDefault('hour'); + $minute = $minute ?? $getDefault('minute'); + $second = (float) ($second ?? $getDefault('second')); + + self::assertBetween('month', $month, 0, 99); + self::assertBetween('day', $day, 0, 99); + self::assertBetween('hour', $hour, 0, 99); + self::assertBetween('minute', $minute, 0, 99); + self::assertBetween('second', $second, 0, 99); + + $fixYear = null; + + if ($year < 0) { + $fixYear = $year; + $year = 0; + } elseif ($year > 9999) { + $fixYear = $year - 9999; + $year = 9999; + } + + $second = ($second < 10 ? '0' : '').number_format($second, 6); + $instance = static::rawCreateFromFormat('!Y-n-j G:i:s.u', sprintf('%s-%s-%s %s:%02s:%02s', $year, $month, $day, $hour, $minute, $second), $tz); + + if ($fixYear !== null) { + $instance = $instance->addYears($fixYear); + } + + return $instance; + } + + /** + * Create a new safe Carbon instance from a specific date and time. + * + * If any of $year, $month or $day are set to null their now() values will + * be used. + * + * If $hour is null it will be set to its now() value and the default + * values for $minute and $second will be their now() values. + * + * If $hour is not null then the default values for $minute and $second + * will be 0. + * + * If one of the set values is not valid, an InvalidDateException + * will be thrown. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidDateException + * + * @return static|false + */ + public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) + { + $fields = static::getRangesByUnit(); + + foreach ($fields as $field => $range) { + if ($$field !== null && (!\is_int($$field) || $$field < $range[0] || $$field > $range[1])) { + if (static::isStrictModeEnabled()) { + throw new InvalidDateException($field, $$field); + } + + return false; + } + } + + $instance = static::create($year, $month, $day, $hour, $minute, $second, $tz); + + foreach (array_reverse($fields) as $field => $range) { + if ($$field !== null && (!\is_int($$field) || $$field !== $instance->$field)) { + if (static::isStrictModeEnabled()) { + throw new InvalidDateException($field, $$field); + } + + return false; + } + } + + return $instance; + } + + /** + * Create a new Carbon instance from a specific date and time using strict validation. + * + * @see create() + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null): self + { + $initialStrictMode = static::isStrictModeEnabled(); + static::useStrictMode(true); + + try { + $date = static::create($year, $month, $day, $hour, $minute, $second, $tz); + } finally { + static::useStrictMode($initialStrictMode); + } + + return $date; + } + + /** + * Create a Carbon instance from just a date. The time portion is set to now. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromDate($year = null, $month = null, $day = null, $tz = null) + { + return static::create($year, $month, $day, null, null, null, $tz); + } + + /** + * Create a Carbon instance from just a date. The time portion is set to midnight. + * + * @param int|null $year + * @param int|null $month + * @param int|null $day + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createMidnightDate($year = null, $month = null, $day = null, $tz = null) + { + return static::create($year, $month, $day, 0, 0, 0, $tz); + } + + /** + * Create a Carbon instance from just a time. The date portion is set to today. + * + * @param int|null $hour + * @param int|null $minute + * @param int|null $second + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null) + { + return static::create(null, null, null, $hour, $minute, $second, $tz); + } + + /** + * Create a Carbon instance from a time string. The date portion is set to today. + * + * @param string $time + * @param DateTimeZone|string|null $tz + * + * @throws InvalidFormatException + * + * @return static + */ + public static function createFromTimeString($time, $tz = null) + { + return static::today($tz)->setTimeFromTimeString($time); + } + + /** + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $originalTz + * + * @return DateTimeInterface|false + */ + private static function createFromFormatAndTimezone($format, $time, $originalTz) + { + // Work-around for https://bugs.php.net/bug.php?id=75577 + // @codeCoverageIgnoreStart + if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) { + $format = str_replace('.v', '.u', $format); + } + // @codeCoverageIgnoreEnd + + if ($originalTz === null) { + return parent::createFromFormat($format, (string) $time); + } + + $tz = \is_int($originalTz) + ? @timezone_name_from_abbr('', (int) ($originalTz * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE), 1) + : $originalTz; + + $tz = static::safeCreateDateTimeZone($tz, $originalTz); + + if ($tz === false) { + return false; + } + + return parent::createFromFormat($format, (string) $time, $tz); + } + + /** + * Create a Carbon instance from a specific format. + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function rawCreateFromFormat($format, $time, $tz = null) + { + // Work-around for https://bugs.php.net/bug.php?id=80141 + $format = preg_replace('/(?getTimezone(); + } + + // Set microseconds to zero to match behavior of DateTime::createFromFormat() + // See https://bugs.php.net/bug.php?id=74332 + $mock = $mock->copy()->microsecond(0); + + // Prepend mock datetime only if the format does not contain non escaped unix epoch reset flag. + if (!preg_match("/{$nonEscaped}[!|]/", $format)) { + $format = static::MOCK_DATETIME_FORMAT.' '.$format; + $time = ($mock instanceof self ? $mock->rawFormat(static::MOCK_DATETIME_FORMAT) : $mock->format(static::MOCK_DATETIME_FORMAT)).' '.$time; + } + + // Regenerate date from the modified format to base result on the mocked instance instead of now. + $date = self::createFromFormatAndTimezone($format, $time, $tz); + } + + if ($date instanceof DateTimeInterface) { + $instance = static::instance($date); + $instance::setLastErrors($lastErrors); + + return $instance; + } + + if (static::isStrictModeEnabled()) { + throw new InvalidFormatException(implode(PHP_EOL, $lastErrors['errors'])); + } + + return false; + } + + /** + * Create a Carbon instance from a specific format. + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + #[ReturnTypeWillChange] + public static function createFromFormat($format, $time, $tz = null) + { + $function = static::$createFromFormatFunction; + + if (!$function) { + return static::rawCreateFromFormat($format, $time, $tz); + } + + if (\is_string($function) && method_exists(static::class, $function)) { + $function = [static::class, $function]; + } + + return $function(...\func_get_args()); + } + + /** + * Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()). + * + * @param string $format Datetime format + * @param string $time + * @param DateTimeZone|string|false|null $tz optional timezone + * @param string|null $locale locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use) + * @param \Symfony\Component\Translation\TranslatorInterface $translator optional custom translator to use for macro-formats + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null) + { + $format = preg_replace_callback('/(? static::getTranslationMessageWith($translator, 'formats.LT', $locale, 'h:mm A'), + 'LTS' => static::getTranslationMessageWith($translator, 'formats.LTS', $locale, 'h:mm:ss A'), + 'L' => static::getTranslationMessageWith($translator, 'formats.L', $locale, 'MM/DD/YYYY'), + 'LL' => static::getTranslationMessageWith($translator, 'formats.LL', $locale, 'MMMM D, YYYY'), + 'LLL' => static::getTranslationMessageWith($translator, 'formats.LLL', $locale, 'MMMM D, YYYY h:mm A'), + 'LLLL' => static::getTranslationMessageWith($translator, 'formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'), + ]; + } + + return $formats[$code] ?? preg_replace_callback( + '/MMMM|MM|DD|dddd/', + function ($code) { + return mb_substr($code[0], 1); + }, + $formats[strtoupper($code)] ?? '' + ); + }, $format); + + $format = preg_replace_callback('/(? 'd', + 'OM' => 'M', + 'OY' => 'Y', + 'OH' => 'G', + 'Oh' => 'g', + 'Om' => 'i', + 'Os' => 's', + 'D' => 'd', + 'DD' => 'd', + 'Do' => 'd', + 'd' => '!', + 'dd' => '!', + 'ddd' => 'D', + 'dddd' => 'D', + 'DDD' => 'z', + 'DDDD' => 'z', + 'DDDo' => 'z', + 'e' => '!', + 'E' => '!', + 'H' => 'G', + 'HH' => 'H', + 'h' => 'g', + 'hh' => 'h', + 'k' => 'G', + 'kk' => 'G', + 'hmm' => 'gi', + 'hmmss' => 'gis', + 'Hmm' => 'Gi', + 'Hmmss' => 'Gis', + 'm' => 'i', + 'mm' => 'i', + 'a' => 'a', + 'A' => 'a', + 's' => 's', + 'ss' => 's', + 'S' => '*', + 'SS' => '*', + 'SSS' => '*', + 'SSSS' => '*', + 'SSSSS' => '*', + 'SSSSSS' => 'u', + 'SSSSSSS' => 'u*', + 'SSSSSSSS' => 'u*', + 'SSSSSSSSS' => 'u*', + 'M' => 'm', + 'MM' => 'm', + 'MMM' => 'M', + 'MMMM' => 'M', + 'Mo' => 'm', + 'Q' => '!', + 'Qo' => '!', + 'G' => '!', + 'GG' => '!', + 'GGG' => '!', + 'GGGG' => '!', + 'GGGGG' => '!', + 'g' => '!', + 'gg' => '!', + 'ggg' => '!', + 'gggg' => '!', + 'ggggg' => '!', + 'W' => '!', + 'WW' => '!', + 'Wo' => '!', + 'w' => '!', + 'ww' => '!', + 'wo' => '!', + 'x' => 'U???', + 'X' => 'U', + 'Y' => 'Y', + 'YY' => 'y', + 'YYYY' => 'Y', + 'YYYYY' => 'Y', + 'YYYYYY' => 'Y', + 'z' => 'e', + 'zz' => 'e', + 'Z' => 'e', + 'ZZ' => 'e', + ]; + } + + $format = $replacements[$code] ?? '?'; + + if ($format === '!') { + throw new InvalidFormatException("Format $code not supported for creation."); + } + + return $format; + }, $format); + + return static::rawCreateFromFormat($format, $time, $tz); + } + + /** + * Create a Carbon instance from a specific format and a string in a given language. + * + * @param string $format Datetime format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromLocaleFormat($format, $locale, $time, $tz = null) + { + $format = preg_replace_callback( + '/(?:\\\\[a-zA-Z]|[bfkqCEJKQRV]){2,}/', + static function (array $match) use ($locale): string { + $word = str_replace('\\', '', $match[0]); + $translatedWord = static::translateTimeString($word, $locale, 'en'); + + return $word === $translatedWord + ? $match[0] + : preg_replace('/[a-zA-Z]/', '\\\\$0', $translatedWord); + }, + $format + ); + + return static::rawCreateFromFormat($format, static::translateTimeString($time, $locale, 'en'), $tz); + } + + /** + * Create a Carbon instance from a specific ISO format and a string in a given language. + * + * @param string $format Datetime ISO format + * @param string $locale + * @param string $time + * @param DateTimeZone|string|false|null $tz + * + * @throws InvalidFormatException + * + * @return static|false + */ + public static function createFromLocaleIsoFormat($format, $locale, $time, $tz = null) + { + $time = static::translateTimeString($time, $locale, 'en', CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS | CarbonInterface::TRANSLATE_MERIDIEM); + + return static::createFromIsoFormat($format, $time, $tz, $locale); + } + + /** + * Make a Carbon instance from given variable if possible. + * + * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals + * and recurrences). Throw an exception for invalid format, but otherwise return null. + * + * @param mixed $var + * + * @throws InvalidFormatException + * + * @return static|null + */ + public static function make($var) + { + if ($var instanceof DateTimeInterface) { + return static::instance($var); + } + + $date = null; + + if (\is_string($var)) { + $var = trim($var); + + if (!preg_match('/^P[\dT]/', $var) && + !preg_match('/^R\d/', $var) && + preg_match('/[a-z\d]/i', $var) + ) { + $date = static::parse($var); + } + } + + return $date; + } + + /** + * Set last errors. + * + * @param array|bool $lastErrors + * + * @return void + */ + private static function setLastErrors($lastErrors) + { + if (\is_array($lastErrors) || $lastErrors === false) { + static::$lastErrors = \is_array($lastErrors) ? $lastErrors : [ + 'warning_count' => 0, + 'warnings' => [], + 'error_count' => 0, + 'errors' => [], + ]; + } + } + + /** + * {@inheritdoc} + * + * @return array + */ + #[ReturnTypeWillChange] + public static function getLastErrors() + { + return static::$lastErrors; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Date.php b/vendor/nesbot/carbon/src/Carbon/Traits/Date.php new file mode 100644 index 000000000..da3775c21 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Date.php @@ -0,0 +1,2746 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use BadMethodCallException; +use Carbon\Carbon; +use Carbon\CarbonInterface; +use Carbon\CarbonPeriod; +use Carbon\CarbonTimeZone; +use Carbon\Exceptions\BadComparisonUnitException; +use Carbon\Exceptions\ImmutableException; +use Carbon\Exceptions\InvalidTimeZoneException; +use Carbon\Exceptions\InvalidTypeException; +use Carbon\Exceptions\UnknownGetterException; +use Carbon\Exceptions\UnknownMethodException; +use Carbon\Exceptions\UnknownSetterException; +use Carbon\Exceptions\UnknownUnitException; +use Closure; +use DateInterval; +use DatePeriod; +use DateTime; +use DateTimeImmutable; +use DateTimeInterface; +use DateTimeZone; +use InvalidArgumentException; +use ReflectionException; +use ReturnTypeWillChange; +use Throwable; + +/** + * A simple API extension for DateTime. + * + * @mixin DeprecatedProperties + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method CarbonInterface years(int $value) Set current instance year to the given value. + * @method CarbonInterface year(int $value) Set current instance year to the given value. + * @method CarbonInterface setYears(int $value) Set current instance year to the given value. + * @method CarbonInterface setYear(int $value) Set current instance year to the given value. + * @method CarbonInterface months(int $value) Set current instance month to the given value. + * @method CarbonInterface month(int $value) Set current instance month to the given value. + * @method CarbonInterface setMonths(int $value) Set current instance month to the given value. + * @method CarbonInterface setMonth(int $value) Set current instance month to the given value. + * @method CarbonInterface days(int $value) Set current instance day to the given value. + * @method CarbonInterface day(int $value) Set current instance day to the given value. + * @method CarbonInterface setDays(int $value) Set current instance day to the given value. + * @method CarbonInterface setDay(int $value) Set current instance day to the given value. + * @method CarbonInterface hours(int $value) Set current instance hour to the given value. + * @method CarbonInterface hour(int $value) Set current instance hour to the given value. + * @method CarbonInterface setHours(int $value) Set current instance hour to the given value. + * @method CarbonInterface setHour(int $value) Set current instance hour to the given value. + * @method CarbonInterface minutes(int $value) Set current instance minute to the given value. + * @method CarbonInterface minute(int $value) Set current instance minute to the given value. + * @method CarbonInterface setMinutes(int $value) Set current instance minute to the given value. + * @method CarbonInterface setMinute(int $value) Set current instance minute to the given value. + * @method CarbonInterface seconds(int $value) Set current instance second to the given value. + * @method CarbonInterface second(int $value) Set current instance second to the given value. + * @method CarbonInterface setSeconds(int $value) Set current instance second to the given value. + * @method CarbonInterface setSecond(int $value) Set current instance second to the given value. + * @method CarbonInterface millis(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface milli(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMillis(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMilli(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface milliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface millisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface setMillisecond(int $value) Set current instance millisecond to the given value. + * @method CarbonInterface micros(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface micro(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicros(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicro(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface microseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface microsecond(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method CarbonInterface addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addYear() Add one year to the instance (using date interval). + * @method CarbonInterface subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subYear() Sub one year to the instance (using date interval). + * @method CarbonInterface addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMonth() Add one month to the instance (using date interval). + * @method CarbonInterface subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMonth() Sub one month to the instance (using date interval). + * @method CarbonInterface addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addDay() Add one day to the instance (using date interval). + * @method CarbonInterface subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subDay() Sub one day to the instance (using date interval). + * @method CarbonInterface addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addHour() Add one hour to the instance (using date interval). + * @method CarbonInterface subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subHour() Sub one hour to the instance (using date interval). + * @method CarbonInterface addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMinute() Add one minute to the instance (using date interval). + * @method CarbonInterface subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMinute() Sub one minute to the instance (using date interval). + * @method CarbonInterface addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addSecond() Add one second to the instance (using date interval). + * @method CarbonInterface subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subSecond() Sub one second to the instance (using date interval). + * @method CarbonInterface addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMilli() Add one millisecond to the instance (using date interval). + * @method CarbonInterface subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMilli() Sub one millisecond to the instance (using date interval). + * @method CarbonInterface addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMillisecond() Add one millisecond to the instance (using date interval). + * @method CarbonInterface subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMillisecond() Sub one millisecond to the instance (using date interval). + * @method CarbonInterface addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMicro() Add one microsecond to the instance (using date interval). + * @method CarbonInterface subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMicro() Sub one microsecond to the instance (using date interval). + * @method CarbonInterface addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMicrosecond() Add one microsecond to the instance (using date interval). + * @method CarbonInterface subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method CarbonInterface addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addMillennium() Add one millennium to the instance (using date interval). + * @method CarbonInterface subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subMillennium() Sub one millennium to the instance (using date interval). + * @method CarbonInterface addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addCentury() Add one century to the instance (using date interval). + * @method CarbonInterface subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subCentury() Sub one century to the instance (using date interval). + * @method CarbonInterface addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addDecade() Add one decade to the instance (using date interval). + * @method CarbonInterface subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subDecade() Sub one decade to the instance (using date interval). + * @method CarbonInterface addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addQuarter() Add one quarter to the instance (using date interval). + * @method CarbonInterface subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subQuarter() Sub one quarter to the instance (using date interval). + * @method CarbonInterface addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method CarbonInterface addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method CarbonInterface addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addWeek() Add one week to the instance (using date interval). + * @method CarbonInterface subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subWeek() Sub one week to the instance (using date interval). + * @method CarbonInterface addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface addWeekday() Add one weekday to the instance (using date interval). + * @method CarbonInterface subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method CarbonInterface subWeekday() Sub one weekday to the instance (using date interval). + * @method CarbonInterface addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMicro() Add one microsecond to the instance (using timestamp). + * @method CarbonInterface subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonInterface addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method CarbonInterface subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method CarbonInterface addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMilli() Add one millisecond to the instance (using timestamp). + * @method CarbonInterface subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonInterface addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method CarbonInterface subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method CarbonInterface addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealSecond() Add one second to the instance (using timestamp). + * @method CarbonInterface subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method CarbonInterface addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMinute() Add one minute to the instance (using timestamp). + * @method CarbonInterface subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method CarbonInterface addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealHour() Add one hour to the instance (using timestamp). + * @method CarbonInterface subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method CarbonInterface addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealDay() Add one day to the instance (using timestamp). + * @method CarbonInterface subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method CarbonInterface addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealWeek() Add one week to the instance (using timestamp). + * @method CarbonInterface subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method CarbonInterface addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMonth() Add one month to the instance (using timestamp). + * @method CarbonInterface subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method CarbonInterface addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealQuarter() Add one quarter to the instance (using timestamp). + * @method CarbonInterface subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method CarbonInterface addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealYear() Add one year to the instance (using timestamp). + * @method CarbonInterface subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method CarbonInterface addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealDecade() Add one decade to the instance (using timestamp). + * @method CarbonInterface subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method CarbonInterface addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealCentury() Add one century to the instance (using timestamp). + * @method CarbonInterface subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method CarbonInterface addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface addRealMillennium() Add one millennium to the instance (using timestamp). + * @method CarbonInterface subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method CarbonInterface subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method CarbonInterface roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonInterface roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method CarbonInterface floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonInterface floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method CarbonInterface ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonInterface ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method CarbonInterface roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonInterface roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method CarbonInterface floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonInterface floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method CarbonInterface ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonInterface ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method CarbonInterface roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonInterface roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method CarbonInterface floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonInterface floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method CarbonInterface ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonInterface ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method CarbonInterface roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonInterface roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method CarbonInterface floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonInterface floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method CarbonInterface ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonInterface ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method CarbonInterface roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonInterface roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method CarbonInterface floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonInterface floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method CarbonInterface ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonInterface ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method CarbonInterface roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonInterface roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method CarbonInterface floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonInterface floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method CarbonInterface ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonInterface ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method CarbonInterface roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonInterface roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method CarbonInterface floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonInterface floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method CarbonInterface ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonInterface ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method CarbonInterface roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonInterface roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method CarbonInterface floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonInterface floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method CarbonInterface ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonInterface ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method CarbonInterface roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonInterface roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method CarbonInterface floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonInterface floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method CarbonInterface ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonInterface ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method CarbonInterface roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonInterface roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method CarbonInterface floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonInterface floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method CarbonInterface ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonInterface ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method CarbonInterface roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonInterface roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method CarbonInterface floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonInterface floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method CarbonInterface ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonInterface ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method CarbonInterface roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonInterface roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method CarbonInterface floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonInterface floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method CarbonInterface ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method CarbonInterface ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * + * + */ +trait Date +{ + use Boundaries; + use Comparison; + use Converter; + use Creator; + use Difference; + use Macro; + use MagicParameter; + use Modifiers; + use Mutability; + use ObjectInitialisation; + use Options; + use Rounding; + use Serialization; + use Test; + use Timestamp; + use Units; + use Week; + + /** + * Names of days of the week. + * + * @var array + */ + protected static $days = [ + // @call isDayOfWeek + CarbonInterface::SUNDAY => 'Sunday', + // @call isDayOfWeek + CarbonInterface::MONDAY => 'Monday', + // @call isDayOfWeek + CarbonInterface::TUESDAY => 'Tuesday', + // @call isDayOfWeek + CarbonInterface::WEDNESDAY => 'Wednesday', + // @call isDayOfWeek + CarbonInterface::THURSDAY => 'Thursday', + // @call isDayOfWeek + CarbonInterface::FRIDAY => 'Friday', + // @call isDayOfWeek + CarbonInterface::SATURDAY => 'Saturday', + ]; + + /** + * Will UTF8 encoding be used to print localized date/time ? + * + * @var bool + */ + protected static $utf8 = false; + + /** + * List of unit and magic methods associated as doc-comments. + * + * @var array + */ + protected static $units = [ + // @call setUnit + // @call addUnit + 'year', + // @call setUnit + // @call addUnit + 'month', + // @call setUnit + // @call addUnit + 'day', + // @call setUnit + // @call addUnit + 'hour', + // @call setUnit + // @call addUnit + 'minute', + // @call setUnit + // @call addUnit + 'second', + // @call setUnit + // @call addUnit + 'milli', + // @call setUnit + // @call addUnit + 'millisecond', + // @call setUnit + // @call addUnit + 'micro', + // @call setUnit + // @call addUnit + 'microsecond', + ]; + + /** + * Creates a DateTimeZone from a string, DateTimeZone or integer offset. + * + * @param DateTimeZone|string|int|null $object original value to get CarbonTimeZone from it. + * @param DateTimeZone|string|int|null $objectDump dump of the object for error messages. + * + * @throws InvalidTimeZoneException + * + * @return CarbonTimeZone|false + */ + protected static function safeCreateDateTimeZone($object, $objectDump = null) + { + return CarbonTimeZone::instance($object, $objectDump); + } + + /** + * Get the TimeZone associated with the Carbon instance (as CarbonTimeZone). + * + * @return CarbonTimeZone + * + * @link https://php.net/manual/en/datetime.gettimezone.php + */ + #[ReturnTypeWillChange] + public function getTimezone() + { + return CarbonTimeZone::instance(parent::getTimezone()); + } + + /** + * List of minimum and maximums for each unit. + * + * @param int $daysInMonth + * + * @return array + */ + protected static function getRangesByUnit(int $daysInMonth = 31): array + { + return [ + // @call roundUnit + 'year' => [1, 9999], + // @call roundUnit + 'month' => [1, static::MONTHS_PER_YEAR], + // @call roundUnit + 'day' => [1, $daysInMonth], + // @call roundUnit + 'hour' => [0, static::HOURS_PER_DAY - 1], + // @call roundUnit + 'minute' => [0, static::MINUTES_PER_HOUR - 1], + // @call roundUnit + 'second' => [0, static::SECONDS_PER_MINUTE - 1], + ]; + } + + /** + * Get a copy of the instance. + * + * @return static + */ + public function copy() + { + return clone $this; + } + + /** + * @alias copy + * + * Get a copy of the instance. + * + * @return static + */ + public function clone() + { + return clone $this; + } + + /** + * Clone the current instance if it's mutable. + * + * This method is convenient to ensure you don't mutate the initial object + * but avoid to make a useless copy of it if it's already immutable. + * + * @return static + */ + public function avoidMutation(): self + { + if ($this instanceof DateTimeImmutable) { + return $this; + } + + return clone $this; + } + + /** + * Returns a present instance in the same timezone. + * + * @return static + */ + public function nowWithSameTz() + { + return static::now($this->getTimezone()); + } + + /** + * Throws an exception if the given object is not a DateTime and does not implement DateTimeInterface. + * + * @param mixed $date + * @param string|array $other + * + * @throws InvalidTypeException + */ + protected static function expectDateTime($date, $other = []) + { + $message = 'Expected '; + foreach ((array) $other as $expect) { + $message .= "$expect, "; + } + + if (!$date instanceof DateTime && !$date instanceof DateTimeInterface) { + throw new InvalidTypeException( + $message.'DateTime or DateTimeInterface, '. + (\is_object($date) ? \get_class($date) : \gettype($date)).' given' + ); + } + } + + /** + * Return the Carbon instance passed through, a now instance in the same timezone + * if null given or parse the input if string given. + * + * @param Carbon|DateTimeInterface|string|null $date + * + * @return static + */ + protected function resolveCarbon($date = null) + { + if (!$date) { + return $this->nowWithSameTz(); + } + + if (\is_string($date)) { + return static::parse($date, $this->getTimezone()); + } + + static::expectDateTime($date, ['null', 'string']); + + return $date instanceof self ? $date : static::instance($date); + } + + /** + * Return the Carbon instance passed through, a now instance in UTC + * if null given or parse the input if string given (using current timezone + * then switching to UTC). + * + * @param Carbon|DateTimeInterface|string|null $date + * + * @return static + */ + protected function resolveUTC($date = null): self + { + if (!$date) { + return static::now('UTC'); + } + + if (\is_string($date)) { + return static::parse($date, $this->getTimezone())->utc(); + } + + static::expectDateTime($date, ['null', 'string']); + + return $date instanceof self ? $date : static::instance($date)->utc(); + } + + /** + * Return the Carbon instance passed through, a now instance in the same timezone + * if null given or parse the input if string given. + * + * @param Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|DateTimeInterface|string|null $date + * + * @return static + */ + public function carbonize($date = null) + { + if ($date instanceof DateInterval) { + return $this->avoidMutation()->add($date); + } + + if ($date instanceof DatePeriod || $date instanceof CarbonPeriod) { + $date = $date->getStartDate(); + } + + return $this->resolveCarbon($date); + } + + /////////////////////////////////////////////////////////////////// + ///////////////////////// GETTERS AND SETTERS ///////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * Get a part of the Carbon object + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return string|int|bool|DateTimeZone|null + */ + public function __get($name) + { + return $this->get($name); + } + + /** + * Get a part of the Carbon object + * + * @param string $name + * + * @throws UnknownGetterException + * + * @return string|int|bool|DateTimeZone|null + */ + public function get($name) + { + static $formats = [ + // @property int + 'year' => 'Y', + // @property int + 'yearIso' => 'o', + // @property int + // @call isSameUnit + 'month' => 'n', + // @property int + 'day' => 'j', + // @property int + 'hour' => 'G', + // @property int + 'minute' => 'i', + // @property int + 'second' => 's', + // @property int + 'micro' => 'u', + // @property int + 'microsecond' => 'u', + // @property-read int 0 (for Sunday) through 6 (for Saturday) + 'dayOfWeek' => 'w', + // @property-read int 1 (for Monday) through 7 (for Sunday) + 'dayOfWeekIso' => 'N', + // @property-read int ISO-8601 week number of year, weeks starting on Monday + 'weekOfYear' => 'W', + // @property-read int number of days in the given month + 'daysInMonth' => 't', + // @property int|float|string seconds since the Unix Epoch + 'timestamp' => 'U', + // @property-read string "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + 'latinMeridiem' => 'a', + // @property-read string "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + 'latinUpperMeridiem' => 'A', + // @property string the day of week in English + 'englishDayOfWeek' => 'l', + // @property string the abbreviated day of week in English + 'shortEnglishDayOfWeek' => 'D', + // @property string the month in English + 'englishMonth' => 'F', + // @property string the abbreviated month in English + 'shortEnglishMonth' => 'M', + // @property string the day of week in current locale LC_TIME + // @deprecated + // reason: It uses OS language package and strftime() which is deprecated since PHP 8.1. + // replacement: Use ->isoFormat('MMM') instead. + // since: 2.55.0 + 'localeDayOfWeek' => '%A', + // @property string the abbreviated day of week in current locale LC_TIME + // @deprecated + // reason: It uses OS language package and strftime() which is deprecated since PHP 8.1. + // replacement: Use ->isoFormat('dddd') instead. + // since: 2.55.0 + 'shortLocaleDayOfWeek' => '%a', + // @property string the month in current locale LC_TIME + // @deprecated + // reason: It uses OS language package and strftime() which is deprecated since PHP 8.1. + // replacement: Use ->isoFormat('ddd') instead. + // since: 2.55.0 + 'localeMonth' => '%B', + // @property string the abbreviated month in current locale LC_TIME + // @deprecated + // reason: It uses OS language package and strftime() which is deprecated since PHP 8.1. + // replacement: Use ->isoFormat('MMMM') instead. + // since: 2.55.0 + 'shortLocaleMonth' => '%b', + // @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + 'timezoneAbbreviatedName' => 'T', + // @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + 'tzAbbrName' => 'T', + ]; + + switch (true) { + case isset($formats[$name]): + $format = $formats[$name]; + $method = str_starts_with($format, '%') ? 'formatLocalized' : 'rawFormat'; + $value = $this->$method($format); + + return is_numeric($value) ? (int) $value : $value; + + // @property-read string long name of weekday translated according to Carbon locale, in english if no translation available for current language + case $name === 'dayName': + return $this->getTranslatedDayName(); + // @property-read string short name of weekday translated according to Carbon locale, in english if no translation available for current language + case $name === 'shortDayName': + return $this->getTranslatedShortDayName(); + // @property-read string very short name of weekday translated according to Carbon locale, in english if no translation available for current language + case $name === 'minDayName': + return $this->getTranslatedMinDayName(); + // @property-read string long name of month translated according to Carbon locale, in english if no translation available for current language + case $name === 'monthName': + return $this->getTranslatedMonthName(); + // @property-read string short name of month translated according to Carbon locale, in english if no translation available for current language + case $name === 'shortMonthName': + return $this->getTranslatedShortMonthName(); + // @property-read string lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + case $name === 'meridiem': + return $this->meridiem(true); + // @property-read string uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + case $name === 'upperMeridiem': + return $this->meridiem(); + // @property-read int current hour from 1 to 24 + case $name === 'noZeroHour': + return $this->hour ?: 24; + // @property int + case $name === 'milliseconds': + // @property int + case $name === 'millisecond': + // @property int + case $name === 'milli': + return (int) floor(((int) $this->rawFormat('u')) / 1000); + + // @property int 1 through 53 + case $name === 'week': + return (int) $this->week(); + + // @property int 1 through 53 + case $name === 'isoWeek': + return (int) $this->isoWeek(); + + // @property int year according to week format + case $name === 'weekYear': + return (int) $this->weekYear(); + + // @property int year according to ISO week format + case $name === 'isoWeekYear': + return (int) $this->isoWeekYear(); + + // @property-read int 51 through 53 + case $name === 'weeksInYear': + return $this->weeksInYear(); + + // @property-read int 51 through 53 + case $name === 'isoWeeksInYear': + return $this->isoWeeksInYear(); + + // @property-read int 1 through 5 + case $name === 'weekOfMonth': + return (int) ceil($this->day / static::DAYS_PER_WEEK); + + // @property-read int 1 through 5 + case $name === 'weekNumberInMonth': + return (int) ceil(($this->day + $this->avoidMutation()->startOfMonth()->dayOfWeekIso - 1) / static::DAYS_PER_WEEK); + + // @property-read int 0 through 6 + case $name === 'firstWeekDay': + return $this->localTranslator ? ($this->getTranslationMessage('first_day_of_week') ?? 0) : static::getWeekStartsAt(); + + // @property-read int 0 through 6 + case $name === 'lastWeekDay': + return $this->localTranslator ? (($this->getTranslationMessage('first_day_of_week') ?? 0) + static::DAYS_PER_WEEK - 1) % static::DAYS_PER_WEEK : static::getWeekEndsAt(); + + // @property int 1 through 366 + case $name === 'dayOfYear': + return 1 + (int) ($this->rawFormat('z')); + + // @property-read int 365 or 366 + case $name === 'daysInYear': + return $this->isLeapYear() ? 366 : 365; + + // @property int does a diffInYears() with default parameters + case $name === 'age': + return $this->diffInYears(); + + // @property-read int the quarter of this instance, 1 - 4 + // @call isSameUnit + case $name === 'quarter': + return (int) ceil($this->month / static::MONTHS_PER_QUARTER); + + // @property-read int the decade of this instance + // @call isSameUnit + case $name === 'decade': + return (int) ceil($this->year / static::YEARS_PER_DECADE); + + // @property-read int the century of this instance + // @call isSameUnit + case $name === 'century': + $factor = 1; + $year = $this->year; + if ($year < 0) { + $year = -$year; + $factor = -1; + } + + return (int) ($factor * ceil($year / static::YEARS_PER_CENTURY)); + + // @property-read int the millennium of this instance + // @call isSameUnit + case $name === 'millennium': + $factor = 1; + $year = $this->year; + if ($year < 0) { + $year = -$year; + $factor = -1; + } + + return (int) ($factor * ceil($year / static::YEARS_PER_MILLENNIUM)); + + // @property int the timezone offset in seconds from UTC + case $name === 'offset': + return $this->getOffset(); + + // @property int the timezone offset in minutes from UTC + case $name === 'offsetMinutes': + return $this->getOffset() / static::SECONDS_PER_MINUTE; + + // @property int the timezone offset in hours from UTC + case $name === 'offsetHours': + return $this->getOffset() / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR; + + // @property-read bool daylight savings time indicator, true if DST, false otherwise + case $name === 'dst': + return $this->rawFormat('I') === '1'; + + // @property-read bool checks if the timezone is local, true if local, false otherwise + case $name === 'local': + return $this->getOffset() === $this->avoidMutation()->setTimezone(date_default_timezone_get())->getOffset(); + + // @property-read bool checks if the timezone is UTC, true if UTC, false otherwise + case $name === 'utc': + return $this->getOffset() === 0; + + // @property CarbonTimeZone $timezone the current timezone + // @property CarbonTimeZone $tz alias of $timezone + case $name === 'timezone' || $name === 'tz': + return CarbonTimeZone::instance($this->getTimezone()); + + // @property-read string $timezoneName the current timezone name + // @property-read string $tzName alias of $timezoneName + case $name === 'timezoneName' || $name === 'tzName': + return $this->getTimezone()->getName(); + + // @property-read string locale of the current instance + case $name === 'locale': + return $this->getTranslatorLocale(); + + default: + $macro = $this->getLocalMacro('get'.ucfirst($name)); + + if ($macro) { + return $this->executeCallableWithContext($macro); + } + + throw new UnknownGetterException($name); + } + } + + /** + * Check if an attribute exists on the object + * + * @param string $name + * + * @return bool + */ + public function __isset($name) + { + try { + $this->__get($name); + } catch (UnknownGetterException | ReflectionException $e) { + return false; + } + + return true; + } + + /** + * Set a part of the Carbon object + * + * @param string $name + * @param string|int|DateTimeZone $value + * + * @throws UnknownSetterException|ReflectionException + * + * @return void + */ + public function __set($name, $value) + { + if ($this->constructedObjectId === spl_object_hash($this)) { + $this->set($name, $value); + + return; + } + + $this->$name = $value; + } + + /** + * Set a part of the Carbon object + * + * @param string|array $name + * @param string|int|DateTimeZone $value + * + * @throws ImmutableException|UnknownSetterException + * + * @return $this + */ + public function set($name, $value = null) + { + if ($this->isImmutable()) { + throw new ImmutableException(sprintf('%s class', static::class)); + } + + if (\is_array($name)) { + foreach ($name as $key => $value) { + $this->set($key, $value); + } + + return $this; + } + + switch ($name) { + case 'milliseconds': + case 'millisecond': + case 'milli': + case 'microseconds': + case 'microsecond': + case 'micro': + if (str_starts_with($name, 'milli')) { + $value *= 1000; + } + + while ($value < 0) { + $this->subSecond(); + $value += static::MICROSECONDS_PER_SECOND; + } + + while ($value >= static::MICROSECONDS_PER_SECOND) { + $this->addSecond(); + $value -= static::MICROSECONDS_PER_SECOND; + } + + $this->modify($this->rawFormat('H:i:s.').str_pad((string) round($value), 6, '0', STR_PAD_LEFT)); + + break; + + case 'year': + case 'month': + case 'day': + case 'hour': + case 'minute': + case 'second': + [$year, $month, $day, $hour, $minute, $second] = array_map('intval', explode('-', $this->rawFormat('Y-n-j-G-i-s'))); + $$name = $value; + $this->setDateTime($year, $month, $day, $hour, $minute, $second); + + break; + + case 'week': + $this->week($value); + + break; + + case 'isoWeek': + $this->isoWeek($value); + + break; + + case 'weekYear': + $this->weekYear($value); + + break; + + case 'isoWeekYear': + $this->isoWeekYear($value); + + break; + + case 'dayOfYear': + $this->addDays($value - $this->dayOfYear); + + break; + + case 'timestamp': + $this->setTimestamp($value); + + break; + + case 'offset': + $this->setTimezone(static::safeCreateDateTimeZone($value / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR)); + + break; + + case 'offsetMinutes': + $this->setTimezone(static::safeCreateDateTimeZone($value / static::MINUTES_PER_HOUR)); + + break; + + case 'offsetHours': + $this->setTimezone(static::safeCreateDateTimeZone($value)); + + break; + + case 'timezone': + case 'tz': + $this->setTimezone($value); + + break; + + default: + $macro = $this->getLocalMacro('set'.ucfirst($name)); + + if ($macro) { + $this->executeCallableWithContext($macro, $value); + + break; + } + + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new UnknownSetterException($name); + } + + $this->$name = $value; + } + + return $this; + } + + protected function getTranslatedFormByRegExp($baseKey, $keySuffix, $context, $subKey, $defaultValue) + { + $key = $baseKey.$keySuffix; + $standaloneKey = "{$key}_standalone"; + $baseTranslation = $this->getTranslationMessage($key); + + if ($baseTranslation instanceof Closure) { + return $baseTranslation($this, $context, $subKey) ?: $defaultValue; + } + + if ( + $this->getTranslationMessage("$standaloneKey.$subKey") && + (!$context || (($regExp = $this->getTranslationMessage("{$baseKey}_regexp")) && !preg_match($regExp, $context))) + ) { + $key = $standaloneKey; + } + + return $this->getTranslationMessage("$key.$subKey", null, $defaultValue); + } + + /** + * Get the translation of the current week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * @param string $keySuffix "", "_short" or "_min" + * @param string|null $defaultValue default value if translation missing + * + * @return string + */ + public function getTranslatedDayName($context = null, $keySuffix = '', $defaultValue = null) + { + return $this->getTranslatedFormByRegExp('weekdays', $keySuffix, $context, $this->dayOfWeek, $defaultValue ?: $this->englishDayOfWeek); + } + + /** + * Get the translation of the current short week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedShortDayName($context = null) + { + return $this->getTranslatedDayName($context, '_short', $this->shortEnglishDayOfWeek); + } + + /** + * Get the translation of the current abbreviated week day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedMinDayName($context = null) + { + return $this->getTranslatedDayName($context, '_min', $this->shortEnglishDayOfWeek); + } + + /** + * Get the translation of the current month day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * @param string $keySuffix "" or "_short" + * @param string|null $defaultValue default value if translation missing + * + * @return string + */ + public function getTranslatedMonthName($context = null, $keySuffix = '', $defaultValue = null) + { + return $this->getTranslatedFormByRegExp('months', $keySuffix, $context, $this->month - 1, $defaultValue ?: $this->englishMonth); + } + + /** + * Get the translation of the current short month day name (with context for languages with multiple forms). + * + * @param string|null $context whole format string + * + * @return string + */ + public function getTranslatedShortMonthName($context = null) + { + return $this->getTranslatedMonthName($context, '_short', $this->shortEnglishMonth); + } + + /** + * Get/set the day of year. + * + * @param int|null $value new value for day of year if using as setter. + * + * @return static|int + */ + public function dayOfYear($value = null) + { + $dayOfYear = $this->dayOfYear; + + return $value === null ? $dayOfYear : $this->addDays($value - $dayOfYear); + } + + /** + * Get/set the weekday from 0 (Sunday) to 6 (Saturday). + * + * @param int|null $value new value for weekday if using as setter. + * + * @return static|int + */ + public function weekday($value = null) + { + if ($value === null) { + return $this->dayOfWeek; + } + + $firstDay = (int) ($this->getTranslationMessage('first_day_of_week') ?? 0); + $dayOfWeek = ($this->dayOfWeek + 7 - $firstDay) % 7; + + return $this->addDays((($value + 7 - $firstDay) % 7) - $dayOfWeek); + } + + /** + * Get/set the ISO weekday from 1 (Monday) to 7 (Sunday). + * + * @param int|null $value new value for weekday if using as setter. + * + * @return static|int + */ + public function isoWeekday($value = null) + { + $dayOfWeekIso = $this->dayOfWeekIso; + + return $value === null ? $dayOfWeekIso : $this->addDays($value - $dayOfWeekIso); + } + + /** + * Return the number of days since the start of the week (using the current locale or the first parameter + * if explicitly given). + * + * @param int|null $weekStartsAt optional start allow you to specify the day of week to use to start the week, + * if not provided, start of week is inferred from the locale + * (Sunday for en_US, Monday for de_DE, etc.) + * + * @return int + */ + public function getDaysFromStartOfWeek(int $weekStartsAt = null): int + { + $firstDay = (int) ($weekStartsAt ?? $this->getTranslationMessage('first_day_of_week') ?? 0); + + return ($this->dayOfWeek + 7 - $firstDay) % 7; + } + + /** + * Set the day (keeping the current time) to the start of the week + the number of days passed as the first + * parameter. First day of week is driven by the locale unless explicitly set with the second parameter. + * + * @param int $numberOfDays number of days to add after the start of the current week + * @param int|null $weekStartsAt optional start allow you to specify the day of week to use to start the week, + * if not provided, start of week is inferred from the locale + * (Sunday for en_US, Monday for de_DE, etc.) + * + * @return static + */ + public function setDaysFromStartOfWeek(int $numberOfDays, int $weekStartsAt = null) + { + return $this->addDays($numberOfDays - $this->getDaysFromStartOfWeek($weekStartsAt)); + } + + /** + * Set any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value new value for the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function setUnitNoOverflow($valueUnit, $value, $overflowUnit) + { + try { + $original = $this->avoidMutation(); + /** @var static $date */ + $date = $this->$valueUnit($value); + $end = $original->avoidMutation()->endOf($overflowUnit); + $start = $original->avoidMutation()->startOf($overflowUnit); + if ($date < $start) { + $date = $date->setDateTimeFrom($start); + } elseif ($date > $end) { + $date = $date->setDateTimeFrom($end); + } + + return $date; + } catch (BadMethodCallException | ReflectionException $exception) { + throw new UnknownUnitException($valueUnit, 0, $exception); + } + } + + /** + * Add any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value amount to add to the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function addUnitNoOverflow($valueUnit, $value, $overflowUnit) + { + return $this->setUnitNoOverflow($valueUnit, $this->$valueUnit + $value, $overflowUnit); + } + + /** + * Subtract any unit to a new value without overflowing current other unit given. + * + * @param string $valueUnit unit name to modify + * @param int $value amount to subtract to the input unit + * @param string $overflowUnit unit name to not overflow + * + * @return static + */ + public function subUnitNoOverflow($valueUnit, $value, $overflowUnit) + { + return $this->setUnitNoOverflow($valueUnit, $this->$valueUnit - $value, $overflowUnit); + } + + /** + * Returns the minutes offset to UTC if no arguments passed, else set the timezone with given minutes shift passed. + * + * @param int|null $minuteOffset + * + * @return int|static + */ + public function utcOffset(int $minuteOffset = null) + { + if (\func_num_args() < 1) { + return $this->offsetMinutes; + } + + return $this->setTimezone(CarbonTimeZone::createFromMinuteOffset($minuteOffset)); + } + + /** + * Set the date with gregorian year, month and day numbers. + * + * @see https://php.net/manual/en/datetime.setdate.php + * + * @param int $year + * @param int $month + * @param int $day + * + * @return static + */ + #[ReturnTypeWillChange] + public function setDate($year, $month, $day) + { + return parent::setDate((int) $year, (int) $month, (int) $day); + } + + /** + * Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates. + * + * @see https://php.net/manual/en/datetime.setisodate.php + * + * @param int $year + * @param int $week + * @param int $day + * + * @return static + */ + #[ReturnTypeWillChange] + public function setISODate($year, $week, $day = 1) + { + return parent::setISODate((int) $year, (int) $week, (int) $day); + } + + /** + * Set the date and time all together. + * + * @param int $year + * @param int $month + * @param int $day + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microseconds + * + * @return static + */ + public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $microseconds = 0) + { + return $this->setDate($year, $month, $day)->setTime((int) $hour, (int) $minute, (int) $second, (int) $microseconds); + } + + /** + * Resets the current time of the DateTime object to a different time. + * + * @see https://php.net/manual/en/datetime.settime.php + * + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microseconds + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTime($hour, $minute, $second = 0, $microseconds = 0) + { + return parent::setTime((int) $hour, (int) $minute, (int) $second, (int) $microseconds); + } + + /** + * Set the instance's timestamp. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $unixTimestamp + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTimestamp($unixTimestamp) + { + [$timestamp, $microseconds] = self::getIntegerAndDecimalParts($unixTimestamp); + + return parent::setTimestamp((int) $timestamp)->setMicroseconds((int) $microseconds); + } + + /** + * Set the time by time string. + * + * @param string $time + * + * @return static + */ + public function setTimeFromTimeString($time) + { + if (!str_contains($time, ':')) { + $time .= ':0'; + } + + return $this->modify($time); + } + + /** + * @alias setTimezone + * + * @param DateTimeZone|string $value + * + * @return static + */ + public function timezone($value) + { + return $this->setTimezone($value); + } + + /** + * Set the timezone or returns the timezone name if no arguments passed. + * + * @param DateTimeZone|string $value + * + * @return static|string + */ + public function tz($value = null) + { + if (\func_num_args() < 1) { + return $this->tzName; + } + + return $this->setTimezone($value); + } + + /** + * Set the instance's timezone from a string or object. + * + * @param DateTimeZone|string $value + * + * @return static + */ + #[ReturnTypeWillChange] + public function setTimezone($value) + { + $tz = static::safeCreateDateTimeZone($value); + + if ($tz === false && !self::isStrictModeEnabled()) { + $tz = new CarbonTimeZone(); + } + + return parent::setTimezone($tz); + } + + /** + * Set the instance's timezone from a string or object and add/subtract the offset difference. + * + * @param DateTimeZone|string $value + * + * @return static + */ + public function shiftTimezone($value) + { + $dateTimeString = $this->format('Y-m-d H:i:s.u'); + + return $this + ->setTimezone($value) + ->modify($dateTimeString); + } + + /** + * Set the instance's timezone to UTC. + * + * @return static + */ + public function utc() + { + return $this->setTimezone('UTC'); + } + + /** + * Set the year, month, and date for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date now if null + * + * @return static + */ + public function setDateFrom($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->setDate($date->year, $date->month, $date->day); + } + + /** + * Set the hour, minute, second and microseconds for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date now if null + * + * @return static + */ + public function setTimeFrom($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->setTime($date->hour, $date->minute, $date->second, $date->microsecond); + } + + /** + * Set the date and time for this instance to that of the passed instance. + * + * @param Carbon|DateTimeInterface $date + * + * @return static + */ + public function setDateTimeFrom($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->modify($date->rawFormat('Y-m-d H:i:s.u')); + } + + /** + * Get the days of the week + * + * @return array + */ + public static function getDays() + { + return static::$days; + } + + /////////////////////////////////////////////////////////////////// + /////////////////////// WEEK SPECIAL DAYS ///////////////////////// + /////////////////////////////////////////////////////////////////// + + private static function getFirstDayOfWeek(): int + { + return (int) static::getTranslationMessageWith( + static::getTranslator(), + 'first_day_of_week' + ); + } + + /** + * Get the first day of week + * + * @return int + */ + public static function getWeekStartsAt() + { + if (static::$weekStartsAt === static::WEEK_DAY_AUTO) { + return self::getFirstDayOfWeek(); + } + + return static::$weekStartsAt; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the + * 'first_day_of_week' locale setting to change the start of week according to current locale + * selected and implicitly the end of week. + * + * Set the first day of week + * + * @param int|string $day week start day (or 'auto' to get the first day of week from Carbon::getLocale() culture). + * + * @return void + */ + public static function setWeekStartsAt($day) + { + static::$weekStartsAt = $day === static::WEEK_DAY_AUTO ? $day : max(0, (7 + $day) % 7); + } + + /** + * Get the last day of week + * + * @return int + */ + public static function getWeekEndsAt() + { + if (static::$weekStartsAt === static::WEEK_DAY_AUTO) { + return (int) (static::DAYS_PER_WEEK - 1 + self::getFirstDayOfWeek()) % static::DAYS_PER_WEEK; + } + + return static::$weekEndsAt; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek + * or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the + * start of week according to current locale selected and implicitly the end of week. + * + * Set the last day of week + * + * @param int|string $day week end day (or 'auto' to get the day before the first day of week + * from Carbon::getLocale() culture). + * + * @return void + */ + public static function setWeekEndsAt($day) + { + static::$weekEndsAt = $day === static::WEEK_DAY_AUTO ? $day : max(0, (7 + $day) % 7); + } + + /** + * Get weekend days + * + * @return array + */ + public static function getWeekendDays() + { + return static::$weekendDays; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider week-end is always saturday and sunday, and if you have some custom + * week-end days to handle, give to those days an other name and create a macro for them: + * + * ``` + * Carbon::macro('isDayOff', function ($date) { + * return $date->isSunday() || $date->isMonday(); + * }); + * Carbon::macro('isNotDayOff', function ($date) { + * return !$date->isDayOff(); + * }); + * if ($someDate->isDayOff()) ... + * if ($someDate->isNotDayOff()) ... + * // Add 5 not-off days + * $count = 5; + * while ($someDate->isDayOff() || ($count-- > 0)) { + * $someDate->addDay(); + * } + * ``` + * + * Set weekend days + * + * @param array $days + * + * @return void + */ + public static function setWeekendDays($days) + { + static::$weekendDays = $days; + } + + /** + * Determine if a time string will produce a relative date. + * + * @param string $time + * + * @return bool true if time match a relative date, false if absolute or invalid time string + */ + public static function hasRelativeKeywords($time) + { + if (!$time || strtotime($time) === false) { + return false; + } + + $date1 = new DateTime('2000-01-01T00:00:00Z'); + $date1->modify($time); + $date2 = new DateTime('2001-12-25T00:00:00Z'); + $date2->modify($time); + + return $date1 != $date2; + } + + /////////////////////////////////////////////////////////////////// + /////////////////////// STRING FORMATTING ///////////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use UTF-8 language packages on every machine. + * + * Set if UTF8 will be used for localized date/time. + * + * @param bool $utf8 + */ + public static function setUtf8($utf8) + { + static::$utf8 = $utf8; + } + + /** + * Format the instance with the current locale. You can set the current + * locale using setlocale() https://php.net/setlocale. + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat() instead. + * Deprecated since 2.55.0 + * + * @param string $format + * + * @return string + */ + public function formatLocalized($format) + { + // Check for Windows to find and replace the %e modifier correctly. + if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + $format = preg_replace('#(?toDateTimeString()); + $formatted = ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) + ? strftime($format, $time) + : @strftime($format, $time); + + return static::$utf8 + ? ( + \function_exists('mb_convert_encoding') + ? mb_convert_encoding($formatted, 'UTF-8', mb_list_encodings()) + : utf8_encode($formatted) + ) + : $formatted; + } + + /** + * Returns list of locale formats for ISO formatting. + * + * @param string|null $locale current locale used if null + * + * @return array + */ + public function getIsoFormats($locale = null) + { + return [ + 'LT' => $this->getTranslationMessage('formats.LT', $locale, 'h:mm A'), + 'LTS' => $this->getTranslationMessage('formats.LTS', $locale, 'h:mm:ss A'), + 'L' => $this->getTranslationMessage('formats.L', $locale, 'MM/DD/YYYY'), + 'LL' => $this->getTranslationMessage('formats.LL', $locale, 'MMMM D, YYYY'), + 'LLL' => $this->getTranslationMessage('formats.LLL', $locale, 'MMMM D, YYYY h:mm A'), + 'LLLL' => $this->getTranslationMessage('formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'), + 'l' => $this->getTranslationMessage('formats.l', $locale), + 'll' => $this->getTranslationMessage('formats.ll', $locale), + 'lll' => $this->getTranslationMessage('formats.lll', $locale), + 'llll' => $this->getTranslationMessage('formats.llll', $locale), + ]; + } + + /** + * Returns list of calendar formats for ISO formatting. + * + * @param string|null $locale current locale used if null + * + * @return array + */ + public function getCalendarFormats($locale = null) + { + return [ + 'sameDay' => $this->getTranslationMessage('calendar.sameDay', $locale, '[Today at] LT'), + 'nextDay' => $this->getTranslationMessage('calendar.nextDay', $locale, '[Tomorrow at] LT'), + 'nextWeek' => $this->getTranslationMessage('calendar.nextWeek', $locale, 'dddd [at] LT'), + 'lastDay' => $this->getTranslationMessage('calendar.lastDay', $locale, '[Yesterday at] LT'), + 'lastWeek' => $this->getTranslationMessage('calendar.lastWeek', $locale, '[Last] dddd [at] LT'), + 'sameElse' => $this->getTranslationMessage('calendar.sameElse', $locale, 'L'), + ]; + } + + /** + * Returns list of locale units for ISO formatting. + * + * @return array + */ + public static function getIsoUnits() + { + static $units = null; + + if ($units === null) { + $units = [ + 'OD' => ['getAltNumber', ['day']], + 'OM' => ['getAltNumber', ['month']], + 'OY' => ['getAltNumber', ['year']], + 'OH' => ['getAltNumber', ['hour']], + 'Oh' => ['getAltNumber', ['h']], + 'Om' => ['getAltNumber', ['minute']], + 'Os' => ['getAltNumber', ['second']], + 'D' => 'day', + 'DD' => ['rawFormat', ['d']], + 'Do' => ['ordinal', ['day', 'D']], + 'd' => 'dayOfWeek', + 'dd' => function (CarbonInterface $date, $originalFormat = null) { + return $date->getTranslatedMinDayName($originalFormat); + }, + 'ddd' => function (CarbonInterface $date, $originalFormat = null) { + return $date->getTranslatedShortDayName($originalFormat); + }, + 'dddd' => function (CarbonInterface $date, $originalFormat = null) { + return $date->getTranslatedDayName($originalFormat); + }, + 'DDD' => 'dayOfYear', + 'DDDD' => ['getPaddedUnit', ['dayOfYear', 3]], + 'DDDo' => ['ordinal', ['dayOfYear', 'DDD']], + 'e' => ['weekday', []], + 'E' => 'dayOfWeekIso', + 'H' => ['rawFormat', ['G']], + 'HH' => ['rawFormat', ['H']], + 'h' => ['rawFormat', ['g']], + 'hh' => ['rawFormat', ['h']], + 'k' => 'noZeroHour', + 'kk' => ['getPaddedUnit', ['noZeroHour']], + 'hmm' => ['rawFormat', ['gi']], + 'hmmss' => ['rawFormat', ['gis']], + 'Hmm' => ['rawFormat', ['Gi']], + 'Hmmss' => ['rawFormat', ['Gis']], + 'm' => 'minute', + 'mm' => ['rawFormat', ['i']], + 'a' => 'meridiem', + 'A' => 'upperMeridiem', + 's' => 'second', + 'ss' => ['getPaddedUnit', ['second']], + 'S' => function (CarbonInterface $date) { + return (string) floor($date->micro / 100000); + }, + 'SS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro / 10000), 2, '0', STR_PAD_LEFT); + }, + 'SSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro / 1000), 3, '0', STR_PAD_LEFT); + }, + 'SSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro / 100), 4, '0', STR_PAD_LEFT); + }, + 'SSSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro / 10), 5, '0', STR_PAD_LEFT); + }, + 'SSSSSS' => ['getPaddedUnit', ['micro', 6]], + 'SSSSSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro * 10), 7, '0', STR_PAD_LEFT); + }, + 'SSSSSSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro * 100), 8, '0', STR_PAD_LEFT); + }, + 'SSSSSSSSS' => function (CarbonInterface $date) { + return str_pad((string) floor($date->micro * 1000), 9, '0', STR_PAD_LEFT); + }, + 'M' => 'month', + 'MM' => ['rawFormat', ['m']], + 'MMM' => function (CarbonInterface $date, $originalFormat = null) { + $month = $date->getTranslatedShortMonthName($originalFormat); + $suffix = $date->getTranslationMessage('mmm_suffix'); + if ($suffix && $month !== $date->monthName) { + $month .= $suffix; + } + + return $month; + }, + 'MMMM' => function (CarbonInterface $date, $originalFormat = null) { + return $date->getTranslatedMonthName($originalFormat); + }, + 'Mo' => ['ordinal', ['month', 'M']], + 'Q' => 'quarter', + 'Qo' => ['ordinal', ['quarter', 'M']], + 'G' => 'isoWeekYear', + 'GG' => ['getPaddedUnit', ['isoWeekYear']], + 'GGG' => ['getPaddedUnit', ['isoWeekYear', 3]], + 'GGGG' => ['getPaddedUnit', ['isoWeekYear', 4]], + 'GGGGG' => ['getPaddedUnit', ['isoWeekYear', 5]], + 'g' => 'weekYear', + 'gg' => ['getPaddedUnit', ['weekYear']], + 'ggg' => ['getPaddedUnit', ['weekYear', 3]], + 'gggg' => ['getPaddedUnit', ['weekYear', 4]], + 'ggggg' => ['getPaddedUnit', ['weekYear', 5]], + 'W' => 'isoWeek', + 'WW' => ['getPaddedUnit', ['isoWeek']], + 'Wo' => ['ordinal', ['isoWeek', 'W']], + 'w' => 'week', + 'ww' => ['getPaddedUnit', ['week']], + 'wo' => ['ordinal', ['week', 'w']], + 'x' => ['valueOf', []], + 'X' => 'timestamp', + 'Y' => 'year', + 'YY' => ['rawFormat', ['y']], + 'YYYY' => ['getPaddedUnit', ['year', 4]], + 'YYYYY' => ['getPaddedUnit', ['year', 5]], + 'YYYYYY' => function (CarbonInterface $date) { + return ($date->year < 0 ? '' : '+').$date->getPaddedUnit('year', 6); + }, + 'z' => ['rawFormat', ['T']], + 'zz' => 'tzName', + 'Z' => ['getOffsetString', []], + 'ZZ' => ['getOffsetString', ['']], + ]; + } + + return $units; + } + + /** + * Returns a unit of the instance padded with 0 by default or any other string if specified. + * + * @param string $unit Carbon unit name + * @param int $length Length of the output (2 by default) + * @param string $padString String to use for padding ("0" by default) + * @param int $padType Side(s) to pad (STR_PAD_LEFT by default) + * + * @return string + */ + public function getPaddedUnit($unit, $length = 2, $padString = '0', $padType = STR_PAD_LEFT) + { + return ($this->$unit < 0 ? '-' : '').str_pad((string) abs($this->$unit), $length, $padString, $padType); + } + + /** + * Return a property with its ordinal. + * + * @param string $key + * @param string|null $period + * + * @return string + */ + public function ordinal(string $key, ?string $period = null): string + { + $number = $this->$key; + $result = $this->translate('ordinal', [ + ':number' => $number, + ':period' => (string) $period, + ]); + + return (string) ($result === 'ordinal' ? $number : $result); + } + + /** + * Return the meridiem of the current time in the current locale. + * + * @param bool $isLower if true, returns lowercase variant if available in the current locale. + * + * @return string + */ + public function meridiem(bool $isLower = false): string + { + $hour = $this->hour; + $index = $hour < 12 ? 0 : 1; + + if ($isLower) { + $key = 'meridiem.'.($index + 2); + $result = $this->translate($key); + + if ($result !== $key) { + return $result; + } + } + + $key = "meridiem.$index"; + $result = $this->translate($key); + if ($result === $key) { + $result = $this->translate('meridiem', [ + ':hour' => $this->hour, + ':minute' => $this->minute, + ':isLower' => $isLower, + ]); + + if ($result === 'meridiem') { + return $isLower ? $this->latinMeridiem : $this->latinUpperMeridiem; + } + } elseif ($isLower) { + $result = mb_strtolower($result); + } + + return $result; + } + + /** + * Returns the alternative number for a given date property if available in the current locale. + * + * @param string $key date property + * + * @return string + */ + public function getAltNumber(string $key): string + { + return $this->translateNumber(\strlen($key) > 1 ? $this->$key : $this->rawFormat('h')); + } + + /** + * Format in the current language using ISO replacement patterns. + * + * @param string $format + * @param string|null $originalFormat provide context if a chunk has been passed alone + * + * @return string + */ + public function isoFormat(string $format, ?string $originalFormat = null): string + { + $result = ''; + $length = mb_strlen($format); + $originalFormat = $originalFormat ?: $format; + $inEscaped = false; + $formats = null; + $units = null; + + for ($i = 0; $i < $length; $i++) { + $char = mb_substr($format, $i, 1); + + if ($char === '\\') { + $result .= mb_substr($format, ++$i, 1); + + continue; + } + + if ($char === '[' && !$inEscaped) { + $inEscaped = true; + + continue; + } + + if ($char === ']' && $inEscaped) { + $inEscaped = false; + + continue; + } + + if ($inEscaped) { + $result .= $char; + + continue; + } + + $input = mb_substr($format, $i); + + if (preg_match('/^(LTS|LT|l{1,4}|L{1,4})/', $input, $match)) { + if ($formats === null) { + $formats = $this->getIsoFormats(); + } + + $code = $match[0]; + $sequence = $formats[$code] ?? preg_replace_callback( + '/MMMM|MM|DD|dddd/', + function ($code) { + return mb_substr($code[0], 1); + }, + $formats[strtoupper($code)] ?? '' + ); + $rest = mb_substr($format, $i + mb_strlen($code)); + $format = mb_substr($format, 0, $i).$sequence.$rest; + $length = mb_strlen($format); + $input = $sequence.$rest; + } + + if (preg_match('/^'.CarbonInterface::ISO_FORMAT_REGEXP.'/', $input, $match)) { + $code = $match[0]; + + if ($units === null) { + $units = static::getIsoUnits(); + } + + $sequence = $units[$code] ?? ''; + + if ($sequence instanceof Closure) { + $sequence = $sequence($this, $originalFormat); + } elseif (\is_array($sequence)) { + try { + $sequence = $this->{$sequence[0]}(...$sequence[1]); + } catch (ReflectionException | InvalidArgumentException | BadMethodCallException $e) { + $sequence = ''; + } + } elseif (\is_string($sequence)) { + $sequence = $this->$sequence ?? $code; + } + + $format = mb_substr($format, 0, $i).$sequence.mb_substr($format, $i + mb_strlen($code)); + $i += mb_strlen((string) $sequence) - 1; + $length = mb_strlen($format); + $char = $sequence; + } + + $result .= $char; + } + + return $result; + } + + /** + * List of replacements from date() format to isoFormat(). + * + * @return array + */ + public static function getFormatsToIsoReplacements() + { + static $replacements = null; + + if ($replacements === null) { + $replacements = [ + 'd' => true, + 'D' => 'ddd', + 'j' => true, + 'l' => 'dddd', + 'N' => true, + 'S' => function ($date) { + $day = $date->rawFormat('j'); + + return str_replace((string) $day, '', $date->isoFormat('Do')); + }, + 'w' => true, + 'z' => true, + 'W' => true, + 'F' => 'MMMM', + 'm' => true, + 'M' => 'MMM', + 'n' => true, + 't' => true, + 'L' => true, + 'o' => true, + 'Y' => true, + 'y' => true, + 'a' => 'a', + 'A' => 'A', + 'B' => true, + 'g' => true, + 'G' => true, + 'h' => true, + 'H' => true, + 'i' => true, + 's' => true, + 'u' => true, + 'v' => true, + 'E' => true, + 'I' => true, + 'O' => true, + 'P' => true, + 'Z' => true, + 'c' => true, + 'r' => true, + 'U' => true, + ]; + } + + return $replacements; + } + + /** + * Format as ->format() do (using date replacements patterns from https://php.net/manual/en/function.date.php) + * but translate words whenever possible (months, day names, etc.) using the current locale. + * + * @param string $format + * + * @return string + */ + public function translatedFormat(string $format): string + { + $replacements = static::getFormatsToIsoReplacements(); + $context = ''; + $isoFormat = ''; + $length = mb_strlen($format); + + for ($i = 0; $i < $length; $i++) { + $char = mb_substr($format, $i, 1); + + if ($char === '\\') { + $replacement = mb_substr($format, $i, 2); + $isoFormat .= $replacement; + $i++; + + continue; + } + + if (!isset($replacements[$char])) { + $replacement = preg_match('/^[A-Za-z]$/', $char) ? "\\$char" : $char; + $isoFormat .= $replacement; + $context .= $replacement; + + continue; + } + + $replacement = $replacements[$char]; + + if ($replacement === true) { + static $contextReplacements = null; + + if ($contextReplacements === null) { + $contextReplacements = [ + 'm' => 'MM', + 'd' => 'DD', + 't' => 'D', + 'j' => 'D', + 'N' => 'e', + 'w' => 'e', + 'n' => 'M', + 'o' => 'YYYY', + 'Y' => 'YYYY', + 'y' => 'YY', + 'g' => 'h', + 'G' => 'H', + 'h' => 'hh', + 'H' => 'HH', + 'i' => 'mm', + 's' => 'ss', + ]; + } + + $isoFormat .= '['.$this->rawFormat($char).']'; + $context .= $contextReplacements[$char] ?? ' '; + + continue; + } + + if ($replacement instanceof Closure) { + $replacement = '['.$replacement($this).']'; + $isoFormat .= $replacement; + $context .= $replacement; + + continue; + } + + $isoFormat .= $replacement; + $context .= $replacement; + } + + return $this->isoFormat($isoFormat, $context); + } + + /** + * Returns the offset hour and minute formatted with +/- and a given separator (":" by default). + * For example, if the time zone is 9 hours 30 minutes, you'll get "+09:30", with "@@" as first + * argument, "+09@@30", with "" as first argument, "+0930". Negative offset will return something + * like "-12:00". + * + * @param string $separator string to place between hours and minutes (":" by default) + * + * @return string + */ + public function getOffsetString($separator = ':') + { + $second = $this->getOffset(); + $symbol = $second < 0 ? '-' : '+'; + $minute = abs($second) / static::SECONDS_PER_MINUTE; + $hour = str_pad((string) floor($minute / static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT); + $minute = str_pad((string) (((int) $minute) % static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT); + + return "$symbol$hour$separator$minute"; + } + + protected static function executeStaticCallable($macro, ...$parameters) + { + return static::bindMacroContext(null, function () use (&$macro, &$parameters) { + if ($macro instanceof Closure) { + $boundMacro = @Closure::bind($macro, null, static::class); + + return ($boundMacro ?: $macro)(...$parameters); + } + + return $macro(...$parameters); + }); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws BadMethodCallException + * + * @return mixed + */ + public static function __callStatic($method, $parameters) + { + if (!static::hasMacro($method)) { + foreach (static::getGenericMacros() as $callback) { + try { + return static::executeStaticCallable($callback, $method, ...$parameters); + } catch (BadMethodCallException $exception) { + continue; + } + } + if (static::isStrictModeEnabled()) { + throw new UnknownMethodException(sprintf('%s::%s', static::class, $method)); + } + + return null; + } + + return static::executeStaticCallable(static::$globalMacros[$method], ...$parameters); + } + + /** + * Set specified unit to new given value. + * + * @param string $unit year, month, day, hour, minute, second or microsecond + * @param int $value new value for given unit + * + * @return static + */ + public function setUnit($unit, $value = null) + { + $unit = static::singularUnit($unit); + $dateUnits = ['year', 'month', 'day']; + if (\in_array($unit, $dateUnits)) { + return $this->setDate(...array_map(function ($name) use ($unit, $value) { + return (int) ($name === $unit ? $value : $this->$name); + }, $dateUnits)); + } + + $units = ['hour', 'minute', 'second', 'micro']; + if ($unit === 'millisecond' || $unit === 'milli') { + $value *= 1000; + $unit = 'micro'; + } elseif ($unit === 'microsecond') { + $unit = 'micro'; + } + + return $this->setTime(...array_map(function ($name) use ($unit, $value) { + return (int) ($name === $unit ? $value : $this->$name); + }, $units)); + } + + /** + * Returns standardized singular of a given singular/plural unit name (in English). + * + * @param string $unit + * + * @return string + */ + public static function singularUnit(string $unit): string + { + $unit = rtrim(mb_strtolower($unit), 's'); + + if ($unit === 'centurie') { + return 'century'; + } + + if ($unit === 'millennia') { + return 'millennium'; + } + + return $unit; + } + + /** + * Returns standardized plural of a given singular/plural unit name (in English). + * + * @param string $unit + * + * @return string + */ + public static function pluralUnit(string $unit): string + { + $unit = rtrim(strtolower($unit), 's'); + + if ($unit === 'century') { + return 'centuries'; + } + + if ($unit === 'millennium' || $unit === 'millennia') { + return 'millennia'; + } + + return "{$unit}s"; + } + + protected function executeCallable($macro, ...$parameters) + { + if ($macro instanceof Closure) { + $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class); + + return ($boundMacro ?: $macro)(...$parameters); + } + + return $macro(...$parameters); + } + + protected function executeCallableWithContext($macro, ...$parameters) + { + return static::bindMacroContext($this, function () use (&$macro, &$parameters) { + return $this->executeCallable($macro, ...$parameters); + }); + } + + protected static function getGenericMacros() + { + foreach (static::$globalGenericMacros as $list) { + foreach ($list as $macro) { + yield $macro; + } + } + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method magic method name called + * @param array $parameters parameters list + * + * @throws UnknownMethodException|BadMethodCallException|ReflectionException|Throwable + * + * @return mixed + */ + public function __call($method, $parameters) + { + $diffSizes = [ + // @mode diffForHumans + 'short' => true, + // @mode diffForHumans + 'long' => false, + ]; + $diffSyntaxModes = [ + // @call diffForHumans + 'Absolute' => CarbonInterface::DIFF_ABSOLUTE, + // @call diffForHumans + 'Relative' => CarbonInterface::DIFF_RELATIVE_AUTO, + // @call diffForHumans + 'RelativeToNow' => CarbonInterface::DIFF_RELATIVE_TO_NOW, + // @call diffForHumans + 'RelativeToOther' => CarbonInterface::DIFF_RELATIVE_TO_OTHER, + ]; + $sizePattern = implode('|', array_keys($diffSizes)); + $syntaxPattern = implode('|', array_keys($diffSyntaxModes)); + + if (preg_match("/^(?$sizePattern)(?$syntaxPattern)DiffForHumans$/", $method, $match)) { + $dates = array_filter($parameters, function ($parameter) { + return $parameter instanceof DateTimeInterface; + }); + $other = null; + + if (\count($dates)) { + $key = key($dates); + $other = current($dates); + array_splice($parameters, $key, 1); + } + + return $this->diffForHumans($other, $diffSyntaxModes[$match['syntax']], $diffSizes[$match['size']], ...$parameters); + } + + $roundedValue = $this->callRoundMethod($method, $parameters); + + if ($roundedValue !== null) { + return $roundedValue; + } + + $unit = rtrim($method, 's'); + + if (str_starts_with($unit, 'is')) { + $word = substr($unit, 2); + + if (\in_array($word, static::$days, true)) { + return $this->isDayOfWeek($word); + } + + switch ($word) { + // @call is Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + case 'Utc': + case 'UTC': + return $this->utc; + // @call is Check if the current instance has non-UTC timezone. + case 'Local': + return $this->local; + // @call is Check if the current instance is a valid date. + case 'Valid': + return $this->year !== 0; + // @call is Check if the current instance is in a daylight saving time. + case 'DST': + return $this->dst; + } + } + + $action = substr($unit, 0, 3); + $overflow = null; + + if ($action === 'set') { + $unit = strtolower(substr($unit, 3)); + } + + if (\in_array($unit, static::$units, true)) { + return $this->setUnit($unit, ...$parameters); + } + + if ($action === 'add' || $action === 'sub') { + $unit = substr($unit, 3); + + if (str_starts_with($unit, 'Real')) { + $unit = static::singularUnit(substr($unit, 4)); + + return $this->{"{$action}RealUnit"}($unit, ...$parameters); + } + + if (preg_match('/^(Month|Quarter|Year|Decade|Century|Centurie|Millennium|Millennia)s?(No|With|Without|WithNo)Overflow$/', $unit, $match)) { + $unit = $match[1]; + $overflow = $match[2] === 'With'; + } + + $unit = static::singularUnit($unit); + } + + if (static::isModifiableUnit($unit)) { + return $this->{"{$action}Unit"}($unit, $this->getMagicParameter($parameters, 0, 'value', 1), $overflow); + } + + $sixFirstLetters = substr($unit, 0, 6); + $factor = -1; + + if ($sixFirstLetters === 'isLast') { + $sixFirstLetters = 'isNext'; + $factor = 1; + } + + if ($sixFirstLetters === 'isNext') { + $lowerUnit = strtolower(substr($unit, 6)); + + if (static::isModifiableUnit($lowerUnit)) { + return $this->copy()->addUnit($lowerUnit, $factor, false)->isSameUnit($lowerUnit, ...$parameters); + } + } + + if ($sixFirstLetters === 'isSame') { + try { + return $this->isSameUnit(strtolower(substr($unit, 6)), ...$parameters); + } catch (BadComparisonUnitException $exception) { + // Try next + } + } + + if (str_starts_with($unit, 'isCurrent')) { + try { + return $this->isCurrentUnit(strtolower(substr($unit, 9))); + } catch (BadComparisonUnitException | BadMethodCallException $exception) { + // Try next + } + } + + if (str_ends_with($method, 'Until')) { + try { + $unit = static::singularUnit(substr($method, 0, -5)); + + return $this->range( + $this->getMagicParameter($parameters, 0, 'endDate', $this), + $this->getMagicParameter($parameters, 1, 'factor', 1), + $unit + ); + } catch (InvalidArgumentException $exception) { + // Try macros + } + } + + return static::bindMacroContext($this, function () use (&$method, &$parameters) { + $macro = $this->getLocalMacro($method); + + if (!$macro) { + foreach ([$this->localGenericMacros ?: [], static::getGenericMacros()] as $list) { + foreach ($list as $callback) { + try { + return $this->executeCallable($callback, $method, ...$parameters); + } catch (BadMethodCallException $exception) { + continue; + } + } + } + + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new UnknownMethodException($method); + } + + return null; + } + + return $this->executeCallable($macro, ...$parameters); + }); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/DeprecatedProperties.php b/vendor/nesbot/carbon/src/Carbon/Traits/DeprecatedProperties.php new file mode 100644 index 000000000..5acc6f5c7 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/DeprecatedProperties.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +trait DeprecatedProperties +{ + /** + * the day of week in current locale LC_TIME + * + * @var string + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat('MMM') instead. + * Deprecated since 2.55.0 + */ + public $localeDayOfWeek; + + /** + * the abbreviated day of week in current locale LC_TIME + * + * @var string + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat('dddd') instead. + * Deprecated since 2.55.0 + */ + public $shortLocaleDayOfWeek; + + /** + * the month in current locale LC_TIME + * + * @var string + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat('ddd') instead. + * Deprecated since 2.55.0 + */ + public $localeMonth; + + /** + * the abbreviated month in current locale LC_TIME + * + * @var string + * + * @deprecated It uses OS language package and strftime() which is deprecated since PHP 8.1. + * Use ->isoFormat('MMMM') instead. + * Deprecated since 2.55.0 + */ + public $shortLocaleMonth; +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php b/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php new file mode 100644 index 000000000..ab5b65d23 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php @@ -0,0 +1,1182 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterface; +use Carbon\CarbonInterval; +use Carbon\CarbonPeriod; +use Carbon\Translator; +use Closure; +use DateInterval; +use DateTimeInterface; +use ReturnTypeWillChange; + +/** + * Trait Difference. + * + * Depends on the following methods: + * + * @method bool lessThan($date) + * @method static copy() + * @method static resolveCarbon($date = null) + * @method static Translator translator() + */ +trait Difference +{ + /** + * @codeCoverageIgnore + * + * @param CarbonInterval $diff + */ + protected static function fixNegativeMicroseconds(CarbonInterval $diff) + { + if ($diff->s !== 0 || $diff->i !== 0 || $diff->h !== 0 || $diff->d !== 0 || $diff->m !== 0 || $diff->y !== 0) { + $diff->f = (round($diff->f * 1000000) + 1000000) / 1000000; + $diff->s--; + + if ($diff->s < 0) { + $diff->s += 60; + $diff->i--; + + if ($diff->i < 0) { + $diff->i += 60; + $diff->h--; + + if ($diff->h < 0) { + $diff->h += 24; + $diff->d--; + + if ($diff->d < 0) { + $diff->d += 30; + $diff->m--; + + if ($diff->m < 0) { + $diff->m += 12; + $diff->y--; + } + } + } + } + } + + return; + } + + $diff->f *= -1; + $diff->invert(); + } + + /** + * @param DateInterval $diff + * @param bool $absolute + * + * @return CarbonInterval + */ + protected static function fixDiffInterval(DateInterval $diff, $absolute, array $skip = []) + { + $diff = CarbonInterval::instance($diff, $skip); + + // Work-around for https://bugs.php.net/bug.php?id=77145 + // @codeCoverageIgnoreStart + if ($diff->f > 0 && $diff->y === -1 && $diff->m === 11 && $diff->d >= 27 && $diff->h === 23 && $diff->i === 59 && $diff->s === 59) { + $diff->y = 0; + $diff->m = 0; + $diff->d = 0; + $diff->h = 0; + $diff->i = 0; + $diff->s = 0; + $diff->f = (1000000 - round($diff->f * 1000000)) / 1000000; + $diff->invert(); + } elseif ($diff->f < 0) { + static::fixNegativeMicroseconds($diff); + } + // @codeCoverageIgnoreEnd + + if ($absolute && $diff->invert) { + $diff->invert(); + } + + return $diff; + } + + /** + * Get the difference as a DateInterval instance. + * Return relative interval (negative if $absolute flag is not set to true and the given date is before + * current one). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return DateInterval + */ + #[ReturnTypeWillChange] + public function diff($date = null, $absolute = false) + { + $other = $this->resolveCarbon($date); + + // Work-around for https://bugs.php.net/bug.php?id=81458 + // It was initially introduced for https://bugs.php.net/bug.php?id=80998 + // The very specific case of 80998 was fixed in PHP 8.1beta3, but it introduced 81458 + // So we still need to keep this for now + // @codeCoverageIgnoreStart + if (version_compare(PHP_VERSION, '8.1.0-dev', '>=') && $other->tz !== $this->tz) { + $other = $other->avoidMutation()->tz($this->tz); + } + // @codeCoverageIgnoreEnd + + return parent::diff($other, (bool) $absolute); + } + + /** + * Get the difference as a CarbonInterval instance. + * Return relative interval (negative if $absolute flag is not set to true and the given date is before + * current one). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return CarbonInterval + */ + public function diffAsCarbonInterval($date = null, $absolute = true, array $skip = []) + { + return static::fixDiffInterval($this->diff($this->resolveCarbon($date), $absolute), $absolute, $skip); + } + + /** + * Get the difference in years + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInYears($date = null, $absolute = true) + { + return (int) $this->diff($this->resolveCarbon($date), $absolute)->format('%r%y'); + } + + /** + * Get the difference in quarters rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInQuarters($date = null, $absolute = true) + { + return (int) ($this->diffInMonths($date, $absolute) / static::MONTHS_PER_QUARTER); + } + + /** + * Get the difference in months rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMonths($date = null, $absolute = true) + { + $date = $this->resolveCarbon($date)->avoidMutation()->tz($this->tz); + + [$yearStart, $monthStart, $dayStart] = explode('-', $this->format('Y-m-dHisu')); + [$yearEnd, $monthEnd, $dayEnd] = explode('-', $date->format('Y-m-dHisu')); + + $diff = (((int) $yearEnd) - ((int) $yearStart)) * static::MONTHS_PER_YEAR + + ((int) $monthEnd) - ((int) $monthStart); + + if ($diff > 0) { + $diff -= ($dayStart > $dayEnd ? 1 : 0); + } elseif ($diff < 0) { + $diff += ($dayStart < $dayEnd ? 1 : 0); + } + + return $absolute ? abs($diff) : $diff; + } + + /** + * Get the difference in weeks rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeeks($date = null, $absolute = true) + { + return (int) ($this->diffInDays($date, $absolute) / static::DAYS_PER_WEEK); + } + + /** + * Get the difference in days rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInDays($date = null, $absolute = true) + { + return $this->getIntervalDayDiff($this->diff($this->resolveCarbon($date), $absolute)); + } + + /** + * Get the difference in days using a filter closure rounded down. + * + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInDaysFiltered(Closure $callback, $date = null, $absolute = true) + { + return $this->diffFiltered(CarbonInterval::day(), $callback, $date, $absolute); + } + + /** + * Get the difference in hours using a filter closure rounded down. + * + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInHoursFiltered(Closure $callback, $date = null, $absolute = true) + { + return $this->diffFiltered(CarbonInterval::hour(), $callback, $date, $absolute); + } + + /** + * Get the difference by the given interval using a filter closure. + * + * @param CarbonInterval $ci An interval to traverse by + * @param Closure $callback + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $inverse = false; + + if ($end < $start) { + $start = $end; + $end = $this; + $inverse = true; + } + + $options = CarbonPeriod::EXCLUDE_END_DATE | ($this->isMutable() ? 0 : CarbonPeriod::IMMUTABLE); + $diff = $ci->toPeriod($start, $end, $options)->filter($callback)->count(); + + return $inverse && !$absolute ? -$diff : $diff; + } + + /** + * Get the difference in weekdays rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeekdays($date = null, $absolute = true) + { + return $this->diffInDaysFiltered(static function (CarbonInterface $date) { + return $date->isWeekday(); + }, $this->resolveCarbon($date)->avoidMutation()->modify($this->format('H:i:s.u')), $absolute); + } + + /** + * Get the difference in weekend days using a filter rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInWeekendDays($date = null, $absolute = true) + { + return $this->diffInDaysFiltered(static function (CarbonInterface $date) { + return $date->isWeekend(); + }, $this->resolveCarbon($date)->avoidMutation()->modify($this->format('H:i:s.u')), $absolute); + } + + /** + * Get the difference in hours rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInHours($date = null, $absolute = true) + { + return (int) ($this->diffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR); + } + + /** + * Get the difference in hours rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealHours($date = null, $absolute = true) + { + return (int) ($this->diffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR); + } + + /** + * Get the difference in minutes rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMinutes($date = null, $absolute = true) + { + return (int) ($this->diffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE); + } + + /** + * Get the difference in minutes rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMinutes($date = null, $absolute = true) + { + return (int) ($this->diffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE); + } + + /** + * Get the difference in seconds rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInSeconds($date = null, $absolute = true) + { + $diff = $this->diff($date); + + if ($diff->days === 0) { + $diff = static::fixDiffInterval($diff, $absolute); + } + + $value = (((($diff->m || $diff->y ? $diff->days : $diff->d) * static::HOURS_PER_DAY) + + $diff->h) * static::MINUTES_PER_HOUR + + $diff->i) * static::SECONDS_PER_MINUTE + + $diff->s; + + return $absolute || !$diff->invert ? $value : -$value; + } + + /** + * Get the difference in microseconds. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMicroseconds($date = null, $absolute = true) + { + $diff = $this->diff($date); + $value = (int) round(((((($diff->m || $diff->y ? $diff->days : $diff->d) * static::HOURS_PER_DAY) + + $diff->h) * static::MINUTES_PER_HOUR + + $diff->i) * static::SECONDS_PER_MINUTE + + ($diff->f + $diff->s)) * static::MICROSECONDS_PER_SECOND); + + return $absolute || !$diff->invert ? $value : -$value; + } + + /** + * Get the difference in milliseconds rounded down. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInMilliseconds($date = null, $absolute = true) + { + return (int) ($this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_MILLISECOND); + } + + /** + * Get the difference in seconds using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealSeconds($date = null, $absolute = true) + { + /** @var CarbonInterface $date */ + $date = $this->resolveCarbon($date); + $value = $date->getTimestamp() - $this->getTimestamp(); + + return $absolute ? abs($value) : $value; + } + + /** + * Get the difference in microseconds using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMicroseconds($date = null, $absolute = true) + { + /** @var CarbonInterface $date */ + $date = $this->resolveCarbon($date); + $value = ($date->timestamp - $this->timestamp) * static::MICROSECONDS_PER_SECOND + + $date->micro - $this->micro; + + return $absolute ? abs($value) : $value; + } + + /** + * Get the difference in milliseconds rounded down using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return int + */ + public function diffInRealMilliseconds($date = null, $absolute = true) + { + return (int) ($this->diffInRealMicroseconds($date, $absolute) / static::MICROSECONDS_PER_MILLISECOND); + } + + /** + * Get the difference in seconds as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInSeconds($date = null, $absolute = true) + { + return (float) ($this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND); + } + + /** + * Get the difference in minutes as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInMinutes($date = null, $absolute = true) + { + return $this->floatDiffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE; + } + + /** + * Get the difference in hours as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInHours($date = null, $absolute = true) + { + return $this->floatDiffInMinutes($date, $absolute) / static::MINUTES_PER_HOUR; + } + + /** + * Get the difference in days as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInDays($date = null, $absolute = true) + { + $hoursDiff = $this->floatDiffInHours($date, $absolute); + $interval = $this->diff($date, $absolute); + + if ($interval->y === 0 && $interval->m === 0 && $interval->d === 0) { + return $hoursDiff / static::HOURS_PER_DAY; + } + + $daysDiff = $this->getIntervalDayDiff($interval); + + return $daysDiff + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY; + } + + /** + * Get the difference in weeks as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInWeeks($date = null, $absolute = true) + { + return $this->floatDiffInDays($date, $absolute) / static::DAYS_PER_WEEK; + } + + /** + * Get the difference in months as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInMonths($date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $ascending = ($start <= $end); + $sign = $absolute || $ascending ? 1 : -1; + if (!$ascending) { + [$start, $end] = [$end, $start]; + } + $monthsDiff = $start->diffInMonths($end); + /** @var Carbon|CarbonImmutable $floorEnd */ + $floorEnd = $start->avoidMutation()->addMonths($monthsDiff); + + if ($floorEnd >= $end) { + return $sign * $monthsDiff; + } + + /** @var Carbon|CarbonImmutable $startOfMonthAfterFloorEnd */ + $startOfMonthAfterFloorEnd = $floorEnd->avoidMutation()->addMonth()->startOfMonth(); + + if ($startOfMonthAfterFloorEnd > $end) { + return $sign * ($monthsDiff + $floorEnd->floatDiffInDays($end) / $floorEnd->daysInMonth); + } + + return $sign * ($monthsDiff + $floorEnd->floatDiffInDays($startOfMonthAfterFloorEnd) / $floorEnd->daysInMonth + $startOfMonthAfterFloorEnd->floatDiffInDays($end) / $end->daysInMonth); + } + + /** + * Get the difference in year as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInYears($date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $ascending = ($start <= $end); + $sign = $absolute || $ascending ? 1 : -1; + if (!$ascending) { + [$start, $end] = [$end, $start]; + } + $yearsDiff = $start->diffInYears($end); + /** @var Carbon|CarbonImmutable $floorEnd */ + $floorEnd = $start->avoidMutation()->addYears($yearsDiff); + + if ($floorEnd >= $end) { + return $sign * $yearsDiff; + } + + /** @var Carbon|CarbonImmutable $startOfYearAfterFloorEnd */ + $startOfYearAfterFloorEnd = $floorEnd->avoidMutation()->addYear()->startOfYear(); + + if ($startOfYearAfterFloorEnd > $end) { + return $sign * ($yearsDiff + $floorEnd->floatDiffInDays($end) / $floorEnd->daysInYear); + } + + return $sign * ($yearsDiff + $floorEnd->floatDiffInDays($startOfYearAfterFloorEnd) / $floorEnd->daysInYear + $startOfYearAfterFloorEnd->floatDiffInDays($end) / $end->daysInYear); + } + + /** + * Get the difference in seconds as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealSeconds($date = null, $absolute = true) + { + return $this->diffInRealMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND; + } + + /** + * Get the difference in minutes as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealMinutes($date = null, $absolute = true) + { + return $this->floatDiffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE; + } + + /** + * Get the difference in hours as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealHours($date = null, $absolute = true) + { + return $this->floatDiffInRealMinutes($date, $absolute) / static::MINUTES_PER_HOUR; + } + + /** + * Get the difference in days as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealDays($date = null, $absolute = true) + { + $date = $this->resolveUTC($date); + $utc = $this->avoidMutation()->utc(); + $hoursDiff = $utc->floatDiffInRealHours($date, $absolute); + + return ($hoursDiff < 0 ? -1 : 1) * $utc->diffInDays($date) + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY; + } + + /** + * Get the difference in weeks as float (microsecond-precision). + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealWeeks($date = null, $absolute = true) + { + return $this->floatDiffInRealDays($date, $absolute) / static::DAYS_PER_WEEK; + } + + /** + * Get the difference in months as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealMonths($date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $ascending = ($start <= $end); + $sign = $absolute || $ascending ? 1 : -1; + if (!$ascending) { + [$start, $end] = [$end, $start]; + } + $monthsDiff = $start->diffInMonths($end); + /** @var Carbon|CarbonImmutable $floorEnd */ + $floorEnd = $start->avoidMutation()->addMonths($monthsDiff); + + if ($floorEnd >= $end) { + return $sign * $monthsDiff; + } + + /** @var Carbon|CarbonImmutable $startOfMonthAfterFloorEnd */ + $startOfMonthAfterFloorEnd = $floorEnd->avoidMutation()->addMonth()->startOfMonth(); + + if ($startOfMonthAfterFloorEnd > $end) { + return $sign * ($monthsDiff + $floorEnd->floatDiffInRealDays($end) / $floorEnd->daysInMonth); + } + + return $sign * ($monthsDiff + $floorEnd->floatDiffInRealDays($startOfMonthAfterFloorEnd) / $floorEnd->daysInMonth + $startOfMonthAfterFloorEnd->floatDiffInRealDays($end) / $end->daysInMonth); + } + + /** + * Get the difference in year as float (microsecond-precision) using timestamps. + * + * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date + * @param bool $absolute Get the absolute of the difference + * + * @return float + */ + public function floatDiffInRealYears($date = null, $absolute = true) + { + $start = $this; + $end = $this->resolveCarbon($date); + $ascending = ($start <= $end); + $sign = $absolute || $ascending ? 1 : -1; + if (!$ascending) { + [$start, $end] = [$end, $start]; + } + $yearsDiff = $start->diffInYears($end); + /** @var Carbon|CarbonImmutable $floorEnd */ + $floorEnd = $start->avoidMutation()->addYears($yearsDiff); + + if ($floorEnd >= $end) { + return $sign * $yearsDiff; + } + + /** @var Carbon|CarbonImmutable $startOfYearAfterFloorEnd */ + $startOfYearAfterFloorEnd = $floorEnd->avoidMutation()->addYear()->startOfYear(); + + if ($startOfYearAfterFloorEnd > $end) { + return $sign * ($yearsDiff + $floorEnd->floatDiffInRealDays($end) / $floorEnd->daysInYear); + } + + return $sign * ($yearsDiff + $floorEnd->floatDiffInRealDays($startOfYearAfterFloorEnd) / $floorEnd->daysInYear + $startOfYearAfterFloorEnd->floatDiffInRealDays($end) / $end->daysInYear); + } + + /** + * The number of seconds since midnight. + * + * @return int + */ + public function secondsSinceMidnight() + { + return $this->diffInSeconds($this->avoidMutation()->startOfDay()); + } + + /** + * The number of seconds until 23:59:59. + * + * @return int + */ + public function secondsUntilEndOfDay() + { + return $this->diffInSeconds($this->avoidMutation()->endOfDay()); + } + + /** + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @example + * ``` + * echo Carbon::tomorrow()->diffForHumans() . "\n"; + * echo Carbon::tomorrow()->diffForHumans(['parts' => 2]) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(['parts' => 3, 'join' => true]) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday()) . "\n"; + * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday(), ['short' => true]) . "\n"; + * ``` + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'skip' entry, list of units to skip (array of strings or a single string, + * ` it can be the unit name (singular or plural) or its shortcut + * ` (y, m, w, d, h, min, s, ms, µs). + * - 'aUnit' entry, prefer "an hour" over "1 hour" if true + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * - 'minimumUnit' entry determines the smallest unit of time to display can be long or + * ` short form of the units, e.g. 'hour' or 'h' (default value: s) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + /* @var CarbonInterface $this */ + if (\is_array($other)) { + $other['syntax'] = \array_key_exists('syntax', $other) ? $other['syntax'] : $syntax; + $syntax = $other; + $other = $syntax['other'] ?? null; + } + + $intSyntax = &$syntax; + if (\is_array($syntax)) { + $syntax['syntax'] = $syntax['syntax'] ?? null; + $intSyntax = &$syntax['syntax']; + } + $intSyntax = (int) ($intSyntax ?? static::DIFF_RELATIVE_AUTO); + $intSyntax = $intSyntax === static::DIFF_RELATIVE_AUTO && $other === null ? static::DIFF_RELATIVE_TO_NOW : $intSyntax; + + $parts = min(7, max(1, (int) $parts)); + $skip = \is_array($syntax) ? ($syntax['skip'] ?? []) : []; + + return $this->diffAsCarbonInterval($other, false, (array) $skip) + ->setLocalTranslator($this->getLocalTranslator()) + ->forHumans($syntax, (bool) $short, $parts, $options ?? $this->localHumanDiffOptions ?? static::getHumanDiffOptions()); + } + + /** + * @alias diffForHumans + * + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function from($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + return $this->diffForHumans($other, $syntax, $short, $parts, $options); + } + + /** + * @alias diffForHumans + * + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + */ + public function since($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + return $this->diffForHumans($other, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given (or now if null given) to current instance. + * + * When comparing a value in the past to default now: + * 1 hour from now + * 5 months from now + * + * When comparing a value in the future to default now: + * 1 hour ago + * 5 months ago + * + * When comparing a value in the past to another value: + * 1 hour after + * 5 months after + * + * When comparing a value in the future to another value: + * 1 hour before + * 5 months before + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function to($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + if (!$syntax && !$other) { + $syntax = CarbonInterface::DIFF_RELATIVE_TO_NOW; + } + + return $this->resolveCarbon($other)->diffForHumans($this, $syntax, $short, $parts, $options); + } + + /** + * @alias to + * + * Get the difference in a human readable format in the current locale from an other + * instance given (or now if null given) to current instance. + * + * @param Carbon|\DateTimeInterface|string|array|null $other if array passed, will be used as parameters array, see $syntax below; + * if null passed, now will be used as comparison reference; + * if any other type, it will be converted to date and used as reference. + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * - 'other' entry (see above) + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function until($other = null, $syntax = null, $short = false, $parts = 1, $options = null) + { + return $this->to($other, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from current + * instance to now. + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single unit) + * @param int $options human diff options + * + * @return string + */ + public function fromNow($syntax = null, $short = false, $parts = 1, $options = null) + { + $other = null; + + if ($syntax instanceof DateTimeInterface) { + [$other, $syntax, $short, $parts, $options] = array_pad(\func_get_args(), 5, null); + } + + return $this->from($other, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given to now + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single part) + * @param int $options human diff options + * + * @return string + */ + public function toNow($syntax = null, $short = false, $parts = 1, $options = null) + { + return $this->to(null, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from an other + * instance given to now + * + * @param int|array $syntax if array passed, parameters will be extracted from it, the array may contains: + * - 'syntax' entry (see below) + * - 'short' entry (see below) + * - 'parts' entry (see below) + * - 'options' entry (see below) + * - 'join' entry determines how to join multiple parts of the string + * ` - if $join is a string, it's used as a joiner glue + * ` - if $join is a callable/closure, it get the list of string and should return a string + * ` - if $join is an array, the first item will be the default glue, and the second item + * ` will be used instead of the glue for the last item + * ` - if $join is true, it will be guessed from the locale ('list' translation file entry) + * ` - if $join is missing, a space will be used as glue + * if int passed, it add modifiers: + * Possible values: + * - CarbonInterface::DIFF_ABSOLUTE no modifiers + * - CarbonInterface::DIFF_RELATIVE_TO_NOW add ago/from now modifier + * - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier + * Default value: CarbonInterface::DIFF_ABSOLUTE + * @param bool $short displays short format of time units + * @param int $parts maximum number of parts to display (default value: 1: single part) + * @param int $options human diff options + * + * @return string + */ + public function ago($syntax = null, $short = false, $parts = 1, $options = null) + { + $other = null; + + if ($syntax instanceof DateTimeInterface) { + [$other, $syntax, $short, $parts, $options] = array_pad(\func_get_args(), 5, null); + } + + return $this->from($other, $syntax, $short, $parts, $options); + } + + /** + * Get the difference in a human readable format in the current locale from current instance to an other + * instance given (or now if null given). + * + * @return string + */ + public function timespan($other = null, $timezone = null) + { + if (!$other instanceof DateTimeInterface) { + $other = static::parse($other, $timezone); + } + + return $this->diffForHumans($other, [ + 'join' => ', ', + 'syntax' => CarbonInterface::DIFF_ABSOLUTE, + 'options' => CarbonInterface::NO_ZERO_DIFF, + 'parts' => -1, + ]); + } + + /** + * Returns either day of week + time (e.g. "Last Friday at 3:30 PM") if reference time is within 7 days, + * or a calendar date (e.g. "10/29/2017") otherwise. + * + * Language, date and time formats will change according to the current locale. + * + * @param Carbon|\DateTimeInterface|string|null $referenceTime + * @param array $formats + * + * @return string + */ + public function calendar($referenceTime = null, array $formats = []) + { + /** @var CarbonInterface $current */ + $current = $this->avoidMutation()->startOfDay(); + /** @var CarbonInterface $other */ + $other = $this->resolveCarbon($referenceTime)->avoidMutation()->setTimezone($this->getTimezone())->startOfDay(); + $diff = $other->diffInDays($current, false); + $format = $diff < -6 ? 'sameElse' : ( + $diff < -1 ? 'lastWeek' : ( + $diff < 0 ? 'lastDay' : ( + $diff < 1 ? 'sameDay' : ( + $diff < 2 ? 'nextDay' : ( + $diff < 7 ? 'nextWeek' : 'sameElse' + ) + ) + ) + ) + ); + $format = array_merge($this->getCalendarFormats(), $formats)[$format]; + if ($format instanceof Closure) { + $format = $format($current, $other) ?? ''; + } + + return $this->isoFormat((string) $format); + } + + private function getIntervalDayDiff(DateInterval $interval): int + { + $daysDiff = (int) $interval->format('%a'); + $sign = $interval->format('%r') === '-' ? -1 : 1; + + if (\is_int($interval->days) && + $interval->y === 0 && + $interval->m === 0 && + version_compare(PHP_VERSION, '8.1.0-dev', '<') && + abs($interval->d - $daysDiff) === 1 + ) { + $daysDiff = abs($interval->d); // @codeCoverageIgnore + } + + return $daysDiff * $sign; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php b/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php new file mode 100644 index 000000000..4cd66b676 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterval; +use Carbon\Exceptions\InvalidIntervalException; +use DateInterval; + +/** + * Trait to call rounding methods to interval or the interval of a period. + */ +trait IntervalRounding +{ + protected function callRoundMethod(string $method, array $parameters) + { + $action = substr($method, 0, 4); + + if ($action !== 'ceil') { + $action = substr($method, 0, 5); + } + + if (\in_array($action, ['round', 'floor', 'ceil'])) { + return $this->{$action.'Unit'}(substr($method, \strlen($action)), ...$parameters); + } + + return null; + } + + protected function roundWith($precision, $function) + { + $unit = 'second'; + + if ($precision instanceof DateInterval) { + $precision = (string) CarbonInterval::instance($precision); + } + + if (\is_string($precision) && preg_match('/^\s*(?\d+)?\s*(?\w+)(?\W.*)?$/', $precision, $match)) { + if (trim($match['other'] ?? '') !== '') { + throw new InvalidIntervalException('Rounding is only possible with single unit intervals.'); + } + + $precision = (int) ($match['precision'] ?: 1); + $unit = $match['unit']; + } + + return $this->roundUnit($unit, $precision, $function); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php b/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php new file mode 100644 index 000000000..82d7c3264 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php @@ -0,0 +1,93 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; +use Carbon\CarbonInterface; +use Closure; +use DateTimeImmutable; +use DateTimeInterface; + +trait IntervalStep +{ + /** + * Step to apply instead of a fixed interval to get the new date. + * + * @var Closure|null + */ + protected $step; + + /** + * Get the dynamic step in use. + * + * @return Closure + */ + public function getStep(): ?Closure + { + return $this->step; + } + + /** + * Set a step to apply instead of a fixed interval to get the new date. + * + * Or pass null to switch to fixed interval. + * + * @param Closure|null $step + */ + public function setStep(?Closure $step): void + { + $this->step = $step; + } + + /** + * Take a date and apply either the step if set, or the current interval else. + * + * The interval/step is applied negatively (typically subtraction instead of addition) if $negated is true. + * + * @param DateTimeInterface $dateTime + * @param bool $negated + * + * @return CarbonInterface + */ + public function convertDate(DateTimeInterface $dateTime, bool $negated = false): CarbonInterface + { + /** @var CarbonInterface $carbonDate */ + $carbonDate = $dateTime instanceof CarbonInterface ? $dateTime : $this->resolveCarbon($dateTime); + + if ($this->step) { + return $carbonDate->setDateTimeFrom(($this->step)($carbonDate->avoidMutation(), $negated)); + } + + if ($negated) { + return $carbonDate->rawSub($this); + } + + return $carbonDate->rawAdd($this); + } + + /** + * Convert DateTimeImmutable instance to CarbonImmutable instance and DateTime instance to Carbon instance. + * + * @param DateTimeInterface $dateTime + * + * @return Carbon|CarbonImmutable + */ + private function resolveCarbon(DateTimeInterface $dateTime) + { + if ($dateTime instanceof DateTimeImmutable) { + return CarbonImmutable::instance($dateTime); + } + + return Carbon::instance($dateTime); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php b/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php new file mode 100644 index 000000000..ff249566f --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php @@ -0,0 +1,838 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use Carbon\Exceptions\InvalidTypeException; +use Carbon\Exceptions\NotLocaleAwareException; +use Carbon\Language; +use Carbon\Translator; +use Carbon\TranslatorStrongTypeInterface; +use Closure; +use Symfony\Component\Translation\TranslatorBagInterface; +use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\LocaleAwareInterface; +use Symfony\Contracts\Translation\TranslatorInterface as ContractsTranslatorInterface; + +if (interface_exists('Symfony\\Contracts\\Translation\\TranslatorInterface') && + !interface_exists('Symfony\\Component\\Translation\\TranslatorInterface') +) { + class_alias( + 'Symfony\\Contracts\\Translation\\TranslatorInterface', + 'Symfony\\Component\\Translation\\TranslatorInterface' + ); +} + +/** + * Trait Localization. + * + * Embed default and locale translators and translation base methods. + */ +trait Localization +{ + /** + * Default translator. + * + * @var \Symfony\Component\Translation\TranslatorInterface + */ + protected static $translator; + + /** + * Specific translator of the current instance. + * + * @var \Symfony\Component\Translation\TranslatorInterface + */ + protected $localTranslator; + + /** + * Options for diffForHumans(). + * + * @var int + */ + protected static $humanDiffOptions = CarbonInterface::NO_ZERO_DIFF; + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOptions + */ + public static function setHumanDiffOptions($humanDiffOptions) + { + static::$humanDiffOptions = $humanDiffOptions; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOption + */ + public static function enableHumanDiffOption($humanDiffOption) + { + static::$humanDiffOptions = static::getHumanDiffOptions() | $humanDiffOption; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * @param int $humanDiffOption + */ + public static function disableHumanDiffOption($humanDiffOption) + { + static::$humanDiffOptions = static::getHumanDiffOptions() & ~$humanDiffOption; + } + + /** + * Return default humanDiff() options (merged flags as integer). + * + * @return int + */ + public static function getHumanDiffOptions() + { + return static::$humanDiffOptions; + } + + /** + * Get the default translator instance in use. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + public static function getTranslator() + { + return static::translator(); + } + + /** + * Set the default translator instance to use. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * + * @return void + */ + public static function setTranslator(TranslatorInterface $translator) + { + static::$translator = $translator; + } + + /** + * Return true if the current instance has its own translator. + * + * @return bool + */ + public function hasLocalTranslator() + { + return isset($this->localTranslator); + } + + /** + * Get the translator of the current instance or the default if none set. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + public function getLocalTranslator() + { + return $this->localTranslator ?: static::translator(); + } + + /** + * Set the translator for the current instance. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * + * @return $this + */ + public function setLocalTranslator(TranslatorInterface $translator) + { + $this->localTranslator = $translator; + + return $this; + } + + /** + * Returns raw translation message for a given key. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator the translator to use + * @param string $key key to find + * @param string|null $locale current locale used if null + * @param string|null $default default value if translation returns the key + * + * @return string + */ + public static function getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null) + { + if (!($translator instanceof TranslatorBagInterface && $translator instanceof TranslatorInterface)) { + throw new InvalidTypeException( + 'Translator does not implement '.TranslatorInterface::class.' and '.TranslatorBagInterface::class.'. '. + (\is_object($translator) ? \get_class($translator) : \gettype($translator)).' has been given.' + ); + } + + if (!$locale && $translator instanceof LocaleAwareInterface) { + $locale = $translator->getLocale(); + } + + $result = self::getFromCatalogue($translator, $translator->getCatalogue($locale), $key); + + return $result === $key ? $default : $result; + } + + /** + * Returns raw translation message for a given key. + * + * @param string $key key to find + * @param string|null $locale current locale used if null + * @param string|null $default default value if translation returns the key + * @param \Symfony\Component\Translation\TranslatorInterface $translator an optional translator to use + * + * @return string + */ + public function getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null) + { + return static::getTranslationMessageWith($translator ?: $this->getLocalTranslator(), $key, $locale, $default); + } + + /** + * Translate using translation string or callback available. + * + * @param \Symfony\Component\Translation\TranslatorInterface $translator + * @param string $key + * @param array $parameters + * @param null $number + * + * @return string + */ + public static function translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null): string + { + $message = static::getTranslationMessageWith($translator, $key, null, $key); + if ($message instanceof Closure) { + return (string) $message(...array_values($parameters)); + } + + if ($number !== null) { + $parameters['%count%'] = $number; + } + if (isset($parameters['%count%'])) { + $parameters[':count'] = $parameters['%count%']; + } + + // @codeCoverageIgnoreStart + $choice = $translator instanceof ContractsTranslatorInterface + ? $translator->trans($key, $parameters) + : $translator->transChoice($key, $number, $parameters); + // @codeCoverageIgnoreEnd + + return (string) $choice; + } + + /** + * Translate using translation string or callback available. + * + * @param string $key + * @param array $parameters + * @param string|int|float|null $number + * @param \Symfony\Component\Translation\TranslatorInterface|null $translator + * @param bool $altNumbers + * + * @return string + */ + public function translate(string $key, array $parameters = [], $number = null, ?TranslatorInterface $translator = null, bool $altNumbers = false): string + { + $translation = static::translateWith($translator ?: $this->getLocalTranslator(), $key, $parameters, $number); + + if ($number !== null && $altNumbers) { + return str_replace($number, $this->translateNumber($number), $translation); + } + + return $translation; + } + + /** + * Returns the alternative number for a given integer if available in the current locale. + * + * @param int $number + * + * @return string + */ + public function translateNumber(int $number): string + { + $translateKey = "alt_numbers.$number"; + $symbol = $this->translate($translateKey); + + if ($symbol !== $translateKey) { + return $symbol; + } + + if ($number > 99 && $this->translate('alt_numbers.99') !== 'alt_numbers.99') { + $start = ''; + foreach ([10000, 1000, 100] as $exp) { + $key = "alt_numbers_pow.$exp"; + if ($number >= $exp && $number < $exp * 10 && ($pow = $this->translate($key)) !== $key) { + $unit = floor($number / $exp); + $number -= $unit * $exp; + $start .= ($unit > 1 ? $this->translate("alt_numbers.$unit") : '').$pow; + } + } + $result = ''; + while ($number) { + $chunk = $number % 100; + $result = $this->translate("alt_numbers.$chunk").$result; + $number = floor($number / 100); + } + + return "$start$result"; + } + + if ($number > 9 && $this->translate('alt_numbers.9') !== 'alt_numbers.9') { + $result = ''; + while ($number) { + $chunk = $number % 10; + $result = $this->translate("alt_numbers.$chunk").$result; + $number = floor($number / 10); + } + + return $result; + } + + return (string) $number; + } + + /** + * Translate a time string from a locale to an other. + * + * @param string $timeString date/time/duration string to translate (may also contain English) + * @param string|null $from input locale of the $timeString parameter (`Carbon::getLocale()` by default) + * @param string|null $to output locale of the result returned (`"en"` by default) + * @param int $mode specify what to translate with options: + * - CarbonInterface::TRANSLATE_ALL (default) + * - CarbonInterface::TRANSLATE_MONTHS + * - CarbonInterface::TRANSLATE_DAYS + * - CarbonInterface::TRANSLATE_UNITS + * - CarbonInterface::TRANSLATE_MERIDIEM + * You can use pipe to group: CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS + * + * @return string + */ + public static function translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL) + { + // Fallback source and destination locales + $from = $from ?: static::getLocale(); + $to = $to ?: 'en'; + + if ($from === $to) { + return $timeString; + } + + // Standardize apostrophe + $timeString = strtr($timeString, ['’' => "'"]); + + $fromTranslations = []; + $toTranslations = []; + + foreach (['from', 'to'] as $key) { + $language = $$key; + $translator = Translator::get($language); + $translations = $translator->getMessages(); + + if (!isset($translations[$language])) { + return $timeString; + } + + $translationKey = $key.'Translations'; + $messages = $translations[$language]; + $months = $messages['months'] ?? []; + $weekdays = $messages['weekdays'] ?? []; + $meridiem = $messages['meridiem'] ?? ['AM', 'PM']; + + if (isset($messages['ordinal_words'])) { + $timeString = self::replaceOrdinalWords( + $timeString, + $key === 'from' ? array_flip($messages['ordinal_words']) : $messages['ordinal_words'] + ); + } + + if ($key === 'from') { + foreach (['months', 'weekdays'] as $variable) { + $list = $messages[$variable.'_standalone'] ?? null; + + if ($list) { + foreach ($$variable as $index => &$name) { + $name .= '|'.$messages[$variable.'_standalone'][$index]; + } + } + } + } + + $$translationKey = array_merge( + $mode & CarbonInterface::TRANSLATE_MONTHS ? static::getTranslationArray($months, 12, $timeString) : [], + $mode & CarbonInterface::TRANSLATE_MONTHS ? static::getTranslationArray($messages['months_short'] ?? [], 12, $timeString) : [], + $mode & CarbonInterface::TRANSLATE_DAYS ? static::getTranslationArray($weekdays, 7, $timeString) : [], + $mode & CarbonInterface::TRANSLATE_DAYS ? static::getTranslationArray($messages['weekdays_short'] ?? [], 7, $timeString) : [], + $mode & CarbonInterface::TRANSLATE_DIFF ? static::translateWordsByKeys([ + 'diff_now', + 'diff_today', + 'diff_yesterday', + 'diff_tomorrow', + 'diff_before_yesterday', + 'diff_after_tomorrow', + ], $messages, $key) : [], + $mode & CarbonInterface::TRANSLATE_UNITS ? static::translateWordsByKeys([ + 'year', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + ], $messages, $key) : [], + $mode & CarbonInterface::TRANSLATE_MERIDIEM ? array_map(function ($hour) use ($meridiem) { + if (\is_array($meridiem)) { + return $meridiem[$hour < 12 ? 0 : 1]; + } + + return $meridiem($hour, 0, false); + }, range(0, 23)) : [] + ); + } + + return substr(preg_replace_callback('/(?<=[\d\s+.\/,_-])('.implode('|', $fromTranslations).')(?=[\d\s+.\/,_-])/iu', function ($match) use ($fromTranslations, $toTranslations) { + [$chunk] = $match; + + foreach ($fromTranslations as $index => $word) { + if (preg_match("/^$word\$/iu", $chunk)) { + return $toTranslations[$index] ?? ''; + } + } + + return $chunk; // @codeCoverageIgnore + }, " $timeString "), 1, -1); + } + + /** + * Translate a time string from the current locale (`$date->locale()`) to an other. + * + * @param string $timeString time string to translate + * @param string|null $to output locale of the result returned ("en" by default) + * + * @return string + */ + public function translateTimeStringTo($timeString, $to = null) + { + return static::translateTimeString($timeString, $this->getTranslatorLocale(), $to); + } + + /** + * Get/set the locale for the current instance. + * + * @param string|null $locale + * @param string ...$fallbackLocales + * + * @return $this|string + */ + public function locale(string $locale = null, ...$fallbackLocales) + { + if ($locale === null) { + return $this->getTranslatorLocale(); + } + + if (!$this->localTranslator || $this->getTranslatorLocale($this->localTranslator) !== $locale) { + $translator = Translator::get($locale); + + if (!empty($fallbackLocales)) { + $translator->setFallbackLocales($fallbackLocales); + + foreach ($fallbackLocales as $fallbackLocale) { + $messages = Translator::get($fallbackLocale)->getMessages(); + + if (isset($messages[$fallbackLocale])) { + $translator->setMessages($fallbackLocale, $messages[$fallbackLocale]); + } + } + } + + $this->localTranslator = $translator; + } + + return $this; + } + + /** + * Get the current translator locale. + * + * @return string + */ + public static function getLocale() + { + return static::getLocaleAwareTranslator()->getLocale(); + } + + /** + * Set the current translator locale and indicate if the source locale file exists. + * Pass 'auto' as locale to use closest language from the current LC_TIME locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function setLocale($locale) + { + return static::getLocaleAwareTranslator()->setLocale($locale) !== false; + } + + /** + * Set the fallback locale. + * + * @see https://symfony.com/doc/current/components/translation.html#fallback-locales + * + * @param string $locale + */ + public static function setFallbackLocale($locale) + { + $translator = static::getTranslator(); + + if (method_exists($translator, 'setFallbackLocales')) { + $translator->setFallbackLocales([$locale]); + + if ($translator instanceof Translator) { + $preferredLocale = $translator->getLocale(); + $translator->setMessages($preferredLocale, array_replace_recursive( + $translator->getMessages()[$locale] ?? [], + Translator::get($locale)->getMessages()[$locale] ?? [], + $translator->getMessages($preferredLocale) + )); + } + } + } + + /** + * Get the fallback locale. + * + * @see https://symfony.com/doc/current/components/translation.html#fallback-locales + * + * @return string|null + */ + public static function getFallbackLocale() + { + $translator = static::getTranslator(); + + if (method_exists($translator, 'getFallbackLocales')) { + return $translator->getFallbackLocales()[0] ?? null; + } + + return null; + } + + /** + * Set the current locale to the given, execute the passed function, reset the locale to previous one, + * then return the result of the closure (or null if the closure was void). + * + * @param string $locale locale ex. en + * @param callable $func + * + * @return mixed + */ + public static function executeWithLocale($locale, $func) + { + $currentLocale = static::getLocale(); + $result = $func(static::setLocale($locale) ? static::getLocale() : false, static::translator()); + static::setLocale($currentLocale); + + return $result; + } + + /** + * Returns true if the given locale is internally supported and has short-units support. + * Support is considered enabled if either year, day or hour has a short variant translated. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasShortUnits($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + return ($newLocale && (($y = static::translateWith($translator, 'y')) !== 'y' && $y !== static::translateWith($translator, 'year'))) || ( + ($y = static::translateWith($translator, 'd')) !== 'd' && + $y !== static::translateWith($translator, 'day') + ) || ( + ($y = static::translateWith($translator, 'h')) !== 'h' && + $y !== static::translateWith($translator, 'hour') + ); + }); + } + + /** + * Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffSyntax($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + if (!$newLocale) { + return false; + } + + foreach (['ago', 'from_now', 'before', 'after'] as $key) { + if ($translator instanceof TranslatorBagInterface && + self::getFromCatalogue($translator, $translator->getCatalogue($newLocale), $key) instanceof Closure + ) { + continue; + } + + if ($translator->trans($key) === $key) { + return false; + } + } + + return true; + }); + } + + /** + * Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow). + * Support is considered enabled if the 3 words are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffOneDayWords($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + return $newLocale && + $translator->trans('diff_now') !== 'diff_now' && + $translator->trans('diff_yesterday') !== 'diff_yesterday' && + $translator->trans('diff_tomorrow') !== 'diff_tomorrow'; + }); + } + + /** + * Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow). + * Support is considered enabled if the 2 words are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasDiffTwoDayWords($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + return $newLocale && + $translator->trans('diff_before_yesterday') !== 'diff_before_yesterday' && + $translator->trans('diff_after_tomorrow') !== 'diff_after_tomorrow'; + }); + } + + /** + * Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X). + * Support is considered enabled if the 4 sentences are translated in the given locale. + * + * @param string $locale locale ex. en + * + * @return bool + */ + public static function localeHasPeriodSyntax($locale) + { + return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) { + return $newLocale && + $translator->trans('period_recurrences') !== 'period_recurrences' && + $translator->trans('period_interval') !== 'period_interval' && + $translator->trans('period_start_date') !== 'period_start_date' && + $translator->trans('period_end_date') !== 'period_end_date'; + }); + } + + /** + * Returns the list of internally available locales and already loaded custom locales. + * (It will ignore custom translator dynamic loading.) + * + * @return array + */ + public static function getAvailableLocales() + { + $translator = static::getLocaleAwareTranslator(); + + return $translator instanceof Translator + ? $translator->getAvailableLocales() + : [$translator->getLocale()]; + } + + /** + * Returns list of Language object for each available locale. This object allow you to get the ISO name, native + * name, region and variant of the locale. + * + * @return Language[] + */ + public static function getAvailableLocalesInfo() + { + $languages = []; + foreach (static::getAvailableLocales() as $id) { + $languages[$id] = new Language($id); + } + + return $languages; + } + + /** + * Initialize the default translator instance if necessary. + * + * @return \Symfony\Component\Translation\TranslatorInterface + */ + protected static function translator() + { + if (static::$translator === null) { + static::$translator = Translator::get(); + } + + return static::$translator; + } + + /** + * Get the locale of a given translator. + * + * If null or omitted, current local translator is used. + * If no local translator is in use, current global translator is used. + * + * @param null $translator + * + * @return string|null + */ + protected function getTranslatorLocale($translator = null): ?string + { + if (\func_num_args() === 0) { + $translator = $this->getLocalTranslator(); + } + + $translator = static::getLocaleAwareTranslator($translator); + + return $translator ? $translator->getLocale() : null; + } + + /** + * Throw an error if passed object is not LocaleAwareInterface. + * + * @param LocaleAwareInterface|null $translator + * + * @return LocaleAwareInterface|null + */ + protected static function getLocaleAwareTranslator($translator = null) + { + if (\func_num_args() === 0) { + $translator = static::translator(); + } + + if ($translator && !($translator instanceof LocaleAwareInterface || method_exists($translator, 'getLocale'))) { + throw new NotLocaleAwareException($translator); // @codeCoverageIgnore + } + + return $translator; + } + + /** + * @param mixed $translator + * @param \Symfony\Component\Translation\MessageCatalogueInterface $catalogue + * + * @return mixed + */ + private static function getFromCatalogue($translator, $catalogue, string $id, string $domain = 'messages') + { + return $translator instanceof TranslatorStrongTypeInterface + ? $translator->getFromCatalogue($catalogue, $id, $domain) // @codeCoverageIgnore + : $catalogue->get($id, $domain); + } + + /** + * Return the word cleaned from its translation codes. + * + * @param string $word + * + * @return string + */ + private static function cleanWordFromTranslationString($word) + { + $word = str_replace([':count', '%count', ':time'], '', $word); + $word = strtr($word, ['’' => "'"]); + $word = preg_replace('/({\d+(,(\d+|Inf))?}|[\[\]]\d+(,(\d+|Inf))?[\[\]])/', '', $word); + + return trim($word); + } + + /** + * Translate a list of words. + * + * @param string[] $keys keys to translate. + * @param string[] $messages messages bag handling translations. + * @param string $key 'to' (to get the translation) or 'from' (to get the detection RegExp pattern). + * + * @return string[] + */ + private static function translateWordsByKeys($keys, $messages, $key): array + { + return array_map(function ($wordKey) use ($messages, $key) { + $message = $key === 'from' && isset($messages[$wordKey.'_regexp']) + ? $messages[$wordKey.'_regexp'] + : ($messages[$wordKey] ?? null); + + if (!$message) { + return '>>DO NOT REPLACE<<'; + } + + $parts = explode('|', $message); + + return $key === 'to' + ? self::cleanWordFromTranslationString(end($parts)) + : '(?:'.implode('|', array_map([static::class, 'cleanWordFromTranslationString'], $parts)).')'; + }, $keys); + } + + /** + * Get an array of translations based on the current date. + * + * @param callable $translation + * @param int $length + * @param string $timeString + * + * @return string[] + */ + private static function getTranslationArray($translation, $length, $timeString): array + { + $filler = '>>DO NOT REPLACE<<'; + + if (\is_array($translation)) { + return array_pad($translation, $length, $filler); + } + + $list = []; + $date = static::now(); + + for ($i = 0; $i < $length; $i++) { + $list[] = $translation($date, $timeString, $i) ?? $filler; + } + + return $list; + } + + private static function replaceOrdinalWords(string $timeString, array $ordinalWords): string + { + return preg_replace_callback('/(? + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +/** + * Trait Macros. + * + * Allows users to register macros within the Carbon class. + */ +trait Macro +{ + use Mixin; + + /** + * The registered macros. + * + * @var array + */ + protected static $globalMacros = []; + + /** + * The registered generic macros. + * + * @var array + */ + protected static $globalGenericMacros = []; + + /** + * Register a custom macro. + * + * @example + * ``` + * $userSettings = [ + * 'locale' => 'pt', + * 'timezone' => 'America/Sao_Paulo', + * ]; + * Carbon::macro('userFormat', function () use ($userSettings) { + * return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar(); + * }); + * echo Carbon::yesterday()->hours(11)->userFormat(); + * ``` + * + * @param string $name + * @param object|callable $macro + * + * @return void + */ + public static function macro($name, $macro) + { + static::$globalMacros[$name] = $macro; + } + + /** + * Remove all macros and generic macros. + */ + public static function resetMacros() + { + static::$globalMacros = []; + static::$globalGenericMacros = []; + } + + /** + * Register a custom macro. + * + * @param object|callable $macro + * @param int $priority marco with higher priority is tried first + * + * @return void + */ + public static function genericMacro($macro, $priority = 0) + { + if (!isset(static::$globalGenericMacros[$priority])) { + static::$globalGenericMacros[$priority] = []; + krsort(static::$globalGenericMacros, SORT_NUMERIC); + } + + static::$globalGenericMacros[$priority][] = $macro; + } + + /** + * Checks if macro is registered globally. + * + * @param string $name + * + * @return bool + */ + public static function hasMacro($name) + { + return isset(static::$globalMacros[$name]); + } + + /** + * Get the raw callable macro registered globally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public static function getMacro($name) + { + return static::$globalMacros[$name] ?? null; + } + + /** + * Checks if macro is registered globally or locally. + * + * @param string $name + * + * @return bool + */ + public function hasLocalMacro($name) + { + return ($this->localMacros && isset($this->localMacros[$name])) || static::hasMacro($name); + } + + /** + * Get the raw callable macro registered globally or locally for a given name. + * + * @param string $name + * + * @return callable|null + */ + public function getLocalMacro($name) + { + return ($this->localMacros ?? [])[$name] ?? static::getMacro($name); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/MagicParameter.php b/vendor/nesbot/carbon/src/Carbon/Traits/MagicParameter.php new file mode 100644 index 000000000..310a44d0c --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/MagicParameter.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +/** + * Trait MagicParameter. + * + * Allows to retrieve parameter in magic calls by index or name. + */ +trait MagicParameter +{ + private function getMagicParameter(array $parameters, int $index, string $key, $default) + { + if (\array_key_exists($index, $parameters)) { + return $parameters[$index]; + } + + if (\array_key_exists($key, $parameters)) { + return $parameters[$key]; + } + + return $default; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php b/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php new file mode 100644 index 000000000..582245456 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php @@ -0,0 +1,226 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use Carbon\CarbonInterval; +use Carbon\CarbonPeriod; +use Closure; +use Generator; +use ReflectionClass; +use ReflectionException; +use ReflectionMethod; +use Throwable; + +/** + * Trait Mixin. + * + * Allows mixing in entire classes with multiple macros. + */ +trait Mixin +{ + /** + * Stack of macro instance contexts. + * + * @var array + */ + protected static $macroContextStack = []; + + /** + * Mix another object into the class. + * + * @example + * ``` + * Carbon::mixin(new class { + * public function addMoon() { + * return function () { + * return $this->addDays(30); + * }; + * } + * public function subMoon() { + * return function () { + * return $this->subDays(30); + * }; + * } + * }); + * $fullMoon = Carbon::create('2018-12-22'); + * $nextFullMoon = $fullMoon->addMoon(); + * $blackMoon = Carbon::create('2019-01-06'); + * $previousBlackMoon = $blackMoon->subMoon(); + * echo "$nextFullMoon\n"; + * echo "$previousBlackMoon\n"; + * ``` + * + * @param object|string $mixin + * + * @throws ReflectionException + * + * @return void + */ + public static function mixin($mixin) + { + \is_string($mixin) && trait_exists($mixin) + ? self::loadMixinTrait($mixin) + : self::loadMixinClass($mixin); + } + + /** + * @param object|string $mixin + * + * @throws ReflectionException + */ + private static function loadMixinClass($mixin) + { + $methods = (new ReflectionClass($mixin))->getMethods( + ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED + ); + + foreach ($methods as $method) { + if ($method->isConstructor() || $method->isDestructor()) { + continue; + } + + $method->setAccessible(true); + + static::macro($method->name, $method->invoke($mixin)); + } + } + + /** + * @param string $trait + */ + private static function loadMixinTrait($trait) + { + $context = eval(self::getAnonymousClassCodeForTrait($trait)); + $className = \get_class($context); + $baseClass = static::class; + + foreach (self::getMixableMethods($context) as $name) { + $closureBase = Closure::fromCallable([$context, $name]); + + static::macro($name, function (...$parameters) use ($closureBase, $className, $baseClass) { + $downContext = isset($this) ? ($this) : new $baseClass(); + $context = isset($this) ? $this->cast($className) : new $className(); + + try { + // @ is required to handle error if not converted into exceptions + $closure = @$closureBase->bindTo($context); + } catch (Throwable $throwable) { // @codeCoverageIgnore + $closure = $closureBase; // @codeCoverageIgnore + } + + // in case of errors not converted into exceptions + $closure = $closure ?: $closureBase; + + $result = $closure(...$parameters); + + if (!($result instanceof $className)) { + return $result; + } + + if ($downContext instanceof CarbonInterface && $result instanceof CarbonInterface) { + if ($context !== $result) { + $downContext = $downContext->copy(); + } + + return $downContext + ->setTimezone($result->getTimezone()) + ->modify($result->format('Y-m-d H:i:s.u')) + ->settings($result->getSettings()); + } + + if ($downContext instanceof CarbonInterval && $result instanceof CarbonInterval) { + if ($context !== $result) { + $downContext = $downContext->copy(); + } + + $downContext->copyProperties($result); + self::copyStep($downContext, $result); + self::copyNegativeUnits($downContext, $result); + + return $downContext->settings($result->getSettings()); + } + + if ($downContext instanceof CarbonPeriod && $result instanceof CarbonPeriod) { + if ($context !== $result) { + $downContext = $downContext->copy(); + } + + return $downContext + ->setDates($result->getStartDate(), $result->getEndDate()) + ->setRecurrences($result->getRecurrences()) + ->setOptions($result->getOptions()) + ->settings($result->getSettings()); + } + + return $result; + }); + } + } + + private static function getAnonymousClassCodeForTrait(string $trait) + { + return 'return new class() extends '.static::class.' {use '.$trait.';};'; + } + + private static function getMixableMethods(self $context): Generator + { + foreach (get_class_methods($context) as $name) { + if (method_exists(static::class, $name)) { + continue; + } + + yield $name; + } + } + + /** + * Stack a Carbon context from inside calls of self::this() and execute a given action. + * + * @param static|null $context + * @param callable $callable + * + * @throws Throwable + * + * @return mixed + */ + protected static function bindMacroContext($context, callable $callable) + { + static::$macroContextStack[] = $context; + + try { + return $callable(); + } finally { + array_pop(static::$macroContextStack); + } + } + + /** + * Return the current context from inside a macro callee or a null if static. + * + * @return static|null + */ + protected static function context() + { + return end(static::$macroContextStack) ?: null; + } + + /** + * Return the current context from inside a macro callee or a new one if static. + * + * @return static + */ + protected static function this() + { + return end(static::$macroContextStack) ?: new static(); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php b/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php new file mode 100644 index 000000000..39343d8fa --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php @@ -0,0 +1,472 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use ReturnTypeWillChange; + +/** + * Trait Modifiers. + * + * Returns dates relative to current date using modifier short-hand. + */ +trait Modifiers +{ + /** + * Midday/noon hour. + * + * @var int + */ + protected static $midDayAt = 12; + + /** + * get midday/noon hour + * + * @return int + */ + public static function getMidDayAt() + { + return static::$midDayAt; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather consider mid-day is always 12pm, then if you need to test if it's an other + * hour, test it explicitly: + * $date->format('G') == 13 + * or to set explicitly to a given hour: + * $date->setTime(13, 0, 0, 0) + * + * Set midday/noon hour + * + * @param int $hour midday hour + * + * @return void + */ + public static function setMidDayAt($hour) + { + static::$midDayAt = $hour; + } + + /** + * Modify to midday, default to self::$midDayAt + * + * @return static + */ + public function midDay() + { + return $this->setTime(static::$midDayAt, 0, 0, 0); + } + + /** + * Modify to the next occurrence of a given modifier such as a day of + * the week. If no modifier is provided, modify to the next occurrence + * of the current day of the week. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param string|int|null $modifier + * + * @return static|false + */ + public function next($modifier = null) + { + if ($modifier === null) { + $modifier = $this->dayOfWeek; + } + + return $this->change( + 'next '.(\is_string($modifier) ? $modifier : static::$days[$modifier]) + ); + } + + /** + * Go forward or backward to the next week- or weekend-day. + * + * @param bool $weekday + * @param bool $forward + * + * @return static + */ + private function nextOrPreviousDay($weekday = true, $forward = true) + { + /** @var CarbonInterface $date */ + $date = $this; + $step = $forward ? 1 : -1; + + do { + $date = $date->addDays($step); + } while ($weekday ? $date->isWeekend() : $date->isWeekday()); + + return $date; + } + + /** + * Go forward to the next weekday. + * + * @return static + */ + public function nextWeekday() + { + return $this->nextOrPreviousDay(); + } + + /** + * Go backward to the previous weekday. + * + * @return static + */ + public function previousWeekday() + { + return $this->nextOrPreviousDay(true, false); + } + + /** + * Go forward to the next weekend day. + * + * @return static + */ + public function nextWeekendDay() + { + return $this->nextOrPreviousDay(false); + } + + /** + * Go backward to the previous weekend day. + * + * @return static + */ + public function previousWeekendDay() + { + return $this->nextOrPreviousDay(false, false); + } + + /** + * Modify to the previous occurrence of a given modifier such as a day of + * the week. If no dayOfWeek is provided, modify to the previous occurrence + * of the current day of the week. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param string|int|null $modifier + * + * @return static|false + */ + public function previous($modifier = null) + { + if ($modifier === null) { + $modifier = $this->dayOfWeek; + } + + return $this->change( + 'last '.(\is_string($modifier) ? $modifier : static::$days[$modifier]) + ); + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * first day of the current month. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek + * + * @return static + */ + public function firstOfMonth($dayOfWeek = null) + { + $date = $this->startOfDay(); + + if ($dayOfWeek === null) { + return $date->day(1); + } + + return $date->modify('first '.static::$days[$dayOfWeek].' of '.$date->rawFormat('F').' '.$date->year); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current month. If no dayOfWeek is provided, modify to the + * last day of the current month. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek + * + * @return static + */ + public function lastOfMonth($dayOfWeek = null) + { + $date = $this->startOfDay(); + + if ($dayOfWeek === null) { + return $date->day($date->daysInMonth); + } + + return $date->modify('last '.static::$days[$dayOfWeek].' of '.$date->rawFormat('F').' '.$date->year); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current month. If the calculated occurrence is outside the scope + * of the current month, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfMonth($nth, $dayOfWeek) + { + $date = $this->avoidMutation()->firstOfMonth(); + $check = $date->rawFormat('Y-m'); + $date = $date->modify('+'.$nth.' '.static::$days[$dayOfWeek]); + + return $date->rawFormat('Y-m') === $check ? $this->modify((string) $date) : false; + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * first day of the current quarter. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function firstOfQuarter($dayOfWeek = null) + { + return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER - 2, 1)->firstOfMonth($dayOfWeek); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current quarter. If no dayOfWeek is provided, modify to the + * last day of the current quarter. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function lastOfQuarter($dayOfWeek = null) + { + return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER, 1)->lastOfMonth($dayOfWeek); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current quarter. If the calculated occurrence is outside the scope + * of the current quarter, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfQuarter($nth, $dayOfWeek) + { + $date = $this->avoidMutation()->day(1)->month($this->quarter * static::MONTHS_PER_QUARTER); + $lastMonth = $date->month; + $year = $date->year; + $date = $date->firstOfQuarter()->modify('+'.$nth.' '.static::$days[$dayOfWeek]); + + return ($lastMonth < $date->month || $year !== $date->year) ? false : $this->modify((string) $date); + } + + /** + * Modify to the first occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * first day of the current year. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function firstOfYear($dayOfWeek = null) + { + return $this->month(1)->firstOfMonth($dayOfWeek); + } + + /** + * Modify to the last occurrence of a given day of the week + * in the current year. If no dayOfWeek is provided, modify to the + * last day of the current year. Use the supplied constants + * to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int|null $dayOfWeek day of the week default null + * + * @return static + */ + public function lastOfYear($dayOfWeek = null) + { + return $this->month(static::MONTHS_PER_YEAR)->lastOfMonth($dayOfWeek); + } + + /** + * Modify to the given occurrence of a given day of the week + * in the current year. If the calculated occurrence is outside the scope + * of the current year, then return false and no modifications are made. + * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY. + * + * @param int $nth + * @param int $dayOfWeek + * + * @return mixed + */ + public function nthOfYear($nth, $dayOfWeek) + { + $date = $this->avoidMutation()->firstOfYear()->modify('+'.$nth.' '.static::$days[$dayOfWeek]); + + return $this->year === $date->year ? $this->modify((string) $date) : false; + } + + /** + * Modify the current instance to the average of a given instance (default now) and the current instance + * (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|null $date + * + * @return static + */ + public function average($date = null) + { + return $this->addRealMicroseconds((int) ($this->diffInRealMicroseconds($this->resolveCarbon($date), false) / 2)); + } + + /** + * Get the closest date from the instance (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return static + */ + public function closest($date1, $date2) + { + return $this->diffInRealMicroseconds($date1) < $this->diffInRealMicroseconds($date2) ? $date1 : $date2; + } + + /** + * Get the farthest date from the instance (second-precision). + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1 + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2 + * + * @return static + */ + public function farthest($date1, $date2) + { + return $this->diffInRealMicroseconds($date1) > $this->diffInRealMicroseconds($date2) ? $date1 : $date2; + } + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return static + */ + public function min($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->lt($date) ? $this : $date; + } + + /** + * Get the minimum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see min() + * + * @return static + */ + public function minimum($date = null) + { + return $this->min($date); + } + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @return static + */ + public function max($date = null) + { + $date = $this->resolveCarbon($date); + + return $this->gt($date) ? $this : $date; + } + + /** + * Get the maximum instance between a given instance (default now) and the current instance. + * + * @param \Carbon\Carbon|\DateTimeInterface|mixed $date + * + * @see max() + * + * @return static + */ + public function maximum($date = null) + { + return $this->max($date); + } + + /** + * Calls \DateTime::modify if mutable or \DateTimeImmutable::modify else. + * + * @see https://php.net/manual/en/datetime.modify.php + * + * @return static|false + */ + #[ReturnTypeWillChange] + public function modify($modify) + { + return parent::modify((string) $modify); + } + + /** + * Similar to native modify() method of DateTime but can handle more grammars. + * + * @example + * ``` + * echo Carbon::now()->change('next 2pm'); + * ``` + * + * @link https://php.net/manual/en/datetime.modify.php + * + * @param string $modifier + * + * @return static|false + */ + public function change($modifier) + { + return $this->modify(preg_replace_callback('/^(next|previous|last)\s+(\d{1,2}(h|am|pm|:\d{1,2}(:\d{1,2})?))$/i', function ($match) { + $match[2] = str_replace('h', ':00', $match[2]); + $test = $this->avoidMutation()->modify($match[2]); + $method = $match[1] === 'next' ? 'lt' : 'gt'; + $match[1] = $test->$method($this) ? $match[1].' day' : 'today'; + + return $match[1].' '.$match[2]; + }, strtr(trim($modifier), [ + ' at ' => ' ', + 'just now' => 'now', + 'after tomorrow' => 'tomorrow +1 day', + 'before yesterday' => 'yesterday -1 day', + ]))); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php b/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php new file mode 100644 index 000000000..561c867d0 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Carbon; +use Carbon\CarbonImmutable; + +/** + * Trait Mutability. + * + * Utils to know if the current object is mutable or immutable and convert it. + */ +trait Mutability +{ + use Cast; + + /** + * Returns true if the current class/instance is mutable. + * + * @return bool + */ + public static function isMutable() + { + return false; + } + + /** + * Returns true if the current class/instance is immutable. + * + * @return bool + */ + public static function isImmutable() + { + return !static::isMutable(); + } + + /** + * Return a mutable copy of the instance. + * + * @return Carbon + */ + public function toMutable() + { + /** @var Carbon $date */ + $date = $this->cast(Carbon::class); + + return $date; + } + + /** + * Return a immutable copy of the instance. + * + * @return CarbonImmutable + */ + public function toImmutable() + { + /** @var CarbonImmutable $date */ + $date = $this->cast(CarbonImmutable::class); + + return $date; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php b/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php new file mode 100644 index 000000000..c77a10244 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +trait ObjectInitialisation +{ + /** + * True when parent::__construct has been called. + * + * @var string + */ + protected $constructedObjectId; +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Options.php b/vendor/nesbot/carbon/src/Carbon/Traits/Options.php new file mode 100644 index 000000000..6f021942a --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Options.php @@ -0,0 +1,471 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use DateTimeInterface; +use Throwable; + +/** + * Trait Options. + * + * Embed base methods to change settings of Carbon classes. + * + * Depends on the following methods: + * + * @method static shiftTimezone($timezone) Set the timezone + */ +trait Options +{ + use Localization; + + /** + * Customizable PHP_INT_SIZE override. + * + * @var int + */ + public static $PHPIntSize = PHP_INT_SIZE; + + /** + * First day of week. + * + * @var int|string + */ + protected static $weekStartsAt = CarbonInterface::MONDAY; + + /** + * Last day of week. + * + * @var int|string + */ + protected static $weekEndsAt = CarbonInterface::SUNDAY; + + /** + * Days of weekend. + * + * @var array + */ + protected static $weekendDays = [ + CarbonInterface::SATURDAY, + CarbonInterface::SUNDAY, + ]; + + /** + * Format regex patterns. + * + * @var array + */ + protected static $regexFormats = [ + 'd' => '(3[01]|[12][0-9]|0[1-9])', + 'D' => '(Sun|Mon|Tue|Wed|Thu|Fri|Sat)', + 'j' => '([123][0-9]|[1-9])', + 'l' => '([a-zA-Z]{2,})', + 'N' => '([1-7])', + 'S' => '(st|nd|rd|th)', + 'w' => '([0-6])', + 'z' => '(36[0-5]|3[0-5][0-9]|[12][0-9]{2}|[1-9]?[0-9])', + 'W' => '(5[012]|[1-4][0-9]|0?[1-9])', + 'F' => '([a-zA-Z]{2,})', + 'm' => '(1[012]|0[1-9])', + 'M' => '([a-zA-Z]{3})', + 'n' => '(1[012]|[1-9])', + 't' => '(2[89]|3[01])', + 'L' => '(0|1)', + 'o' => '([1-9][0-9]{0,4})', + 'Y' => '([1-9]?[0-9]{4})', + 'y' => '([0-9]{2})', + 'a' => '(am|pm)', + 'A' => '(AM|PM)', + 'B' => '([0-9]{3})', + 'g' => '(1[012]|[1-9])', + 'G' => '(2[0-3]|1?[0-9])', + 'h' => '(1[012]|0[1-9])', + 'H' => '(2[0-3]|[01][0-9])', + 'i' => '([0-5][0-9])', + 's' => '([0-5][0-9])', + 'u' => '([0-9]{1,6})', + 'v' => '([0-9]{1,3})', + 'e' => '([a-zA-Z]{1,5})|([a-zA-Z]*\\/[a-zA-Z]*)', + 'I' => '(0|1)', + 'O' => '([+-](1[012]|0[0-9])[0134][05])', + 'P' => '([+-](1[012]|0[0-9]):[0134][05])', + 'p' => '(Z|[+-](1[012]|0[0-9]):[0134][05])', + 'T' => '([a-zA-Z]{1,5})', + 'Z' => '(-?[1-5]?[0-9]{1,4})', + 'U' => '([0-9]*)', + + // The formats below are combinations of the above formats. + 'c' => '(([1-9]?[0-9]{4})-(1[012]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])[+-](1[012]|0[0-9]):([0134][05]))', // Y-m-dTH:i:sP + 'r' => '(([a-zA-Z]{3}), ([123][0-9]|0[1-9]) ([a-zA-Z]{3}) ([1-9]?[0-9]{4}) (2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9]) [+-](1[012]|0[0-9])([0134][05]))', // D, d M Y H:i:s O + ]; + + /** + * Format modifiers (such as available in createFromFormat) regex patterns. + * + * @var array + */ + protected static $regexFormatModifiers = [ + '*' => '.+', + ' ' => '[ ]', + '#' => '[;:\\/.,()-]', + '?' => '([^a]|[a])', + '!' => '', + '|' => '', + '+' => '', + ]; + + /** + * Indicates if months should be calculated with overflow. + * Global setting. + * + * @var bool + */ + protected static $monthsOverflow = true; + + /** + * Indicates if years should be calculated with overflow. + * Global setting. + * + * @var bool + */ + protected static $yearsOverflow = true; + + /** + * Indicates if the strict mode is in use. + * Global setting. + * + * @var bool + */ + protected static $strictModeEnabled = true; + + /** + * Function to call instead of format. + * + * @var string|callable|null + */ + protected static $formatFunction; + + /** + * Function to call instead of createFromFormat. + * + * @var string|callable|null + */ + protected static $createFromFormatFunction; + + /** + * Function to call instead of parse. + * + * @var string|callable|null + */ + protected static $parseFunction; + + /** + * Indicates if months should be calculated with overflow. + * Specific setting. + * + * @var bool|null + */ + protected $localMonthsOverflow; + + /** + * Indicates if years should be calculated with overflow. + * Specific setting. + * + * @var bool|null + */ + protected $localYearsOverflow; + + /** + * Indicates if the strict mode is in use. + * Specific setting. + * + * @var bool|null + */ + protected $localStrictModeEnabled; + + /** + * Options for diffForHumans and forHumans methods. + * + * @var bool|null + */ + protected $localHumanDiffOptions; + + /** + * Format to use on string cast. + * + * @var string|null + */ + protected $localToStringFormat; + + /** + * Format to use on JSON serialization. + * + * @var string|null + */ + protected $localSerializer; + + /** + * Instance-specific macros. + * + * @var array|null + */ + protected $localMacros; + + /** + * Instance-specific generic macros. + * + * @var array|null + */ + protected $localGenericMacros; + + /** + * Function to call instead of format. + * + * @var string|callable|null + */ + protected $localFormatFunction; + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * @see settings + * + * Enable the strict mode (or disable with passing false). + * + * @param bool $strictModeEnabled + */ + public static function useStrictMode($strictModeEnabled = true) + { + static::$strictModeEnabled = $strictModeEnabled; + } + + /** + * Returns true if the strict mode is globally in use, false else. + * (It can be overridden in specific instances.) + * + * @return bool + */ + public static function isStrictModeEnabled() + { + return static::$strictModeEnabled; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Indicates if months should be calculated with overflow. + * + * @param bool $monthsOverflow + * + * @return void + */ + public static function useMonthsOverflow($monthsOverflow = true) + { + static::$monthsOverflow = $monthsOverflow; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Reset the month overflow behavior. + * + * @return void + */ + public static function resetMonthsOverflow() + { + static::$monthsOverflow = true; + } + + /** + * Get the month overflow global behavior (can be overridden in specific instances). + * + * @return bool + */ + public static function shouldOverflowMonths() + { + return static::$monthsOverflow; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Indicates if years should be calculated with overflow. + * + * @param bool $yearsOverflow + * + * @return void + */ + public static function useYearsOverflow($yearsOverflow = true) + { + static::$yearsOverflow = $yearsOverflow; + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather use the ->settings() method. + * Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants + * are available for quarters, years, decade, centuries, millennia (singular and plural forms). + * @see settings + * + * Reset the month overflow behavior. + * + * @return void + */ + public static function resetYearsOverflow() + { + static::$yearsOverflow = true; + } + + /** + * Get the month overflow global behavior (can be overridden in specific instances). + * + * @return bool + */ + public static function shouldOverflowYears() + { + return static::$yearsOverflow; + } + + /** + * Set specific options. + * - strictMode: true|false|null + * - monthOverflow: true|false|null + * - yearOverflow: true|false|null + * - humanDiffOptions: int|null + * - toStringFormat: string|Closure|null + * - toJsonFormat: string|Closure|null + * - locale: string|null + * - timezone: \DateTimeZone|string|int|null + * - macros: array|null + * - genericMacros: array|null + * + * @param array $settings + * + * @return $this|static + */ + public function settings(array $settings) + { + $this->localStrictModeEnabled = $settings['strictMode'] ?? null; + $this->localMonthsOverflow = $settings['monthOverflow'] ?? null; + $this->localYearsOverflow = $settings['yearOverflow'] ?? null; + $this->localHumanDiffOptions = $settings['humanDiffOptions'] ?? null; + $this->localToStringFormat = $settings['toStringFormat'] ?? null; + $this->localSerializer = $settings['toJsonFormat'] ?? null; + $this->localMacros = $settings['macros'] ?? null; + $this->localGenericMacros = $settings['genericMacros'] ?? null; + $this->localFormatFunction = $settings['formatFunction'] ?? null; + + if (isset($settings['locale'])) { + $locales = $settings['locale']; + + if (!\is_array($locales)) { + $locales = [$locales]; + } + + $this->locale(...$locales); + } + + if (isset($settings['innerTimezone'])) { + return $this->setTimezone($settings['innerTimezone']); + } + + if (isset($settings['timezone'])) { + return $this->shiftTimezone($settings['timezone']); + } + + return $this; + } + + /** + * Returns current local settings. + * + * @return array + */ + public function getSettings() + { + $settings = []; + $map = [ + 'localStrictModeEnabled' => 'strictMode', + 'localMonthsOverflow' => 'monthOverflow', + 'localYearsOverflow' => 'yearOverflow', + 'localHumanDiffOptions' => 'humanDiffOptions', + 'localToStringFormat' => 'toStringFormat', + 'localSerializer' => 'toJsonFormat', + 'localMacros' => 'macros', + 'localGenericMacros' => 'genericMacros', + 'locale' => 'locale', + 'tzName' => 'timezone', + 'localFormatFunction' => 'formatFunction', + ]; + + foreach ($map as $property => $key) { + $value = $this->$property ?? null; + + if ($value !== null) { + $settings[$key] = $value; + } + } + + return $settings; + } + + /** + * Show truthy properties on var_dump(). + * + * @return array + */ + public function __debugInfo() + { + $infos = array_filter(get_object_vars($this), function ($var) { + return $var; + }); + + foreach (['dumpProperties', 'constructedObjectId', 'constructed'] as $property) { + if (isset($infos[$property])) { + unset($infos[$property]); + } + } + + $this->addExtraDebugInfos($infos); + + return $infos; + } + + protected function addExtraDebugInfos(&$infos): void + { + if ($this instanceof DateTimeInterface) { + try { + if (!isset($infos['date'])) { + $infos['date'] = $this->format(CarbonInterface::MOCK_DATETIME_FORMAT); + } + + if (!isset($infos['timezone'])) { + $infos['timezone'] = $this->tzName; + } + } catch (Throwable $exception) { + // noop + } + } + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php b/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php new file mode 100644 index 000000000..f98c2a32b --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php @@ -0,0 +1,258 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use Carbon\Exceptions\UnknownUnitException; + +/** + * Trait Rounding. + * + * Round, ceil, floor units. + * + * Depends on the following methods: + * + * @method static copy() + * @method static startOfWeek(int $weekStartsAt = null) + */ +trait Rounding +{ + use IntervalRounding; + + /** + * Round the current instance at the given unit with given precision if specified and the given function. + * + * @param string $unit + * @param float|int $precision + * @param string $function + * + * @return CarbonInterface + */ + public function roundUnit($unit, $precision = 1, $function = 'round') + { + $metaUnits = [ + // @call roundUnit + 'millennium' => [static::YEARS_PER_MILLENNIUM, 'year'], + // @call roundUnit + 'century' => [static::YEARS_PER_CENTURY, 'year'], + // @call roundUnit + 'decade' => [static::YEARS_PER_DECADE, 'year'], + // @call roundUnit + 'quarter' => [static::MONTHS_PER_QUARTER, 'month'], + // @call roundUnit + 'millisecond' => [1000, 'microsecond'], + ]; + $normalizedUnit = static::singularUnit($unit); + $ranges = array_merge(static::getRangesByUnit($this->daysInMonth), [ + // @call roundUnit + 'microsecond' => [0, 999999], + ]); + $factor = 1; + $initialMonth = $this->month; + + if ($normalizedUnit === 'week') { + $normalizedUnit = 'day'; + $precision *= static::DAYS_PER_WEEK; + } + + if (isset($metaUnits[$normalizedUnit])) { + [$factor, $normalizedUnit] = $metaUnits[$normalizedUnit]; + } + + $precision *= $factor; + + if (!isset($ranges[$normalizedUnit])) { + throw new UnknownUnitException($unit); + } + + $found = false; + $fraction = 0; + $arguments = null; + $initialValue = null; + $factor = $this->year < 0 ? -1 : 1; + $changes = []; + $minimumInc = null; + + foreach ($ranges as $unit => [$minimum, $maximum]) { + if ($normalizedUnit === $unit) { + $arguments = [$this->$unit, $minimum]; + $initialValue = $this->$unit; + $fraction = $precision - floor($precision); + $found = true; + + continue; + } + + if ($found) { + $delta = $maximum + 1 - $minimum; + $factor /= $delta; + $fraction *= $delta; + $inc = ($this->$unit - $minimum) * $factor; + + if ($inc !== 0.0) { + $minimumInc = $minimumInc ?? ($arguments[0] / pow(2, 52)); + + // If value is still the same when adding a non-zero increment/decrement, + // it means precision got lost in the addition + if (abs($inc) < $minimumInc) { + $inc = $minimumInc * ($inc < 0 ? -1 : 1); + } + + // If greater than $precision, assume precision loss caused an overflow + if ($function !== 'floor' || abs($arguments[0] + $inc - $initialValue) >= $precision) { + $arguments[0] += $inc; + } + } + + $changes[$unit] = round( + $minimum + ($fraction ? $fraction * $function(($this->$unit - $minimum) / $fraction) : 0) + ); + + // Cannot use modulo as it lose double precision + while ($changes[$unit] >= $delta) { + $changes[$unit] -= $delta; + } + + $fraction -= floor($fraction); + } + } + + [$value, $minimum] = $arguments; + $normalizedValue = floor($function(($value - $minimum) / $precision) * $precision + $minimum); + + /** @var CarbonInterface $result */ + $result = $this->$normalizedUnit($normalizedValue); + + foreach ($changes as $unit => $value) { + $result = $result->$unit($value); + } + + return $normalizedUnit === 'month' && $precision <= 1 && abs($result->month - $initialMonth) === 2 + // Re-run the change in case an overflow occurred + ? $result->$normalizedUnit($normalizedValue) + : $result; + } + + /** + * Truncate the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int $precision + * + * @return CarbonInterface + */ + public function floorUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'floor'); + } + + /** + * Ceil the current instance at the given unit with given precision if specified. + * + * @param string $unit + * @param float|int $precision + * + * @return CarbonInterface + */ + public function ceilUnit($unit, $precision = 1) + { + return $this->roundUnit($unit, $precision, 'ceil'); + } + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * @param string $function + * + * @return CarbonInterface + */ + public function round($precision = 1, $function = 'round') + { + return $this->roundWith($precision, $function); + } + + /** + * Round the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * + * @return CarbonInterface + */ + public function floor($precision = 1) + { + return $this->round($precision, 'floor'); + } + + /** + * Ceil the current instance second with given precision if specified. + * + * @param float|int|string|\DateInterval|null $precision + * + * @return CarbonInterface + */ + public function ceil($precision = 1) + { + return $this->round($precision, 'ceil'); + } + + /** + * Round the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function roundWeek($weekStartsAt = null) + { + return $this->closest( + $this->avoidMutation()->floorWeek($weekStartsAt), + $this->avoidMutation()->ceilWeek($weekStartsAt) + ); + } + + /** + * Truncate the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function floorWeek($weekStartsAt = null) + { + return $this->startOfWeek($weekStartsAt); + } + + /** + * Ceil the current instance week. + * + * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week + * + * @return CarbonInterface + */ + public function ceilWeek($weekStartsAt = null) + { + if ($this->isMutable()) { + $startOfWeek = $this->avoidMutation()->startOfWeek($weekStartsAt); + + return $startOfWeek != $this ? + $this->startOfWeek($weekStartsAt)->addWeek() : + $this; + } + + $startOfWeek = $this->startOfWeek($weekStartsAt); + + return $startOfWeek != $this ? + $startOfWeek->addWeek() : + $this->avoidMutation(); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php b/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php new file mode 100644 index 000000000..53fead69e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php @@ -0,0 +1,326 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\Exceptions\InvalidFormatException; +use ReturnTypeWillChange; +use Throwable; + +/** + * Trait Serialization. + * + * Serialization and JSON stuff. + * + * Depends on the following properties: + * + * @property int $year + * @property int $month + * @property int $daysInMonth + * @property int $quarter + * + * Depends on the following methods: + * + * @method string|static locale(string $locale = null, string ...$fallbackLocales) + * @method string toJSON() + */ +trait Serialization +{ + use ObjectInitialisation; + + /** + * The custom Carbon JSON serializer. + * + * @var callable|null + */ + protected static $serializer; + + /** + * List of key to use for dump/serialization. + * + * @var string[] + */ + protected $dumpProperties = ['date', 'timezone_type', 'timezone']; + + /** + * Locale to dump comes here before serialization. + * + * @var string|null + */ + protected $dumpLocale; + + /** + * Embed date properties to dump in a dedicated variables so it won't overlap native + * DateTime ones. + * + * @var array|null + */ + protected $dumpDateProperties; + + /** + * Return a serialized string of the instance. + * + * @return string + */ + public function serialize() + { + return serialize($this); + } + + /** + * Create an instance from a serialized string. + * + * @param string $value + * + * @throws InvalidFormatException + * + * @return static + */ + public static function fromSerialized($value) + { + $instance = @unserialize((string) $value); + + if (!$instance instanceof static) { + throw new InvalidFormatException("Invalid serialized value: $value"); + } + + return $instance; + } + + /** + * The __set_state handler. + * + * @param string|array $dump + * + * @return static + */ + #[ReturnTypeWillChange] + public static function __set_state($dump) + { + if (\is_string($dump)) { + return static::parse($dump); + } + + /** @var \DateTimeInterface $date */ + $date = get_parent_class(static::class) && method_exists(parent::class, '__set_state') + ? parent::__set_state((array) $dump) + : (object) $dump; + + return static::instance($date); + } + + /** + * Returns the list of properties to dump on serialize() called on. + * + * Only used by PHP < 7.4. + * + * @return array + */ + public function __sleep() + { + $properties = $this->getSleepProperties(); + + if ($this->localTranslator ?? null) { + $properties[] = 'dumpLocale'; + $this->dumpLocale = $this->locale ?? null; + } + + return $properties; + } + + /** + * Returns the values to dump on serialize() called on. + * + * Only used by PHP >= 7.4. + * + * @return array + */ + public function __serialize(): array + { + // @codeCoverageIgnoreStart + if (isset($this->timezone_type)) { + return [ + 'date' => $this->date ?? null, + 'timezone_type' => $this->timezone_type, + 'timezone' => $this->timezone ?? null, + ]; + } + // @codeCoverageIgnoreEnd + + $timezone = $this->getTimezone(); + $export = [ + 'date' => $this->format('Y-m-d H:i:s.u'), + 'timezone_type' => $timezone->getType(), + 'timezone' => $timezone->getName(), + ]; + + // @codeCoverageIgnoreStart + if (\extension_loaded('msgpack') && isset($this->constructedObjectId)) { + $export['dumpDateProperties'] = [ + 'date' => $this->format('Y-m-d H:i:s.u'), + 'timezone' => serialize($this->timezone ?? null), + ]; + } + // @codeCoverageIgnoreEnd + + if ($this->localTranslator ?? null) { + $export['dumpLocale'] = $this->locale ?? null; + } + + return $export; + } + + /** + * Set locale if specified on unserialize() called. + * + * Only used by PHP < 7.4. + * + * @return void + */ + #[ReturnTypeWillChange] + public function __wakeup() + { + if (parent::class && method_exists(parent::class, '__wakeup')) { + // @codeCoverageIgnoreStart + try { + parent::__wakeup(); + } catch (Throwable $exception) { + try { + // FatalError occurs when calling msgpack_unpack() in PHP 7.4 or later. + ['date' => $date, 'timezone' => $timezone] = $this->dumpDateProperties; + parent::__construct($date, unserialize($timezone)); + } catch (Throwable $ignoredException) { + throw $exception; + } + } + // @codeCoverageIgnoreEnd + } + + $this->constructedObjectId = spl_object_hash($this); + + if (isset($this->dumpLocale)) { + $this->locale($this->dumpLocale); + $this->dumpLocale = null; + } + + $this->cleanupDumpProperties(); + } + + /** + * Set locale if specified on unserialize() called. + * + * Only used by PHP >= 7.4. + * + * @return void + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + try { + $this->__construct($data['date'] ?? null, $data['timezone'] ?? null); + } catch (Throwable $exception) { + if (!isset($data['dumpDateProperties']['date'], $data['dumpDateProperties']['timezone'])) { + throw $exception; + } + + try { + // FatalError occurs when calling msgpack_unpack() in PHP 7.4 or later. + ['date' => $date, 'timezone' => $timezone] = $data['dumpDateProperties']; + $this->__construct($date, unserialize($timezone)); + } catch (Throwable $ignoredException) { + throw $exception; + } + } + // @codeCoverageIgnoreEnd + + if (isset($data['dumpLocale'])) { + $this->locale($data['dumpLocale']); + } + } + + /** + * Prepare the object for JSON serialization. + * + * @return array|string + */ + #[ReturnTypeWillChange] + public function jsonSerialize() + { + $serializer = $this->localSerializer ?? static::$serializer; + + if ($serializer) { + return \is_string($serializer) + ? $this->rawFormat($serializer) + : $serializer($this); + } + + return $this->toJSON(); + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather transform Carbon object before the serialization. + * + * JSON serialize all Carbon instances using the given callback. + * + * @param callable $callback + * + * @return void + */ + public static function serializeUsing($callback) + { + static::$serializer = $callback; + } + + /** + * Cleanup properties attached to the public scope of DateTime when a dump of the date is requested. + * foreach ($date as $_) {} + * serializer($date) + * var_export($date) + * get_object_vars($date) + */ + public function cleanupDumpProperties() + { + // @codeCoverageIgnoreStart + if (PHP_VERSION < 8.2) { + foreach ($this->dumpProperties as $property) { + if (isset($this->$property)) { + unset($this->$property); + } + } + } + // @codeCoverageIgnoreEnd + + return $this; + } + + private function getSleepProperties(): array + { + $properties = $this->dumpProperties; + + // @codeCoverageIgnoreStart + if (!\extension_loaded('msgpack')) { + return $properties; + } + + if (isset($this->constructedObjectId)) { + $this->dumpDateProperties = [ + 'date' => $this->format('Y-m-d H:i:s.u'), + 'timezone' => serialize($this->timezone ?? null), + ]; + + $properties[] = 'dumpDateProperties'; + } + + return $properties; + // @codeCoverageIgnoreEnd + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Test.php b/vendor/nesbot/carbon/src/Carbon/Traits/Test.php new file mode 100644 index 000000000..ffd01bd4e --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Test.php @@ -0,0 +1,229 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonInterface; +use Carbon\CarbonTimeZone; +use Closure; +use DateTimeImmutable; +use DateTimeInterface; +use InvalidArgumentException; +use Throwable; + +trait Test +{ + /////////////////////////////////////////////////////////////////// + ///////////////////////// TESTING AIDS //////////////////////////// + /////////////////////////////////////////////////////////////////// + + /** + * A test Carbon instance to be returned when now instances are created. + * + * @var Closure|static|null + */ + protected static $testNow; + + /** + * The timezone to resto to when clearing the time mock. + * + * @var string|null + */ + protected static $testDefaultTimezone; + + /** + * Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * + * Note the timezone parameter was left out of the examples above and + * has no affect as the mock value will be returned regardless of its value. + * + * Only the moment is mocked with setTestNow(), the timezone will still be the one passed + * as parameter of date_default_timezone_get() as a fallback (see setTestNowAndTimezone()). + * + * To clear the test instance call this method using the default + * parameter of null. + * + * /!\ Use this method for unit tests only. + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + */ + public static function setTestNow($testNow = null) + { + static::$testNow = $testNow instanceof self || $testNow instanceof Closure + ? $testNow + : static::make($testNow); + } + + /** + * Set a Carbon instance (real or mock) to be returned when a "now" + * instance is created. The provided instance will be returned + * specifically under the following conditions: + * - A call to the static now() method, ex. Carbon::now() + * - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null) + * - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now') + * - When a string containing the desired time is passed to Carbon::parse(). + * + * It will also align default timezone (e.g. call date_default_timezone_set()) with + * the second argument or if null, with the timezone of the given date object. + * + * To clear the test instance call this method using the default + * parameter of null. + * + * /!\ Use this method for unit tests only. + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + */ + public static function setTestNowAndTimezone($testNow = null, $tz = null) + { + if ($testNow) { + self::$testDefaultTimezone = self::$testDefaultTimezone ?? date_default_timezone_get(); + } + + $useDateInstanceTimezone = $testNow instanceof DateTimeInterface; + + if ($useDateInstanceTimezone) { + self::setDefaultTimezone($testNow->getTimezone()->getName(), $testNow); + } + + static::setTestNow($testNow); + + if (!$useDateInstanceTimezone) { + $now = static::getMockedTestNow(\func_num_args() === 1 ? null : $tz); + $tzName = $now ? $now->tzName : null; + self::setDefaultTimezone($tzName ?? self::$testDefaultTimezone ?? 'UTC', $now); + } + + if (!$testNow) { + self::$testDefaultTimezone = null; + } + } + + /** + * Temporarily sets a static date to be used within the callback. + * Using setTestNow to set the date, executing the callback, then + * clearing the test instance. + * + * /!\ Use this method for unit tests only. + * + * @template T + * + * @param DateTimeInterface|Closure|static|string|false|null $testNow real or mock Carbon instance + * @param Closure(): T $callback + * + * @return mixed + * @phpstan-return T + */ + public static function withTestNow($testNow, $callback) + { + static::setTestNow($testNow); + + try { + $result = $callback(); + } finally { + static::setTestNow(); + } + + return $result; + } + + /** + * Get the Carbon instance (real or mock) to be returned when a "now" + * instance is created. + * + * @return Closure|static the current instance used for testing + */ + public static function getTestNow() + { + return static::$testNow; + } + + /** + * Determine if there is a valid test instance set. A valid test instance + * is anything that is not null. + * + * @return bool true if there is a test instance, otherwise false + */ + public static function hasTestNow() + { + return static::getTestNow() !== null; + } + + /** + * Get the mocked date passed in setTestNow() and if it's a Closure, execute it. + * + * @param string|\DateTimeZone $tz + * + * @return \Carbon\CarbonImmutable|\Carbon\Carbon|null + */ + protected static function getMockedTestNow($tz) + { + $testNow = static::getTestNow(); + + if ($testNow instanceof Closure) { + $realNow = new DateTimeImmutable('now'); + $testNow = $testNow(static::parse( + $realNow->format('Y-m-d H:i:s.u'), + $tz ?: $realNow->getTimezone() + )); + } + /* @var \Carbon\CarbonImmutable|\Carbon\Carbon|null $testNow */ + + return $testNow instanceof CarbonInterface + ? $testNow->avoidMutation()->tz($tz) + : $testNow; + } + + protected static function mockConstructorParameters(&$time, $tz) + { + /** @var \Carbon\CarbonImmutable|\Carbon\Carbon $testInstance */ + $testInstance = clone static::getMockedTestNow($tz); + + if (static::hasRelativeKeywords($time)) { + $testInstance = $testInstance->modify($time); + } + + $time = $testInstance instanceof self + ? $testInstance->rawFormat(static::MOCK_DATETIME_FORMAT) + : $testInstance->format(static::MOCK_DATETIME_FORMAT); + } + + private static function setDefaultTimezone($timezone, DateTimeInterface $date = null) + { + $previous = null; + $success = false; + + try { + $success = date_default_timezone_set($timezone); + } catch (Throwable $exception) { + $previous = $exception; + } + + if (!$success) { + $suggestion = @CarbonTimeZone::create($timezone)->toRegionName($date); + + throw new InvalidArgumentException( + "Timezone ID '$timezone' is invalid". + ($suggestion && $suggestion !== $timezone ? ", did you mean '$suggestion'?" : '.')."\n". + "It must be one of the IDs from DateTimeZone::listIdentifiers(),\n". + 'For the record, hours/minutes offset are relevant only for a particular moment, '. + 'but not as a default timezone.', + 0, + $previous + ); + } + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php b/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php new file mode 100644 index 000000000..88a465c93 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php @@ -0,0 +1,198 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +/** + * Trait Timestamp. + */ +trait Timestamp +{ + /** + * Create a Carbon instance from a timestamp and set the timezone (use default one if not specified). + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * @param \DateTimeZone|string|null $tz + * + * @return static + */ + public static function createFromTimestamp($timestamp, $tz = null) + { + return static::createFromTimestampUTC($timestamp)->setTimezone($tz); + } + + /** + * Create a Carbon instance from an timestamp keeping the timezone to UTC. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * + * @return static + */ + public static function createFromTimestampUTC($timestamp) + { + [$integer, $decimal] = self::getIntegerAndDecimalParts($timestamp); + $delta = floor($decimal / static::MICROSECONDS_PER_SECOND); + $integer += $delta; + $decimal -= $delta * static::MICROSECONDS_PER_SECOND; + $decimal = str_pad((string) $decimal, 6, '0', STR_PAD_LEFT); + + return static::rawCreateFromFormat('U u', "$integer $decimal"); + } + + /** + * Create a Carbon instance from a timestamp in milliseconds. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * + * @return static + */ + public static function createFromTimestampMsUTC($timestamp) + { + [$milliseconds, $microseconds] = self::getIntegerAndDecimalParts($timestamp, 3); + $sign = $milliseconds < 0 || ($milliseconds === 0.0 && $microseconds < 0) ? -1 : 1; + $milliseconds = abs($milliseconds); + $microseconds = $sign * abs($microseconds) + static::MICROSECONDS_PER_MILLISECOND * ($milliseconds % static::MILLISECONDS_PER_SECOND); + $seconds = $sign * floor($milliseconds / static::MILLISECONDS_PER_SECOND); + $delta = floor($microseconds / static::MICROSECONDS_PER_SECOND); + $seconds += $delta; + $microseconds -= $delta * static::MICROSECONDS_PER_SECOND; + $microseconds = str_pad($microseconds, 6, '0', STR_PAD_LEFT); + + return static::rawCreateFromFormat('U u', "$seconds $microseconds"); + } + + /** + * Create a Carbon instance from a timestamp in milliseconds. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $timestamp + * @param \DateTimeZone|string|null $tz + * + * @return static + */ + public static function createFromTimestampMs($timestamp, $tz = null) + { + return static::createFromTimestampMsUTC($timestamp) + ->setTimezone($tz); + } + + /** + * Set the instance's timestamp. + * + * Timestamp input can be given as int, float or a string containing one or more numbers. + * + * @param float|int|string $unixTimestamp + * + * @return static + */ + public function timestamp($unixTimestamp) + { + return $this->setTimestamp($unixTimestamp); + } + + /** + * Returns a timestamp rounded with the given precision (6 by default). + * + * @example getPreciseTimestamp() 1532087464437474 (microsecond maximum precision) + * @example getPreciseTimestamp(6) 1532087464437474 + * @example getPreciseTimestamp(5) 153208746443747 (1/100000 second precision) + * @example getPreciseTimestamp(4) 15320874644375 (1/10000 second precision) + * @example getPreciseTimestamp(3) 1532087464437 (millisecond precision) + * @example getPreciseTimestamp(2) 153208746444 (1/100 second precision) + * @example getPreciseTimestamp(1) 15320874644 (1/10 second precision) + * @example getPreciseTimestamp(0) 1532087464 (second precision) + * @example getPreciseTimestamp(-1) 153208746 (10 second precision) + * @example getPreciseTimestamp(-2) 15320875 (100 second precision) + * + * @param int $precision + * + * @return float + */ + public function getPreciseTimestamp($precision = 6) + { + return round(((float) $this->rawFormat('Uu')) / pow(10, 6 - $precision)); + } + + /** + * Returns the milliseconds timestamps used amongst other by Date javascript objects. + * + * @return float + */ + public function valueOf() + { + return $this->getPreciseTimestamp(3); + } + + /** + * Returns the timestamp with millisecond precision. + * + * @return int + */ + public function getTimestampMs() + { + return (int) $this->getPreciseTimestamp(3); + } + + /** + * @alias getTimestamp + * + * Returns the UNIX timestamp for the current date. + * + * @return int + */ + public function unix() + { + return $this->getTimestamp(); + } + + /** + * Return an array with integer part digits and decimals digits split from one or more positive numbers + * (such as timestamps) as string with the given number of decimals (6 by default). + * + * By splitting integer and decimal, this method obtain a better precision than + * number_format when the input is a string. + * + * @param float|int|string $numbers one or more numbers + * @param int $decimals number of decimals precision (6 by default) + * + * @return array 0-index is integer part, 1-index is decimal part digits + */ + private static function getIntegerAndDecimalParts($numbers, $decimals = 6) + { + if (\is_int($numbers) || \is_float($numbers)) { + $numbers = number_format($numbers, $decimals, '.', ''); + } + + $sign = str_starts_with($numbers, '-') ? -1 : 1; + $integer = 0; + $decimal = 0; + + foreach (preg_split('`[^\d.]+`', $numbers) as $chunk) { + [$integerPart, $decimalPart] = explode('.', "$chunk."); + + $integer += (int) $integerPart; + $decimal += (float) ("0.$decimalPart"); + } + + $overflow = floor($decimal); + $integer += $overflow; + $decimal -= $overflow; + + return [$sign * $integer, $decimal === 0.0 ? 0.0 : $sign * round($decimal * pow(10, $decimals))]; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/ToStringFormat.php b/vendor/nesbot/carbon/src/Carbon/Traits/ToStringFormat.php new file mode 100644 index 000000000..a81164f99 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/ToStringFormat.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Closure; + +/** + * Trait ToStringFormat. + * + * Handle global format customization for string cast of the object. + */ +trait ToStringFormat +{ + /** + * Format to use for __toString method when type juggling occurs. + * + * @var string|Closure|null + */ + protected static $toStringFormat; + + /** + * Reset the format used to the default when type juggling a Carbon instance to a string + * + * @return void + */ + public static function resetToStringFormat() + { + static::setToStringFormat(null); + } + + /** + * @deprecated To avoid conflict between different third-party libraries, static setters should not be used. + * You should rather let Carbon object being cast to string with DEFAULT_TO_STRING_FORMAT, and + * use other method or custom format passed to format() method if you need to dump another string + * format. + * + * Set the default format used when type juggling a Carbon instance to a string. + * + * @param string|Closure|null $format + * + * @return void + */ + public static function setToStringFormat($format) + { + static::$toStringFormat = $format; + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Units.php b/vendor/nesbot/carbon/src/Carbon/Traits/Units.php new file mode 100644 index 000000000..7aadd65bd --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Units.php @@ -0,0 +1,412 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +use Carbon\CarbonConverterInterface; +use Carbon\CarbonInterface; +use Carbon\CarbonInterval; +use Carbon\Exceptions\UnitException; +use Closure; +use DateInterval; +use DateMalformedStringException; +use ReturnTypeWillChange; + +/** + * Trait Units. + * + * Add, subtract and set units. + */ +trait Units +{ + /** + * Add seconds to the instance using timestamp. Positive $value travels + * forward while negative $value travels into the past. + * + * @param string $unit + * @param int $value + * + * @return static + */ + public function addRealUnit($unit, $value = 1) + { + switch ($unit) { + // @call addRealUnit + case 'micro': + + // @call addRealUnit + case 'microsecond': + /* @var CarbonInterface $this */ + $diff = $this->microsecond + $value; + $time = $this->getTimestamp(); + $seconds = (int) floor($diff / static::MICROSECONDS_PER_SECOND); + $time += $seconds; + $diff -= $seconds * static::MICROSECONDS_PER_SECOND; + $microtime = str_pad((string) $diff, 6, '0', STR_PAD_LEFT); + $tz = $this->tz; + + return $this->tz('UTC')->modify("@$time.$microtime")->tz($tz); + + // @call addRealUnit + case 'milli': + // @call addRealUnit + case 'millisecond': + return $this->addRealUnit('microsecond', $value * static::MICROSECONDS_PER_MILLISECOND); + + // @call addRealUnit + case 'second': + break; + + // @call addRealUnit + case 'minute': + $value *= static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'hour': + $value *= static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'day': + $value *= static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'week': + $value *= static::DAYS_PER_WEEK * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'month': + $value *= 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'quarter': + $value *= static::MONTHS_PER_QUARTER * 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'year': + $value *= 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'decade': + $value *= static::YEARS_PER_DECADE * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'century': + $value *= static::YEARS_PER_CENTURY * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + // @call addRealUnit + case 'millennium': + $value *= static::YEARS_PER_MILLENNIUM * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE; + + break; + + default: + if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) { + throw new UnitException("Invalid unit for real timestamp add/sub: '$unit'"); + } + + return $this; + } + + /* @var CarbonInterface $this */ + return $this->setTimestamp((int) ($this->getTimestamp() + $value)); + } + + public function subRealUnit($unit, $value = 1) + { + return $this->addRealUnit($unit, -$value); + } + + /** + * Returns true if a property can be changed via setter. + * + * @param string $unit + * + * @return bool + */ + public static function isModifiableUnit($unit) + { + static $modifiableUnits = [ + // @call addUnit + 'millennium', + // @call addUnit + 'century', + // @call addUnit + 'decade', + // @call addUnit + 'quarter', + // @call addUnit + 'week', + // @call addUnit + 'weekday', + ]; + + return \in_array($unit, $modifiableUnits, true) || \in_array($unit, static::$units, true); + } + + /** + * Call native PHP DateTime/DateTimeImmutable add() method. + * + * @param DateInterval $interval + * + * @return static + */ + public function rawAdd(DateInterval $interval) + { + return parent::add($interval); + } + + /** + * Add given units or interval to the current instance. + * + * @example $date->add('hour', 3) + * @example $date->add(15, 'days') + * @example $date->add(CarbonInterval::days(4)) + * + * @param string|DateInterval|Closure|CarbonConverterInterface $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + #[ReturnTypeWillChange] + public function add($unit, $value = 1, $overflow = null) + { + if (\is_string($unit) && \func_num_args() === 1) { + $unit = CarbonInterval::make($unit); + } + + if ($unit instanceof CarbonConverterInterface) { + return $this->resolveCarbon($unit->convertDate($this, false)); + } + + if ($unit instanceof Closure) { + return $this->resolveCarbon($unit($this, false)); + } + + if ($unit instanceof DateInterval) { + return parent::add($unit); + } + + if (is_numeric($unit)) { + [$value, $unit] = [$unit, $value]; + } + + return $this->addUnit($unit, $value, $overflow); + } + + /** + * Add given units to the current instance. + * + * @param string $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function addUnit($unit, $value = 1, $overflow = null) + { + $originalArgs = \func_get_args(); + + $date = $this; + + if (!is_numeric($value) || !(float) $value) { + return $date->isMutable() ? $date : $date->avoidMutation(); + } + + $unit = self::singularUnit($unit); + $metaUnits = [ + 'millennium' => [static::YEARS_PER_MILLENNIUM, 'year'], + 'century' => [static::YEARS_PER_CENTURY, 'year'], + 'decade' => [static::YEARS_PER_DECADE, 'year'], + 'quarter' => [static::MONTHS_PER_QUARTER, 'month'], + ]; + + if (isset($metaUnits[$unit])) { + [$factor, $unit] = $metaUnits[$unit]; + $value *= $factor; + } + + if ($unit === 'weekday') { + $weekendDays = static::getWeekendDays(); + + if ($weekendDays !== [static::SATURDAY, static::SUNDAY]) { + $absoluteValue = abs($value); + $sign = $value / max(1, $absoluteValue); + $weekDaysCount = 7 - min(6, \count(array_unique($weekendDays))); + $weeks = floor($absoluteValue / $weekDaysCount); + + for ($diff = $absoluteValue % $weekDaysCount; $diff; $diff--) { + /** @var static $date */ + $date = $date->addDays($sign); + + while (\in_array($date->dayOfWeek, $weekendDays, true)) { + $date = $date->addDays($sign); + } + } + + $value = $weeks * $sign; + $unit = 'week'; + } + + $timeString = $date->toTimeString(); + } elseif ($canOverflow = (\in_array($unit, [ + 'month', + 'year', + ]) && ($overflow === false || ( + $overflow === null && + ($ucUnit = ucfirst($unit).'s') && + !($this->{'local'.$ucUnit.'Overflow'} ?? static::{'shouldOverflow'.$ucUnit}()) + )))) { + $day = $date->day; + } + + $value = (int) $value; + + if ($unit === 'milli' || $unit === 'millisecond') { + $unit = 'microsecond'; + $value *= static::MICROSECONDS_PER_MILLISECOND; + } + + // Work-around for bug https://bugs.php.net/bug.php?id=75642 + if ($unit === 'micro' || $unit === 'microsecond') { + $microseconds = $this->micro + $value; + $second = (int) floor($microseconds / static::MICROSECONDS_PER_SECOND); + $microseconds %= static::MICROSECONDS_PER_SECOND; + if ($microseconds < 0) { + $microseconds += static::MICROSECONDS_PER_SECOND; + } + $date = $date->microseconds($microseconds); + $unit = 'second'; + $value = $second; + } + + try { + $date = $date->modify("$value $unit"); + + if (isset($timeString)) { + $date = $date->setTimeFromTimeString($timeString); + } elseif (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) { + $date = $date->modify('last day of previous month'); + } + } catch (DateMalformedStringException $ignoredException) { // @codeCoverageIgnore + $date = null; // @codeCoverageIgnore + } + + if (!$date) { + throw new UnitException('Unable to add unit '.var_export($originalArgs, true)); + } + + return $date; + } + + /** + * Subtract given units to the current instance. + * + * @param string $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function subUnit($unit, $value = 1, $overflow = null) + { + return $this->addUnit($unit, -$value, $overflow); + } + + /** + * Call native PHP DateTime/DateTimeImmutable sub() method. + * + * @param DateInterval $interval + * + * @return static + */ + public function rawSub(DateInterval $interval) + { + return parent::sub($interval); + } + + /** + * Subtract given units or interval to the current instance. + * + * @example $date->sub('hour', 3) + * @example $date->sub(15, 'days') + * @example $date->sub(CarbonInterval::days(4)) + * + * @param string|DateInterval|Closure|CarbonConverterInterface $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + #[ReturnTypeWillChange] + public function sub($unit, $value = 1, $overflow = null) + { + if (\is_string($unit) && \func_num_args() === 1) { + $unit = CarbonInterval::make($unit); + } + + if ($unit instanceof CarbonConverterInterface) { + return $this->resolveCarbon($unit->convertDate($this, true)); + } + + if ($unit instanceof Closure) { + return $this->resolveCarbon($unit($this, true)); + } + + if ($unit instanceof DateInterval) { + return parent::sub($unit); + } + + if (is_numeric($unit)) { + [$value, $unit] = [$unit, $value]; + } + + return $this->addUnit($unit, -(float) $value, $overflow); + } + + /** + * Subtract given units or interval to the current instance. + * + * @see sub() + * + * @param string|DateInterval $unit + * @param int $value + * @param bool|null $overflow + * + * @return static + */ + public function subtract($unit, $value = 1, $overflow = null) + { + if (\is_string($unit) && \func_num_args() === 1) { + $unit = CarbonInterval::make($unit); + } + + return $this->sub($unit, $value, $overflow); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Traits/Week.php b/vendor/nesbot/carbon/src/Carbon/Traits/Week.php new file mode 100644 index 000000000..6f1481456 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Traits/Week.php @@ -0,0 +1,219 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon\Traits; + +/** + * Trait Week. + * + * week and ISO week number, year and count in year. + * + * Depends on the following properties: + * + * @property int $daysInYear + * @property int $dayOfWeek + * @property int $dayOfYear + * @property int $year + * + * Depends on the following methods: + * + * @method static addWeeks(int $weeks = 1) + * @method static copy() + * @method static dayOfYear(int $dayOfYear) + * @method string getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null) + * @method static next(int|string $day = null) + * @method static startOfWeek(int $day = 1) + * @method static subWeeks(int $weeks = 1) + * @method static year(int $year = null) + */ +trait Week +{ + /** + * Set/get the week number of year using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $year if null, act as a getter, if not null, set the year and return current instance. + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int|static + */ + public function isoWeekYear($year = null, $dayOfWeek = null, $dayOfYear = null) + { + return $this->weekYear( + $year, + $dayOfWeek ?? 1, + $dayOfYear ?? 4 + ); + } + + /** + * Set/get the week number of year using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $year if null, act as a getter, if not null, set the year and return current instance. + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int|static + */ + public function weekYear($year = null, $dayOfWeek = null, $dayOfYear = null) + { + $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0; + $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1; + + if ($year !== null) { + $year = (int) round($year); + + if ($this->weekYear(null, $dayOfWeek, $dayOfYear) === $year) { + return $this->avoidMutation(); + } + + $week = $this->week(null, $dayOfWeek, $dayOfYear); + $day = $this->dayOfWeek; + $date = $this->year($year); + switch ($date->weekYear(null, $dayOfWeek, $dayOfYear) - $year) { + case 1: + $date = $date->subWeeks(26); + + break; + case -1: + $date = $date->addWeeks(26); + + break; + } + + $date = $date->addWeeks($week - $date->week(null, $dayOfWeek, $dayOfYear))->startOfWeek($dayOfWeek); + + if ($date->dayOfWeek === $day) { + return $date; + } + + return $date->next($day); + } + + $year = $this->year; + $day = $this->dayOfYear; + $date = $this->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + + if ($date->year === $year && $day < $date->dayOfYear) { + return $year - 1; + } + + $date = $this->avoidMutation()->addYear()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + + if ($date->year === $year && $day >= $date->dayOfYear) { + return $year + 1; + } + + return $year; + } + + /** + * Get the number of weeks of the current week-year using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int + */ + public function isoWeeksInYear($dayOfWeek = null, $dayOfYear = null) + { + return $this->weeksInYear( + $dayOfWeek ?? 1, + $dayOfYear ?? 4 + ); + } + + /** + * Get the number of weeks of the current week-year using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday) + * @param int|null $dayOfYear first day of year included in the week #1 + * + * @return int + */ + public function weeksInYear($dayOfWeek = null, $dayOfYear = null) + { + $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0; + $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1; + $year = $this->year; + $start = $this->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + $startDay = $start->dayOfYear; + if ($start->year !== $year) { + $startDay -= $start->daysInYear; + } + $end = $this->avoidMutation()->addYear()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + $endDay = $end->dayOfYear; + if ($end->year !== $year) { + $endDay += $this->daysInYear; + } + + return (int) round(($endDay - $startDay) / 7); + } + + /** + * Get/set the week number using given first day of week and first + * day of year included in the first week. Or use US format if no settings + * given (Sunday / Jan 6). + * + * @param int|null $week + * @param int|null $dayOfWeek + * @param int|null $dayOfYear + * + * @return int|static + */ + public function week($week = null, $dayOfWeek = null, $dayOfYear = null) + { + $date = $this; + $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0; + $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1; + + if ($week !== null) { + return $date->addWeeks(round($week) - $this->week(null, $dayOfWeek, $dayOfYear)); + } + + $start = $date->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + $end = $date->avoidMutation()->startOfWeek($dayOfWeek); + if ($start > $end) { + $start = $start->subWeeks(26)->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek); + } + $week = (int) ($start->diffInDays($end) / 7 + 1); + + return $week > $end->weeksInYear($dayOfWeek, $dayOfYear) ? 1 : $week; + } + + /** + * Get/set the week number using given first day of week and first + * day of year included in the first week. Or use ISO format if no settings + * given. + * + * @param int|null $week + * @param int|null $dayOfWeek + * @param int|null $dayOfYear + * + * @return int|static + */ + public function isoWeek($week = null, $dayOfWeek = null, $dayOfYear = null) + { + return $this->week( + $week, + $dayOfWeek ?? 1, + $dayOfYear ?? 4 + ); + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/Translator.php b/vendor/nesbot/carbon/src/Carbon/Translator.php new file mode 100644 index 000000000..491c9e720 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/Translator.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use ReflectionMethod; +use Symfony\Component\Translation; +use Symfony\Contracts\Translation\TranslatorInterface; + +$transMethod = new ReflectionMethod( + class_exists(TranslatorInterface::class) + ? TranslatorInterface::class + : Translation\Translator::class, + 'trans' +); + +require $transMethod->hasReturnType() + ? __DIR__.'/../../lazy/Carbon/TranslatorStrongType.php' + : __DIR__.'/../../lazy/Carbon/TranslatorWeakType.php'; + +class Translator extends LazyTranslator +{ + // Proxy dynamically loaded LazyTranslator in a static way +} diff --git a/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php b/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php new file mode 100644 index 000000000..ad36c6704 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/TranslatorImmutable.php @@ -0,0 +1,99 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Carbon\Exceptions\ImmutableException; +use Symfony\Component\Config\ConfigCacheFactoryInterface; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; + +class TranslatorImmutable extends Translator +{ + /** @var bool */ + private $constructed = false; + + public function __construct($locale, MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false) + { + parent::__construct($locale, $formatter, $cacheDir, $debug); + $this->constructed = true; + } + + /** + * @codeCoverageIgnore + */ + public function setDirectories(array $directories) + { + $this->disallowMutation(__METHOD__); + + return parent::setDirectories($directories); + } + + public function setLocale($locale) + { + $this->disallowMutation(__METHOD__); + + return parent::setLocale($locale); + } + + /** + * @codeCoverageIgnore + */ + public function setMessages($locale, $messages) + { + $this->disallowMutation(__METHOD__); + + return parent::setMessages($locale, $messages); + } + + /** + * @codeCoverageIgnore + */ + public function setTranslations($messages) + { + $this->disallowMutation(__METHOD__); + + return parent::setTranslations($messages); + } + + /** + * @codeCoverageIgnore + */ + public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory) + { + $this->disallowMutation(__METHOD__); + + parent::setConfigCacheFactory($configCacheFactory); + } + + public function resetMessages($locale = null) + { + $this->disallowMutation(__METHOD__); + + return parent::resetMessages($locale); + } + + /** + * @codeCoverageIgnore + */ + public function setFallbackLocales(array $locales) + { + $this->disallowMutation(__METHOD__); + + parent::setFallbackLocales($locales); + } + + private function disallowMutation($method) + { + if ($this->constructed) { + throw new ImmutableException($method.' not allowed on '.static::class); + } + } +} diff --git a/vendor/nesbot/carbon/src/Carbon/TranslatorStrongTypeInterface.php b/vendor/nesbot/carbon/src/Carbon/TranslatorStrongTypeInterface.php new file mode 100644 index 000000000..ef4dee8e2 --- /dev/null +++ b/vendor/nesbot/carbon/src/Carbon/TranslatorStrongTypeInterface.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Carbon; + +use Symfony\Component\Translation\MessageCatalogueInterface; + +/** + * Mark translator using strong type from symfony/translation >= 6. + */ +interface TranslatorStrongTypeInterface +{ + public function getFromCatalogue(MessageCatalogueInterface $catalogue, string $id, string $domain = 'messages'); +} diff --git a/vendor/phpoffice/phpspreadsheet/.php-cs-fixer.dist.php b/vendor/phpoffice/phpspreadsheet/.php-cs-fixer.dist.php index 4179c6771..db7072718 100644 --- a/vendor/phpoffice/phpspreadsheet/.php-cs-fixer.dist.php +++ b/vendor/phpoffice/phpspreadsheet/.php-cs-fixer.dist.php @@ -2,6 +2,7 @@ $finder = PhpCsFixer\Finder::create() ->exclude('vendor') + ->notPath('src/PhpSpreadsheet/Writer/ZipStream3.php') ->in(__DIR__); $config = new PhpCsFixer\Config(); diff --git a/vendor/phpoffice/phpspreadsheet/CHANGELOG.md b/vendor/phpoffice/phpspreadsheet/CHANGELOG.md index 2f383e23f..38836217c 100644 --- a/vendor/phpoffice/phpspreadsheet/CHANGELOG.md +++ b/vendor/phpoffice/phpspreadsheet/CHANGELOG.md @@ -5,6 +5,67 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com) and this project adheres to [Semantic Versioning](https://semver.org). +## 1.29.0 - 2023-06-15 + +### Added + +- Wizards for defining Number Format masks for Dates and Times, including Durations/Intervals. [PR #3458](https://github.com/PHPOffice/PhpSpreadsheet/pull/3458) +- Specify data type in html tags. [Issue #3444](https://github.com/PHPOffice/PhpSpreadsheet/issues/3444) [PR #3445](https://github.com/PHPOffice/PhpSpreadsheet/pull/3445) +- Provide option to ignore hidden rows/columns in `toArray()` methods. [PR #3494](https://github.com/PHPOffice/PhpSpreadsheet/pull/3494) +- Font/Effects/Theme support for Chart Data Labels and Axis. [PR #3476](https://github.com/PHPOffice/PhpSpreadsheet/pull/3476) +- Font Themes support. [PR #3486](https://github.com/PHPOffice/PhpSpreadsheet/pull/3486) +- Ability to Ignore Cell Errors in Excel. [Issue #1141](https://github.com/PHPOffice/PhpSpreadsheet/issues/1141) [PR #3508](https://github.com/PHPOffice/PhpSpreadsheet/pull/3508) +- Unzipped Gnumeric file [PR #3591](https://github.com/PHPOffice/PhpSpreadsheet/pull/3591) + +### Changed + +- Xlsx Color schemes read in will be written out (previously Excel 2007-2010 Color scheme was always written); manipulation of those schemes before write, including restoring prior behavior, is provided [PR #3476](https://github.com/PHPOffice/PhpSpreadsheet/pull/3476) +- Memory and speed optimisations for Read Filters with Xlsx Files and Shared Formulae. [PR #3474](https://github.com/PHPOffice/PhpSpreadsheet/pull/3474) +- Allow `CellRange` and `CellAddress` objects for the `range` argument in the `rangeToArray()` method. [PR #3494](https://github.com/PHPOffice/PhpSpreadsheet/pull/3494) +- Stock charts will now read and reproduce `upDownBars` and subsidiary tags; these were previously ignored on read and hard-coded on write. [PR #3515](https://github.com/PHPOffice/PhpSpreadsheet/pull/3515) + +### Deprecated + +- Nothing + +### Removed + +- Nothing + +### Fixed + +- Updates Cell formula absolute ranges/references, and Defined Name absolute ranges/references when inserting/deleting rows/columns. [Issue #3368](https://github.com/PHPOffice/PhpSpreadsheet/issues/3368) [PR #3402](https://github.com/PHPOffice/PhpSpreadsheet/pull/3402) +- EOMONTH() and EDATE() Functions should round date value before evaluation. [Issue #3436](https://github.com/PHPOffice/PhpSpreadsheet/issues/3436) [PR #3437](https://github.com/PHPOffice/PhpSpreadsheet/pull/3437) +- NETWORKDAYS function erroneously being converted to NETWORK_xlfn.DAYS in Xlsx Writer. [Issue #3461](https://github.com/PHPOffice/PhpSpreadsheet/issues/3461) [PR #3463](https://github.com/PHPOffice/PhpSpreadsheet/pull/3463) +- Getting a style for a CellAddress instance fails if the worksheet is set in the CellAddress instance. [Issue #3439](https://github.com/PHPOffice/PhpSpreadsheet/issues/3439) [PR #3469](https://github.com/PHPOffice/PhpSpreadsheet/pull/3469) +- Shared Formulae outside the filter range when reading with a filter are not always being identified. [Issue #3473](https://github.com/PHPOffice/PhpSpreadsheet/issues/3473) [PR #3474](https://github.com/PHPOffice/PhpSpreadsheet/pull/3474) +- Xls Reader Conditional Styles. [PR #3400](https://github.com/PHPOffice/PhpSpreadsheet/pull/3400) +- Allow use of # and 0 digit placeholders in fraction masks. [PR #3401](https://github.com/PHPOffice/PhpSpreadsheet/pull/3401) +- Modify Date/Time check in the NumberFormatter for decimal/fractional times. [PR #3413](https://github.com/PHPOffice/PhpSpreadsheet/pull/3413) +- Misplaced Xml Writing Chart Label FillColor. [Issue #3397](https://github.com/PHPOffice/PhpSpreadsheet/issues/3397) [PR #3404](https://github.com/PHPOffice/PhpSpreadsheet/pull/3404) +- TEXT function ignores Time in DateTimeStamp. [Issue #3409](https://github.com/PHPOffice/PhpSpreadsheet/issues/3409) [PR #3411](https://github.com/PHPOffice/PhpSpreadsheet/pull/3411) +- Xlsx Column Autosize Approximate for CJK. [Issue #3405](https://github.com/PHPOffice/PhpSpreadsheet/issues/3405) [PR #3416](https://github.com/PHPOffice/PhpSpreadsheet/pull/3416) +- Correct Xlsx Parsing of quotePrefix="0". [Issue #3435](https://github.com/PHPOffice/PhpSpreadsheet/issues/3435) [PR #3438](https://github.com/PHPOffice/PhpSpreadsheet/pull/3438) +- More Display Options for Chart Axis and Legend. [Issue #3414](https://github.com/PHPOffice/PhpSpreadsheet/issues/3414) [PR #3434](https://github.com/PHPOffice/PhpSpreadsheet/pull/3434) +- Apply strict type checking to Complex suffix. [PR #3452](https://github.com/PHPOffice/PhpSpreadsheet/pull/3452) +- Incorrect Font Color Read Xlsx Rich Text Indexed Color Custom Palette. [Issue #3464](https://github.com/PHPOffice/PhpSpreadsheet/issues/3464) [PR #3465](https://github.com/PHPOffice/PhpSpreadsheet/pull/3465) +- Xlsx Writer Honor Alignment in Default Font. [Issue #3443](https://github.com/PHPOffice/PhpSpreadsheet/issues/3443) [PR #3459](https://github.com/PHPOffice/PhpSpreadsheet/pull/3459) +- Support Border for Charts. [PR #3462](https://github.com/PHPOffice/PhpSpreadsheet/pull/3462) +- Error in "this row" structured reference calculation (cached result from first row when using a range) [Issue #3504](https://github.com/PHPOffice/PhpSpreadsheet/issues/3504) [PR #3505](https://github.com/PHPOffice/PhpSpreadsheet/pull/3505) +- Allow colour palette index references in Number Format masks [Issue #3511](https://github.com/PHPOffice/PhpSpreadsheet/issues/3511) [PR #3512](https://github.com/PHPOffice/PhpSpreadsheet/pull/3512) +- Xlsx Reader formula with quotePrefix [Issue #3495](https://github.com/PHPOffice/PhpSpreadsheet/issues/3495) [PR #3497](https://github.com/PHPOffice/PhpSpreadsheet/pull/3497) +- Handle REF error as part of range [Issue #3453](https://github.com/PHPOffice/PhpSpreadsheet/issues/3453) [PR #3467](https://github.com/PHPOffice/PhpSpreadsheet/pull/3467) +- Handle Absolute Pathnames in Rels File [Issue #3553](https://github.com/PHPOffice/PhpSpreadsheet/issues/3553) [PR #3554](https://github.com/PHPOffice/PhpSpreadsheet/pull/3554) +- Return Page Breaks in Order [Issue #3552](https://github.com/PHPOffice/PhpSpreadsheet/issues/3552) [PR #3555](https://github.com/PHPOffice/PhpSpreadsheet/pull/3555) +- Add position attribute for MemoryDrawing in Html [Issue #3529](https://github.com/PHPOffice/PhpSpreadsheet/issues/3529 [PR #3535](https://github.com/PHPOffice/PhpSpreadsheet/pull/3535) +- Allow Index_number as Array for VLOOKUP/HLOOKUP [Issue #3561](https://github.com/PHPOffice/PhpSpreadsheet/issues/3561 [PR #3570](https://github.com/PHPOffice/PhpSpreadsheet/pull/3570) +- Add Unsupported Options in Xml Spreadsheet [Issue #3566](https://github.com/PHPOffice/PhpSpreadsheet/issues/3566 [Issue #3568](https://github.com/PHPOffice/PhpSpreadsheet/issues/3568 [Issue #3569](https://github.com/PHPOffice/PhpSpreadsheet/issues/3569 [PR #3567](https://github.com/PHPOffice/PhpSpreadsheet/pull/3567) +- Changes to NUMBERVALUE, VALUE, DATEVALUE, TIMEVALUE [Issue #3574](https://github.com/PHPOffice/PhpSpreadsheet/issues/3574 [PR #3575](https://github.com/PHPOffice/PhpSpreadsheet/pull/3575) +- Redo calculation of color tinting [Issue #3550](https://github.com/PHPOffice/PhpSpreadsheet/issues/3550) [PR #3580](https://github.com/PHPOffice/PhpSpreadsheet/pull/3580) +- Accommodate Slash with preg_quote [PR #3582](https://github.com/PHPOffice/PhpSpreadsheet/pull/3582) [PR #3583](https://github.com/PHPOffice/PhpSpreadsheet/pull/3583) [PR #3584](https://github.com/PHPOffice/PhpSpreadsheet/pull/3584) +- HyperlinkBase Property and Html Handling of Properties [Issue #3573](https://github.com/PHPOffice/PhpSpreadsheet/issues/3573) [PR #3589](https://github.com/PHPOffice/PhpSpreadsheet/pull/3589) +- Improvements for Data Validation [Issue #3592](https://github.com/PHPOffice/PhpSpreadsheet/issues/3592) [Issue #3594](https://github.com/PHPOffice/PhpSpreadsheet/issues/3594) [PR #3605](https://github.com/PHPOffice/PhpSpreadsheet/pull/3605) + ## 1.28.0 - 2023-02-25 ### Added diff --git a/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md b/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md index f59535331..09794b565 100644 --- a/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md +++ b/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md @@ -2,19 +2,44 @@ If you would like to contribute, here are some notes and guidelines: - - All new development happens on feature/fix branches, and are then merged to the `master` branch once stable; so the `master` branch is always the most up-to-date, working code - - Tagged releases are made from the `master` branch - - If you are going to be submitting a pull request, please fork from `master`, and submit your pull request back as a fix/feature branch referencing the GitHub issue number - - Code style might be automatically fixed by `composer fix` - - All code changes must be validated by `composer check` + - All new development should be on feature/fix branches, which are then merged to the `master` branch once stable and approved; so the `master` branch is always the most up-to-date, working code + - If you are going to submit a pull request, please fork from `master`, and submit your pull request back as a fix/feature branch referencing the GitHub issue number + - The code must work with all PHP versions that we support (currently PHP 7.4 to PHP 8.2). + - You can call `composer versions` to test version compatibility. + - Code style should be maintained. + - `composer style` will identify any issues with Coding Style`. + - `composer fix` will fix most issues with Coding Style. + - All code changes must be validated by `composer check`. + - Please include Unit Tests to verify that a bug exists, and that this PR fixes it. + - Please include Unit Tests to show that a new Feature works as expected. + - Please don't "bundle" several changes into a single PR; submit a PR for each discrete change/fix. + - Remember to update documentation if necessary. + - [Helpful article about forking](https://help.github.com/articles/fork-a-repo/ "Forking a GitHub repository") - [Helpful article about pull requests](https://help.github.com/articles/using-pull-requests/ "Pull Requests") +## Unit Tests + +When writing Unit Tests, please + - Always try to write Unit Tests for both the happy and unhappy paths. + - Put all assertions in the Test itself, not in an abstract class that the Test extends (even if this means code duplication between tests). + - Include any necessary `setup()` and `tearDown()` in the Test itself. + - If you change any global settings (such as system locale, or Compatibility Mode for Excel Function tests), make sure that you reset to the default in the `tearDown()`. + - Use the `ExcelError` functions in assertions for Excel Error values in Excel Function implementations. +
Not only does it reduce the risk of typos; but at some point in the future, ExcelError values will be an object rather than a string, and we won't then need to update all the tests. + - Don't over-complicate test code by testing happy and unhappy paths in the same test. + +This makes it easier to see exactly what is being tested when reviewing the PR. I want to be able to see it in the PR, not have to hunt in other unchanged classes to see what the test is doing. + ## How to release 1. Complete CHANGELOG.md and commit 2. Create an annotated tag 1. `git tag -a 1.2.3` 2. Tag subject must be the version number, eg: `1.2.3` - 3. Tag body must be a copy-paste of the changelog entries -3. Push tag with `git push --tags`, GitHub Actions will create a GitHub release automatically + 3. Tag body must be a copy-paste of the changelog entries. +3. Push the tag with `git push --tags`, GitHub Actions will create a GitHub release automatically, and the release details will automatically be sent to packagist. +4. Github seems to remove markdown headings in the Release Notes, so you should edit to restore these. + +> **Note:** Tagged releases are made from the `master` branch. Only in an emergency should a tagged release be made from the `release` branch. (i.e. cherry-picked hot-fixes.) + diff --git a/vendor/phpoffice/phpspreadsheet/README.md b/vendor/phpoffice/phpspreadsheet/README.md index d9a807326..a69c3afc9 100644 --- a/vendor/phpoffice/phpspreadsheet/README.md +++ b/vendor/phpoffice/phpspreadsheet/README.md @@ -32,7 +32,7 @@ If you are building your installation on a development machine that is on a diff ```json { "require": { - "phpoffice/phpspreadsheet": "^1.23" + "phpoffice/phpspreadsheet": "^1.28" }, "config": { "platform": { @@ -74,16 +74,20 @@ or the appropriate PDF Writer wrapper for the library that you have chosen to in For Chart export, we support following packages, which you will also need to install yourself using `composer require` - [jpgraph/jpgraph](https://packagist.org/packages/jpgraph/jpgraph) (this package was abandoned at version 4.0. You can manually download the latest version that supports PHP 8 and above from [jpgraph.net](https://jpgraph.net/)) - - [mitoteam/jpgraph](https://packagist.org/packages/mitoteam/jpgraph) (fork with php 8.1 support) + - [mitoteam/jpgraph](https://packagist.org/packages/mitoteam/jpgraph) - up to date fork with modern PHP versions support and some bugs fixed. and then configure PhpSpreadsheet using: ```php -Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class); // to use jpgraph/jpgraph +// to use jpgraph/jpgraph +Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class); //or -Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); // to use mitoteam/jpgraph +// to use mitoteam/jpgraph +Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); ``` -One or the other of these libraries is necessary if you want to generate HTML or PDF files that include charts. +One or the other of these libraries is necessary if you want to generate HTML or PDF files that include charts; or to render a Chart to an Image format from within your code. +They are not necessary to define charts for writing to `Xlsx` files. +Other file formats don't support writing Charts. ## Documentation @@ -103,10 +107,15 @@ Posts already available to Patreon supporters: - Looping the Loop - Advice on Iterating through the rows and cells in a worksheet. -The next post (currently being written) will be: +And for Patrons at levels actively using PhpSpreadsheet: - Behind the Mask - A look at Number Format Masks. +The Next Article (currently Work in Progress): + - Formula for Success + - How to debug formulae that don't produce the expected result. + + My aim is to post at least one article each month, taking a detailed look at some feature of MS Excel and how to use that feature in PhpSpreadsheet, or on how to perform different activities in PhpSpreadsheet. Planned posts for the future include topics like: @@ -116,8 +125,9 @@ Planned posts for the future include topics like: - Array Formulae - Conditional Formatting - Data Validation - - Formula Debugging - Value Binders + - Images + - Charts After a period of six months exclusive to Patreon supporters, articles will be incorporated into the public documentation for the library. diff --git a/vendor/phpoffice/phpspreadsheet/composer.json b/vendor/phpoffice/phpspreadsheet/composer.json index 1e8e5f6c0..4b05be334 100644 --- a/vendor/phpoffice/phpspreadsheet/composer.json +++ b/vendor/phpoffice/phpspreadsheet/composer.json @@ -42,13 +42,19 @@ ], "scripts": { "check": [ + "phpcs src/ tests/ --report=checkstyle", + "phpcs --report-width=200 samples/ src/ tests/ --ignore=samples/Header.php --standard=PHPCompatibility --runtime-set testVersion 7.4- -n", "php-cs-fixer fix --ansi --dry-run --diff", - "phpcs", "phpunit --color=always", - "phpstan analyse --ansi" + "phpstan analyse --ansi --memory-limit=2048M" + ], + "style": [ + "phpcs src/ tests/ --report=checkstyle", + "php-cs-fixer fix --ansi --dry-run --diff" ], "fix": [ - "php-cs-fixer fix --ansi" + "phpcbf src/ tests/ --report=checkstyle", + "php-cs-fixer fix" ], "versions": [ "phpcs --report-width=200 samples/ src/ tests/ --ignore=samples/Header.php --standard=PHPCompatibility --runtime-set testVersion 7.4- -n" @@ -70,7 +76,7 @@ "ext-zip": "*", "ext-zlib": "*", "ezyang/htmlpurifier": "^4.15", - "maennchen/zipstream-php": "^2.1", + "maennchen/zipstream-php": "^2.1 || ^3.0", "markbaker/complex": "^3.0", "markbaker/matrix": "^3.0", "psr/http-client": "^1.0", @@ -81,12 +87,12 @@ "dealerdirect/phpcodesniffer-composer-installer": "dev-main", "dompdf/dompdf": "^1.0 || ^2.0", "friendsofphp/php-cs-fixer": "^3.2", - "mitoteam/jpgraph": "^10.2.4", + "mitoteam/jpgraph": "^10.3", "mpdf/mpdf": "^8.1.1", "phpcompatibility/php-compatibility": "^9.3", "phpstan/phpstan": "^1.1", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.0", + "phpunit/phpunit": "^8.5 || ^9.0 || ^10.0", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, diff --git a/vendor/phpoffice/phpspreadsheet/phpstan.neon.dist b/vendor/phpoffice/phpspreadsheet/phpstan.neon.dist index 30bd6c2f7..ef2ae14fa 100644 --- a/vendor/phpoffice/phpspreadsheet/phpstan.neon.dist +++ b/vendor/phpoffice/phpspreadsheet/phpstan.neon.dist @@ -12,6 +12,10 @@ parameters: excludePaths: - src/PhpSpreadsheet/Chart/Renderer/JpGraph.php - src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php + - src/PhpSpreadsheet/Collection/Memory/SimpleCache1.php + - src/PhpSpreadsheet/Collection/Memory/SimpleCache3.php + - src/PhpSpreadsheet/Writer/ZipStream2.php + - src/PhpSpreadsheet/Writer/ZipStream3.php parallel: processTimeout: 300.0 checkMissingIterableValueType: false diff --git a/vendor/phpoffice/phpspreadsheet/phpunit10.xml.dist b/vendor/phpoffice/phpspreadsheet/phpunit10.xml.dist new file mode 100644 index 000000000..207d8ec97 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/phpunit10.xml.dist @@ -0,0 +1,15 @@ + + + + + + + + ./tests/PhpSpreadsheetTests + + + + ./src + + + diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php index 6de546fa2..c88656b4a 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php @@ -19,6 +19,7 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use ReflectionClassConstant; use ReflectionMethod; use ReflectionParameter; +use Throwable; class Calculation { @@ -3556,7 +3557,7 @@ class Calculation } } - throw new Exception($e->getMessage()); + throw new Exception($e->getMessage(), $e->getCode(), $e); } if ((is_array($result)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) { @@ -4210,7 +4211,7 @@ class Calculation try { $this->branchPruner->closingBrace($d['value']); } catch (Exception $e) { - return $this->raiseFormulaError($e->getMessage()); + return $this->raiseFormulaError($e->getMessage(), $e->getCode(), $e); } $functionName = $matches[1]; // Get the function name @@ -4249,7 +4250,7 @@ class Calculation } elseif ($expectedArgumentCount != '*') { $isOperandOrFunction = preg_match('/(\d*)([-+,])(\d*)/', $expectedArgumentCount, $argMatch); self::doNothing($isOperandOrFunction); - switch ($argMatch[2]) { + switch ($argMatch[2] ?? '') { case '+': if ($argumentCount < $argMatch[1]) { $argumentCountError = true; @@ -4282,7 +4283,7 @@ class Calculation try { $this->branchPruner->argumentSeparator(); } catch (Exception $e) { - return $this->raiseFormulaError($e->getMessage()); + return $this->raiseFormulaError($e->getMessage(), $e->getCode(), $e); } while (($o2 = $stack->pop()) && $o2['value'] !== '(') { // Pop off the stack back to the last ( @@ -4364,8 +4365,12 @@ class Calculation $rangeStartCellRef = $output[count($output) - 2]['value'] ?? ''; } preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '$/miu', $rangeStartCellRef, $rangeStartMatches); - if ($rangeStartMatches[2] > '') { - $val = $rangeStartMatches[2] . '!' . $val; + if (array_key_exists(2, $rangeStartMatches)) { + if ($rangeStartMatches[2] > '') { + $val = $rangeStartMatches[2] . '!' . $val; + } + } else { + $val = Information\ExcelError::REF(); } } else { $rangeStartCellRef = $output[count($output) - 1]['value'] ?? ''; @@ -4391,7 +4396,7 @@ class Calculation try { $structuredReference = Operands\StructuredReference::fromParser($formula, $index, $matches); } catch (Exception $e) { - return $this->raiseFormulaError($e->getMessage()); + return $this->raiseFormulaError($e->getMessage(), $e->getCode(), $e); } $val = $structuredReference->value(); @@ -4434,6 +4439,8 @@ class Calculation } $val = $address; } + } elseif ($val === Information\ExcelError::REF()) { + $stackItemReference = $val; } else { $startRowColRef = $output[count($output) - 1]['value'] ?? ''; [$rangeWS1, $startRowColRef] = Worksheet::extractSheetTitle($startRowColRef, true); @@ -4731,7 +4738,7 @@ class Calculation $cellRange = $token->parse($cell); if (strpos($cellRange, ':') !== false) { $this->debugLog->writeDebugLog('Evaluating Structured Reference %s as Cell Range %s', $token->value(), $cellRange); - $rangeValue = self::getInstance($cell->getWorksheet()->getParent())->_calculateFormulaValue("={$cellRange}", $token->value(), $cell); + $rangeValue = self::getInstance($cell->getWorksheet()->getParent())->_calculateFormulaValue("={$cellRange}", $cellRange, $cell); $stack->push('Value', $rangeValue); $this->debugLog->writeDebugLog('Evaluated Structured Reference %s as value %s', $token->value(), $this->showValue($rangeValue)); } else { @@ -4745,7 +4752,7 @@ class Calculation $stack->push('Error', Information\ExcelError::REF(), null); $this->debugLog->writeDebugLog('Evaluated Structured Reference %s as error value %s', $token->value(), Information\ExcelError::REF()); } else { - return $this->raiseFormulaError($e->getMessage()); + return $this->raiseFormulaError($e->getMessage(), $e->getCode(), $e); } } } elseif (!is_numeric($token) && !is_object($token) && isset(self::BINARY_OPERATORS[$token])) { @@ -4793,7 +4800,7 @@ class Calculation } } } - if (strpos($operand1Data['reference'], '!') !== false) { + if (strpos($operand1Data['reference'] ?? '', '!') !== false) { [$sheet1, $operand1Data['reference']] = Worksheet::extractSheetTitle($operand1Data['reference'], true); } else { $sheet1 = ($pCellWorksheet !== null) ? $pCellWorksheet->getTitle() : ''; @@ -4830,10 +4837,21 @@ class Calculation $oData = array_merge(explode(':', $operand1Data['reference']), explode(':', $operand2Data['reference'])); $oCol = $oRow = []; + $breakNeeded = false; foreach ($oData as $oDatum) { - $oCR = Coordinate::coordinateFromString($oDatum); - $oCol[] = Coordinate::columnIndexFromString($oCR[0]) - 1; - $oRow[] = $oCR[1]; + try { + $oCR = Coordinate::coordinateFromString($oDatum); + $oCol[] = Coordinate::columnIndexFromString($oCR[0]) - 1; + $oRow[] = $oCR[1]; + } catch (\Exception $e) { + $stack->push('Error', Information\ExcelError::REF(), null); + $breakNeeded = true; + + break; + } + } + if ($breakNeeded) { + break; } $cellRef = Coordinate::stringFromColumnIndex(min($oCol) + 1) . min($oRow) . ':' . Coordinate::stringFromColumnIndex(max($oCol) + 1) . max($oRow); if ($pCellParent !== null && $this->spreadsheet !== null) { @@ -4842,8 +4860,10 @@ class Calculation return $this->raiseFormulaError('Unable to access Cell Reference'); } + $this->debugLog->writeDebugLog('Evaluation Result is %s', $this->showTypeDetails($cellValue)); $stack->push('Cell Reference', $cellValue, $cellRef); } else { + $this->debugLog->writeDebugLog('Evaluation Result is a #REF! Error'); $stack->push('Error', Information\ExcelError::REF(), null); } @@ -5434,13 +5454,13 @@ class Calculation * * @return false */ - protected function raiseFormulaError(string $errorMessage) + protected function raiseFormulaError(string $errorMessage, int $code = 0, ?Throwable $exception = null) { $this->formulaError = $errorMessage; $this->cyclicReferenceStack->clear(); $suppress = /** @scrutinizer ignore-deprecated */ $this->suppressFormulaErrors ?? $this->suppressFormulaErrorsNew; if (!$suppress) { - throw new Exception($errorMessage); + throw new Exception($errorMessage, $code, $exception); } return false; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php index 9a9870d91..1d59988c3 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/DateValue.php @@ -45,6 +45,11 @@ class DateValue return self::evaluateSingleArgumentArray([self::class, __FUNCTION__], $dateValue); } + // try to parse as date iff there is at least one digit + if (is_string($dateValue) && preg_match('/\\d/', $dateValue) !== 1) { + return ExcelError::VALUE(); + } + $dti = new DateTimeImmutable(); $baseYear = SharedDateHelper::getExcelCalendar(); $dateValue = trim($dateValue ?? '', '"'); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php index c72d006b9..5c42eac08 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/Month.php @@ -45,6 +45,7 @@ class Month } catch (Exception $e) { return $e->getMessage(); } + $dateValue = floor($dateValue); $adjustmentMonths = floor($adjustmentMonths); // Execute function @@ -88,6 +89,7 @@ class Month } catch (Exception $e) { return $e->getMessage(); } + $dateValue = floor($dateValue); $adjustmentMonths = floor($adjustmentMonths); // Execute function diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php index bb9036f78..78d67b837 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/DateTimeExcel/TimeValue.php @@ -42,6 +42,11 @@ class TimeValue return self::evaluateSingleArgumentArray([self::class, __FUNCTION__], $timeValue); } + // try to parse as time iff there is at least one digit + if (is_string($timeValue) && preg_match('/\\d/', $timeValue) !== 1) { + return ExcelError::VALUE(); + } + $timeValue = trim($timeValue ?? '', '"'); $timeValue = str_replace(['/', '.'], '-', $timeValue); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php index 3e88ece55..331fa448b 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/FormattedNumber.php @@ -48,9 +48,9 @@ class FormattedNumber */ public static function convertToNumberIfNumeric(string &$operand): bool { - $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator()); + $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator(), '/'); $value = preg_replace(['/(\d)' . $thousandsSeparator . '(\d)/u', '/([+-])\s+(\d)/u'], ['$1$2', '$1$2'], trim($operand)); - $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator()); + $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator(), '/'); $value = preg_replace(['/(\d)' . $decimalSeparator . '(\d)/u', '/([+-])\s+(\d)/u'], ['$1.$2', '$1$2'], $value ?? ''); if (is_numeric($value)) { @@ -90,9 +90,9 @@ class FormattedNumber */ public static function convertToNumberIfPercent(string &$operand): bool { - $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator()); + $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator(), '/'); $value = preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', trim($operand)); - $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator()); + $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator(), '/'); $value = preg_replace(['/(\d)' . $decimalSeparator . '(\d)/u', '/([+-])\s+(\d)/u'], ['$1.$2', '$1$2'], $value ?? ''); $match = []; @@ -116,17 +116,22 @@ class FormattedNumber public static function convertToNumberIfCurrency(string &$operand): bool { $currencyRegexp = self::currencyMatcherRegexp(); - $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator()); + $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator(), '/'); $value = preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', $operand); $match = []; if ($value !== null && preg_match($currencyRegexp, $value, $match, PREG_UNMATCHED_AS_NULL)) { //Determine the sign $sign = ($match['PrefixedSign'] ?? $match['PrefixedSign2'] ?? $match['PostfixedSign']) ?? ''; + $decimalSeparator = StringHelper::getDecimalSeparator(); //Cast to a float - $operand = (float) ($sign . ($match['PostfixedValue'] ?? $match['PrefixedValue'])); + $intermediate = (string) ($match['PostfixedValue'] ?? $match['PrefixedValue']); + $intermediate = str_replace($decimalSeparator, '.', $intermediate); + if (is_numeric($intermediate)) { + $operand = (float) ($sign . str_replace($decimalSeparator, '.', $intermediate)); - return true; + return true; + } } return false; @@ -134,8 +139,8 @@ class FormattedNumber public static function currencyMatcherRegexp(): string { - $currencyCodes = sprintf(self::CURRENCY_CONVERSION_LIST, preg_quote(StringHelper::getCurrencyCode())); - $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator()); + $currencyCodes = sprintf(self::CURRENCY_CONVERSION_LIST, preg_quote(StringHelper::getCurrencyCode(), '/')); + $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator(), '/'); return '~^(?:(?: *(?[-+])? *(?[' . $currencyCodes . ']) *(?[-+])? *(?[0-9]+[' . $decimalSeparator . ']?[0-9*]*(?:E[-+]?[0-9]*)?) *)|(?: *(?[-+])? *(?[0-9]+' . $decimalSeparator . '?[0-9]*(?:E[-+]?[0-9]*)?) *(?[' . $currencyCodes . ']) *))$~ui'; } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php index 266f1b2bb..59cc3e3d2 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engine/Operands/StructuredReference.php @@ -190,8 +190,8 @@ final class StructuredReference implements Operand { if ($columnName !== '') { $cellReference = $columnId . $cell->getRow(); - $pattern1 = '/\[' . preg_quote($columnName) . '\]/miu'; - $pattern2 = '/@' . preg_quote($columnName) . '/miu'; + $pattern1 = '/\[' . preg_quote($columnName, '/') . '\]/miu'; + $pattern2 = '/@' . preg_quote($columnName, '/') . '/miu'; if (preg_match($pattern1, $reference) === 1) { $reference = preg_replace($pattern1, $cellReference, $reference); } elseif (preg_match($pattern2, $reference) === 1) { @@ -328,7 +328,7 @@ final class StructuredReference implements Operand $cellFrom = "{$columnId}{$startRow}"; $cellTo = "{$columnId}{$endRow}"; $cellReference = ($cellFrom === $cellTo) ? $cellFrom : "{$cellFrom}:{$cellTo}"; - $pattern = '/\[' . preg_quote($columnName) . '\]/mui'; + $pattern = '/\[' . preg_quote($columnName, '/') . '\]/mui'; if (preg_match($pattern, $reference) === 1) { $columnsSelected = true; $reference = preg_replace($pattern, $cellReference, $reference); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php index e3a2bd65c..fdee7503e 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php @@ -20,28 +20,6 @@ class Engineering */ public const EULER = 2.71828182845904523536; - /** - * parseComplex. - * - * Parses a complex number into its real and imaginary parts, and an I or J suffix - * - * @deprecated 1.12.0 No longer used by internal code. Please use the \Complex\Complex class instead - * - * @param string $complexNumber The complex number - * - * @return mixed[] Indexed on "real", "imaginary" and "suffix" - */ - public static function parseComplex($complexNumber) - { - $complex = new Complex($complexNumber); - - return [ - 'real' => $complex->getReal(), - 'imaginary' => $complex->getImaginary(), - 'suffix' => $complex->getSuffix(), - ]; - } - /** * BESSELI. * diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php index 691de8b70..f7ec02d43 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/Complex.php @@ -49,7 +49,7 @@ class Complex return $e->getMessage(); } - if (($suffix == 'i') || ($suffix == 'j') || ($suffix == '')) { + if (($suffix === 'i') || ($suffix === 'j') || ($suffix === '')) { $complex = new ComplexObject($realNumber, $imaginary, $suffix); return (string) $complex; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php index 4741f3010..04bf3e506 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering/ConvertBinary.php @@ -40,7 +40,7 @@ class ConvertBinary extends ConvertBase return $e->getMessage(); } - if (strlen($value) == 10) { + if (strlen($value) == 10 && $value[0] === '1') { // Two's Complement $value = substr($value, -9); @@ -91,7 +91,7 @@ class ConvertBinary extends ConvertBase return $e->getMessage(); } - if (strlen($value) == 10) { + if (strlen($value) == 10 && $value[0] === '1') { $high2 = substr($value, 0, 2); $low8 = substr($value, 2); $xarr = ['00' => '00000000', '01' => '00000001', '10' => 'FFFFFFFE', '11' => 'FFFFFFFF']; @@ -144,7 +144,7 @@ class ConvertBinary extends ConvertBase return $e->getMessage(); } - if (strlen($value) == 10 && substr($value, 0, 1) === '1') { // Two's Complement + if (strlen($value) == 10 && $value[0] === '1') { // Two's Complement return str_repeat('7', 6) . strtoupper(decoct((int) bindec("11$value"))); } $octVal = (string) decoct((int) bindec($value)); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php index e2d27bde2..bc425f873 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/HLookup.php @@ -27,7 +27,7 @@ class HLookup extends LookupBase */ public static function lookup($lookupValue, $lookupArray, $indexNumber, $notExactMatch = true) { - if (is_array($lookupValue)) { + if (is_array($lookupValue) || is_array($indexNumber)) { return self::evaluateArrayArgumentsIgnore([self::class, __FUNCTION__], 1, $lookupValue, $lookupArray, $indexNumber, $notExactMatch); } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php index edeb1aa8c..badd10573 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/LookupRef/VLookup.php @@ -26,7 +26,7 @@ class VLookup extends LookupBase */ public static function lookup($lookupValue, $lookupArray, $indexNumber, $notExactMatch = true) { - if (is_array($lookupValue)) { + if (is_array($lookupValue) || is_array($indexNumber)) { return self::evaluateArrayArgumentsIgnore([self::class, __FUNCTION__], 1, $lookupValue, $lookupArray, $indexNumber, $notExactMatch); } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php index 1a797c8a2..56b0861c6 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/MathTrig/Sum.php @@ -66,8 +66,8 @@ class Sum $returnValue += (int) $arg; } elseif (ErrorValue::isError($arg)) { return $arg; - // ignore non-numerics from cell, but fail as literals (except null) } elseif ($arg !== null && !Functions::isCellValue($k)) { + // ignore non-numerics from cell, but fail as literals (except null) return ExcelError::VALUE(); } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php index 519607c08..24ddff2ec 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Extract.php @@ -261,7 +261,7 @@ class Extract $delimiter = Functions::flattenArray($delimiter); $quotedDelimiters = array_map( function ($delimiter) { - return preg_quote($delimiter ?? ''); + return preg_quote($delimiter ?? '', '/'); }, $delimiter ); @@ -270,7 +270,7 @@ class Extract return '(' . $delimiters . ')'; } - return '(' . preg_quote($delimiter ?? '') . ')'; + return '(' . preg_quote($delimiter ?? '', '/') . ')'; } private static function matchFlags(int $matchMode): string diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php index 93e728202..57d331663 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Format.php @@ -129,7 +129,7 @@ class Format $format = Helpers::extractString($format); if (!is_numeric($value) && Date::isDateTimeFormatCode($format)) { - $value = DateTimeExcel\DateValue::fromString($value); + $value = DateTimeExcel\DateValue::fromString($value) + DateTimeExcel\TimeValue::fromString($value); } return (string) NumberFormat::toFormattedString($value, $format); @@ -140,7 +140,7 @@ class Format * * @return mixed */ - private static function convertValue($value) + private static function convertValue($value, bool $spacesMeanZero = false) { $value = $value ?? 0; if (is_bool($value)) { @@ -150,6 +150,12 @@ class Format throw new CalcExp(ExcelError::VALUE()); } } + if (is_string($value)) { + $value = trim($value); + if ($spacesMeanZero && $value === '') { + $value = 0; + } + } return $value; } @@ -181,6 +187,9 @@ class Format '', trim($value, " \t\n\r\0\x0B" . StringHelper::getCurrencyCode()) ); + if ($numberValue === '') { + return ExcelError::VALUE(); + } if (is_numeric($numberValue)) { return (float) $numberValue; } @@ -277,7 +286,7 @@ class Format } try { - $value = self::convertValue($value); + $value = self::convertValue($value, true); $decimalSeparator = self::getDecimalSeparator($decimalSeparator); $groupSeparator = self::getGroupSeparator($groupSeparator); } catch (CalcExp $e) { @@ -285,12 +294,12 @@ class Format } if (!is_numeric($value)) { - $decimalPositions = preg_match_all('/' . preg_quote($decimalSeparator) . '/', $value, $matches, PREG_OFFSET_CAPTURE); + $decimalPositions = preg_match_all('/' . preg_quote($decimalSeparator, '/') . '/', $value, $matches, PREG_OFFSET_CAPTURE); if ($decimalPositions > 1) { return ExcelError::VALUE(); } - $decimalOffset = array_pop($matches[0])[1]; // @phpstan-ignore-line - if (strpos($value, $groupSeparator, $decimalOffset) !== false) { + $decimalOffset = array_pop($matches[0])[1] ?? null; + if ($decimalOffset === null || strpos($value, $groupSeparator, $decimalOffset) !== false) { return ExcelError::VALUE(); } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php index 8e6a575a2..b8a730767 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/TextData/Text.php @@ -193,7 +193,7 @@ class Text if (is_array($delimiter) && count($valueSet) > 1) { $quotedDelimiters = array_map( function ($delimiter) { - return preg_quote($delimiter ?? ''); + return preg_quote($delimiter ?? '', '/'); }, $valueSet ); @@ -202,7 +202,7 @@ class Text return '(' . $delimiters . ')'; } - return '(' . preg_quote(/** @scrutinizer ignore-type */ Functions::flattenSingleValue($delimiter)) . ')'; + return '(' . preg_quote(/** @scrutinizer ignore-type */ Functions::flattenSingleValue($delimiter), '/') . ')'; } private static function matchFlags(bool $matchMode): string diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php index 1bf73ba82..c0fb38775 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php @@ -51,8 +51,9 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder return $this->setImproperFraction($matches, $cell); } - $decimalSeparator = preg_quote(StringHelper::getDecimalSeparator()); - $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator()); + $decimalSeparatorNoPreg = StringHelper::getDecimalSeparator(); + $decimalSeparator = preg_quote($decimalSeparatorNoPreg, '/'); + $thousandsSeparator = preg_quote(StringHelper::getThousandsSeparator(), '/'); // Check for percentage if (preg_match('/^\-?\d*' . $decimalSeparator . '?\d*\s?\%$/', preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', $value))) { @@ -64,7 +65,7 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder // Convert value to number $sign = ($matches['PrefixedSign'] ?? $matches['PrefixedSign2'] ?? $matches['PostfixedSign']) ?? null; $currencyCode = $matches['PrefixedCurrency'] ?? $matches['PostfixedCurrency']; - $value = (float) ($sign . trim(str_replace([$decimalSeparator, $currencyCode, ' ', '-'], ['.', '', '', ''], preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', $value)))); // @phpstan-ignore-line + $value = (float) ($sign . trim(str_replace([$decimalSeparatorNoPreg, $currencyCode, ' ', '-'], ['.', '', '', ''], preg_replace('/(\d)' . $thousandsSeparator . '(\d)/u', '$1$2', $value)))); // @phpstan-ignore-line return $this->setCurrency($value, $cell, $currencyCode); // @phpstan-ignore-line } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php index a53294e53..e9e41d7c7 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Cell.php @@ -71,6 +71,9 @@ class Cell */ private $formulaAttributes; + /** @var IgnoredErrors */ + private $ignoredErrors; + /** * Update the cell into the cell collection. * @@ -119,6 +122,7 @@ class Cell } elseif (self::getValueBinder()->bindValue($this, $value) === false) { throw new Exception('Value could not be bound to cell.'); } + $this->ignoredErrors = new IgnoredErrors(); } /** @@ -391,7 +395,9 @@ class Cell } throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception( - $this->getWorksheet()->getTitle() . '!' . $this->getCoordinate() . ' -> ' . $ex->getMessage() + $this->getWorksheet()->getTitle() . '!' . $this->getCoordinate() . ' -> ' . $ex->getMessage(), + $ex->getCode(), + $ex ); } @@ -794,4 +800,9 @@ class Cell { return (string) $this->getValue(); } + + public function getIgnoredErrors(): IgnoredErrors + { + return $this->ignoredErrors; + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php index 0e395a7ff..692f316ec 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/DataValidator.php @@ -20,7 +20,7 @@ class DataValidator */ public function isValid(Cell $cell) { - if (!$cell->hasDataValidation()) { + if (!$cell->hasDataValidation() || $cell->getDataValidation()->getType() === DataValidation::TYPE_NONE) { return true; } @@ -31,13 +31,55 @@ class DataValidator return false; } - // TODO: write check on all cases - switch ($dataValidation->getType()) { - case DataValidation::TYPE_LIST: - return $this->isValueInList($cell); + $returnValue = false; + $type = $dataValidation->getType(); + if ($type === DataValidation::TYPE_LIST) { + $returnValue = $this->isValueInList($cell); + } elseif ($type === DataValidation::TYPE_WHOLE) { + if (!is_numeric($cellValue) || fmod((float) $cellValue, 1) != 0) { + $returnValue = false; + } else { + $returnValue = $this->numericOperator($dataValidation, (int) $cellValue); + } + } elseif ($type === DataValidation::TYPE_DECIMAL || $type === DataValidation::TYPE_DATE || $type === DataValidation::TYPE_TIME) { + if (!is_numeric($cellValue)) { + $returnValue = false; + } else { + $returnValue = $this->numericOperator($dataValidation, (float) $cellValue); + } + } elseif ($type === DataValidation::TYPE_TEXTLENGTH) { + $returnValue = $this->numericOperator($dataValidation, mb_strlen((string) $cellValue)); } - return false; + return $returnValue; + } + + /** @param float|int $cellValue */ + private function numericOperator(DataValidation $dataValidation, $cellValue): bool + { + $operator = $dataValidation->getOperator(); + $formula1 = $dataValidation->getFormula1(); + $formula2 = $dataValidation->getFormula2(); + $returnValue = false; + if ($operator === DataValidation::OPERATOR_BETWEEN) { + $returnValue = $cellValue >= $formula1 && $cellValue <= $formula2; + } elseif ($operator === DataValidation::OPERATOR_NOTBETWEEN) { + $returnValue = $cellValue < $formula1 || $cellValue > $formula2; + } elseif ($operator === DataValidation::OPERATOR_EQUAL) { + $returnValue = $cellValue == $formula1; + } elseif ($operator === DataValidation::OPERATOR_NOTEQUAL) { + $returnValue = $cellValue != $formula1; + } elseif ($operator === DataValidation::OPERATOR_LESSTHAN) { + $returnValue = $cellValue < $formula1; + } elseif ($operator === DataValidation::OPERATOR_LESSTHANOREQUAL) { + $returnValue = $cellValue <= $formula1; + } elseif ($operator === DataValidation::OPERATOR_GREATERTHAN) { + $returnValue = $cellValue > $formula1; + } elseif ($operator === DataValidation::OPERATOR_GREATERTHANOREQUAL) { + $returnValue = $cellValue >= $formula1; + } + + return $returnValue; } /** diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/IgnoredErrors.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/IgnoredErrors.php new file mode 100644 index 000000000..ee4b51562 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/IgnoredErrors.php @@ -0,0 +1,66 @@ +numberStoredAsText = $value; + + return $this; + } + + public function getNumberStoredAsText(): bool + { + return $this->numberStoredAsText; + } + + public function setFormula(bool $value): self + { + $this->formula = $value; + + return $this; + } + + public function getFormula(): bool + { + return $this->formula; + } + + public function setTwoDigitTextYear(bool $value): self + { + $this->twoDigitTextYear = $value; + + return $this; + } + + public function getTwoDigitTextYear(): bool + { + return $this->twoDigitTextYear; + } + + public function setEvalError(bool $value): self + { + $this->evalError = $value; + + return $this; + } + + public function getEvalError(): bool + { + return $this->evalError; + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php index 24694d5c6..0e164543b 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/CellReferenceHelper.php @@ -118,7 +118,7 @@ class CellReferenceHelper { $newColumn = Coordinate::stringFromColumnIndex(min($newColumnIndex + $this->numberOfColumns, AddressRange::MAX_COLUMN_INT)); - return $absoluteColumn . $newColumn; + return "{$absoluteColumn}{$newColumn}"; } protected function updateRowReference(int $newRowIndex, string $absoluteRow): string @@ -126,6 +126,6 @@ class CellReferenceHelper $newRow = $newRowIndex + $this->numberOfRows; $newRow = ($newRow > AddressRange::MAX_ROW) ? AddressRange::MAX_ROW : $newRow; - return $absoluteRow . (string) $newRow; + return "{$absoluteRow}{$newRow}"; } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php index ade7b99d8..3d4813468 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Axis.php @@ -52,6 +52,9 @@ class Axis extends Properties /** @var string */ private $axisType = ''; + /** @var ?AxisText */ + private $axisText; + /** * Axis Options. * @@ -88,6 +91,9 @@ class Axis extends Properties Properties::FORMAT_CODE_DATE_ISO8601, ]; + /** @var bool */ + private $noFill = false; + /** * Get Series Data Type. * @@ -183,6 +189,14 @@ class Axis extends Properties */ public function getAxisOptionsProperty($property) { + if ($property === 'textRotation') { + if ($this->axisText !== null) { + if ($this->axisText->getRotation() !== null) { + return (string) $this->axisText->getRotation(); + } + } + } + return $this->axisOptions[$property]; } @@ -295,4 +309,28 @@ class Axis extends Properties return $this; } + + public function getAxisText(): ?AxisText + { + return $this->axisText; + } + + public function setAxisText(?AxisText $axisText): self + { + $this->axisText = $axisText; + + return $this; + } + + public function setNoFill(bool $noFill): self + { + $this->noFill = $noFill; + + return $this; + } + + public function getNoFill(): bool + { + return $this->noFill; + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/AxisText.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/AxisText.php new file mode 100644 index 000000000..cd9ba2ce2 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/AxisText.php @@ -0,0 +1,56 @@ +font = new Font(); + $this->font->setSize(null, true); + } + + public function setRotation(?int $rotation): self + { + $this->rotation = $rotation; + + return $this; + } + + public function getRotation(): ?int + { + return $this->rotation; + } + + public function getFillColorObject(): ChartColor + { + $fillColor = $this->font->getChartColor(); + if ($fillColor === null) { + $fillColor = new ChartColor(); + $this->font->setChartColorFromObject($fillColor); + } + + return $fillColor; + } + + public function getFont(): Font + { + return $this->font; + } + + public function setFont(Font $font): self + { + $this->font = $font; + + return $this; + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php index 2ff22a344..38c69a463 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Chart.php @@ -150,6 +150,12 @@ class Chart /** @var bool */ private $roundedCorners = false; + /** @var GridLines */ + private $borderLines; + + /** @var ChartColor */ + private $fillColor; + /** * Create a new Chart. * majorGridlines and minorGridlines are deprecated, moved to Axis. @@ -176,6 +182,8 @@ class Chart if ($minorGridlines !== null) { $this->yAxis->setMinorGridlines($minorGridlines); } + $this->fillColor = new ChartColor(); + $this->borderLines = new GridLines(); } /** @@ -786,4 +794,21 @@ class Chart return $this; } + + public function getBorderLines(): GridLines + { + return $this->borderLines; + } + + public function setBorderLines(GridLines $borderLines): self + { + $this->borderLines = $borderLines; + + return $this; + } + + public function getFillColor(): ChartColor + { + return $this->fillColor; + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php index 0018d79d7..ac36c25c9 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Layout.php @@ -2,6 +2,8 @@ namespace PhpOffice\PhpSpreadsheet\Chart; +use PhpOffice\PhpSpreadsheet\Style\Font; + class Layout { /** @@ -127,8 +129,11 @@ class Layout /** @var ?ChartColor */ private $labelBorderColor; - /** @var ?ChartColor */ - private $labelFontColor; + /** @var ?Font */ + private $labelFont; + + /** @var Properties */ + private $labelEffects; /** * Create a new Layout. @@ -172,7 +177,18 @@ class Layout $this->initBoolean($layout, 'numFmtLinked'); $this->initColor($layout, 'labelFillColor'); $this->initColor($layout, 'labelBorderColor'); - $this->initColor($layout, 'labelFontColor'); + $labelFont = $layout['labelFont'] ?? null; + if ($labelFont instanceof Font) { + $this->labelFont = $labelFont; + } + $labelFontColor = $layout['labelFontColor'] ?? null; + if ($labelFontColor instanceof ChartColor) { + $this->setLabelFontColor($labelFontColor); + } + $labelEffects = $layout['labelEffects'] ?? null; + if ($labelEffects instanceof Properties) { + $this->labelEffects = $labelEffects; + } } private function initBoolean(array $layout, string $name): void @@ -493,14 +509,32 @@ class Layout return $this; } + public function getLabelFont(): ?Font + { + return $this->labelFont; + } + + public function getLabelEffects(): ?Properties + { + return $this->labelEffects; + } + public function getLabelFontColor(): ?ChartColor { - return $this->labelFontColor; + if ($this->labelFont === null) { + return null; + } + + return $this->labelFont->getChartColor(); } public function setLabelFontColor(?ChartColor $chartColor): self { - $this->labelFontColor = $chartColor; + if ($this->labelFont === null) { + $this->labelFont = new Font(); + $this->labelFont->setSize(null, true); + } + $this->labelFont->setChartColorFromObject($chartColor); return $this; } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php index edd87015a..04040aed6 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php @@ -48,6 +48,15 @@ class Legend */ private $layout; + /** @var GridLines */ + private $borderLines; + + /** @var ChartColor */ + private $fillColor; + + /** @var ?AxisText */ + private $legendText; + /** * Create a new Legend. * @@ -60,6 +69,13 @@ class Legend $this->setPosition($position); $this->layout = $layout; $this->setOverlay($overlay); + $this->borderLines = new GridLines(); + $this->fillColor = new ChartColor(); + } + + public function getFillColor(): ChartColor + { + return $this->fillColor; } /** @@ -148,4 +164,28 @@ class Legend { return $this->layout; } + + public function getLegendText(): ?AxisText + { + return $this->legendText; + } + + public function setLegendText(?AxisText $legendText): self + { + $this->legendText = $legendText; + + return $this; + } + + public function getBorderLines(): GridLines + { + return $this->borderLines; + } + + public function setBorderLines(GridLines $borderLines): self + { + $this->borderLines = $borderLines; + + return $this; + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php index ccde4bb2a..2b78d9a4e 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/PlotArea.php @@ -163,4 +163,49 @@ class PlotArea { return $this->gradientFillStops; } + + /** @var ?int */ + private $gapWidth; + + /** @var bool */ + private $useUpBars = false; + + /** @var bool */ + private $useDownBars = false; + + public function getGapWidth(): ?int + { + return $this->gapWidth; + } + + public function setGapWidth(?int $gapWidth): self + { + $this->gapWidth = $gapWidth; + + return $this; + } + + public function getUseUpBars(): bool + { + return $this->useUpBars; + } + + public function setUseUpBars(bool $useUpBars): self + { + $this->useUpBars = $useUpBars; + + return $this; + } + + public function getUseDownBars(): bool + { + return $this->useDownBars; + } + + public function setUseDownBars(bool $useDownBars): self + { + $this->useDownBars = $useDownBars; + + return $this; + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php index cb9b544b8..d676f1d33 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraphRendererBase.php @@ -434,12 +434,33 @@ abstract class JpGraphRendererBase implements IRenderer // Loop through each data series in turn for ($i = 0; $i < $seriesCount; ++$i) { - $dataValuesY = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues(); + $plotCategoryByIndex = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i); + if ($plotCategoryByIndex === false) { + $plotCategoryByIndex = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0); + } + $dataValuesY = $plotCategoryByIndex->getDataValues(); $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues(); - foreach ($dataValuesY as $k => $dataValueY) { - $dataValuesY[$k] = $k; + $redoDataValuesY = true; + if ($bubble) { + if (!$bubbleSize) { + $bubbleSize = '10'; + } + $redoDataValuesY = false; + foreach ($dataValuesY as $dataValueY) { + if (!is_int($dataValueY) && !is_float($dataValueY)) { + $redoDataValuesY = true; + + break; + } + } } + if ($redoDataValuesY) { + foreach ($dataValuesY as $k => $dataValueY) { + $dataValuesY[$k] = $k; + } + } + //var_dump($dataValuesY, $dataValuesX, $bubbleSize); $seriesPlot = new ScatterPlot($dataValuesX, $dataValuesY); if ($scatterStyle == 'lineMarker') { @@ -483,7 +504,7 @@ abstract class JpGraphRendererBase implements IRenderer $dataValues = []; foreach ($dataValuesY as $k => $dataValueY) { - $dataValues[$k] = implode(' ', array_reverse($dataValueY)); + $dataValues[$k] = is_array($dataValueY) ? implode(' ', array_reverse($dataValueY)) : $dataValueY; } $tmp = array_shift($dataValues); $dataValues[] = $tmp; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php index e1f0f90ad..b5e70d3a1 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/MtJpGraphRenderer.php @@ -3,12 +3,12 @@ namespace PhpOffice\PhpSpreadsheet\Chart\Renderer; /** - * Jpgraph is not oficially maintained in Composer. + * Jpgraph is not officially maintained by Composer at packagist.org. * * This renderer implementation uses package * https://packagist.org/packages/mitoteam/jpgraph * - * This package is up to date for August 2022 and has PHP 8.1 support. + * This package is up to date for June 2023 and has PHP 8.2 support. */ class MtJpGraphRenderer extends JpGraphRendererBase { @@ -29,7 +29,7 @@ class MtJpGraphRenderer extends JpGraphRendererBase 'regstat', 'scatter', 'stock', - ]); + ], true); // enable Extended mode $loaded = true; } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php index afdeea996..302afee79 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Document/Properties.php @@ -107,6 +107,8 @@ class Properties */ private $customProperties = []; + private string $hyperlinkBase = ''; + /** * Create a new Document Properties instance. */ @@ -434,7 +436,7 @@ class Properties * * @param mixed $propertyValue * @param string $propertyType - * 'i' : Integer + * 'i' : Integer * 'f' : Floating Point * 's' : String * 'd' : Date/Time @@ -534,4 +536,16 @@ class Properties { return self::PROPERTY_TYPE_ARRAY[$propertyType] ?? self::PROPERTY_TYPE_UNKNOWN; } + + public function getHyperlinkBase(): string + { + return $this->hyperlinkBase; + } + + public function setHyperlinkBase(string $hyperlinkBase): self + { + $this->hyperlinkBase = $hyperlinkBase; + + return $this; + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Downloader.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Downloader.php new file mode 100644 index 000000000..e66ae4258 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Downloader.php @@ -0,0 +1,89 @@ + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xls' => 'application/vnd.ms-excel', + 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', + 'csv' => 'text/csv', + 'html' => 'text/html', + 'pdf' => 'application/pdf', + ]; + + public function __construct(string $folder, string $filename, ?string $filetype = null) + { + if ((is_dir($folder) === false) || (is_readable($folder) === false)) { + throw new Exception("Folder {$folder} is not accessable"); + } + $filepath = "{$folder}/{$filename}"; + $this->filepath = (string) realpath($filepath); + $this->filename = basename($filepath); + if ((file_exists($this->filepath) === false) || (is_readable($this->filepath) === false)) { + throw new Exception("{$this->filename} not found, or cannot be read"); + } + + $filetype ??= pathinfo($filename, PATHINFO_EXTENSION); + if (array_key_exists(strtolower($filetype), self::CONTENT_TYPES) === false) { + throw new Exception("Invalid filetype: {$filetype} cannot be downloaded"); + } + $this->filetype = strtolower($filetype); + } + + public function download(): void + { + $this->headers(); + + readfile($this->filepath); + } + + public function headers(): void + { + ob_clean(); + + $this->contentType(); + $this->contentDisposition(); + $this->cacheHeaders(); + $this->fileSize(); + + flush(); + } + + protected function contentType(): void + { + header('Content-Type: ' . self::CONTENT_TYPES[$this->filetype]); + } + + protected function contentDisposition(): void + { + header('Content-Disposition: attachment;filename="' . $this->filename . '"'); + } + + protected function cacheHeaders(): void + { + header('Cache-Control: max-age=0'); + // If you're serving to IE 9, then the following may be needed + header('Cache-Control: max-age=1'); + + // If you're serving to IE over SSL, then the following may be needed + header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past + header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified + header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 + header('Pragma: public'); // HTTP/1.0 + } + + protected function fileSize(): void + { + header('Content-Length: ' . filesize($this->filepath)); + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Handler.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Handler.php new file mode 100644 index 000000000..d05197cef --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Handler.php @@ -0,0 +1,46 @@ +attributes; if ($attrs !== null) { @@ -737,72 +737,72 @@ class Html } } - private function endFontTag(): void + protected function endFontTag(): void { $this->face = $this->size = $this->color = null; } - private function startBoldTag(): void + protected function startBoldTag(): void { $this->bold = true; } - private function endBoldTag(): void + protected function endBoldTag(): void { $this->bold = false; } - private function startItalicTag(): void + protected function startItalicTag(): void { $this->italic = true; } - private function endItalicTag(): void + protected function endItalicTag(): void { $this->italic = false; } - private function startUnderlineTag(): void + protected function startUnderlineTag(): void { $this->underline = true; } - private function endUnderlineTag(): void + protected function endUnderlineTag(): void { $this->underline = false; } - private function startSubscriptTag(): void + protected function startSubscriptTag(): void { $this->subscript = true; } - private function endSubscriptTag(): void + protected function endSubscriptTag(): void { $this->subscript = false; } - private function startSuperscriptTag(): void + protected function startSuperscriptTag(): void { $this->superscript = true; } - private function endSuperscriptTag(): void + protected function endSuperscriptTag(): void { $this->superscript = false; } - private function startStrikethruTag(): void + protected function startStrikethruTag(): void { $this->strikethrough = true; } - private function endStrikethruTag(): void + protected function endStrikethruTag(): void { $this->strikethrough = false; } - private function breakTag(): void + protected function breakTag(): void { $this->stringData .= "\n"; } @@ -826,8 +826,9 @@ class Html if (isset($callbacks[$callbackTag])) { $elementHandler = $callbacks[$callbackTag]; if (method_exists($this, $elementHandler)) { - /** @phpstan-ignore-next-line */ - call_user_func([$this, $elementHandler], $element); + /** @var callable */ + $callable = [$this, $elementHandler]; + call_user_func($callable, $element); } } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php index 5ca546e07..6244375fe 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/Sample.php @@ -2,7 +2,9 @@ namespace PhpOffice\PhpSpreadsheet\Helper; +use PhpOffice\PhpSpreadsheet\Chart\Chart; use PhpOffice\PhpSpreadsheet\IOFactory; +use PhpOffice\PhpSpreadsheet\Settings; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use PhpOffice\PhpSpreadsheet\Writer\IWriter; @@ -12,6 +14,7 @@ use RecursiveRegexIterator; use ReflectionClass; use RegexIterator; use RuntimeException; +use Throwable; /** * Helper class to be used in sample code. @@ -120,7 +123,7 @@ class Sample * @param string $filename * @param string[] $writers */ - public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xlsx', 'Xls']): void + public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xlsx', 'Xls'], bool $withCharts = false, ?callable $writerCallback = null): void { // Set active sheet index to the first sheet, so Excel opens this as the first sheet $spreadsheet->setActiveSheetIndex(0); @@ -129,9 +132,16 @@ class Sample foreach ($writers as $writerType) { $path = $this->getFilename($filename, mb_strtolower($writerType)); $writer = IOFactory::createWriter($spreadsheet, $writerType); + $writer->setIncludeCharts($withCharts); + if ($writerCallback !== null) { + $writerCallback($writer); + } $callStartTime = microtime(true); $writer->save($path); $this->logWrite($writer, $path, /** @scrutinizer ignore-type */ $callStartTime); + if ($this->isCli() === false) { + echo 'Download ' . basename($path) . '
'; + } } $this->logEndingNotes(); @@ -147,7 +157,7 @@ class Sample * * @return string */ - private function getTemporaryFolder() + public function getTemporaryFolder() { $tempFolder = sys_get_temp_dir() . '/phpspreadsheet'; if (!$this->isDirOrMkdir($tempFolder)) { @@ -162,10 +172,8 @@ class Sample * * @param string $filename * @param string $extension - * - * @return string */ - public function getFilename($filename, $extension = 'xlsx') + public function getFilename($filename, $extension = 'xlsx'): string { $originalExtension = pathinfo($filename, PATHINFO_EXTENSION); @@ -195,7 +203,29 @@ class Sample public function log(string $message): void { $eol = $this->isCli() ? PHP_EOL : '
'; - echo date('H:i:s ') . $message . $eol; + echo($this->isCli() ? date('H:i:s ') : '') . $message . $eol; + } + + public function renderChart(Chart $chart, string $fileName): void + { + if ($this->isCli() === true) { + return; + } + + Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); + + $fileName = $this->getFilename($fileName, 'png'); + + try { + $chart->render($fileName); + $this->log('Rendered image: ' . $fileName); + $imageData = file_get_contents($fileName); + if ($imageData !== false) { + echo '
'; + } + } catch (Throwable $e) { + $this->log('Error rendering chart: ' . $e->getMessage() . PHP_EOL); + } } public function titles(string $category, string $functionName, ?string $description = null): void @@ -246,7 +276,10 @@ class Sample $callTime = $callEndTime - $callStartTime; $reflection = new ReflectionClass($writer); $format = $reflection->getShortName(); - $message = "Write {$format} format to {$path} in " . sprintf('%.4f', $callTime) . ' seconds'; + + $message = ($this->isCli() === true) + ? "Write {$format} format to {$path} in " . sprintf('%.4f', $callTime) . ' seconds' + : "Write {$format} format to {$path} in " . sprintf('%.4f', $callTime) . ' seconds'; $this->log($message); } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php index ed146a55d..3a4a98f02 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Helper/TextGrid.php @@ -48,17 +48,17 @@ class TextGrid public function render(): string { - $this->gridDisplay = $this->isCli ? '' : ''; + $this->gridDisplay = $this->isCli ? '' : '
';
 
         $maxRow = max($this->rows);
-        $maxRowLength = strlen((string) $maxRow) + 1;
+        $maxRowLength = mb_strlen((string) $maxRow) + 1;
         $columnWidths = $this->getColumnWidths();
 
         $this->renderColumnHeader($maxRowLength, $columnWidths);
         $this->renderRows($maxRowLength, $columnWidths);
         $this->renderFooter($maxRowLength, $columnWidths);
 
-        $this->gridDisplay .= $this->isCli ? '' : '';
+        $this->gridDisplay .= $this->isCli ? '' : '
'; return $this->gridDisplay; } @@ -75,9 +75,9 @@ class TextGrid private function renderCells(array $rowData, array $columnWidths): void { foreach ($rowData as $column => $cell) { - $cell = ($this->isCli) ? (string) $cell : htmlentities((string) $cell); + $displayCell = ($this->isCli) ? (string) $cell : htmlentities((string) $cell); $this->gridDisplay .= '| '; - $this->gridDisplay .= str_pad($cell, $columnWidths[$column] + 1, ' '); + $this->gridDisplay .= $displayCell . str_repeat(' ', $columnWidths[$column] - mb_strlen($cell ?? '') + 1); } } @@ -126,12 +126,12 @@ class TextGrid foreach ($columnData as $columnValue) { if (is_string($columnValue)) { - $columnWidth = max($columnWidth, strlen($columnValue)); + $columnWidth = max($columnWidth, mb_strlen($columnValue)); } elseif (is_bool($columnValue)) { - $columnWidth = max($columnWidth, strlen($columnValue ? 'TRUE' : 'FALSE')); + $columnWidth = max($columnWidth, mb_strlen($columnValue ? 'TRUE' : 'FALSE')); } - $columnWidth = max($columnWidth, strlen((string) $columnWidth)); + $columnWidth = max($columnWidth, mb_strlen((string) $columnWidth)); } return $columnWidth; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php index 174553225..99e4d6ad6 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -80,17 +80,15 @@ class Gnumeric extends BaseReader */ public function canRead(string $filename): bool { - // Check if gzlib functions are available - if (File::testFileNoThrow($filename) && function_exists('gzread')) { - // Read signature data (first 3 bytes) - $fh = fopen($filename, 'rb'); - if ($fh !== false) { - $data = fread($fh, 2); - fclose($fh); + $data = null; + if (File::testFileNoThrow($filename)) { + $data = $this->gzfileGetContents($filename); + if (strpos($data, self::NAMESPACE_GNM) === false) { + $data = ''; } } - return isset($data) && $data === chr(0x1F) . chr(0x8B); + return !empty($data); } private static function matchXml(XMLReader $xml, string $expectedLocalName): bool @@ -110,9 +108,13 @@ class Gnumeric extends BaseReader public function listWorksheetNames($filename) { File::assertFile($filename); + if (!$this->canRead($filename)) { + throw new Exception($filename . ' is an invalid Gnumeric file.'); + } $xml = new XMLReader(); - $xml->xml($this->getSecurityScannerOrThrow()->scanFile('compress.zlib://' . realpath($filename)), null, Settings::getLibXmlLoaderOptions()); + $contents = $this->gzfileGetContents($filename); + $xml->xml($contents, null, Settings::getLibXmlLoaderOptions()); $xml->setParserProperty(2, true); $worksheetNames = []; @@ -139,9 +141,13 @@ class Gnumeric extends BaseReader public function listWorksheetInfo($filename) { File::assertFile($filename); + if (!$this->canRead($filename)) { + throw new Exception($filename . ' is an invalid Gnumeric file.'); + } $xml = new XMLReader(); - $xml->xml($this->getSecurityScannerOrThrow()->scanFile('compress.zlib://' . realpath($filename)), null, Settings::getLibXmlLoaderOptions()); + $contents = $this->gzfileGetContents($filename); + $xml->xml($contents, null, Settings::getLibXmlLoaderOptions()); $xml->setParserProperty(2, true); $worksheetInfo = []; @@ -185,13 +191,23 @@ class Gnumeric extends BaseReader */ private function gzfileGetContents($filename) { - $file = @gzopen($filename, 'rb'); $data = ''; - if ($file !== false) { - while (!gzeof($file)) { - $data .= gzread($file, 1024); + $contents = @file_get_contents($filename); + if ($contents !== false) { + if (substr($contents, 0, 2) === "\x1f\x8b") { + // Check if gzlib functions are available + if (function_exists('gzdecode')) { + $contents = @gzdecode($contents); + if ($contents !== false) { + $data = $contents; + } + } + } else { + $data = $contents; } - gzclose($file); + } + if ($data !== '') { + $data = $this->getSecurityScannerOrThrow()->scan($data); } return $data; @@ -245,10 +261,13 @@ class Gnumeric extends BaseReader { $this->spreadsheet = $spreadsheet; File::assertFile($filename); + if (!$this->canRead($filename)) { + throw new Exception($filename . ' is an invalid Gnumeric file.'); + } $gFileData = $this->gzfileGetContents($filename); - $xml2 = simplexml_load_string($this->getSecurityScannerOrThrow()->scan($gFileData), 'SimpleXMLElement', Settings::getLibXmlLoaderOptions()); + $xml2 = simplexml_load_string($gFileData, 'SimpleXMLElement', Settings::getLibXmlLoaderOptions()); $xml = self::testSimpleXml($xml2); $gnmXML = $xml->children(self::NAMESPACE_GNM); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php index b165b6c17..bfb52401a 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Html.php @@ -7,6 +7,8 @@ use DOMElement; use DOMNode; use DOMText; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; +use PhpOffice\PhpSpreadsheet\Cell\DataType; +use PhpOffice\PhpSpreadsheet\Document\Properties; use PhpOffice\PhpSpreadsheet\Helper\Dimension as CssDimension; use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -283,15 +285,35 @@ class Html extends BaseReader * @param int|string $row * @param mixed $cellContent */ - protected function flushCell(Worksheet $sheet, $column, $row, &$cellContent): void + protected function flushCell(Worksheet $sheet, $column, $row, &$cellContent, array $attributeArray): void { if (is_string($cellContent)) { // Simple String content if (trim($cellContent) > '') { // Only actually write it if there's content in the string // Write to worksheet to be done here... - // ... we return the cell so we can mess about with styles more easily - $sheet->setCellValue($column . $row, $cellContent); + // ... we return the cell, so we can mess about with styles more easily + + // Set cell value explicitly if there is data-type attribute + if (isset($attributeArray['data-type'])) { + $datatype = $attributeArray['data-type']; + if (in_array($datatype, [DataType::TYPE_STRING, DataType::TYPE_STRING2, DataType::TYPE_INLINE])) { + //Prevent to Excel treat string with beginning equal sign or convert big numbers to scientific number + if (substr($cellContent, 0, 1) === '=') { + $sheet->getCell($column . $row) + ->getStyle() + ->setQuotePrefix(true); + } + } + //catching the Exception and ignoring the invalid data types + try { + $sheet->setCellValueExplicit($column . $row, $cellContent, $attributeArray['data-type']); + } catch (\PhpOffice\PhpSpreadsheet\Exception $exception) { + $sheet->setCellValue($column . $row, $cellContent); + } + } else { + $sheet->setCellValue($column . $row, $cellContent); + } $this->dataArray[$row][$column] = $cellContent; } } else { @@ -305,7 +327,7 @@ class Html extends BaseReader private function processDomElementBody(Worksheet $sheet, int &$row, string &$column, string &$cellContent, DOMElement $child): void { $attributeArray = []; - foreach (($child->attributes ?? []) as $attribute) { + foreach ($child->attributes as $attribute) { $attributeArray[$attribute->name] = $attribute->value; } @@ -355,7 +377,7 @@ class Html extends BaseReader private function processDomElementHr(Worksheet $sheet, int &$row, string &$column, string &$cellContent, DOMElement $child, array &$attributeArray): void { if ($child->nodeName === 'hr') { - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); ++$row; if (isset($this->formats[$child->nodeName])) { $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]); @@ -375,7 +397,7 @@ class Html extends BaseReader $sheet->getStyle($column . $row)->getAlignment()->setWrapText(true); } else { // Otherwise flush our existing content and move the row cursor on - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); ++$row; } } else { @@ -421,11 +443,11 @@ class Html extends BaseReader $this->processDomElement($child, $sheet, $row, $column, $cellContent); } else { if ($cellContent > '') { - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); ++$row; } $this->processDomElement($child, $sheet, $row, $column, $cellContent); - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); if (isset($this->formats[$child->nodeName])) { $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]); @@ -448,11 +470,11 @@ class Html extends BaseReader $this->processDomElement($child, $sheet, $row, $column, $cellContent); } else { if ($cellContent > '') { - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); } ++$row; $this->processDomElement($child, $sheet, $row, $column, $cellContent); - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); $column = 'A'; } } else { @@ -469,10 +491,13 @@ class Html extends BaseReader } } + private string $currentColumn = 'A'; + private function processDomElementTable(Worksheet $sheet, int &$row, string &$column, string &$cellContent, DOMElement $child, array &$attributeArray): void { if ($child->nodeName === 'table') { - $this->flushCell($sheet, $column, $row, $cellContent); + $this->currentColumn = 'A'; + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); $column = $this->setTableStartColumn($column); if ($this->tableLevel > 1 && $row > 1) { --$row; @@ -491,7 +516,10 @@ class Html extends BaseReader private function processDomElementTr(Worksheet $sheet, int &$row, string &$column, string &$cellContent, DOMElement $child, array &$attributeArray): void { - if ($child->nodeName === 'tr') { + if ($child->nodeName === 'col') { + $this->applyInlineStyle($sheet, -1, $this->currentColumn, $attributeArray); + ++$this->currentColumn; + } elseif ($child->nodeName === 'tr') { $column = $this->getTableStartColumn(); $cellContent = ''; $this->processDomElement($child, $sheet, $row, $column, $cellContent); @@ -574,7 +602,7 @@ class Html extends BaseReader // apply inline style $this->applyInlineStyle($sheet, $row, $column, $attributeArray); - $this->flushCell($sheet, $column, $row, $cellContent); + $this->flushCell($sheet, $column, $row, $cellContent, $attributeArray); $this->processDomElementBgcolor($sheet, $row, $column, $attributeArray); $this->processDomElementWidth($sheet, $column, $attributeArray); @@ -664,10 +692,94 @@ class Html extends BaseReader if ($loaded === false) { throw new Exception('Failed to load ' . $filename . ' as a DOM Document', 0, $e ?? null); } + self::loadProperties($dom, $spreadsheet); return $this->loadDocument($dom, $spreadsheet); } + private static function loadProperties(DOMDocument $dom, Spreadsheet $spreadsheet): void + { + $properties = $spreadsheet->getProperties(); + foreach ($dom->getElementsByTagName('meta') as $meta) { + $metaContent = (string) $meta->getAttribute('content'); + if ($metaContent !== '') { + $metaName = (string) $meta->getAttribute('name'); + switch ($metaName) { + case 'author': + $properties->setCreator($metaContent); + + break; + case 'category': + $properties->setCategory($metaContent); + + break; + case 'company': + $properties->setCompany($metaContent); + + break; + case 'created': + $properties->setCreated($metaContent); + + break; + case 'description': + $properties->setDescription($metaContent); + + break; + case 'keywords': + $properties->setKeywords($metaContent); + + break; + case 'lastModifiedBy': + $properties->setLastModifiedBy($metaContent); + + break; + case 'manager': + $properties->setManager($metaContent); + + break; + case 'modified': + $properties->setModified($metaContent); + + break; + case 'subject': + $properties->setSubject($metaContent); + + break; + case 'title': + $properties->setTitle($metaContent); + + break; + default: + if (preg_match('/^custom[.](bool|date|float|int|string)[.](.+)$/', $metaName, $matches) === 1) { + switch ($matches[1]) { + case 'bool': + $properties->setCustomProperty($matches[2], (bool) $metaContent, Properties::PROPERTY_TYPE_BOOLEAN); + + break; + case 'float': + $properties->setCustomProperty($matches[2], (float) $metaContent, Properties::PROPERTY_TYPE_FLOAT); + + break; + case 'int': + $properties->setCustomProperty($matches[2], (int) $metaContent, Properties::PROPERTY_TYPE_INTEGER); + + break; + case 'date': + $properties->setCustomProperty($matches[2], $metaContent, Properties::PROPERTY_TYPE_DATE); + + break; + default: // string + $properties->setCustomProperty($matches[2], $metaContent, Properties::PROPERTY_TYPE_STRING); + } + } + } + } + } + if (!empty($dom->baseURI)) { + $properties->setHyperlinkBase($dom->baseURI); + } + } + private static function replaceNonAscii(array $matches): string { return '&#' . mb_ord($matches[0], 'UTF-8') . ';'; @@ -698,8 +810,10 @@ class Html extends BaseReader if ($loaded === false) { throw new Exception('Failed to load content as a DOM Document', 0, $e ?? null); } + $spreadsheet = $spreadsheet ?? new Spreadsheet(); + self::loadProperties($dom, $spreadsheet); - return $this->loadDocument($dom, $spreadsheet ?? new Spreadsheet()); + return $this->loadDocument($dom, $spreadsheet); } /** @@ -769,7 +883,9 @@ class Html extends BaseReader return; } - if (isset($attributeArray['rowspan'], $attributeArray['colspan'])) { + if ($row <= 0 || $column === '') { + $cellStyle = new Style(); + } elseif (isset($attributeArray['rowspan'], $attributeArray['colspan'])) { $columnTo = $column; for ($i = 0; $i < (int) $attributeArray['colspan'] - 1; ++$i) { ++$columnTo; @@ -901,16 +1017,20 @@ class Html extends BaseReader break; case 'width': - $sheet->getColumnDimension($column)->setWidth( - (new CssDimension($styleValue ?? ''))->width() - ); + if ($column !== '') { + $sheet->getColumnDimension($column)->setWidth( + (new CssDimension($styleValue ?? ''))->width() + ); + } break; case 'height': - $sheet->getRowDimension($row)->setRowHeight( - (new CssDimension($styleValue ?? ''))->height() - ); + if ($row > 0) { + $sheet->getRowDimension($row)->setRowHeight( + (new CssDimension($styleValue ?? ''))->height() + ); + } break; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php index 250815400..9913f3325 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods.php @@ -8,6 +8,7 @@ use DOMElement; use DOMNode; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Cell\DataType; +use PhpOffice\PhpSpreadsheet\Helper\Dimension as HelperDimension; use PhpOffice\PhpSpreadsheet\Reader\Ods\AutoFilter; use PhpOffice\PhpSpreadsheet\Reader\Ods\DefinedNames; use PhpOffice\PhpSpreadsheet\Reader\Ods\FormulaTranslator; @@ -295,11 +296,29 @@ class Ods extends BaseReader $tableNs = $dom->lookupNamespaceUri('table'); $textNs = $dom->lookupNamespaceUri('text'); $xlinkNs = $dom->lookupNamespaceUri('xlink'); + $styleNs = $dom->lookupNamespaceUri('style'); $pageSettings->readStyleCrossReferences($dom); $autoFilterReader = new AutoFilter($spreadsheet, $tableNs); $definedNameReader = new DefinedNames($spreadsheet, $tableNs); + $columnWidths = []; + $automaticStyle0 = $dom->getElementsByTagNameNS($officeNs, 'automatic-styles')->item(0); + $automaticStyles = ($automaticStyle0 === null) ? [] : $automaticStyle0->getElementsByTagNameNS($styleNs, 'style'); + foreach ($automaticStyles as $automaticStyle) { + $styleName = $automaticStyle->getAttributeNS($styleNs, 'name'); + $styleFamily = $automaticStyle->getAttributeNS($styleNs, 'family'); + if ($styleFamily === 'table-column') { + $tcprops = $automaticStyle->getElementsByTagNameNS($styleNs, 'table-column-properties'); + if ($tcprops !== null) { + $tcprop = $tcprops->item(0); + if ($tcprop !== null) { + $columnWidth = $tcprop->getAttributeNs($styleNs, 'column-width'); + $columnWidths[$styleName] = $columnWidth; + } + } + } + } // Content $item0 = $dom->getElementsByTagNameNS($officeNs, 'body')->item(0); @@ -340,6 +359,7 @@ class Ods extends BaseReader // Go through every child of table element $rowID = 1; + $tableColumnIndex = 1; foreach ($worksheetDataSet->childNodes as $childNode) { /** @var DOMElement $childNode */ @@ -366,6 +386,26 @@ class Ods extends BaseReader // $rowData = $cellData; // break; // } + break; + case 'table-column': + if ($childNode->hasAttributeNS($tableNs, 'number-columns-repeated')) { + $rowRepeats = (int) $childNode->getAttributeNS($tableNs, 'number-columns-repeated'); + } else { + $rowRepeats = 1; + } + $tableStyleName = $childNode->getAttributeNS($tableNs, 'style-name'); + if (isset($columnWidths[$tableStyleName])) { + $columnWidth = new HelperDimension($columnWidths[$tableStyleName]); + $tableColumnString = Coordinate::stringFromColumnIndex($tableColumnIndex); + for ($rowRepeats2 = $rowRepeats; $rowRepeats2 > 0; --$rowRepeats2) { + $spreadsheet->getActiveSheet() + ->getColumnDimension($tableColumnString) + ->setWidth($columnWidth->toUnit('cm'), 'cm'); + ++$tableColumnString; + } + } + $tableColumnIndex += $rowRepeats; + break; case 'table-row': if ($childNode->hasAttributeNS($tableNs, 'number-rows-repeated')) { diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php index ad898ae41..f8eaf39d0 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Security/XmlScanner.php @@ -151,7 +151,7 @@ class XmlScanner throw new Reader\Exception('Detected use of ENTITY in XML, spreadsheet file load() aborted to prevent XXE/XEE attacks'); } - if ($this->callback !== null && is_callable($this->callback)) { + if ($this->callback !== null) { $xml = call_user_func($this->callback, $xml); } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php index f35e8c3b2..816e7698d 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xls.php @@ -430,7 +430,7 @@ class Xls extends BaseReader */ public function canRead(string $filename): bool { - if (!File::testFileNoThrow($filename)) { + if (File::testFileNoThrow($filename) === false) { return false; } @@ -440,6 +440,9 @@ class Xls extends BaseReader // get excel data $ole->read($filename); + if ($ole->wrkbook === null) { + throw new Exception('The filename ' . $filename . ' is not recognised as a Spreadsheet file'); + } return true; } catch (PhpSpreadsheetException $e) { @@ -449,7 +452,7 @@ class Xls extends BaseReader public function setCodepage(string $codepage): void { - if (!CodePage::validate($codepage)) { + if (CodePage::validate($codepage) === false) { throw new PhpSpreadsheetException('Unknown codepage: ' . $codepage); } @@ -1097,7 +1100,7 @@ class Xls extends BaseReader // treat OBJ records foreach ($this->objs as $n => $obj) { // the first shape container never has a corresponding OBJ record, hence $n + 1 - if (isset($allSpContainers[$n + 1]) && is_object($allSpContainers[$n + 1])) { + if (isset($allSpContainers[$n + 1])) { $spContainer = $allSpContainers[$n + 1]; // we skip all spContainers that are a part of a group shape since we cannot yet handle those diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php index bf8908470..1c33fd681 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php @@ -16,6 +16,7 @@ use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Hyperlinks; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\PageSetup; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Properties as PropertyReader; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\SharedFormula; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\SheetViewOptions; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\SheetViews; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Styles; @@ -61,6 +62,11 @@ class Xlsx extends BaseReader /** @var Styles */ private $styleReader; + /** + * @var array + */ + private $sharedFormulae = []; + /** * Create a new Xlsx Reader instance. */ @@ -128,7 +134,7 @@ class Xlsx extends BaseReader if ($replaceUnclosedBr) { $contents = str_replace('
', '
', $contents); } - $rels = simplexml_load_string( + $rels = @simplexml_load_string( $this->getSecurityScannerOrThrow()->scan($contents), 'SimpleXMLElement', Settings::getLibXmlLoaderOptions(), @@ -246,6 +252,7 @@ class Xlsx extends BaseReader $xmlWorkbook = $this->loadZip($relTarget, $mainNS); if ($xmlWorkbook->sheets) { $dir = dirname($relTarget); + /** @var SimpleXMLElement $eleSheet */ foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { $tmpInfo = [ @@ -261,8 +268,8 @@ class Xlsx extends BaseReader $xml = new XMLReader(); $xml->xml( - $this->getSecurityScannerOrThrow()->scanFile( - 'zip://' . File::realpath($filename) . '#' . $fileWorksheetPath + $this->getSecurityScannerOrThrow()->scan( + $this->getFromZipArchive($this->zip, $fileWorksheetPath) ), null, Settings::getLibXmlLoaderOptions() @@ -324,13 +331,13 @@ class Xlsx extends BaseReader * @param mixed $value * @param mixed $calculatedValue */ - private function castToFormula(?SimpleXMLElement $c, string $r, string &$cellDataType, &$value, &$calculatedValue, array &$sharedFormulas, string $castBaseType): void + private function castToFormula(?SimpleXMLElement $c, string $r, string &$cellDataType, &$value, &$calculatedValue, string $castBaseType, bool $updateSharedCells = true): void { if ($c === null) { return; } $attr = $c->f->attributes(); - $cellDataType = 'f'; + $cellDataType = DataType::TYPE_FORMULA; $value = "={$c->f}"; $calculatedValue = self::$castBaseType($c); @@ -338,17 +345,19 @@ class Xlsx extends BaseReader if (isset($attr['t']) && strtolower((string) $attr['t']) == 'shared') { $instance = (string) $attr['si']; - if (!isset($sharedFormulas[(string) $attr['si']])) { - $sharedFormulas[$instance] = ['master' => $r, 'formula' => $value]; - } else { - $master = Coordinate::indexesFromString($sharedFormulas[$instance]['master']); + if (!isset($this->sharedFormulae[(string) $attr['si']])) { + $this->sharedFormulae[$instance] = new SharedFormula($r, $value); + } elseif ($updateSharedCells === true) { + // It's only worth the overhead of adjusting the shared formula for this cell if we're actually loading + // the cell, which may not be the case if we're using a read filter. + $master = Coordinate::indexesFromString($this->sharedFormulae[$instance]->master()); $current = Coordinate::indexesFromString($r); $difference = [0, 0]; $difference[0] = $current[0] - $master[0]; $difference[1] = $current[1] - $master[1]; - $value = $this->referenceHelper->updateFormulaReferences($sharedFormulas[$instance]['formula'], 'A1', $difference[0], $difference[1]); + $value = $this->referenceHelper->updateFormulaReferences($this->sharedFormulae[$instance]->formula(), 'A1', $difference[0], $difference[1]); } } } @@ -395,12 +404,18 @@ class Xlsx extends BaseReader // Sadly, some 3rd party xlsx generators don't use consistent case for filenaming // so we need to load case-insensitively from the zip file - // Apache POI fixes $contents = $archive->getFromName($fileName, 0, ZipArchive::FL_NOCASE); + + // Apache POI fixes if ($contents === false) { $contents = $archive->getFromName(substr($fileName, 1), 0, ZipArchive::FL_NOCASE); } + // Has the file been saved with Windoze directory separators rather than unix? + if ($contents === false) { + $contents = $archive->getFromName(str_replace('/', '\\', $fileName), 0, ZipArchive::FL_NOCASE); + } + return ($contents === false) ? '' : $contents; } @@ -447,6 +462,7 @@ class Xlsx extends BaseReader $colourScheme = self::getAttributes($xmlTheme->themeElements->clrScheme); $colourSchemeName = (string) $colourScheme['name']; + $excel->getTheme()->setThemeColorName($colourSchemeName); $colourScheme = $xmlTheme->themeElements->clrScheme->children($drawingNS); $themeColours = []; @@ -458,14 +474,46 @@ class Xlsx extends BaseReader if (isset($xmlColour->sysClr)) { $xmlColourData = self::getAttributes($xmlColour->sysClr); $themeColours[$themePos] = (string) $xmlColourData['lastClr']; + $excel->getTheme()->setThemeColor($k, (string) $xmlColourData['lastClr']); } elseif (isset($xmlColour->srgbClr)) { $xmlColourData = self::getAttributes($xmlColour->srgbClr); $themeColours[$themePos] = (string) $xmlColourData['val']; + $excel->getTheme()->setThemeColor($k, (string) $xmlColourData['val']); } } $theme = new Theme($themeName, $colourSchemeName, $themeColours); $this->styleReader->setTheme($theme); + $fontScheme = self::getAttributes($xmlTheme->themeElements->fontScheme); + $fontSchemeName = (string) $fontScheme['name']; + $excel->getTheme()->setThemeFontName($fontSchemeName); + $majorFonts = []; + $minorFonts = []; + $fontScheme = $xmlTheme->themeElements->fontScheme->children($drawingNS); + $majorLatin = self::getAttributes($fontScheme->majorFont->latin)['typeface'] ?? ''; + $majorEastAsian = self::getAttributes($fontScheme->majorFont->ea)['typeface'] ?? ''; + $majorComplexScript = self::getAttributes($fontScheme->majorFont->cs)['typeface'] ?? ''; + $minorLatin = self::getAttributes($fontScheme->minorFont->latin)['typeface'] ?? ''; + $minorEastAsian = self::getAttributes($fontScheme->minorFont->ea)['typeface'] ?? ''; + $minorComplexScript = self::getAttributes($fontScheme->minorFont->cs)['typeface'] ?? ''; + + foreach ($fontScheme->majorFont->font as $xmlFont) { + $fontAttributes = self::getAttributes($xmlFont); + $script = (string) ($fontAttributes['script'] ?? ''); + if (!empty($script)) { + $majorFonts[$script] = (string) ($fontAttributes['typeface'] ?? ''); + } + } + foreach ($fontScheme->minorFont->font as $xmlFont) { + $fontAttributes = self::getAttributes($xmlFont); + $script = (string) ($fontAttributes['script'] ?? ''); + if (!empty($script)) { + $minorFonts[$script] = (string) ($fontAttributes['typeface'] ?? ''); + } + } + $excel->getTheme()->setMajorFontValues($majorLatin, $majorEastAsian, $majorComplexScript, $majorFonts); + $excel->getTheme()->setMinorFontValues($minorLatin, $minorEastAsian, $minorComplexScript, $minorFonts); + break; } } @@ -477,6 +525,10 @@ class Xlsx extends BaseReader foreach ($rels->Relationship as $relx) { $rel = self::getAttributes($relx); $relTarget = (string) $rel['Target']; + // issue 3553 + if ($relTarget[0] === '/') { + $relTarget = substr($relTarget, 1); + } $relType = (string) $rel['Type']; $mainNS = self::REL_TO_MAIN[$relType] ?? Namespaces::MAIN; switch ($relType) { @@ -507,26 +559,6 @@ class Xlsx extends BaseReader $relsWorkbook = $this->loadZip("$dir/_rels/" . basename($relTarget) . '.rels', ''); $relsWorkbook->registerXPathNamespace('rel', Namespaces::RELATIONSHIPS); - $sharedStrings = []; - $relType = "rel:Relationship[@Type='" - //. Namespaces::SHARED_STRINGS - . "$xmlNamespaceBase/sharedStrings" - . "']"; - $xpath = self::getArrayItem($relsWorkbook->xpath($relType)); - - if ($xpath) { - $xmlStrings = $this->loadZip("$dir/$xpath[Target]", $mainNS); - if (isset($xmlStrings->si)) { - foreach ($xmlStrings->si as $val) { - if (isset($val->t)) { - $sharedStrings[] = StringHelper::controlCharacterOOXML2PHP((string) $val->t); - } elseif (isset($val->r)) { - $sharedStrings[] = $this->parseRichText($val); - } - } - } - } - $worksheets = []; $macros = $customUI = null; foreach ($relsWorkbook->Relationship as $elex) { @@ -618,7 +650,7 @@ class Xlsx extends BaseReader $numFmt = NumberFormat::builtInFormatCode((int) $xf['numFmtId']); } } - $quotePrefix = (bool) ($xf['quotePrefix'] ?? false); + $quotePrefix = (bool) (string) ($xf['quotePrefix'] ?? ''); $style = (object) [ 'numFmt' => $numFmt ?? NumberFormat::FORMAT_GENERAL, @@ -653,7 +685,7 @@ class Xlsx extends BaseReader } } - $quotePrefix = (bool) ($xf['quotePrefix'] ?? false); + $quotePrefix = (bool) (string) ($xf['quotePrefix'] ?? ''); $cellStyle = (object) [ 'numFmt' => $numFmt, @@ -682,6 +714,27 @@ class Xlsx extends BaseReader $dxfs = $this->styleReader->dxfs($this->readDataOnly); $styles = $this->styleReader->styles(); + // Read content after setting the styles + $sharedStrings = []; + $relType = "rel:Relationship[@Type='" + //. Namespaces::SHARED_STRINGS + . "$xmlNamespaceBase/sharedStrings" + . "']"; + $xpath = self::getArrayItem($relsWorkbook->xpath($relType)); + + if ($xpath) { + $xmlStrings = $this->loadZip("$dir/$xpath[Target]", $mainNS); + if (isset($xmlStrings->si)) { + foreach ($xmlStrings->si as $val) { + if (isset($val->t)) { + $sharedStrings[] = StringHelper::controlCharacterOOXML2PHP((string) $val->t); + } elseif (isset($val->r)) { + $sharedStrings[] = $this->parseRichText($val); + } + } + } + } + $xmlWorkbook = $this->loadZipNoNamespace($relTarget, $mainNS); $xmlWorkbookNS = $this->loadZip($relTarget, $mainNS); @@ -743,7 +796,8 @@ class Xlsx extends BaseReader $xmlSheet = $this->loadZipNoNamespace("$dir/$fileWorksheet", $mainNS); $xmlSheetNS = $this->loadZip("$dir/$fileWorksheet", $mainNS); - $sharedFormulas = []; + // Shared Formula table is unique to each Worksheet, so we need to reset it here + $this->sharedFormulae = []; if (isset($eleSheetAttr['state']) && (string) $eleSheetAttr['state'] != '') { $docSheet->setSheetState((string) $eleSheetAttr['state']); @@ -789,8 +843,12 @@ class Xlsx extends BaseReader $coordinates = Coordinate::coordinateFromString($r); if (!$this->getReadFilter()->readCell($coordinates[0], (int) $coordinates[1], $docSheet->getTitle())) { - if (isset($cAttr->f)) { - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); + // Normally, just testing for the f attribute should identify this cell as containing a formula + // that we need to read, even though it is outside of the filter range, in case it is a shared formula. + // But in some cases, this attribute isn't set; so we need to delve a level deeper and look at + // whether or not the cell has a child formula element that is shared. + if (isset($cAttr->f) || (isset($c->f, $c->f->attributes()['t']) && strtolower((string) $c->f->attributes()['t']) === 'shared')) { + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToError', false); } ++$rowIndex; @@ -822,7 +880,7 @@ class Xlsx extends BaseReader } } else { // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToBoolean'); + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToBoolean'); if (isset($c->f['t'])) { $att = $c->f; $docSheet->getCell($r)->setFormulaAttributes($att); @@ -832,7 +890,7 @@ class Xlsx extends BaseReader break; case 'inlineStr': if (isset($c->f)) { - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToError'); } else { $value = $this->parseRichText($c->is); } @@ -843,7 +901,7 @@ class Xlsx extends BaseReader $value = self::castToError($c); } else { // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToError'); } break; @@ -852,7 +910,7 @@ class Xlsx extends BaseReader $value = self::castToString($c); } else { // Formula - $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToString'); + $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, 'castToString'); if (isset($c->f['t'])) { $attributes = $c->f['t']; $docSheet->getCell($r)->setFormulaAttributes(['t' => (string) $attributes]); @@ -891,6 +949,10 @@ class Xlsx extends BaseReader // no style index means 0, it seems $cell->setXfIndex(isset($styles[(int) ($cAttr['s'])]) ? (int) ($cAttr['s']) : 0); + // issue 3495 + if ($cell->getDataType() === DataType::TYPE_FORMULA) { + $cell->getStyle()->setQuotePrefix(false); + } } } ++$rowIndex; @@ -898,6 +960,12 @@ class Xlsx extends BaseReader ++$cIndex; } } + if ($xmlSheetNS && $xmlSheetNS->ignoredErrors) { + foreach ($xmlSheetNS->ignoredErrors->ignoredError as $ignoredErrorx) { + $ignoredError = self::testSimpleXml($ignoredErrorx); + $this->processIgnoredErrors($ignoredError, $docSheet); + } + } if (!$this->readDataOnly && $xmlSheetNS && $xmlSheetNS->sheetProtection) { $protAttr = $xmlSheetNS->sheetProtection->attributes() ?? []; @@ -2205,4 +2273,48 @@ class Xlsx extends BaseReader return $array; } + + private function processIgnoredErrors(SimpleXMLElement $xml, Worksheet $sheet): void + { + $attributes = self::getAttributes($xml); + $sqref = (string) ($attributes['sqref'] ?? ''); + $numberStoredAsText = (string) ($attributes['numberStoredAsText'] ?? ''); + $formula = (string) ($attributes['formula'] ?? ''); + $twoDigitTextYear = (string) ($attributes['twoDigitTextYear'] ?? ''); + $evalError = (string) ($attributes['evalError'] ?? ''); + if (!empty($sqref)) { + $explodedSqref = explode(' ', $sqref); + $pattern1 = '/^([A-Z]{1,3})([0-9]{1,7})(:([A-Z]{1,3})([0-9]{1,7}))?$/'; + foreach ($explodedSqref as $sqref1) { + if (preg_match($pattern1, $sqref1, $matches) === 1) { + $firstRow = $matches[2]; + $firstCol = $matches[1]; + if (array_key_exists(3, $matches)) { + $lastCol = $matches[4]; + $lastRow = $matches[5]; + } else { + $lastCol = $firstCol; + $lastRow = $firstRow; + } + ++$lastCol; + for ($row = $firstRow; $row <= $lastRow; ++$row) { + for ($col = $firstCol; $col !== $lastCol; ++$col) { + if ($numberStoredAsText === '1') { + $sheet->getCell("$col$row")->getIgnoredErrors()->setNumberStoredAsText(true); + } + if ($formula === '1') { + $sheet->getCell("$col$row")->getIgnoredErrors()->setFormula(true); + } + if ($twoDigitTextYear === '1') { + $sheet->getCell("$col$row")->getIgnoredErrors()->setTwoDigitTextYear(true); + } + if ($evalError === '1') { + $sheet->getCell("$col$row")->getIgnoredErrors()->setEvalError(true); + } + } + } + } + } + } + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php index 5230cf0d7..c5a59f558 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Chart.php @@ -4,6 +4,7 @@ namespace PhpOffice\PhpSpreadsheet\Reader\Xlsx; use PhpOffice\PhpSpreadsheet\Calculation\Information\ExcelError; use PhpOffice\PhpSpreadsheet\Chart\Axis; +use PhpOffice\PhpSpreadsheet\Chart\AxisText; use PhpOffice\PhpSpreadsheet\Chart\ChartColor; use PhpOffice\PhpSpreadsheet\Chart\DataSeries; use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; @@ -76,16 +77,28 @@ class Chart $yAxis = new Axis(); $autoTitleDeleted = null; $chartNoFill = false; + $chartBorderLines = null; + $chartFillColor = null; $gradientArray = []; $gradientLin = null; $roundedCorners = false; + $gapWidth = null; + $useUpBars = null; + $useDownBars = null; foreach ($chartElementsC as $chartElementKey => $chartElement) { switch ($chartElementKey) { case 'spPr': - $possibleNoFill = $chartElementsC->spPr->children($this->aNamespace); - if (isset($possibleNoFill->noFill)) { + $children = $chartElementsC->spPr->children($this->aNamespace); + if (isset($children->noFill)) { $chartNoFill = true; } + if (isset($children->solidFill)) { + $chartFillColor = $this->readColor($children->solidFill); + } + if (isset($children->ln)) { + $chartBorderLines = new GridLines(); + $this->readLineStyle($chartElementsC, $chartBorderLines); + } break; case 'roundedCorners': @@ -157,6 +170,9 @@ class Chart $axisColorArray = $this->readColor($sppr->solidFill); $xAxis->setFillParameters($axisColorArray['value'], $axisColorArray['alpha'], $axisColorArray['type']); } + if (isset($chartDetail->spPr->ln->noFill)) { + $xAxis->setNoFill(true); + } } if (isset($chartDetail->majorGridlines)) { $majorGridlines = new GridLines(); @@ -227,6 +243,9 @@ class Chart $axisColorArray = $this->readColor($sppr->solidFill); $whichAxis->setFillParameters($axisColorArray['value'], $axisColorArray['alpha'], $axisColorArray['type']); } + if (isset($sppr->ln->noFill)) { + $whichAxis->setNoFill(true); + } } if ($whichAxis !== null && isset($chartDetail->majorGridlines)) { $majorGridlines = new GridLines(); @@ -316,6 +335,15 @@ class Chart break; case 'stockChart': $plotSeries[] = $this->chartDataSeries($chartDetail, $chartDetailKey); + if (isset($chartDetail->upDownBars->gapWidth)) { + $gapWidth = self::getAttribute($chartDetail->upDownBars->gapWidth, 'val', 'integer'); + } + if (isset($chartDetail->upDownBars->upBars)) { + $useUpBars = true; + } + if (isset($chartDetail->upDownBars->downBars)) { + $useDownBars = true; + } $plotAttributes = $this->readChartAttributes($chartDetail); break; @@ -332,6 +360,15 @@ class Chart if (!empty($gradientArray)) { $plotArea->setGradientFillProperties($gradientArray, $gradientLin); } + if (is_int($gapWidth)) { + $plotArea->setGapWidth($gapWidth); + } + if ($useUpBars === true) { + $plotArea->setUseUpBars(true); + } + if ($useDownBars === true) { + $plotArea->setUseDownBars(true); + } break; case 'plotVisOnly': @@ -350,6 +387,10 @@ class Chart $legendPos = 'r'; $legendLayout = null; $legendOverlay = false; + $legendBorderLines = null; + $legendFillColor = null; + $legendText = null; + $addLegendText = false; foreach ($chartDetails as $chartDetailKey => $chartDetail) { $chartDetail = Xlsx::testSimpleXml($chartDetail); switch ($chartDetailKey) { @@ -364,10 +405,45 @@ class Chart case 'layout': $legendLayout = $this->chartLayoutDetails($chartDetail); + break; + case 'spPr': + $children = $chartDetails->spPr->children($this->aNamespace); + if (isset($children->solidFill)) { + $legendFillColor = $this->readColor($children->solidFill); + } + if (isset($children->ln)) { + $legendBorderLines = new GridLines(); + $this->readLineStyle($chartDetails, $legendBorderLines); + } + + break; + case 'txPr': + $children = $chartDetails->txPr->children($this->aNamespace); + $addLegendText = false; + $legendText = new AxisText(); + if (isset($children->p->pPr->defRPr->solidFill)) { + $colorArray = $this->readColor($children->p->pPr->defRPr->solidFill); + $legendText->getFillColorObject()->setColorPropertiesArray($colorArray); + $addLegendText = true; + } + if (isset($children->p->pPr->defRPr->effectLst)) { + $this->readEffects($children->p->pPr->defRPr, $legendText, false); + $addLegendText = true; + } + break; } } $legend = new Legend("$legendPos", $legendLayout, (bool) $legendOverlay); + if ($legendFillColor !== null) { + $legend->getFillColor()->setColorPropertiesArray($legendFillColor); + } + if ($legendBorderLines !== null) { + $legend->setBorderLines($legendBorderLines); + } + if ($addLegendText) { + $legend->setLegendText($legendText); + } break; } @@ -378,6 +454,12 @@ class Chart if ($chartNoFill) { $chart->setNoFill(true); } + if ($chartFillColor !== null) { + $chart->getFillColor()->setColorPropertiesArray($chartFillColor); + } + if ($chartBorderLines !== null) { + $chart->setBorderLines($chartBorderLines); + } $chart->setRoundedCorners($roundedCorners); if (is_bool($autoTitleDeleted)) { $chart->setAutoTitleDeleted($autoTitleDeleted); @@ -1082,6 +1164,37 @@ class Chart return $value; } + private function parseFont(SimpleXMLElement $titleDetailPart): ?Font + { + if (!isset($titleDetailPart->pPr->defRPr)) { + return null; + } + $fontArray = []; + $fontArray['size'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'sz', 'integer'); + $fontArray['bold'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'b', 'boolean'); + $fontArray['italic'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'i', 'boolean'); + $fontArray['underscore'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'u', 'string'); + $fontArray['strikethrough'] = self::getAttribute($titleDetailPart->pPr->defRPr, 'strike', 'string'); + + if (isset($titleDetailPart->pPr->defRPr->latin)) { + $fontArray['latin'] = self::getAttribute($titleDetailPart->pPr->defRPr->latin, 'typeface', 'string'); + } + if (isset($titleDetailPart->pPr->defRPr->ea)) { + $fontArray['eastAsian'] = self::getAttribute($titleDetailPart->pPr->defRPr->ea, 'typeface', 'string'); + } + if (isset($titleDetailPart->pPr->defRPr->cs)) { + $fontArray['complexScript'] = self::getAttribute($titleDetailPart->pPr->defRPr->cs, 'typeface', 'string'); + } + if (isset($titleDetailPart->pPr->defRPr->solidFill)) { + $fontArray['chartColor'] = new ChartColor($this->readColor($titleDetailPart->pPr->defRPr->solidFill)); + } + $font = new Font(); + $font->setSize(null, true); + $font->applyFromArray($fontArray); + + return $font; + } + /** * @param ?SimpleXMLElement $chartDetail */ @@ -1128,8 +1241,13 @@ class Chart } if (isset($chartDetail->dLbls->txPr)) { $txpr = $chartDetail->dLbls->txPr->children($this->aNamespace); - if (isset($txpr->p->pPr->defRPr->solidFill)) { - $plotAttributes['labelFontColor'] = new ChartColor($this->readColor($txpr->p->pPr->defRPr->solidFill)); + if (isset($txpr->p)) { + $plotAttributes['labelFont'] = $this->parseFont($txpr->p); + if (isset($txpr->p->pPr->defRPr->effectLst)) { + $labelEffects = new GridLines(); + $this->readEffects($txpr->p->pPr->defRPr, $labelEffects, false); + $plotAttributes['labelEffects'] = $labelEffects; + } } } } @@ -1176,13 +1294,19 @@ class Chart } } - private function readEffects(SimpleXMLElement $chartDetail, ?ChartProperties $chartObject): void + private function readEffects(SimpleXMLElement $chartDetail, ?ChartProperties $chartObject, bool $getSppr = true): void { - if (!isset($chartObject, $chartDetail->spPr)) { + if (!isset($chartObject)) { return; } - $sppr = $chartDetail->spPr->children($this->aNamespace); - + if ($getSppr) { + if (!isset($chartDetail->spPr)) { + return; + } + $sppr = $chartDetail->spPr->children($this->aNamespace); + } else { + $sppr = $chartDetail; + } if (isset($sppr->effectLst->glow)) { $axisGlowSize = (float) self::getAttribute($sppr->effectLst->glow, 'rad', 'integer') / ChartProperties::POINTS_WIDTH_MULTIPLIER; if ($axisGlowSize != 0.0) { @@ -1412,13 +1536,30 @@ class Chart } if (isset($chartDetail->txPr)) { $children = $chartDetail->txPr->children($this->aNamespace); + $addAxisText = false; + $axisText = new AxisText(); if (isset($children->bodyPr)) { /** @var string */ $textRotation = self::getAttribute($children->bodyPr, 'rot', 'string'); if (is_numeric($textRotation)) { - $whichAxis->setAxisOption('textRotation', (string) ChartProperties::xmlToAngle($textRotation)); + $axisText->setRotation((int) ChartProperties::xmlToAngle($textRotation)); + $addAxisText = true; } } + if (isset($children->p->pPr->defRPr)) { + $font = $this->parseFont($children->p); + if ($font !== null) { + $axisText->setFont($font); + $addAxisText = true; + } + } + if (isset($children->p->pPr->defRPr->effectLst)) { + $this->readEffects($children->p->pPr->defRPr, $axisText, false); + $addAxisText = true; + } + if ($addAxisText) { + $whichAxis->setAxisText($axisText); + } } } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php index dac76230c..210c322f9 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/DataValidations.php @@ -22,6 +22,18 @@ class DataValidations public function load(): void { + foreach ($this->worksheetXml->dataValidations->dataValidation as $dataValidation) { + // Uppercase coordinate + $range = strtoupper((string) $dataValidation['sqref']); + $rangeSet = explode(' ', $range); + foreach ($rangeSet as $range) { + if (preg_match('/^[A-Z]{1,3}\\d{1,7}/', $range, $matches) === 1) { + // Ensure left/top row of range exists, thereby + // adjusting high row/column. + $this->worksheet->getCell($matches[0]); + } + } + } foreach ($this->worksheetXml->dataValidations->dataValidation as $dataValidation) { // Uppercase coordinate $range = strtoupper((string) $dataValidation['sqref']); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php index 72addffd5..0d4701afa 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Properties.php @@ -73,6 +73,9 @@ class Properties if (isset($xmlCore->Manager)) { $this->docProps->setManager((string) $xmlCore->Manager); } + if (isset($xmlCore->HyperlinkBase)) { + $this->docProps->setHyperlinkBase((string) $xmlCore->HyperlinkBase); + } } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SharedFormula.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SharedFormula.php new file mode 100644 index 000000000..fb7a39320 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/SharedFormula.php @@ -0,0 +1,26 @@ +master = $master; + $this->formula = $formula; + } + + public function master(): string + { + return $this->master; + } + + public function formula(): string + { + return $this->formula; + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php index 705b319e7..5a360fda1 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx/Styles.php @@ -136,6 +136,10 @@ class Styles extends BaseParserClass } } } + if (isset($fontStyleXml->scheme)) { + $attr = $this->getStyleAttributes($fontStyleXml->scheme); + $fontStyle->setScheme((string) $attr['val']); + } } private function readNumberFormat(NumberFormat $numfmtStyle, SimpleXMLElement $numfmtStyleXml): void @@ -253,10 +257,14 @@ class Styles extends BaseParserClass public function readAlignmentStyle(Alignment $alignment, SimpleXMLElement $alignmentXml): void { - $horizontal = $this->getAttribute($alignmentXml, 'horizontal'); - $alignment->setHorizontal($horizontal); - $vertical = $this->getAttribute($alignmentXml, 'vertical'); - $alignment->setVertical((string) $vertical); + $horizontal = (string) $this->getAttribute($alignmentXml, 'horizontal'); + if ($horizontal !== '') { + $alignment->setHorizontal($horizontal); + } + $vertical = (string) $this->getAttribute($alignmentXml, 'vertical'); + if ($vertical !== '') { + $alignment->setVertical($vertical); + } $textRotation = (int) $this->getAttribute($alignmentXml, 'textRotation'); if ($textRotation > 90) { diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php index 9cce7003f..6be26fc2c 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml.php @@ -9,6 +9,7 @@ use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Cell\DataType; use PhpOffice\PhpSpreadsheet\DefinedName; use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Reader\Xml\PageSettings; use PhpOffice\PhpSpreadsheet\Reader\Xml\Properties; use PhpOffice\PhpSpreadsheet\Reader\Xml\Style; @@ -26,6 +27,8 @@ use SimpleXMLElement; */ class Xml extends BaseReader { + public const NAMESPACES_SS = 'urn:schemas-microsoft-com:office:spreadsheet'; + /** * Formats. * @@ -146,11 +149,9 @@ class Xml extends BaseReader throw new Exception("Problem reading {$filename}"); } - $namespaces = $xml->getNamespaces(true); - - $xml_ss = $xml->children($namespaces['ss']); + $xml_ss = $xml->children(self::NAMESPACES_SS); foreach ($xml_ss->Worksheet as $worksheet) { - $worksheet_ss = self::getAttributes($worksheet, $namespaces['ss']); + $worksheet_ss = self::getAttributes($worksheet, self::NAMESPACES_SS); $worksheetNames[] = (string) $worksheet_ss['Name']; } @@ -178,12 +179,10 @@ class Xml extends BaseReader throw new Exception("Problem reading {$filename}"); } - $namespaces = $xml->getNamespaces(true); - $worksheetID = 1; - $xml_ss = $xml->children($namespaces['ss']); + $xml_ss = $xml->children(self::NAMESPACES_SS); foreach ($xml_ss->Worksheet as $worksheet) { - $worksheet_ss = self::getAttributes($worksheet, $namespaces['ss']); + $worksheet_ss = self::getAttributes($worksheet, self::NAMESPACES_SS); $tmpInfo = []; $tmpInfo['worksheetName'] = ''; @@ -231,6 +230,19 @@ class Xml extends BaseReader return $worksheetInfo; } + /** + * Loads Spreadsheet from string. + */ + public function loadSpreadsheetFromString(string $contents): Spreadsheet + { + // Create new Spreadsheet + $spreadsheet = new Spreadsheet(); + $spreadsheet->removeSheetByIndex(0); + + // Load into this instance + return $this->loadIntoExisting($contents, $spreadsheet, true); + } + /** * Loads Spreadsheet from file. */ @@ -245,17 +257,19 @@ class Xml extends BaseReader } /** - * Loads from file into Spreadsheet instance. + * Loads from file or contents into Spreadsheet instance. * - * @param string $filename - * - * @return Spreadsheet + * @param string $filename file name if useContents is false else file contents */ - public function loadIntoExisting($filename, Spreadsheet $spreadsheet) + public function loadIntoExisting(string $filename, Spreadsheet $spreadsheet, bool $useContents = false): Spreadsheet { - File::assertFile($filename); - if (!$this->canRead($filename)) { - throw new Exception($filename . ' is an Invalid Spreadsheet file.'); + if ($useContents) { + $this->fileContents = $filename; + } else { + File::assertFile($filename); + if (!$this->canRead($filename)) { + throw new Exception($filename . ' is an Invalid Spreadsheet file.'); + } } $xml = $this->trySimpleXMLLoadString($filename); @@ -268,14 +282,17 @@ class Xml extends BaseReader (new Properties($spreadsheet))->readProperties($xml, $namespaces); $this->styles = (new Style())->parseStyles($xml, $namespaces); + if (isset($this->styles['Default'])) { + $spreadsheet->getCellXfCollection()[0]->applyFromArray($this->styles['Default']); + } $worksheetID = 0; - $xml_ss = $xml->children($namespaces['ss']); + $xml_ss = $xml->children(self::NAMESPACES_SS); /** @var null|SimpleXMLElement $worksheetx */ foreach ($xml_ss->Worksheet as $worksheetx) { $worksheet = $worksheetx ?? new SimpleXMLElement(''); - $worksheet_ss = self::getAttributes($worksheet, $namespaces['ss']); + $worksheet_ss = self::getAttributes($worksheet, self::NAMESPACES_SS); if ( isset($this->loadSheetsOnly, $worksheet_ss['Name']) && @@ -295,11 +312,15 @@ class Xml extends BaseReader // the worksheet name in line with the formula, not the reverse $spreadsheet->getActiveSheet()->setTitle($worksheetName, false, false); } + if (isset($worksheet_ss['Protected'])) { + $protection = (string) $worksheet_ss['Protected'] === '1'; + $spreadsheet->getActiveSheet()->getProtection()->setSheet($protection); + } // locally scoped defined names if (isset($worksheet->Names[0])) { foreach ($worksheet->Names[0] as $definedName) { - $definedName_ss = self::getAttributes($definedName, $namespaces['ss']); + $definedName_ss = self::getAttributes($definedName, self::NAMESPACES_SS); $name = (string) $definedName_ss['Name']; $definedValue = (string) $definedName_ss['RefersTo']; $convertedValue = AddressHelper::convertFormulaToA1($definedValue); @@ -313,15 +334,35 @@ class Xml extends BaseReader $columnID = 'A'; if (isset($worksheet->Table->Column)) { foreach ($worksheet->Table->Column as $columnData) { - $columnData_ss = self::getAttributes($columnData, $namespaces['ss']); + $columnData_ss = self::getAttributes($columnData, self::NAMESPACES_SS); + $colspan = 0; + if (isset($columnData_ss['Span'])) { + $spanAttr = (string) $columnData_ss['Span']; + if (is_numeric($spanAttr)) { + $colspan = max(0, (int) $spanAttr); + } + } if (isset($columnData_ss['Index'])) { $columnID = Coordinate::stringFromColumnIndex((int) $columnData_ss['Index']); } + $columnWidth = null; if (isset($columnData_ss['Width'])) { $columnWidth = $columnData_ss['Width']; - $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setWidth($columnWidth / 5.4); } - ++$columnID; + $columnVisible = null; + if (isset($columnData_ss['Hidden'])) { + $columnVisible = ((string) $columnData_ss['Hidden']) !== '1'; + } + while ($colspan >= 0) { + if (isset($columnWidth)) { + $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setWidth($columnWidth / 5.4); + } + if (isset($columnVisible)) { + $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setVisible($columnVisible); + } + ++$columnID; + --$colspan; + } } } @@ -330,14 +371,18 @@ class Xml extends BaseReader $additionalMergedCells = 0; foreach ($worksheet->Table->Row as $rowData) { $rowHasData = false; - $row_ss = self::getAttributes($rowData, $namespaces['ss']); + $row_ss = self::getAttributes($rowData, self::NAMESPACES_SS); if (isset($row_ss['Index'])) { $rowID = (int) $row_ss['Index']; } + if (isset($row_ss['Hidden'])) { + $rowVisible = ((string) $row_ss['Hidden']) !== '1'; + $spreadsheet->getActiveSheet()->getRowDimension($rowID)->setVisible($rowVisible); + } $columnID = 'A'; foreach ($rowData->Cell as $cell) { - $cell_ss = self::getAttributes($cell, $namespaces['ss']); + $cell_ss = self::getAttributes($cell, self::NAMESPACES_SS); if (isset($cell_ss['Index'])) { $columnID = Coordinate::stringFromColumnIndex((int) $cell_ss['Index']); } @@ -379,7 +424,7 @@ class Xml extends BaseReader $cellData = $cell->Data; $cellValue = (string) $cellData; $type = DataType::TYPE_NULL; - $cellData_ss = self::getAttributes($cellData, $namespaces['ss']); + $cellData_ss = self::getAttributes($cellData, self::NAMESPACES_SS); if (isset($cellData_ss['Type'])) { $cellDataType = $cellData_ss['Type']; switch ($cellDataType) { @@ -437,7 +482,7 @@ class Xml extends BaseReader } if (isset($cell->Comment)) { - $this->parseCellComment($cell->Comment, $namespaces, $spreadsheet, $columnID, $rowID); + $this->parseCellComment($cell->Comment, $spreadsheet, $columnID, $rowID); } if (isset($cell_ss['StyleID'])) { @@ -466,11 +511,57 @@ class Xml extends BaseReader ++$rowID; } + } - if (isset($namespaces['x'])) { - $xmlX = $worksheet->children($namespaces['x']); - if (isset($xmlX->WorksheetOptions)) { - (new PageSettings($xmlX, $namespaces))->loadPageSettings($spreadsheet); + $dataValidations = new Xml\DataValidations(); + $dataValidations->loadDataValidations($worksheet, $spreadsheet); + $xmlX = $worksheet->children(Namespaces::URN_EXCEL); + if (isset($xmlX->WorksheetOptions)) { + if (isset($xmlX->WorksheetOptions->FreezePanes)) { + $freezeRow = $freezeColumn = 1; + if (isset($xmlX->WorksheetOptions->SplitHorizontal)) { + $freezeRow = (int) $xmlX->WorksheetOptions->SplitHorizontal + 1; + } + if (isset($xmlX->WorksheetOptions->SplitVertical)) { + $freezeColumn = (int) $xmlX->WorksheetOptions->SplitVertical + 1; + } + $spreadsheet->getActiveSheet()->freezePane(Coordinate::stringFromColumnIndex($freezeColumn) . (string) $freezeRow); + } + (new PageSettings($xmlX))->loadPageSettings($spreadsheet); + if (isset($xmlX->WorksheetOptions->TopRowVisible, $xmlX->WorksheetOptions->LeftColumnVisible)) { + $leftTopRow = (string) $xmlX->WorksheetOptions->TopRowVisible; + $leftTopColumn = (string) $xmlX->WorksheetOptions->LeftColumnVisible; + if (is_numeric($leftTopRow) && is_numeric($leftTopColumn)) { + $leftTopCoordinate = Coordinate::stringFromColumnIndex((int) $leftTopColumn + 1) . (string) ($leftTopRow + 1); + $spreadsheet->getActiveSheet()->setTopLeftCell($leftTopCoordinate); + } + } + $rangeCalculated = false; + if (isset($xmlX->WorksheetOptions->Panes->Pane->RangeSelection)) { + if (1 === preg_match('/^R(\d+)C(\d+):R(\d+)C(\d+)$/', (string) $xmlX->WorksheetOptions->Panes->Pane->RangeSelection, $selectionMatches)) { + $selectedCell = Coordinate::stringFromColumnIndex((int) $selectionMatches[2]) + . $selectionMatches[1] + . ':' + . Coordinate::stringFromColumnIndex((int) $selectionMatches[4]) + . $selectionMatches[3]; + $spreadsheet->getActiveSheet()->setSelectedCells($selectedCell); + $rangeCalculated = true; + } + } + if (!$rangeCalculated) { + if (isset($xmlX->WorksheetOptions->Panes->Pane->ActiveRow)) { + $activeRow = (string) $xmlX->WorksheetOptions->Panes->Pane->ActiveRow; + } else { + $activeRow = 0; + } + if (isset($xmlX->WorksheetOptions->Panes->Pane->ActiveCol)) { + $activeColumn = (string) $xmlX->WorksheetOptions->Panes->Pane->ActiveCol; + } else { + $activeColumn = 0; + } + if (is_numeric($activeRow) && is_numeric($activeColumn)) { + $selectedCell = Coordinate::stringFromColumnIndex((int) $activeColumn + 1) . (string) ($activeRow + 1); + $spreadsheet->getActiveSheet()->setSelectedCells($selectedCell); } } } @@ -478,10 +569,14 @@ class Xml extends BaseReader } // Globally scoped defined names - $activeWorksheet = $spreadsheet->setActiveSheetIndex(0); + $activeSheetIndex = 0; + if (isset($xml->ExcelWorkbook->ActiveSheet)) { + $activeSheetIndex = (int) (string) $xml->ExcelWorkbook->ActiveSheet; + } + $activeWorksheet = $spreadsheet->setActiveSheetIndex($activeSheetIndex); if (isset($xml->Names[0])) { foreach ($xml->Names[0] as $definedName) { - $definedName_ss = self::getAttributes($definedName, $namespaces['ss']); + $definedName_ss = self::getAttributes($definedName, self::NAMESPACES_SS); $name = (string) $definedName_ss['Name']; $definedValue = (string) $definedName_ss['RefersTo']; $convertedValue = AddressHelper::convertFormulaToA1($definedValue); @@ -498,12 +593,11 @@ class Xml extends BaseReader protected function parseCellComment( SimpleXMLElement $comment, - array $namespaces, Spreadsheet $spreadsheet, string $columnID, int $rowID ): void { - $commentAttributes = $comment->attributes($namespaces['ss']); + $commentAttributes = $comment->attributes(self::NAMESPACES_SS); $author = 'unknown'; if (isset($commentAttributes->Author)) { $author = (string) $commentAttributes->Author; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/DataValidations.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/DataValidations.php new file mode 100644 index 000000000..31748cb9c --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/DataValidations.php @@ -0,0 +1,177 @@ + DataValidation::OPERATOR_BETWEEN, + 'equal' => DataValidation::OPERATOR_EQUAL, + 'greater' => DataValidation::OPERATOR_GREATERTHAN, + 'greaterorequal' => DataValidation::OPERATOR_GREATERTHANOREQUAL, + 'less' => DataValidation::OPERATOR_LESSTHAN, + 'lessorequal' => DataValidation::OPERATOR_LESSTHANOREQUAL, + 'notbetween' => DataValidation::OPERATOR_NOTBETWEEN, + 'notequal' => DataValidation::OPERATOR_NOTEQUAL, + ]; + + private const TYPE_MAPPINGS = [ + 'textlength' => DataValidation::TYPE_TEXTLENGTH, + ]; + + private int $thisRow = 0; + + private int $thisColumn = 0; + + private function replaceR1C1(array $matches): string + { + return AddressHelper::convertToA1($matches[0], $this->thisRow, $this->thisColumn, false); + } + + public function loadDataValidations(SimpleXMLElement $worksheet, Spreadsheet $spreadsheet): void + { + $xmlX = $worksheet->children(Namespaces::URN_EXCEL); + $sheet = $spreadsheet->getActiveSheet(); + /** @var callable */ + $pregCallback = [$this, 'replaceR1C1']; + foreach ($xmlX->DataValidation as $dataValidation) { + $cells = []; + $validation = new DataValidation(); + + // set defaults + $validation->setShowDropDown(true); + $validation->setShowInputMessage(true); + $validation->setShowErrorMessage(true); + $validation->setShowDropDown(true); + $this->thisRow = 1; + $this->thisColumn = 1; + + foreach ($dataValidation as $tagName => $tagValue) { + $tagValue = (string) $tagValue; + $tagValueLower = strtolower($tagValue); + switch ($tagName) { + case 'Range': + foreach (explode(',', $tagValue) as $range) { + $cell = ''; + if (preg_match('/^R(\d+)C(\d+):R(\d+)C(\d+)$/', (string) $range, $selectionMatches) === 1) { + // range + $firstCell = Coordinate::stringFromColumnIndex((int) $selectionMatches[2]) + . $selectionMatches[1]; + $cell = $firstCell + . ':' + . Coordinate::stringFromColumnIndex((int) $selectionMatches[4]) + . $selectionMatches[3]; + $this->thisRow = (int) $selectionMatches[1]; + $this->thisColumn = (int) $selectionMatches[2]; + $sheet->getCell($firstCell); + } elseif (preg_match('/^R(\d+)C(\d+)$/', (string) $range, $selectionMatches) === 1) { + // cell + $cell = Coordinate::stringFromColumnIndex((int) $selectionMatches[2]) + . $selectionMatches[1]; + $sheet->getCell($cell); + $this->thisRow = (int) $selectionMatches[1]; + $this->thisColumn = (int) $selectionMatches[2]; + } elseif (preg_match('/^C(\d+)$/', (string) $range, $selectionMatches) === 1) { + // column + $firstCell = Coordinate::stringFromColumnIndex((int) $selectionMatches[1]) + . '1'; + $cell = $firstCell + . ':' + . Coordinate::stringFromColumnIndex((int) $selectionMatches[1]) + . ((string) AddressRange::MAX_ROW); + $this->thisColumn = (int) $selectionMatches[1]; + $sheet->getCell($firstCell); + } elseif (preg_match('/^R(\d+)$/', (string) $range, $selectionMatches)) { + // row + $firstCell = 'A' + . $selectionMatches[1]; + $cell = $firstCell + . ':' + . AddressRange::MAX_COLUMN + . $selectionMatches[1]; + $this->thisRow = (int) $selectionMatches[1]; + $sheet->getCell($firstCell); + } + + $validation->setSqref($cell); + $stRange = $sheet->shrinkRangeToFit($cell); + $cells = array_merge($cells, Coordinate::extractAllCellReferencesInRange($stRange)); + } + + break; + case 'Type': + $validation->setType(self::TYPE_MAPPINGS[$tagValueLower] ?? $tagValueLower); + + break; + case 'Qualifier': + $validation->setOperator(self::OPERATOR_MAPPINGS[$tagValueLower] ?? $tagValueLower); + + break; + case 'InputTitle': + $validation->setPromptTitle($tagValue); + + break; + case 'InputMessage': + $validation->setPrompt($tagValue); + + break; + case 'InputHide': + $validation->setShowInputMessage(false); + + break; + case 'ErrorStyle': + $validation->setErrorStyle($tagValueLower); + + break; + case 'ErrorTitle': + $validation->setErrorTitle($tagValue); + + break; + case 'ErrorMessage': + $validation->setError($tagValue); + + break; + case 'ErrorHide': + $validation->setShowErrorMessage(false); + + break; + case 'ComboHide': + $validation->setShowDropDown(false); + + break; + case 'UseBlank': + $validation->setAllowBlank(true); + + break; + case 'CellRangeList': + // FIXME missing FIXME + + break; + case 'Min': + case 'Value': + $tagValue = (string) preg_replace_callback(AddressHelper::R1C1_COORDINATE_REGEX, $pregCallback, $tagValue); + $validation->setFormula1($tagValue); + + break; + case 'Max': + $tagValue = (string) preg_replace_callback(AddressHelper::R1C1_COORDINATE_REGEX, $pregCallback, $tagValue); + $validation->setFormula2($tagValue); + + break; + } + } + + foreach ($cells as $cell) { + $sheet->getCell($cell)->setDataValidation(clone $validation); + } + } + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php index 39535c3e7..137cabaf3 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/PageSettings.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Reader\Xml; +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup; use SimpleXMLElement; @@ -14,9 +15,9 @@ class PageSettings */ private $printSettings; - public function __construct(SimpleXMLElement $xmlX, array $namespaces) + public function __construct(SimpleXMLElement $xmlX) { - $printSettings = $this->pageSetup($xmlX, $namespaces, $this->getPrintDefaults()); + $printSettings = $this->pageSetup($xmlX, $this->getPrintDefaults()); $this->printSettings = $this->printSetup($xmlX, $printSettings); } @@ -56,13 +57,13 @@ class PageSettings ]; } - private function pageSetup(SimpleXMLElement $xmlX, array $namespaces, stdClass $printDefaults): stdClass + private function pageSetup(SimpleXMLElement $xmlX, stdClass $printDefaults): stdClass { if (isset($xmlX->WorksheetOptions->PageSetup)) { foreach ($xmlX->WorksheetOptions->PageSetup as $pageSetupData) { foreach ($pageSetupData as $pageSetupKey => $pageSetupValue) { /** @scrutinizer ignore-call */ - $pageSetupAttributes = $pageSetupValue->attributes($namespaces['x']); + $pageSetupAttributes = $pageSetupValue->attributes(Namespaces::URN_EXCEL); if ($pageSetupAttributes !== null) { switch ($pageSetupKey) { case 'Layout': diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php index f0346ed02..e216c254d 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Properties.php @@ -92,6 +92,10 @@ class Properties case 'Manager': $docProps->setManager($stringValue); + break; + case 'HyperlinkBase': + $docProps->setHyperlinkBase($stringValue); + break; case 'Keywords': $docProps->setKeywords($stringValue); @@ -110,17 +114,10 @@ class Properties ?SimpleXMLElement $propertyValue, SimpleXMLElement $propertyAttributes ): void { - $propertyType = DocumentProperties::PROPERTY_TYPE_UNKNOWN; - switch ((string) $propertyAttributes) { - case 'string': - $propertyType = DocumentProperties::PROPERTY_TYPE_STRING; - $propertyValue = trim((string) $propertyValue); - - break; case 'boolean': $propertyType = DocumentProperties::PROPERTY_TYPE_BOOLEAN; - $propertyValue = (bool) $propertyValue; + $propertyValue = (bool) (string) $propertyValue; break; case 'integer': @@ -134,9 +131,15 @@ class Properties break; case 'dateTime.tz': + case 'dateTime.iso8601tz': $propertyType = DocumentProperties::PROPERTY_TYPE_DATE; $propertyValue = trim((string) $propertyValue); + break; + default: + $propertyType = DocumentProperties::PROPERTY_TYPE_STRING; + $propertyValue = trim((string) $propertyValue); + break; } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php index 774fffe8b..698acf6ac 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheet\Reader\Xml; +use PhpOffice\PhpSpreadsheet\Style\Protection; use SimpleXMLElement; class Style @@ -30,7 +31,7 @@ class Style $styleID = (string) $style_ss['ID']; $this->styles[$styleID] = $this->styles['Default'] ?? []; - $alignment = $border = $font = $fill = $numberFormat = []; + $alignment = $border = $font = $fill = $numberFormat = $protection = []; foreach ($style as $styleType => $styleDatax) { $styleData = self::getSxml($styleDatax); @@ -64,11 +65,31 @@ class Style $numberFormat = $numberFormatStyleParser->parseStyle($styleAttributes); } + break; + case 'Protection': + $locked = $hidden = null; + $styleAttributesP = $styleData->attributes($namespaces['x']); + if (isset($styleAttributes['Protected'])) { + $locked = ((bool) (string) $styleAttributes['Protected']) ? Protection::PROTECTION_PROTECTED : Protection::PROTECTION_UNPROTECTED; + } + if (isset($styleAttributesP['HideFormula'])) { + $hidden = ((bool) (string) $styleAttributesP['HideFormula']) ? Protection::PROTECTION_PROTECTED : Protection::PROTECTION_UNPROTECTED; + } + if ($locked !== null || $hidden !== null) { + $protection['protection'] = []; + if ($locked !== null) { + $protection['protection']['locked'] = $locked; + } + if ($hidden !== null) { + $protection['protection']['hidden'] = $hidden; + } + } + break; } } - $this->styles[$styleID] = array_merge($alignment, $border, $font, $fill, $numberFormat); + $this->styles[$styleID] = array_merge($alignment, $border, $font, $fill, $numberFormat, $protection); } return $this->styles; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php index 16ab44d80..5f824889a 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xml/Style/Font.php @@ -56,11 +56,11 @@ class Font extends StyleBase break; case 'Bold': - $style['font']['bold'] = true; + $style['font']['bold'] = $styleAttributeValue === '1'; break; case 'Italic': - $style['font']['italic'] = true; + $style['font']['italic'] = $styleAttributeValue === '1'; break; case 'Underline': diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php index b4d4d52af..90eee534d 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/ReferenceHelper.php @@ -75,14 +75,11 @@ class ReferenceHelper * * @return int */ - public static function columnReverseSort($a, $b) + public static function columnReverseSort(string $a, string $b) { return -strcasecmp(strlen($a) . $a, strlen($b) . $b); } - /** @var int */ - private static $scrutinizer0 = 0; - /** * Compare two cell addresses * Intended for use as a Callback function for sorting cell addresses by column and row. @@ -92,16 +89,16 @@ class ReferenceHelper * * @return int */ - public static function cellSort($a, $b) + public static function cellSort(string $a, string $b) { - $ac = $bc = ''; - $ar = self::$scrutinizer0; - $br = 0; + /** @scrutinizer be-damned */ sscanf($a, '%[A-Z]%d', $ac, $ar); + /** @var int $ar */ + /** @var string $ac */ + /** @scrutinizer be-damned */ sscanf($b, '%[A-Z]%d', $bc, $br); - - $ac = (string) $ac; - $bc = (string) $bc; + /** @var int $br */ + /** @var string $bc */ if ($ar === $br) { return strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc); } @@ -118,16 +115,16 @@ class ReferenceHelper * * @return int */ - public static function cellReverseSort($a, $b) + public static function cellReverseSort(string $a, string $b) { - $ac = $bc = ''; - $ar = self::$scrutinizer0; - $br = 0; + /** @scrutinizer be-damned */ sscanf($a, '%[A-Z]%d', $ac, $ar); + /** @var int $ar */ + /** @var string $ac */ + /** @scrutinizer be-damned */ sscanf($b, '%[A-Z]%d', $bc, $br); - - $ac = (string) $ac; - $bc = (string) $bc; + /** @var int $br */ + /** @var string $bc */ if ($ar === $br) { return -strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc); } @@ -142,7 +139,7 @@ class ReferenceHelper * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustPageBreaks(Worksheet $worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustPageBreaks(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aBreaks = $worksheet->getBreaks(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -171,7 +168,7 @@ class ReferenceHelper * * @param Worksheet $worksheet The worksheet that we're editing */ - protected function adjustComments($worksheet): void + protected function adjustComments(Worksheet $worksheet): void { $aComments = $worksheet->getComments(); $aNewComments = []; // the new array of all comments @@ -195,7 +192,7 @@ class ReferenceHelper * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustHyperlinks($worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustHyperlinks(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aHyperlinkCollection = $worksheet->getHyperlinkCollection(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -220,7 +217,7 @@ class ReferenceHelper * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustConditionalFormatting($worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustConditionalFormatting(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aStyles = $worksheet->getConditionalStylesCollection(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -259,7 +256,7 @@ class ReferenceHelper * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustDataValidations(Worksheet $worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustDataValidations(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aDataValidationCollection = $worksheet->getDataValidationCollection(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -299,7 +296,7 @@ class ReferenceHelper * @param int $numberOfColumns Number of columns to insert/delete (negative values indicate deletion) * @param int $numberOfRows Number of rows to insert/delete (negative values indicate deletion) */ - protected function adjustProtectedCells(Worksheet $worksheet, $numberOfColumns, $numberOfRows): void + protected function adjustProtectedCells(Worksheet $worksheet, int $numberOfColumns, int $numberOfRows): void { $aProtectedCells = $worksheet->getProtectedCells(); ($numberOfColumns > 0 || $numberOfRows > 0) @@ -412,7 +409,7 @@ class ReferenceHelper $cellCollection = $worksheet->getCellCollection(); $missingCoordinates = array_filter( array_map(function ($row) use ($highestColumn) { - return $highestColumn . $row; + return "{$highestColumn}{$row}"; }, range(1, $highestRow)), function ($coordinate) use ($cellCollection) { return $cellCollection->has($coordinate) === false; @@ -453,9 +450,9 @@ class ReferenceHelper if ($cell->getDataType() === DataType::TYPE_FORMULA) { // Formula should be adjusted $worksheet->getCell($newCoordinate) - ->setValue($this->updateFormulaReferences($cell->getValue(), $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle())); + ->setValue($this->updateFormulaReferences($cell->getValue(), $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle(), true)); } else { - // Formula should not be adjusted + // Cell value should not be adjusted $worksheet->getCell($newCoordinate)->setValueExplicit($cell->getValue(), $cell->getDataType()); } @@ -463,10 +460,10 @@ class ReferenceHelper $worksheet->getCellCollection()->delete($coordinate); } else { /* We don't need to update styles for rows/columns before our insertion position, - but we do still need to adjust any formulae in those cells */ + but we do still need to adjust any formulae in those cells */ if ($cell->getDataType() === DataType::TYPE_FORMULA) { // Formula should be adjusted - $cell->setValue($this->updateFormulaReferences($cell->getValue(), $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle())); + $cell->setValue($this->updateFormulaReferences($cell->getValue(), $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle(), true)); } } } @@ -609,7 +606,7 @@ class ReferenceHelper // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more $column = 100000; $row = 10000000 + (int) trim($match[3], '$'); - $cellIndex = $column . $row; + $cellIndex = "{$column}{$row}"; $newCellTokens[$cellIndex] = preg_quote($toString, '/'); $cellTokens[$cellIndex] = '/(?getValue(); $asFormula = ($cellAddress[0] === '='); if ($definedName->getWorksheet() !== null && $definedName->getWorksheet()->getHashCode() === $worksheet->getHashCode()) { + /** + * If we delete the entire range that is referenced by a Named Range, MS Excel sets the value to #REF! + * PhpSpreadsheet still only does a basic adjustment, so the Named Range will still reference Cells. + * Note that this applies only when deleting columns/rows; subsequent insertion won't fix the #REF! + * TODO Can we work out a method to identify Named Ranges that cease to be valid, so that we can replace + * them with a #REF! + */ if ($asFormula === true) { - $formula = $this->updateFormulaReferences($cellAddress, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle()); + $formula = $this->updateFormulaReferences($cellAddress, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle(), true); $definedName->setValue($formula); } else { - $definedName->setValue($this->updateCellReference(ltrim($cellAddress, '='))); + $definedName->setValue($this->updateCellReference(ltrim($cellAddress, '='), true)); } } } @@ -929,8 +933,15 @@ class ReferenceHelper private function updateNamedFormula(DefinedName $definedName, Worksheet $worksheet, string $beforeCellAddress, int $numberOfColumns, int $numberOfRows): void { if ($definedName->getWorksheet() !== null && $definedName->getWorksheet()->getHashCode() === $worksheet->getHashCode()) { + /** + * If we delete the entire range that is referenced by a Named Formula, MS Excel sets the value to #REF! + * PhpSpreadsheet still only does a basic adjustment, so the Named Formula will still reference Cells. + * Note that this applies only when deleting columns/rows; subsequent insertion won't fix the #REF! + * TODO Can we work out a method to identify Named Ranges that cease to be valid, so that we can replace + * them with a #REF! + */ $formula = $definedName->getValue(); - $formula = $this->updateFormulaReferences($formula, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle()); + $formula = $this->updateFormulaReferences($formula, $beforeCellAddress, $numberOfColumns, $numberOfRows, $worksheet->getTitle(), true); $definedName->setValue($formula); } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php index 23733436b..ee693a2b3 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/TextElement.php @@ -47,7 +47,7 @@ class TextElement implements ITextElement } /** - * Get font. + * Get font. For this class, the return value is always null. * * @return null|\PhpOffice\PhpSpreadsheet\Style\Font */ diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php index 0baf44637..d8007fd00 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Settings.php @@ -155,7 +155,7 @@ class Settings /** * Sets the implementation of cache that should be used for cell collection. */ - public static function setCache(CacheInterface $cache): void + public static function setCache(?CacheInterface $cache): void { self::$cache = $cache; } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php index 26dde93f3..4f1967311 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Date.php @@ -184,7 +184,7 @@ class Date throw new Exception("Invalid string $value supplied for datatype Date"); } - if (preg_match('/^\\d\\d:\\d\\d:\\d\\d/', $value) == 1) { + if (preg_match('/^\\s*\\d?\\d:\\d\\d(:\\d\\d([.]\\d+)?)?\\s*(am|pm)?\\s*$/i', $value) == 1) { $newValue = fmod($newValue, 1.0); } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php index f2fe8caa8..737a6eb59 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/File.php @@ -156,7 +156,11 @@ class File if ($zipMember !== '') { $zipfile = "zip://$filename#$zipMember"; if (!self::fileExists($zipfile)) { - throw new ReaderException("Could not find zip member $zipfile"); + // Has the file been saved with Windoze directory separators rather than unix? + $zipfile = "zip://$filename#" . str_replace('/', '\\', $zipMember); + if (!self::fileExists($zipfile)) { + throw new ReaderException("Could not find zip member $zipfile"); + } } } } @@ -180,6 +184,14 @@ class File return self::validateZipFirst4($filename); } - return self::fileExists("zip://$filename#$zipMember"); + $zipfile = "zip://$filename#$zipMember"; + if (self::fileExists($zipfile)) { + return true; + } + + // Has the file been saved with Windoze directory separators rather than unix? + $zipfile = "zip://$filename#" . str_replace('/', '\\', $zipMember); + + return self::fileExists($zipfile); } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php index aa3512ae3..90c1992a3 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Font.php @@ -380,15 +380,15 @@ class Font $approximate = self::$autoSizeMethod === self::AUTOSIZE_METHOD_APPROX; $columnWidth = 0; if (!$approximate) { - $columnWidthAdjust = ceil( - self::getTextWidthPixelsExact( - str_repeat('n', 1 * (($filterAdjustment ? 3 : 1) + ($indentAdjustment * 2))), - $font, - 0 - ) * 1.07 - ); - try { + $columnWidthAdjust = ceil( + self::getTextWidthPixelsExact( + str_repeat('n', 1 * (($filterAdjustment ? 3 : 1) + ($indentAdjustment * 2))), + $font, + 0 + ) * 1.07 + ); + // Width of text in pixels excl. padding // and addition because Excel adds some padding, just use approx width of 'n' glyph $columnWidth = self::getTextWidthPixelsExact($cellText, $font, $rotation) + $columnWidthAdjust; @@ -453,29 +453,26 @@ class Font $fontName = $font->getName(); $fontSize = $font->getSize(); - // Calculate column width in pixels. We assume fixed glyph width. Result varies with font name and size. + // Calculate column width in pixels. + // We assume fixed glyph width, but count double for "fullwidth" characters. + // Result varies with font name and size. switch ($fontName) { - case 'Calibri': - // value 8.26 was found via interpolation by inspecting real Excel files with Calibri 11 font. - $columnWidth = (int) (8.26 * StringHelper::countCharacters($columnText)); - $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size - - break; case 'Arial': // value 8 was set because of experience in different exports at Arial 10 font. - $columnWidth = (int) (8 * StringHelper::countCharacters($columnText)); + $columnWidth = (int) (8 * StringHelper::countCharactersDbcs($columnText)); $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size break; case 'Verdana': // value 8 was found via interpolation by inspecting real Excel files with Verdana 10 font. - $columnWidth = (int) (8 * StringHelper::countCharacters($columnText)); + $columnWidth = (int) (8 * StringHelper::countCharactersDbcs($columnText)); $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size break; default: // just assume Calibri - $columnWidth = (int) (8.26 * StringHelper::countCharacters($columnText)); + // value 8.26 was found via interpolation by inspecting real Excel files with Calibri 11 font. + $columnWidth = (int) (8.26 * StringHelper::countCharactersDbcs($columnText)); $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size break; @@ -564,10 +561,13 @@ class Font if (mb_strlen(self::$trueTypeFontPath) > 1 && mb_substr(self::$trueTypeFontPath, -1) !== '/' && mb_substr(self::$trueTypeFontPath, -1) !== '\\') { $separator = DIRECTORY_SEPARATOR; } - $fontFile = self::$trueTypeFontPath . $separator . $fontFile; + $fontFileAbsolute = preg_match('~^([A-Za-z]:)?[/\\\\]~', $fontFile) === 1; + if (!$fontFileAbsolute) { + $fontFile = self::$trueTypeFontPath . $separator . $fontFile; + } // Check if file actually exists - if ($checkPath && !file_exists($fontFile)) { + if ($checkPath && !file_exists($fontFile) && !$fontFileAbsolute) { $alternateName = $name; if ($index !== 'x' && $fontArray[$name][$index] !== $fontArray[$name]['x']) { // Bold but no italic: diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php index c61ee2594..5d5babc3f 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php @@ -6,6 +6,9 @@ use PhpOffice\PhpSpreadsheet\Shared\OLE; class ChainedBlockStream { + /** @var mixed */ + public $context; + /** * The OLE container of the file that is being read. * @@ -160,7 +163,7 @@ class ChainedBlockStream $this->pos = $offset; } elseif ($whence == SEEK_CUR && -$offset <= $this->pos) { $this->pos += $offset; - // @phpstan-ignore-next-line + // @phpstan-ignore-next-line } elseif ($whence == SEEK_END && -$offset <= count(/** @scrutinizer ignore-type */ $this->data)) { $this->pos = strlen($this->data) + $offset; } else { diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php index 3d952a9c8..fcc963953 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/OLERead.php @@ -134,7 +134,7 @@ class OLERead $bbdBlocks = $this->numBigBlockDepotBlocks; - if ($this->numExtensionBlocks != 0) { + if ($this->numExtensionBlocks !== 0) { $bbdBlocks = (self::BIG_BLOCK_SIZE - self::BIG_BLOCK_DEPOT_BLOCKS_POS) / 4; } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php index 30bd8c5fd..c6c198e20 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php @@ -451,6 +451,18 @@ class StringHelper return mb_strlen($textValue, $encoding); } + /** + * Get character count using mb_strwidth rather than mb_strlen. + * + * @param string $encoding Encoding + * + * @return int Character count + */ + public static function countCharactersDbcs(string $textValue, string $encoding = 'UTF-8'): int + { + return mb_strwidth($textValue, $encoding); + } + /** * Get a substring of a UTF-8 encoded string. * diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php index b94609af7..117848c77 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/Trend/Trend.php @@ -105,7 +105,6 @@ class Trend $className = '\PhpOffice\PhpSpreadsheet\Shared\Trend\\' . $trendType . 'BestFit'; //* @phpstan-ignore-next-line $bestFit[$trendMethod] = new $className($yValues, $xValues, $const); - //* @phpstan-ignore-next-line $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit(); } if ($trendType != self::TREND_BEST_FIT_NO_POLY) { diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php index f0744cd27..110908550 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Spreadsheet.php @@ -203,6 +203,14 @@ class Spreadsheet implements JsonSerializable */ private $tabRatio = 600; + /** @var Theme */ + private $theme; + + public function getTheme(): Theme + { + return $this->theme; + } + /** * The workbook has macros ? * @@ -476,6 +484,7 @@ class Spreadsheet implements JsonSerializable { $this->uniqueID = uniqid('', true); $this->calculationEngine = new Calculation($this); + $this->theme = new Theme(); // Initialise worksheet collection and add one worksheet $this->workSheetCollection = []; @@ -1654,4 +1663,26 @@ class Spreadsheet implements JsonSerializable { throw new Exception('Spreadsheet objects cannot be json encoded'); } + + public function resetThemeFonts(): void + { + $majorFontLatin = $this->theme->getMajorFontLatin(); + $minorFontLatin = $this->theme->getMinorFontLatin(); + foreach ($this->cellXfCollection as $cellStyleXf) { + $scheme = $cellStyleXf->getFont()->getScheme(); + if ($scheme === 'major') { + $cellStyleXf->getFont()->setName($majorFontLatin)->setScheme($scheme); + } elseif ($scheme === 'minor') { + $cellStyleXf->getFont()->setName($minorFontLatin)->setScheme($scheme); + } + } + foreach ($this->cellStyleXfCollection as $cellStyleXf) { + $scheme = $cellStyleXf->getFont()->getScheme(); + if ($scheme === 'major') { + $cellStyleXf->getFont()->setName($majorFontLatin)->setScheme($scheme); + } elseif ($scheme === 'minor') { + $cellStyleXf->getFont()->setName($minorFontLatin)->setScheme($scheme); + } + } + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php index 3c002b270..282defc0c 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Color.php @@ -362,23 +362,8 @@ class Color extends Supervisor $green = self::getGreen($hexColourValue, false); /** @var int $blue */ $blue = self::getBlue($hexColourValue, false); - if ($adjustPercentage > 0) { - $red += (255 - $red) * $adjustPercentage; - $green += (255 - $green) * $adjustPercentage; - $blue += (255 - $blue) * $adjustPercentage; - } else { - $red += $red * $adjustPercentage; - $green += $green * $adjustPercentage; - $blue += $blue * $adjustPercentage; - } - $rgb = strtoupper( - str_pad(dechex((int) $red), 2, '0', 0) . - str_pad(dechex((int) $green), 2, '0', 0) . - str_pad(dechex((int) $blue), 2, '0', 0) - ); - - return (($rgba) ? 'FF' : '') . $rgb; + return (($rgba) ? 'FF' : '') . RgbTint::rgbAndTintToRgb($red, $green, $blue, $adjustPercentage); } /** diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php index de565d345..36069b00c 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Conditional.php @@ -248,7 +248,7 @@ class Conditional implements IComparable /** * Set Conditions. * - * @param bool|float|int|string|(bool|float|int|string)[] $conditions Condition + * @param (bool|float|int|string)[]|bool|float|int|string $conditions Condition * * @return $this */ diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php index 3d7bc1bce..a8eeaa986 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Font.php @@ -107,6 +107,9 @@ class Font extends Supervisor */ public $colorIndex; + /** @var string */ + protected $scheme = ''; + /** * Create a new Font. * @@ -231,6 +234,12 @@ class Font extends Supervisor if (isset($styleArray['size'])) { $this->setSize($styleArray['size']); } + if (isset($styleArray['chartColor'])) { + $this->chartColor = $styleArray['chartColor']; + } + if (isset($styleArray['scheme'])) { + $this->setScheme($styleArray['scheme']); + } } return $this; @@ -278,13 +287,11 @@ class Font extends Supervisor } /** - * Set Name. + * Set Name and turn off Scheme. * * @param string $fontname - * - * @return $this */ - public function setName($fontname) + public function setName($fontname): self { if ($fontname == '') { $fontname = 'Calibri'; @@ -296,7 +303,7 @@ class Font extends Supervisor $this->name = $fontname; } - return $this; + return $this->setScheme(''); } public function setLatin(string $fontname): self @@ -634,6 +641,13 @@ class Font extends Supervisor return $this; } + public function setChartColorFromObject(?ChartColor $chartColor): self + { + $this->chartColor = $chartColor; + + return $this; + } + /** * Get Underline. * @@ -774,6 +788,7 @@ class Font extends Supervisor $this->underline . ($this->strikethrough ? 't' : 'f') . $this->color->getHashCode() . + $this->scheme . implode( '*', [ @@ -802,6 +817,7 @@ class Font extends Supervisor $this->exportArray2($exportedArray, 'italic', $this->getItalic()); $this->exportArray2($exportedArray, 'latin', $this->getLatin()); $this->exportArray2($exportedArray, 'name', $this->getName()); + $this->exportArray2($exportedArray, 'scheme', $this->getScheme()); $this->exportArray2($exportedArray, 'size', $this->getSize()); $this->exportArray2($exportedArray, 'strikethrough', $this->getStrikethrough()); $this->exportArray2($exportedArray, 'strikeType', $this->getStrikeType()); @@ -812,4 +828,27 @@ class Font extends Supervisor return $exportedArray; } + + public function getScheme(): string + { + if ($this->isSupervisor) { + return $this->getSharedComponent()->getScheme(); + } + + return $this->scheme; + } + + public function setScheme(string $scheme): self + { + if ($scheme === '' || $scheme === 'major' || $scheme === 'minor') { + if ($this->isSupervisor) { + $styleArray = $this->getStyleArray(['scheme' => $scheme]); + $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); + } else { + $this->scheme = $scheme; + } + } + + return $this; + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php index de3666ae1..41a17151d 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Formatter.php @@ -3,6 +3,7 @@ namespace PhpOffice\PhpSpreadsheet\Style\NumberFormat; use PhpOffice\PhpSpreadsheet\Calculation\Calculation; +use PhpOffice\PhpSpreadsheet\Reader\Xls\Color\BIFF8; use PhpOffice\PhpSpreadsheet\RichText\RichText; use PhpOffice\PhpSpreadsheet\Style\Color; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; @@ -67,14 +68,19 @@ class Formatter // 3 sections: [POSITIVE/TEXT] [NEGATIVE] [ZERO] // 4 sections: [POSITIVE] [NEGATIVE] [ZERO] [TEXT] $sectionCount = count($sections); - $color_regex = '/\\[(' . implode('|', Color::NAMED_COLORS) . ')\\]/mui'; + // Colour could be a named colour, or a numeric index entry in the colour-palette + $color_regex = '/\\[(' . implode('|', Color::NAMED_COLORS) . '|color\\s*(\\d+))\\]/mui'; $cond_regex = '/\\[(>|>=|<|<=|=|<>)([+-]?\\d+([.]\\d+)?)\\]/'; $colors = ['', '', '', '', '']; $conditionOperations = ['', '', '', '', '']; $conditionComparisonValues = [0, 0, 0, 0, 0]; for ($idx = 0; $idx < $sectionCount; ++$idx) { if (preg_match($color_regex, $sections[$idx], $matches)) { - $colors[$idx] = $matches[0]; + if (isset($matches[2])) { + $colors[$idx] = '#' . BIFF8::lookup((int) $matches[2] + 7)['rgb']; + } else { + $colors[$idx] = $matches[0]; + } $sections[$idx] = (string) preg_replace($color_regex, '', $sections[$idx]); } if (preg_match($cond_regex, $sections[$idx], $matches)) { @@ -170,10 +176,11 @@ class Formatter $format = (string) preg_replace('/_.?/ui', ' ', $format); // Let's begin inspecting the format and converting the value to a formatted string - // Check for date/time characters (not inside quotes) if ( - (preg_match('/(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy](?=(?:[^"]|"[^"]*")*$)/miu', $format)) && - (preg_match('/0(?![^\[]*\])/miu', $format) === 0) + // Check for date/time characters (not inside quotes) + (preg_match('/(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy](?=(?:[^"]|"[^"]*")*$)/miu', $format)) + // A date/time with a decimal time shouldn't have a digit placeholder before the decimal point + && (preg_match('/[0\?#]\.(?![^\[]*\])/miu', $format) === 0) ) { // datetime format $value = DateFormatter::format($value, $format); @@ -194,8 +201,6 @@ class Formatter $value = $writerInstance->$function($value, $colors); } - $value = str_replace(chr(0x00), '.', $value); - - return $value; + return str_replace(chr(0x00), '.', $value); } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php index a138ab7f1..c30028601 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Accounting.php @@ -89,13 +89,13 @@ class Accounting extends Currency ( $this->currencySymbolPosition === self::LEADING_SYMBOL && $this->currencySymbolSpacing === self::SYMBOL_WITH_SPACING - ) ? ' ' : '', + ) ? "\u{a0}" : '', $this->thousandsSeparator ? '#,##' : null, $this->decimals > 0 ? '.' . str_repeat('0', $this->decimals) : null, ( $this->currencySymbolPosition === self::TRAILING_SYMBOL && $this->currencySymbolSpacing === self::SYMBOL_WITH_SPACING - ) ? ' ' : '', + ) ? "\u{a0}" : '', $this->currencySymbolPosition === self::TRAILING_SYMBOL ? $this->formatCurrencyCode() : null ); } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Date.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Date.php new file mode 100644 index 000000000..61ac117b7 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Date.php @@ -0,0 +1,125 @@ +separators = $this->padSeparatorArray( + is_array($separators) ? $separators : [$separators], + count($formatBlocks) - 1 + ); + $this->formatBlocks = array_map([$this, 'mapFormatBlocks'], $formatBlocks); + } + + private function mapFormatBlocks(string $value): string + { + // Any date masking codes are returned as lower case values + if (in_array(mb_strtolower($value), self::DATE_BLOCKS, true)) { + return mb_strtolower($value); + } + + // Wrap any string literals in quotes, so that they're clearly defined as string literals + return $this->wrapLiteral($value); + } + + public function format(): string + { + return implode('', array_map([$this, 'intersperse'], $this->formatBlocks, $this->separators)); + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTime.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTime.php new file mode 100644 index 000000000..292c1efc9 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTime.php @@ -0,0 +1,50 @@ + + */ + protected array $formatBlocks; + + /** + * @param null|string|string[] $separators + * If you want to use only a single format block, then pass a null as the separator argument + * @param DateTimeWizard|string ...$formatBlocks + */ + public function __construct($separators, ...$formatBlocks) + { + $this->separators = $this->padSeparatorArray( + is_array($separators) ? $separators : [$separators], + count($formatBlocks) - 1 + ); + $this->formatBlocks = array_map([$this, 'mapFormatBlocks'], $formatBlocks); + } + + /** + * @param DateTimeWizard|string $value + */ + private function mapFormatBlocks($value): string + { + // Any date masking codes are returned as lower case values + if (is_object($value)) { + // We can't explicitly test for Stringable until PHP >= 8.0 + return $value; + } + + // Wrap any string literals in quotes, so that they're clearly defined as string literals + return $this->wrapLiteral($value); + } + + public function format(): string + { + return implode('', array_map([$this, 'intersperse'], $this->formatBlocks, $this->separators)); + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTimeWizard.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTimeWizard.php new file mode 100644 index 000000000..b14a6190f --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/DateTimeWizard.php @@ -0,0 +1,44 @@ += "; + + protected function padSeparatorArray(array $separators, int $count): array + { + $lastSeparator = array_pop($separators); + + return $separators + array_fill(0, $count, $lastSeparator); + } + + protected function escapeSingleCharacter(string $value): string + { + if (strpos(self::NO_ESCAPING_NEEDED, $value) !== false) { + return $value; + } + + return "\\{$value}"; + } + + protected function wrapLiteral(string $value): string + { + if (mb_strlen($value, 'UTF-8') === 1) { + return $this->escapeSingleCharacter($value); + } + + // Wrap any other string literals in quotes, so that they're clearly defined as string literals + return '"' . str_replace('"', '""', $value) . '"'; + } + + protected function intersperse(string $formatBlock, ?string $separator): string + { + return "{$formatBlock}{$separator}"; + } + + public function __toString(): string + { + return $this->format(); + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Duration.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Duration.php new file mode 100644 index 000000000..b81f77acb --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Duration.php @@ -0,0 +1,153 @@ + self::DAYS_DURATION, + self::HOURS_DURATION => self::HOURS_SHORT, + self::MINUTES_DURATION => self::MINUTES_LONG, + self::SECONDS_DURATION => self::SECONDS_LONG, + ]; + + protected const DURATION_DEFAULTS = [ + self::HOURS_LONG => self::HOURS_DURATION, + self::HOURS_SHORT => self::HOURS_DURATION, + self::MINUTES_LONG => self::MINUTES_DURATION, + self::MINUTES_SHORT => self::MINUTES_DURATION, + self::SECONDS_LONG => self::SECONDS_DURATION, + self::SECONDS_SHORT => self::SECONDS_DURATION, + ]; + + public const SEPARATOR_COLON = ':'; + public const SEPARATOR_SPACE_NONBREAKING = "\u{a0}"; + public const SEPARATOR_SPACE = ' '; + + public const DURATION_DEFAULT = [ + self::HOURS_DURATION, + self::MINUTES_LONG, + self::SECONDS_LONG, + ]; + + /** + * @var string[] + */ + protected array $separators; + + /** + * @var string[] + */ + protected array $formatBlocks; + + protected bool $durationIsSet = false; + + /** + * @param null|string|string[] $separators + * If you want to use the same separator for all format blocks, then it can be passed as a string literal; + * if you wish to use different separators, then they should be passed as an array. + * If you want to use only a single format block, then pass a null as the separator argument + */ + public function __construct($separators = self::SEPARATOR_COLON, string ...$formatBlocks) + { + $separators ??= self::SEPARATOR_COLON; + $formatBlocks = (count($formatBlocks) === 0) ? self::DURATION_DEFAULT : $formatBlocks; + + $this->separators = $this->padSeparatorArray( + is_array($separators) ? $separators : [$separators], + count($formatBlocks) - 1 + ); + $this->formatBlocks = array_map([$this, 'mapFormatBlocks'], $formatBlocks); + + if ($this->durationIsSet === false) { + // We need at least one duration mask, so if none has been set we change the first mask element + // to a duration. + $this->formatBlocks[0] = self::DURATION_DEFAULTS[mb_strtolower($this->formatBlocks[0])]; + } + } + + private function mapFormatBlocks(string $value): string + { + // Any duration masking codes are returned as lower case values + if (in_array(mb_strtolower($value), self::DURATION_BLOCKS, true)) { + if (array_key_exists(mb_strtolower($value), self::DURATION_MASKS)) { + if ($this->durationIsSet) { + // We should only have a single duration mask, the first defined in the mask set, + // so convert any additional duration masks to standard time masks. + $value = self::DURATION_MASKS[mb_strtolower($value)]; + } + $this->durationIsSet = true; + } + + return mb_strtolower($value); + } + + // Wrap any string literals in quotes, so that they're clearly defined as string literals + return $this->wrapLiteral($value); + } + + public function format(): string + { + return implode('', array_map([$this, 'intersperse'], $this->formatBlocks, $this->separators)); + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Time.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Time.php new file mode 100644 index 000000000..64b9104a6 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/NumberFormat/Wizard/Time.php @@ -0,0 +1,105 @@ +separators = $this->padSeparatorArray( + is_array($separators) ? $separators : [$separators], + count($formatBlocks) - 1 + ); + $this->formatBlocks = array_map([$this, 'mapFormatBlocks'], $formatBlocks); + } + + private function mapFormatBlocks(string $value): string + { + // Any date masking codes are returned as lower case values + // except for AM/PM, which is set to uppercase + if (in_array(mb_strtolower($value), self::TIME_BLOCKS, true)) { + return mb_strtolower($value); + } elseif (mb_strtoupper($value) === self::MORNING_AFTERNOON) { + return mb_strtoupper($value); + } + + // Wrap any string literals in quotes, so that they're clearly defined as string literals + return $this->wrapLiteral($value); + } + + public function format(): string + { + return implode('', array_map([$this, 'intersperse'], $this->formatBlocks, $this->separators)); + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/RgbTint.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/RgbTint.php new file mode 100644 index 000000000..582ae4839 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/RgbTint.php @@ -0,0 +1,175 @@ += 0.0) ? $hue : (1.0 + $hue); + } + + /** + * Convert red/green/blue to HLSMAX-based hue/luminance/saturation. + * + * @return int[] + */ + private static function rgbToMsHls(int $red, int $green, int $blue): array + { + $red01 = $red / self::RGBMAX; + $green01 = $green / self::RGBMAX; + $blue01 = $blue / self::RGBMAX; + [$hue, $luminance, $saturation] = self::rgbToHls($red01, $green01, $blue01); + + return [ + (int) round($hue * self::HLSMAX), + (int) round($luminance * self::HLSMAX), + (int) round($saturation * self::HLSMAX), + ]; + } + + /** + * Converts HLSMAX based HLS values to rgb values in the range (0,1). + * + * @return float[] + */ + private static function msHlsToRgb(int $hue, int $lightness, int $saturation): array + { + return self::hlsToRgb($hue / self::HLSMAX, $lightness / self::HLSMAX, $saturation / self::HLSMAX); + } + + /** + * Tints HLSMAX based luminance. + * + * @see http://ciintelligence.blogspot.co.uk/2012/02/converting-excel-theme-color-and-tint.html + */ + private static function tintLuminance(float $tint, float $luminance): int + { + if ($tint < 0) { + return (int) round($luminance * (1.0 + $tint)); + } + + return (int) round($luminance * (1.0 - $tint) + (self::HLSMAX - self::HLSMAX * (1.0 - $tint))); + } + + /** + * Return result of tinting supplied rgb as 6 hex digits. + */ + public static function rgbAndTintToRgb(int $red, int $green, int $blue, float $tint): string + { + [$hue, $luminance, $saturation] = self::rgbToMsHls($red, $green, $blue); + [$red, $green, $blue] = self::msHlsToRgb($hue, self::tintLuminance($tint, $luminance), $saturation); + + return sprintf( + '%02X%02X%02X', + (int) round($red * self::RGBMAX), + (int) round($green * self::RGBMAX), + (int) round($blue * self::RGBMAX) + ); + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php index be70639eb..9309830bf 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Style/Style.php @@ -2,7 +2,10 @@ namespace PhpOffice\PhpSpreadsheet\Style; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; +use PhpOffice\PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; use PhpOffice\PhpSpreadsheet\Spreadsheet; class Style extends Supervisor @@ -122,7 +125,7 @@ class Style extends Supervisor public function getSharedComponent(): self { $activeSheet = $this->getActiveSheet(); - $selectedCell = $this->getActiveCell(); // e.g. 'A1' + $selectedCell = Functions::trimSheetFromCellReference($this->getActiveCell()); // e.g. 'A1' if ($activeSheet->cellExists($selectedCell)) { $xfIndex = $activeSheet->getCell($selectedCell)->getXfIndex(); @@ -203,8 +206,15 @@ class Style extends Supervisor if ($this->isSupervisor) { $pRange = $this->getSelectedCells(); - // Uppercase coordinate + // Uppercase coordinate and strip any Worksheet reference from the selected range $pRange = strtoupper($pRange); + if (strpos($pRange, '!') !== false) { + $pRangeWorksheet = StringHelper::strToUpper(trim(substr($pRange, 0, (int) strrpos($pRange, '!')), "'")); + if ($pRangeWorksheet !== '' && StringHelper::strToUpper($this->getActiveSheet()->getTitle()) !== $pRangeWorksheet) { + throw new Exception('Invalid Worksheet for specified Range'); + } + $pRange = strtoupper(Functions::trimSheetFromCellReference($pRange)); + } // Is it a cell range or a single cell? if (strpos($pRange, ':') === false) { diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Theme.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Theme.php new file mode 100644 index 000000000..ab101f01e --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Theme.php @@ -0,0 +1,269 @@ + '000000', + 'lt1' => 'FFFFFF', + 'dk2' => '44546A', + 'lt2' => 'E7E6E6', + 'accent1' => '4472C4', + 'accent2' => 'ED7D31', + 'accent3' => 'A5A5A5', + 'accent4' => 'FFC000', + 'accent5' => '5B9BD5', + 'accent6' => '70AD47', + 'hlink' => '0563C1', + 'folHlink' => '954F72', + ]; + + public const COLOR_SCHEME_2007_2010_NAME = 'Office 2007-2010'; + public const COLOR_SCHEME_2007_2010 = [ + 'dk1' => '000000', + 'lt1' => 'FFFFFF', + 'dk2' => '1F497D', + 'lt2' => 'EEECE1', + 'accent1' => '4F81BD', + 'accent2' => 'C0504D', + 'accent3' => '9BBB59', + 'accent4' => '8064A2', + 'accent5' => '4BACC6', + 'accent6' => 'F79646', + 'hlink' => '0000FF', + 'folHlink' => '800080', + ]; + + /** @var string[] */ + private $themeColors = self::COLOR_SCHEME_2007_2010; + + /** @var string */ + private $majorFontLatin = 'Cambria'; + + /** @var string */ + private $majorFontEastAsian = ''; + + /** @var string */ + private $majorFontComplexScript = ''; + + /** @var string */ + private $minorFontLatin = 'Calibri'; + + /** @var string */ + private $minorFontEastAsian = ''; + + /** @var string */ + private $minorFontComplexScript = ''; + + /** + * Map of Major (header) fonts to write. + * + * @var string[] + */ + private $majorFontSubstitutions = self::FONTS_TIMES_SUBSTITUTIONS; + + /** + * Map of Minor (body) fonts to write. + * + * @var string[] + */ + private $minorFontSubstitutions = self::FONTS_ARIAL_SUBSTITUTIONS; + + public const FONTS_TIMES_SUBSTITUTIONS = [ + 'Jpan' => 'MS Pゴシック', + 'Hang' => '맑은 고딕', + 'Hans' => '宋体', + 'Hant' => '新細明體', + 'Arab' => 'Times New Roman', + 'Hebr' => 'Times New Roman', + 'Thai' => 'Tahoma', + 'Ethi' => 'Nyala', + 'Beng' => 'Vrinda', + 'Gujr' => 'Shruti', + 'Khmr' => 'MoolBoran', + 'Knda' => 'Tunga', + 'Guru' => 'Raavi', + 'Cans' => 'Euphemia', + 'Cher' => 'Plantagenet Cherokee', + 'Yiii' => 'Microsoft Yi Baiti', + 'Tibt' => 'Microsoft Himalaya', + 'Thaa' => 'MV Boli', + 'Deva' => 'Mangal', + 'Telu' => 'Gautami', + 'Taml' => 'Latha', + 'Syrc' => 'Estrangelo Edessa', + 'Orya' => 'Kalinga', + 'Mlym' => 'Kartika', + 'Laoo' => 'DokChampa', + 'Sinh' => 'Iskoola Pota', + 'Mong' => 'Mongolian Baiti', + 'Viet' => 'Times New Roman', + 'Uigh' => 'Microsoft Uighur', + 'Geor' => 'Sylfaen', + ]; + + public const FONTS_ARIAL_SUBSTITUTIONS = [ + 'Jpan' => 'MS Pゴシック', + 'Hang' => '맑은 고딕', + 'Hans' => '宋体', + 'Hant' => '新細明體', + 'Arab' => 'Arial', + 'Hebr' => 'Arial', + 'Thai' => 'Tahoma', + 'Ethi' => 'Nyala', + 'Beng' => 'Vrinda', + 'Gujr' => 'Shruti', + 'Khmr' => 'DaunPenh', + 'Knda' => 'Tunga', + 'Guru' => 'Raavi', + 'Cans' => 'Euphemia', + 'Cher' => 'Plantagenet Cherokee', + 'Yiii' => 'Microsoft Yi Baiti', + 'Tibt' => 'Microsoft Himalaya', + 'Thaa' => 'MV Boli', + 'Deva' => 'Mangal', + 'Telu' => 'Gautami', + 'Taml' => 'Latha', + 'Syrc' => 'Estrangelo Edessa', + 'Orya' => 'Kalinga', + 'Mlym' => 'Kartika', + 'Laoo' => 'DokChampa', + 'Sinh' => 'Iskoola Pota', + 'Mong' => 'Mongolian Baiti', + 'Viet' => 'Arial', + 'Uigh' => 'Microsoft Uighur', + 'Geor' => 'Sylfaen', + ]; + + public function getThemeColors(): array + { + return $this->themeColors; + } + + public function setThemeColor(string $key, string $value): self + { + $this->themeColors[$key] = $value; + + return $this; + } + + public function getThemeColorName(): string + { + return $this->themeColorName; + } + + public function setThemeColorName(string $name, ?array $themeColors = null): self + { + $this->themeColorName = $name; + if ($name === self::COLOR_SCHEME_2007_2010_NAME) { + $themeColors = $themeColors ?? self::COLOR_SCHEME_2007_2010; + } elseif ($name === self::COLOR_SCHEME_2013_PLUS_NAME) { + $themeColors = $themeColors ?? self::COLOR_SCHEME_2013_PLUS; + } + if ($themeColors !== null) { + $this->themeColors = $themeColors; + } + + return $this; + } + + public function getMajorFontLatin(): string + { + return $this->majorFontLatin; + } + + public function getMajorFontEastAsian(): string + { + return $this->majorFontEastAsian; + } + + public function getMajorFontComplexScript(): string + { + return $this->majorFontComplexScript; + } + + public function getMajorFontSubstitutions(): array + { + return $this->majorFontSubstitutions; + } + + /** @param null|array $substitutions */ + public function setMajorFontValues(?string $latin, ?string $eastAsian, ?string $complexScript, $substitutions): self + { + if (!empty($latin)) { + $this->majorFontLatin = $latin; + } + if ($eastAsian !== null) { + $this->majorFontEastAsian = $eastAsian; + } + if ($complexScript !== null) { + $this->majorFontComplexScript = $complexScript; + } + if ($substitutions !== null) { + $this->majorFontSubstitutions = $substitutions; + } + + return $this; + } + + public function getMinorFontLatin(): string + { + return $this->minorFontLatin; + } + + public function getMinorFontEastAsian(): string + { + return $this->minorFontEastAsian; + } + + public function getMinorFontComplexScript(): string + { + return $this->minorFontComplexScript; + } + + public function getMinorFontSubstitutions(): array + { + return $this->minorFontSubstitutions; + } + + /** @param null|array $substitutions */ + public function setMinorFontValues(?string $latin, ?string $eastAsian, ?string $complexScript, $substitutions): self + { + if (!empty($latin)) { + $this->minorFontLatin = $latin; + } + if ($eastAsian !== null) { + $this->minorFontEastAsian = $eastAsian; + } + if ($complexScript !== null) { + $this->minorFontComplexScript = $complexScript; + } + if ($substitutions !== null) { + $this->minorFontSubstitutions = $substitutions; + } + + return $this; + } + + public function getThemeFontName(): string + { + return $this->themeFontName; + } + + public function setThemeFontName(?string $name): self + { + if (!empty($name)) { + $this->themeFontName = $name; + } + + return $this; + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php index d6041985d..cbc4ff65f 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/AutoFilter.php @@ -321,7 +321,7 @@ class AutoFilter * * @return bool */ - private static function filterTestInSimpleDataSet($cellValue, $dataSet) + protected static function filterTestInSimpleDataSet($cellValue, $dataSet) { $dataSetValues = $dataSet['filterValues']; $blanks = $dataSet['blanks']; @@ -340,7 +340,7 @@ class AutoFilter * * @return bool */ - private static function filterTestInDateGroupSet($cellValue, $dataSet) + protected static function filterTestInDateGroupSet($cellValue, $dataSet) { $dateSet = $dataSet['filterValues']; $blanks = $dataSet['blanks']; @@ -384,7 +384,7 @@ class AutoFilter * * @return bool */ - private static function filterTestInCustomDataSet($cellValue, $ruleSet) + protected static function filterTestInCustomDataSet($cellValue, $ruleSet) { /** @var array[] */ $dataSet = $ruleSet['filterRules']; @@ -509,7 +509,7 @@ class AutoFilter * * @return bool */ - private static function filterTestInPeriodDateSet($cellValue, $monthSet) + protected static function filterTestInPeriodDateSet($cellValue, $monthSet) { // Blank cells are always ignored, so return a FALSE if (($cellValue == '') || ($cellValue === null)) { diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php index 34e1145e0..d51023fcc 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageMargins.php @@ -197,21 +197,6 @@ class PageMargins return $this; } - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } - public static function fromCentimeters(float $value): float { return $value / 2.54; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php index 22c99ff3b..72c8958c8 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/PageSetup.php @@ -885,19 +885,4 @@ class PageSetup return $this; } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php index 13464c997..697f11c2a 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/SheetView.php @@ -175,19 +175,4 @@ class SheetView return $this; } - - /** - * Implement PHP __clone to create a deep clone, not just a shallow copy. - */ - public function __clone() - { - $vars = get_object_vars($this); - foreach ($vars as $key => $value) { - if (is_object($value)) { - $this->$key = clone $value; - } else { - $this->$key = $value; - } - } - } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php index dc2a4f8a5..1bc8dff45 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table.php @@ -180,7 +180,7 @@ class Table private function updateStructuredReferencesInCells(Worksheet $worksheet, string $newName): void { - $pattern = '/' . preg_quote($this->name) . '\[/mui'; + $pattern = '/' . preg_quote($this->name, '/') . '\[/mui'; foreach ($worksheet->getCoordinates(false) as $coordinate) { $cell = $worksheet->getCell($coordinate); @@ -196,7 +196,7 @@ class Table private function updateStructuredReferencesInNamedFormulae(Spreadsheet $spreadsheet, string $newName): void { - $pattern = '/' . preg_quote($this->name) . '\[/mui'; + $pattern = '/' . preg_quote($this->name, '/') . '\[/mui'; foreach ($spreadsheet->getNamedFormulae() as $namedFormula) { $formula = $namedFormula->getValue(); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php index 30630c0d4..32dd4c4f8 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Table/Column.php @@ -225,7 +225,7 @@ class Column private static function updateStructuredReferencesInCells(Worksheet $worksheet, string $oldTitle, string $newTitle): void { - $pattern = '/\[(@?)' . preg_quote($oldTitle) . '\]/mui'; + $pattern = '/\[(@?)' . preg_quote($oldTitle, '/') . '\]/mui'; foreach ($worksheet->getCoordinates(false) as $coordinate) { $cell = $worksheet->getCell($coordinate); @@ -241,7 +241,7 @@ class Column private static function updateStructuredReferencesInNamedFormulae(Spreadsheet $spreadsheet, string $oldTitle, string $newTitle): void { - $pattern = '/\[(@?)' . preg_quote($oldTitle) . '\]/mui'; + $pattern = '/\[(@?)' . preg_quote($oldTitle, '/') . '\]/mui'; foreach ($spreadsheet->getNamedFormulae() as $namedFormula) { $formula = $namedFormula->getValue(); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php index aab3aae44..42ba566c6 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Validations.php @@ -53,6 +53,9 @@ class Validations return self::validateCellRange($cellRange); } + private const SETMAXROW = '${1}1:${2}' . AddressRange::MAX_ROW; + private const SETMAXCOL = 'A${1}:' . AddressRange::MAX_COLUMN . '${2}'; + /** * Validate a cell range. * @@ -69,7 +72,7 @@ class Validations // or Row ranges like '1:3' to 'A1:XFD3' $addressRange = (string) preg_replace( ['/^([A-Z]+):([A-Z]+)$/i', '/^(\\d+):(\\d+)$/'], - ['${1}1:${2}1048576', 'A${1}:XFD${2}'], + [self::SETMAXROW, self::SETMAXCOL], $addressRange ); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php index cc0e05b69..29221e991 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Worksheet/Worksheet.php @@ -543,9 +543,18 @@ class Worksheet implements IComparable */ public function getColumnDimensions() { + /** @var callable */ + $callable = [self::class, 'columnDimensionCompare']; + uasort($this->columnDimensions, $callable); + return $this->columnDimensions; } + private static function columnDimensionCompare(ColumnDimension $a, ColumnDimension $b): int + { + return $a->getColumnNumeric() - $b->getColumnNumeric(); + } + /** * Get default column dimension. * @@ -1806,9 +1815,15 @@ class Worksheet implements IComparable public function getBreaks() { $breaks = []; + /** @var callable */ + $compareFunction = [self::class, 'compareRowBreaks']; + uksort($this->rowBreaks, $compareFunction); foreach ($this->rowBreaks as $break) { $breaks[$break->getCoordinate()] = self::BREAK_ROW; } + /** @var callable */ + $compareFunction = [self::class, 'compareColumnBreaks']; + uksort($this->columnBreaks, $compareFunction); foreach ($this->columnBreaks as $break) { $breaks[$break->getCoordinate()] = self::BREAK_COLUMN; } @@ -1823,16 +1838,40 @@ class Worksheet implements IComparable */ public function getRowBreaks() { + /** @var callable */ + $compareFunction = [self::class, 'compareRowBreaks']; + uksort($this->rowBreaks, $compareFunction); + return $this->rowBreaks; } + protected static function compareRowBreaks(string $coordinate1, string $coordinate2): int + { + $row1 = Coordinate::indexesFromString($coordinate1)[1]; + $row2 = Coordinate::indexesFromString($coordinate2)[1]; + + return $row1 - $row2; + } + + protected static function compareColumnBreaks(string $coordinate1, string $coordinate2): int + { + $column1 = Coordinate::indexesFromString($coordinate1)[0]; + $column2 = Coordinate::indexesFromString($coordinate2)[0]; + + return $column1 - $column2; + } + /** - * Get row breaks. + * Get column breaks. * * @return PageBreak[] */ public function getColumnBreaks() { + /** @var callable */ + $compareFunction = [self::class, 'compareColumnBreaks']; + uksort($this->columnBreaks, $compareFunction); + return $this->columnBreaks; } @@ -2448,12 +2487,12 @@ class Worksheet implements IComparable /** * Insert a new row, updating all possible related data. * - * @param int $before Insert before this one - * @param int $numberOfRows Number of rows to insert + * @param int $before Insert before this row number + * @param int $numberOfRows Number of new rows to insert * * @return $this */ - public function insertNewRowBefore($before, $numberOfRows = 1) + public function insertNewRowBefore(int $before, int $numberOfRows = 1) { if ($before >= 1) { $objReferenceHelper = ReferenceHelper::getInstance(); @@ -2468,12 +2507,12 @@ class Worksheet implements IComparable /** * Insert a new column, updating all possible related data. * - * @param string $before Insert before this one, eg: 'A' - * @param int $numberOfColumns Number of columns to insert + * @param string $before Insert before this column Name, eg: 'A' + * @param int $numberOfColumns Number of new columns to insert * * @return $this */ - public function insertNewColumnBefore($before, $numberOfColumns = 1) + public function insertNewColumnBefore(string $before, int $numberOfColumns = 1) { if (!is_numeric($before)) { $objReferenceHelper = ReferenceHelper::getInstance(); @@ -2488,12 +2527,12 @@ class Worksheet implements IComparable /** * Insert a new column, updating all possible related data. * - * @param int $beforeColumnIndex Insert before this one (numeric column coordinate of the cell) - * @param int $numberOfColumns Number of columns to insert + * @param int $beforeColumnIndex Insert before this column ID (numeric column coordinate of the cell) + * @param int $numberOfColumns Number of new columns to insert * * @return $this */ - public function insertNewColumnBeforeByIndex($beforeColumnIndex, $numberOfColumns = 1) + public function insertNewColumnBeforeByIndex(int $beforeColumnIndex, int $numberOfColumns = 1) { if ($beforeColumnIndex >= 1) { return $this->insertNewColumnBefore(Coordinate::stringFromColumnIndex($beforeColumnIndex), $numberOfColumns); @@ -2505,12 +2544,12 @@ class Worksheet implements IComparable /** * Delete a row, updating all possible related data. * - * @param int $row Remove starting with this one + * @param int $row Remove rows, starting with this row number * @param int $numberOfRows Number of rows to remove * * @return $this */ - public function removeRow($row, $numberOfRows = 1) + public function removeRow(int $row, int $numberOfRows = 1) { if ($row < 1) { throw new Exception('Rows to be deleted should at least start from row 1.'); @@ -2561,12 +2600,12 @@ class Worksheet implements IComparable /** * Remove a column, updating all possible related data. * - * @param string $column Remove starting with this one, eg: 'A' + * @param string $column Remove columns starting with this column name, eg: 'A' * @param int $numberOfColumns Number of columns to remove * * @return $this */ - public function removeColumn($column, $numberOfColumns = 1) + public function removeColumn(string $column, int $numberOfColumns = 1) { if (is_numeric($column)) { throw new Exception('Column references should not be numeric.'); @@ -2623,12 +2662,12 @@ class Worksheet implements IComparable /** * Remove a column, updating all possible related data. * - * @param int $columnIndex Remove starting with this one (numeric column coordinate of the cell) + * @param int $columnIndex Remove starting with this column Index (numeric column coordinate) * @param int $numColumns Number of columns to remove * * @return $this */ - public function removeColumnByIndex($columnIndex, $numColumns = 1) + public function removeColumnByIndex(int $columnIndex, int $numColumns = 1) { if ($columnIndex >= 1) { return $this->removeColumn(Coordinate::stringFromColumnIndex($columnIndex), $numColumns); @@ -2988,21 +3027,58 @@ class Worksheet implements IComparable return $this; } + /** + * @param mixed $nullValue + * + * @throws Exception + * @throws \PhpOffice\PhpSpreadsheet\Calculation\Exception + * + * @return mixed + */ + protected function cellToArray(Cell $cell, bool $calculateFormulas, bool $formatData, $nullValue) + { + $returnValue = $nullValue; + + if ($cell->getValue() !== null) { + if ($cell->getValue() instanceof RichText) { + $returnValue = $cell->getValue()->getPlainText(); + } else { + $returnValue = ($calculateFormulas) ? $cell->getCalculatedValue() : $cell->getValue(); + } + + if ($formatData) { + $style = $this->getParentOrThrow()->getCellXfByIndex($cell->getXfIndex()); + $returnValue = NumberFormat::toFormattedString( + $returnValue, + $style->getNumberFormat()->getFormatCode() ?? NumberFormat::FORMAT_GENERAL + ); + } + } + + return $returnValue; + } + /** * Create array from a range of cells. * - * @param string $range Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1") * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist * @param bool $calculateFormulas Should formulas be calculated? * @param bool $formatData Should formatting be applied to cell values? * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * - * @return array + * True - Return rows and columns indexed by their actual row and column IDs + * @param bool $ignoreHidden False - Return values for rows/columns even if they are defined as hidden. + * True - Don't return values for rows/columns that are defined as hidden. */ - public function rangeToArray($range, $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { - // Returnvalue + public function rangeToArray( + string $range, + $nullValue = null, + bool $calculateFormulas = true, + bool $formatData = true, + bool $returnCellRef = false, + bool $ignoreHidden = false + ): array { + $range = Validations::validateCellOrCellRange($range); + $returnValue = []; // Identify the range that we need to extract from the worksheet [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($range); @@ -3015,42 +3091,23 @@ class Worksheet implements IComparable // Loop through rows $r = -1; for ($row = $minRow; $row <= $maxRow; ++$row) { - $rRef = $returnCellRef ? $row : ++$r; + if (($ignoreHidden === true) && ($this->getRowDimension($row)->getVisible() === false)) { + continue; + } + $rowRef = $returnCellRef ? $row : ++$r; $c = -1; // Loop through columns in the current row - for ($col = $minCol; $col != $maxCol; ++$col) { - $cRef = $returnCellRef ? $col : ++$c; + for ($col = $minCol; $col !== $maxCol; ++$col) { + if (($ignoreHidden === true) && ($this->getColumnDimension($col)->getVisible() === false)) { + continue; + } + $columnRef = $returnCellRef ? $col : ++$c; // Using getCell() will create a new cell if it doesn't already exist. We don't want that to happen // so we test and retrieve directly against cellCollection - $cell = $this->cellCollection->get($col . $row); - //if ($this->cellCollection->has($col . $row)) { + $cell = $this->cellCollection->get("{$col}{$row}"); + $returnValue[$rowRef][$columnRef] = $nullValue; if ($cell !== null) { - // Cell exists - if ($cell->getValue() !== null) { - if ($cell->getValue() instanceof RichText) { - $returnValue[$rRef][$cRef] = $cell->getValue()->getPlainText(); - } else { - if ($calculateFormulas) { - $returnValue[$rRef][$cRef] = $cell->getCalculatedValue(); - } else { - $returnValue[$rRef][$cRef] = $cell->getValue(); - } - } - - if ($formatData) { - $style = $this->getParentOrThrow()->getCellXfByIndex($cell->getXfIndex()); - $returnValue[$rRef][$cRef] = NumberFormat::toFormattedString( - $returnValue[$rRef][$cRef], - $style->getNumberFormat()->getFormatCode() ?? NumberFormat::FORMAT_GENERAL - ); - } - } else { - // Cell holds a NULL - $returnValue[$rRef][$cRef] = $nullValue; - } - } else { - // Cell doesn't exist - $returnValue[$rRef][$cRef] = $nullValue; + $returnValue[$rowRef][$columnRef] = $this->cellToArray($cell, $calculateFormulas, $formatData, $nullValue); } } } @@ -3102,12 +3159,18 @@ class Worksheet implements IComparable * @param bool $calculateFormulas Should formulas be calculated? * @param bool $formatData Should formatting be applied to cell values? * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * - * @return array + * True - Return rows and columns indexed by their actual row and column IDs + * @param bool $ignoreHidden False - Return values for rows/columns even if they are defined as hidden. + * True - Don't return values for rows/columns that are defined as hidden. */ - public function namedRangeToArray(string $definedName, $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { + public function namedRangeToArray( + string $definedName, + $nullValue = null, + bool $calculateFormulas = true, + bool $formatData = true, + bool $returnCellRef = false, + bool $ignoreHidden = false + ): array { $retVal = []; $namedRange = $this->validateNamedRange($definedName); if ($namedRange !== null) { @@ -3115,7 +3178,7 @@ class Worksheet implements IComparable $cellRange = str_replace('$', '', $cellRange); $workSheet = $namedRange->getWorksheet(); if ($workSheet !== null) { - $retVal = $workSheet->rangeToArray($cellRange, $nullValue, $calculateFormulas, $formatData, $returnCellRef); + $retVal = $workSheet->rangeToArray($cellRange, $nullValue, $calculateFormulas, $formatData, $returnCellRef, $ignoreHidden); } } @@ -3129,12 +3192,17 @@ class Worksheet implements IComparable * @param bool $calculateFormulas Should formulas be calculated? * @param bool $formatData Should formatting be applied to cell values? * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero - * True - Return rows and columns indexed by their actual row and column IDs - * - * @return array + * True - Return rows and columns indexed by their actual row and column IDs + * @param bool $ignoreHidden False - Return values for rows/columns even if they are defined as hidden. + * True - Don't return values for rows/columns that are defined as hidden. */ - public function toArray($nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false) - { + public function toArray( + $nullValue = null, + bool $calculateFormulas = true, + bool $formatData = true, + bool $returnCellRef = false, + bool $ignoreHidden = false + ): array { // Garbage collect... $this->garbageCollect(); @@ -3143,7 +3211,7 @@ class Worksheet implements IComparable $maxRow = $this->getHighestRow(); // Return - return $this->rangeToArray('A1:' . $maxCol . $maxRow, $nullValue, $calculateFormulas, $formatData, $returnCellRef); + return $this->rangeToArray("A1:{$maxCol}{$maxRow}", $nullValue, $calculateFormulas, $formatData, $returnCellRef, $ignoreHidden); } /** diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php index c30bb30ac..842998f9e 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Html.php @@ -7,9 +7,11 @@ use PhpOffice\PhpSpreadsheet\Calculation\Calculation; use PhpOffice\PhpSpreadsheet\Cell\Cell; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Chart\Chart; +use PhpOffice\PhpSpreadsheet\Document\Properties; use PhpOffice\PhpSpreadsheet\RichText\RichText; use PhpOffice\PhpSpreadsheet\RichText\Run; use PhpOffice\PhpSpreadsheet\Settings; +use PhpOffice\PhpSpreadsheet\Shared\Date; use PhpOffice\PhpSpreadsheet\Shared\Drawing as SharedDrawing; use PhpOffice\PhpSpreadsheet\Shared\File; use PhpOffice\PhpSpreadsheet\Shared\Font as SharedFont; @@ -342,13 +344,21 @@ class Html extends BaseWriter private static function generateMeta(?string $val, string $desc): string { - return $val + return ($val || $val === '0') ? (' ' . PHP_EOL) : ''; } public const BODY_LINE = ' ' . PHP_EOL; + private const CUSTOM_TO_META = [ + Properties::PROPERTY_TYPE_BOOLEAN => 'bool', + Properties::PROPERTY_TYPE_DATE => 'date', + Properties::PROPERTY_TYPE_FLOAT => 'float', + Properties::PROPERTY_TYPE_INTEGER => 'int', + Properties::PROPERTY_TYPE_STRING => 'string', + ]; + /** * Generate HTML header. * @@ -374,6 +384,36 @@ class Html extends BaseWriter $html .= self::generateMeta($properties->getCategory(), 'category'); $html .= self::generateMeta($properties->getCompany(), 'company'); $html .= self::generateMeta($properties->getManager(), 'manager'); + $html .= self::generateMeta($properties->getLastModifiedBy(), 'lastModifiedBy'); + $date = Date::dateTimeFromTimestamp((string) $properties->getCreated()); + $date->setTimeZone(Date::getDefaultOrLocalTimeZone()); + $html .= self::generateMeta($date->format(DATE_W3C), 'created'); + $date = Date::dateTimeFromTimestamp((string) $properties->getModified()); + $date->setTimeZone(Date::getDefaultOrLocalTimeZone()); + $html .= self::generateMeta($date->format(DATE_W3C), 'modified'); + + $customProperties = $properties->getCustomProperties(); + foreach ($customProperties as $customProperty) { + $propertyValue = $properties->getCustomPropertyValue($customProperty); + $propertyType = $properties->getCustomPropertyType($customProperty); + $propertyQualifier = self::CUSTOM_TO_META[$propertyType] ?? null; + if ($propertyQualifier !== null) { + if ($propertyType === Properties::PROPERTY_TYPE_BOOLEAN) { + $propertyValue = $propertyValue ? '1' : '0'; + } elseif ($propertyType === Properties::PROPERTY_TYPE_DATE) { + $date = Date::dateTimeFromTimestamp((string) $propertyValue); + $date->setTimeZone(Date::getDefaultOrLocalTimeZone()); + $propertyValue = $date->format(DATE_W3C); + } else { + $propertyValue = (string) $propertyValue; + } + $html .= self::generateMeta($propertyValue, "custom.$propertyQualifier.$customProperty"); + } + } + + if (!empty($properties->getHyperlinkBase())) { + $html .= ' ' . PHP_EOL; + } $html .= $includeStyles ? $this->generateStyles(true) : $this->generatePageDeclarations(true); @@ -693,7 +733,8 @@ class Html extends BaseWriter // max-width: 100% ensures that image doesnt overflow containing cell // width: X sets width of supplied image. // As a result, images bigger than cell will be contained and images smaller will not get stretched - $html .= '' . $filedesc . ''; + $html .= '' . $filedesc . ''; } } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php index 872be52de..c9e0ba839 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods.php @@ -12,7 +12,6 @@ use PhpOffice\PhpSpreadsheet\Writer\Ods\Settings; use PhpOffice\PhpSpreadsheet\Writer\Ods\Styles; use PhpOffice\PhpSpreadsheet\Writer\Ods\Thumbnails; use ZipStream\Exception\OverflowException; -use ZipStream\Option\Archive; use ZipStream\ZipStream; class Ods extends BaseWriter @@ -158,11 +157,7 @@ class Ods extends BaseWriter } // Create new ZIP stream - $options = new Archive(); - $options->setEnableZip64(false); - $options->setOutputStream($this->fileHandle); - - return new ZipStream(null, $options); + return ZipStream0::newZipStream($this->fileHandle); } /** diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php index e931421af..e0a729ab8 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/Content.php @@ -126,7 +126,16 @@ class Content extends WriterPart $objWriter->writeAttribute('table:name', $spreadsheet->getSheet($sheetIndex)->getTitle()); $objWriter->writeAttribute('table:style-name', Style::TABLE_STYLE_PREFIX . (string) ($sheetIndex + 1)); $objWriter->writeElement('office:forms'); + $lastColumn = 0; foreach ($spreadsheet->getSheet($sheetIndex)->getColumnDimensions() as $columnDimension) { + $thisColumn = $columnDimension->getColumnNumeric(); + $emptyColumns = $thisColumn - $lastColumn - 1; + if ($emptyColumns > 0) { + $objWriter->startElement('table:table-column'); + $objWriter->writeAttribute('table:number-columns-repeated', (string) $emptyColumns); + $objWriter->endElement(); + } + $lastColumn = $thisColumn; $objWriter->startElement('table:table-column'); $objWriter->writeAttribute( 'table:style-name', diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php index 33a404d42..983414fcc 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls.php @@ -751,11 +751,12 @@ class Xls extends BaseWriter $dataSection_Content .= $dataProp['data']['data']; $dataSection_Content_Offset += 4 + 4 + strlen($dataProp['data']['data']); - // Condition below can never be true - //} elseif ($dataProp['type']['data'] == 0x40) { // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - // $dataSection_Content .= $dataProp['data']['data']; + /* Condition below can never be true + } elseif ($dataProp['type']['data'] == 0x40) { // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + $dataSection_Content .= $dataProp['data']['data']; - // $dataSection_Content_Offset += 4 + 8; + $dataSection_Content_Offset += 4 + 8; + */ } else { $dataSection_Content .= $dataProp['data']['data']; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php index 6b98395f5..f195ac782 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Parser.php @@ -643,7 +643,6 @@ class Parser // TODO: use real error codes throw new WriterException('Unknown range separator'); } - // Convert the cell references [$row1, $col1] = $this->cellToPackedRowcol($cell1); [$row2, $col2] = $this->cellToPackedRowcol($cell2); @@ -1109,8 +1108,8 @@ class Parser if (is_numeric($token) && (!is_numeric($token . $this->lookAhead) || ($this->lookAhead == '')) && ($this->lookAhead !== '!') && ($this->lookAhead !== ':')) { return $token; } - // If it's a string (of maximum 255 characters) if (preg_match('/"([^"]|""){0,255}"/', $token) && $this->lookAhead !== '"' && (substr_count($token, '"') % 2 == 0)) { + // If it's a string (of maximum 255 characters) return $token; } // If it's an error code @@ -1219,21 +1218,18 @@ class Parser $this->advance(); return $result; - // If it's an error code - } elseif (preg_match('/^#[A-Z0\\/]{3,5}[!?]{1}$/', $this->currentToken) || $this->currentToken == '#N/A') { + } elseif (preg_match('/^#[A-Z0\\/]{3,5}[!?]{1}$/', $this->currentToken) || $this->currentToken == '#N/A') { // error code $result = $this->createTree($this->currentToken, 'ptgErr', ''); $this->advance(); return $result; - // If it's a negative value - } elseif ($this->currentToken == '-') { + } elseif ($this->currentToken == '-') { // negative value // catch "-" Term $this->advance(); $result2 = $this->expression(); return $this->createTree('ptgUminus', $result2, ''); - // If it's a positive value - } elseif ($this->currentToken == '+') { + } elseif ($this->currentToken == '+') { // positive value // catch "+" Term $this->advance(); $result2 = $this->expression(); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php index 6e9b265dc..3c68847aa 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Workbook.php @@ -643,9 +643,8 @@ class Workbook extends BIFFwriter // store the DEFINEDNAME record $chunk .= $this->writeData($this->writeDefinedNameBiff8(pack('C', 0x07), $formulaData, $i + 1, true)); - - // (exclusive) either repeatColumns or repeatRows } elseif ($sheetSetup->isColumnsToRepeatAtLeftSet() || $sheetSetup->isRowsToRepeatAtTopSet()) { + // (exclusive) either repeatColumns or repeatRows. // Columns to repeat if ($sheetSetup->isColumnsToRepeatAtLeftSet()) { $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); @@ -1102,16 +1101,15 @@ class Workbook extends BIFFwriter // 2. space remaining is greater than or equal to minimum space needed // here we write as much as we can in the current block, then move to next record data block - // 1. space remaining is less than minimum space needed if ($space_remaining < $min_space_needed) { + // 1. space remaining is less than minimum space needed. // we close the block, store the block data $recordDatas[] = $recordData; // and start new record data block where we start writing the string $recordData = ''; - - // 2. space remaining is greater than or equal to minimum space needed } else { + // 2. space remaining is greater than or equal to minimum space needed. // initialize effective remaining space, for Unicode strings this may need to be reduced by 1, see below $effective_space_remaining = $space_remaining; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php index 9f23bd365..aeedd08e7 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xls/Worksheet.php @@ -503,6 +503,8 @@ class Worksheet extends BIFFwriter $this->writeMergedCells(); // Hyperlinks + $phpParent = $phpSheet->getParent(); + $hyperlinkbase = ($phpParent === null) ? '' : $phpParent->getProperties()->getHyperlinkBase(); foreach ($phpSheet->getHyperLinkCollection() as $coordinate => $hyperlink) { [$column, $row] = Coordinate::indexesFromString($coordinate); @@ -513,6 +515,11 @@ class Worksheet extends BIFFwriter $url = str_replace('sheet://', 'internal:', $url); } elseif (preg_match('/^(http:|https:|ftp:|mailto:)/', $url)) { // URL + } elseif (!empty($hyperlinkbase) && preg_match('~^([A-Za-z]:)?[/\\\\]~', $url) !== 1) { + $url = "$hyperlinkbase$url"; + if (preg_match('/^(http:|https:|ftp:|mailto:)/', $url) !== 1) { + $url = 'external:' . $url; + } } else { // external (local file) $url = 'external:' . $url; diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php index 07b790440..6ed12d4aa 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx.php @@ -31,7 +31,6 @@ use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Workbook; use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Worksheet; use ZipArchive; use ZipStream\Exception\OverflowException; -use ZipStream\Option\Archive; use ZipStream\ZipStream; class Xlsx extends BaseWriter @@ -377,7 +376,7 @@ class Xlsx extends BaseWriter } // Add theme to ZIP file - $zipContent['xl/theme/theme1.xml'] = $this->getWriterPartTheme()->writeTheme(); + $zipContent['xl/theme/theme1.xml'] = $this->getWriterPartTheme()->writeTheme($this->spreadSheet); // Add string table to ZIP file $zipContent['xl/sharedStrings.xml'] = $this->getWriterPartStringTable()->writeStringTable($this->stringTable); @@ -546,11 +545,7 @@ class Xlsx extends BaseWriter $this->openFileHandle($filename); - $options = new Archive(); - $options->setEnableZip64(false); - $options->setOutputStream($this->fileHandle); - - $this->zip = new ZipStream(null, $options); + $this->zip = ZipStream0::newZipStream($this->fileHandle); $this->addZipFiles($zipContent); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php index 6465904ee..6d302aac4 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Chart.php @@ -14,6 +14,7 @@ use PhpOffice\PhpSpreadsheet\Chart\Title; use PhpOffice\PhpSpreadsheet\Chart\TrendLine; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; +use PhpOffice\PhpSpreadsheet\Style\Font; use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException; class Chart extends WriterPart @@ -109,12 +110,20 @@ class Chart extends WriterPart $objWriter->endElement(); $objWriter->endElement(); // c:chart + + $objWriter->startElement('c:spPr'); if ($chart->getNoFill()) { - $objWriter->startElement('c:spPr'); $objWriter->startElement('a:noFill'); $objWriter->endElement(); // a:noFill - $objWriter->endElement(); // c:spPr } + $fillColor = $chart->getFillColor(); + if ($fillColor->isUsable()) { + $this->writeColor($objWriter, $fillColor); + } + $borderLines = $chart->getBorderLines(); + $this->writeLineStyles($objWriter, $borderLines); + $this->writeEffects($objWriter, $borderLines); + $objWriter->endElement(); // c:spPr $this->writePrintSettings($objWriter); @@ -201,6 +210,17 @@ class Chart extends WriterPart $objWriter->writeAttribute('val', ($legend->getOverlay()) ? '1' : '0'); $objWriter->endElement(); + $objWriter->startElement('c:spPr'); + $fillColor = $legend->getFillColor(); + if ($fillColor->isUsable()) { + $this->writeColor($objWriter, $fillColor); + } + $borderLines = $legend->getBorderLines(); + $this->writeLineStyles($objWriter, $borderLines); + $this->writeEffects($objWriter, $borderLines); + $objWriter->endElement(); // c:spPr + + $legendText = $legend->getLegendText(); $objWriter->startElement('c:txPr'); $objWriter->startElement('a:bodyPr'); $objWriter->endElement(); @@ -213,17 +233,21 @@ class Chart extends WriterPart $objWriter->writeAttribute('rtl', '0'); $objWriter->startElement('a:defRPr'); - $objWriter->endElement(); - $objWriter->endElement(); + if ($legendText !== null) { + $this->writeColor($objWriter, $legendText->getFillColorObject()); + $this->writeEffects($objWriter, $legendText); + } + $objWriter->endElement(); // a:defRpr + $objWriter->endElement(); // a:pPr $objWriter->startElement('a:endParaRPr'); $objWriter->writeAttribute('lang', 'en-US'); - $objWriter->endElement(); + $objWriter->endElement(); // a:endParaRPr - $objWriter->endElement(); - $objWriter->endElement(); + $objWriter->endElement(); // a:p + $objWriter->endElement(); // c:txPr - $objWriter->endElement(); + $objWriter->endElement(); // c:legend } /** @@ -307,19 +331,26 @@ class Chart extends WriterPart $objWriter->startElement('c:hiLowLines'); $objWriter->endElement(); - $objWriter->startElement('c:upDownBars'); - - $objWriter->startElement('c:gapWidth'); - $objWriter->writeAttribute('val', '300'); - $objWriter->endElement(); - - $objWriter->startElement('c:upBars'); - $objWriter->endElement(); - - $objWriter->startElement('c:downBars'); - $objWriter->endElement(); - - $objWriter->endElement(); + $gapWidth = $plotArea->getGapWidth(); + $upBars = $plotArea->getUseUpBars(); + $downBars = $plotArea->getUseDownBars(); + if ($gapWidth !== null || $upBars || $downBars) { + $objWriter->startElement('c:upDownBars'); + if ($gapWidth !== null) { + $objWriter->startElement('c:gapWidth'); + $objWriter->writeAttribute('val', "$gapWidth"); + $objWriter->endElement(); + } + if ($upBars) { + $objWriter->startElement('c:upBars'); + $objWriter->endElement(); + } + if ($downBars) { + $objWriter->startElement('c:downBars'); + $objWriter->endElement(); + } + $objWriter->endElement(); // c:upDownBars + } } // Generate 3 unique numbers to use for axId values @@ -428,8 +459,8 @@ class Chart extends WriterPart } $objWriter->endElement(); // c:spPr } - $fontColor = $chartLayout->getLabelFontColor(); - if ($fontColor && $fontColor->isUsable()) { + $labelFont = $chartLayout->getLabelFont(); + if ($labelFont !== null) { $objWriter->startElement('c:txPr'); $objWriter->startElement('a:bodyPr'); @@ -445,14 +476,7 @@ class Chart extends WriterPart $objWriter->startElement('a:lstStyle'); $objWriter->endElement(); // a:lstStyle - - $objWriter->startElement('a:p'); - $objWriter->startElement('a:pPr'); - $objWriter->startElement('a:defRPr'); - $this->writeColor($objWriter, $fontColor); - $objWriter->endElement(); // a:defRPr - $objWriter->endElement(); // a:pPr - $objWriter->endElement(); // a:p + $this->writeLabelFont($objWriter, $labelFont, $chartLayout->getLabelEffects()); $objWriter->endElement(); // c:txPr } @@ -608,25 +632,24 @@ class Chart extends WriterPart } $textRotation = $yAxis->getAxisOptionsProperty('textRotation'); - if (is_numeric($textRotation)) { + $axisText = $yAxis->getAxisText(); + + if ($axisText !== null || is_numeric($textRotation)) { $objWriter->startElement('c:txPr'); $objWriter->startElement('a:bodyPr'); - $objWriter->writeAttribute('rot', Properties::angleToXml((float) $textRotation)); + if (is_numeric($textRotation)) { + $objWriter->writeAttribute('rot', Properties::angleToXml((float) $textRotation)); + } $objWriter->endElement(); // a:bodyPr $objWriter->startElement('a:lstStyle'); $objWriter->endElement(); // a:lstStyle - $objWriter->startElement('a:p'); - $objWriter->startElement('a:pPr'); - $objWriter->startElement('a:defRPr'); - $objWriter->endElement(); // a:defRPr - $objWriter->endElement(); // a:pPr - $objWriter->endElement(); // a:p + $this->writeLabelFont($objWriter, ($axisText === null) ? null : $axisText->getFont(), $axisText); $objWriter->endElement(); // c:txPr } $objWriter->startElement('c:spPr'); $this->writeColor($objWriter, $yAxis->getFillColorObject()); - $this->writeLineStyles($objWriter, $yAxis); + $this->writeLineStyles($objWriter, $yAxis, $yAxis->getNoFill()); $this->writeEffects($objWriter, $yAxis); $objWriter->endElement(); // spPr @@ -826,25 +849,26 @@ class Chart extends WriterPart } $textRotation = $xAxis->getAxisOptionsProperty('textRotation'); - if (is_numeric($textRotation)) { + $axisText = $xAxis->getAxisText(); + + if ($axisText !== null || is_numeric($textRotation)) { $objWriter->startElement('c:txPr'); $objWriter->startElement('a:bodyPr'); - $objWriter->writeAttribute('rot', Properties::angleToXml((float) $textRotation)); + if (is_numeric($textRotation)) { + $objWriter->writeAttribute('rot', Properties::angleToXml((float) $textRotation)); + } $objWriter->endElement(); // a:bodyPr $objWriter->startElement('a:lstStyle'); $objWriter->endElement(); // a:lstStyle - $objWriter->startElement('a:p'); - $objWriter->startElement('a:pPr'); - $objWriter->startElement('a:defRPr'); - $objWriter->endElement(); // a:defRPr - $objWriter->endElement(); // a:pPr - $objWriter->endElement(); // a:p + + $this->writeLabelFont($objWriter, ($axisText === null) ? null : $axisText->getFont(), $axisText); + $objWriter->endElement(); // c:txPr } $objWriter->startElement('c:spPr'); $this->writeColor($objWriter, $xAxis->getFillColorObject()); - $this->writeLineStyles($objWriter, $xAxis); + $this->writeLineStyles($objWriter, $xAxis, $xAxis->getNoFill()); $this->writeEffects($objWriter, $xAxis); $objWriter->endElement(); //end spPr @@ -1055,14 +1079,6 @@ class Chart extends WriterPart $labelFill = $plotLabel->getFillColorObject(); $labelFill = ($labelFill instanceof ChartColor) ? $labelFill : null; } - if ($plotLabel && $groupType !== DataSeries::TYPE_LINECHART) { - $fillColor = $plotLabel->getFillColorObject(); - if ($fillColor !== null && !is_array($fillColor) && $fillColor->isUsable()) { - $objWriter->startElement('c:spPr'); - $this->writeColor($objWriter, $fillColor); - $objWriter->endElement(); // c:spPr - } - } // Values $plotSeriesValues = $plotGroup->getPlotValuesByIndex($plotSeriesIdx); @@ -1094,6 +1110,12 @@ class Chart extends WriterPart $plotSeriesValues !== false ) { $objWriter->startElement('c:spPr'); + if ($plotLabel && $groupType !== DataSeries::TYPE_LINECHART) { + $fillColor = $plotLabel->getFillColorObject(); + if ($fillColor !== null && !is_array($fillColor) && $fillColor->isUsable()) { + $this->writeColor($objWriter, $fillColor); + } + } $fillObject = $labelFill ?? $plotSeriesValues->getFillColorObject(); $callLineStyles = true; if ($fillObject instanceof ChartColor && $fillObject->isUsable()) { @@ -1398,7 +1420,7 @@ class Chart extends WriterPart $count = $plotSeriesValues->getPointCount(); $source = $plotSeriesValues->getDataSource(); $values = $plotSeriesValues->getDataValues(); - if ($count > 1 || ($count === 1 && "=$source" !== (string) $values[0])) { + if ($count > 1 || ($count === 1 && array_key_exists(0, $values) && "=$source" !== (string) $values[0])) { $objWriter->startElement('c:' . $dataType . 'Cache'); if (($groupType != DataSeries::TYPE_PIECHART) && ($groupType != DataSeries::TYPE_PIECHART_3D) && ($groupType != DataSeries::TYPE_DONUTCHART)) { @@ -1770,4 +1792,51 @@ class Chart extends WriterPart } } } + + private function writeLabelFont(XMLWriter $objWriter, ?Font $labelFont, ?Properties $axisText): void + { + $objWriter->startElement('a:p'); + $objWriter->startElement('a:pPr'); + $objWriter->startElement('a:defRPr'); + if ($labelFont !== null) { + $fontSize = $labelFont->getSize(); + if (is_numeric($fontSize)) { + $fontSize *= (($fontSize < 100) ? 100 : 1); + $objWriter->writeAttribute('sz', (string) $fontSize); + } + if ($labelFont->getBold() === true) { + $objWriter->writeAttribute('b', '1'); + } + if ($labelFont->getItalic() === true) { + $objWriter->writeAttribute('i', '1'); + } + $fontColor = $labelFont->getChartColor(); + if ($fontColor !== null) { + $this->writeColor($objWriter, $fontColor); + } + } + if ($axisText !== null) { + $this->writeEffects($objWriter, $axisText); + } + if ($labelFont !== null) { + if (!empty($labelFont->getLatin())) { + $objWriter->startElement('a:latin'); + $objWriter->writeAttribute('typeface', $labelFont->getLatin()); + $objWriter->endElement(); + } + if (!empty($labelFont->getEastAsian())) { + $objWriter->startElement('a:eastAsian'); + $objWriter->writeAttribute('typeface', $labelFont->getEastAsian()); + $objWriter->endElement(); + } + if (!empty($labelFont->getComplexScript())) { + $objWriter->startElement('a:complexScript'); + $objWriter->writeAttribute('typeface', $labelFont->getComplexScript()); + $objWriter->endElement(); + } + } + $objWriter->endElement(); // a:defRPr + $objWriter->endElement(); // a:pPr + $objWriter->endElement(); // a:p + } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php index 8902826a1..8c33f5932 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php @@ -93,6 +93,9 @@ class DocProps extends WriterPart // SharedDoc $objWriter->writeElement('SharedDoc', 'false'); + // HyperlinkBase + $objWriter->writeElement('HyperlinkBase', $spreadsheet->getProperties()->getHyperlinkBase()); + // HyperlinksChanged $objWriter->writeElement('HyperlinksChanged', 'false'); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php index ecc247d86..cf4f90693 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/FunctionPrefix.php @@ -4,7 +4,7 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; class FunctionPrefix { - const XLFNREGEXP = '/(?:_xlfn\.)?((?:_xlws\.)?(' + const XLFNREGEXP = '/(?:_xlfn\.)?((?:_xlws\.)?\b(' // functions added with Excel 2010 . 'beta[.]dist' . '|beta[.]inv' diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php index 7f623933c..29e95eb2f 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/StringTable.php @@ -64,7 +64,7 @@ class StringTable extends WriterPart /** * Write string table to XML format. * - * @param (string|RichText)[] $stringTable + * @param (RichText|string)[] $stringTable * * @return string XML Output */ @@ -226,9 +226,10 @@ class StringTable extends WriterPart if ($element->getFont() !== null) { // rPr $objWriter->startElement($prefix . 'rPr'); - $size = $element->getFont()->getSize(); - if (is_numeric($size)) { - $objWriter->writeAttribute('sz', (string) (int) ($size * 100)); + $fontSize = $element->getFont()->getSize(); + if (is_numeric($fontSize)) { + $fontSize *= (($fontSize < 100) ? 100 : 1); + $objWriter->writeAttribute('sz', (string) $fontSize); } // Bold diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php index 0261f22e5..baafdc334 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Style.php @@ -112,8 +112,13 @@ class Style extends WriterPart $objWriter->writeAttribute('count', (string) count($spreadsheet->getCellXfCollection())); // xf + $alignment = new Alignment(); + $defaultAlignHash = $alignment->getHashCode(); + if ($defaultAlignHash !== $spreadsheet->getDefaultStyle()->getAlignment()->getHashCode()) { + $defaultAlignHash = ''; + } foreach ($spreadsheet->getCellXfCollection() as $cellXf) { - $this->writeCellStyleXf($objWriter, $cellXf, $spreadsheet); + $this->writeCellStyleXf($objWriter, $cellXf, $spreadsheet, $defaultAlignHash); } $objWriter->endElement(); @@ -354,6 +359,13 @@ class Style extends WriterPart $objWriter->endElement(); } + if (!empty($font->getScheme())) { + $this->startFont($objWriter, $fontStarted); + $objWriter->startElement('scheme'); + $objWriter->writeAttribute('val', $font->getScheme()); + $objWriter->endElement(); + } + if ($fontStarted) { $objWriter->endElement(); } @@ -400,7 +412,7 @@ class Style extends WriterPart /** * Write Cell Style Xf. */ - private function writeCellStyleXf(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Style\Style $style, Spreadsheet $spreadsheet): void + private function writeCellStyleXf(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Style\Style $style, Spreadsheet $spreadsheet, string $defaultAlignHash): void { // xf $objWriter->startElement('xf'); @@ -424,7 +436,11 @@ class Style extends WriterPart $objWriter->writeAttribute('applyNumberFormat', ($spreadsheet->getDefaultStyle()->getNumberFormat()->getHashCode() != $style->getNumberFormat()->getHashCode()) ? '1' : '0'); $objWriter->writeAttribute('applyFill', ($spreadsheet->getDefaultStyle()->getFill()->getHashCode() != $style->getFill()->getHashCode()) ? '1' : '0'); $objWriter->writeAttribute('applyBorder', ($spreadsheet->getDefaultStyle()->getBorders()->getHashCode() != $style->getBorders()->getHashCode()) ? '1' : '0'); - $applyAlignment = ($spreadsheet->getDefaultStyle()->getAlignment()->getHashCode() != $style->getAlignment()->getHashCode()) ? '1' : '0'; + if ($defaultAlignHash !== '' && $defaultAlignHash === $style->getAlignment()->getHashCode()) { + $applyAlignment = '0'; + } else { + $applyAlignment = '1'; + } $objWriter->writeAttribute('applyAlignment', $applyAlignment); if ($style->getProtection()->getLocked() != Protection::PROTECTION_INHERIT || $style->getProtection()->getHidden() != Protection::PROTECTION_INHERIT) { $objWriter->writeAttribute('applyProtection', 'true'); diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php index 9ff29d45d..1e8ef5b43 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Theme.php @@ -4,109 +4,17 @@ namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; +use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Theme as SpreadsheetTheme; class Theme extends WriterPart { - /** - * Map of Major fonts to write. - * - * @var string[] - */ - private static $majorFonts = [ - 'Jpan' => 'MS Pゴシック', - 'Hang' => '맑은 고딕', - 'Hans' => '宋体', - 'Hant' => '新細明體', - 'Arab' => 'Times New Roman', - 'Hebr' => 'Times New Roman', - 'Thai' => 'Tahoma', - 'Ethi' => 'Nyala', - 'Beng' => 'Vrinda', - 'Gujr' => 'Shruti', - 'Khmr' => 'MoolBoran', - 'Knda' => 'Tunga', - 'Guru' => 'Raavi', - 'Cans' => 'Euphemia', - 'Cher' => 'Plantagenet Cherokee', - 'Yiii' => 'Microsoft Yi Baiti', - 'Tibt' => 'Microsoft Himalaya', - 'Thaa' => 'MV Boli', - 'Deva' => 'Mangal', - 'Telu' => 'Gautami', - 'Taml' => 'Latha', - 'Syrc' => 'Estrangelo Edessa', - 'Orya' => 'Kalinga', - 'Mlym' => 'Kartika', - 'Laoo' => 'DokChampa', - 'Sinh' => 'Iskoola Pota', - 'Mong' => 'Mongolian Baiti', - 'Viet' => 'Times New Roman', - 'Uigh' => 'Microsoft Uighur', - 'Geor' => 'Sylfaen', - ]; - - /** - * Map of Minor fonts to write. - * - * @var string[] - */ - private static $minorFonts = [ - 'Jpan' => 'MS Pゴシック', - 'Hang' => '맑은 고딕', - 'Hans' => '宋体', - 'Hant' => '新細明體', - 'Arab' => 'Arial', - 'Hebr' => 'Arial', - 'Thai' => 'Tahoma', - 'Ethi' => 'Nyala', - 'Beng' => 'Vrinda', - 'Gujr' => 'Shruti', - 'Khmr' => 'DaunPenh', - 'Knda' => 'Tunga', - 'Guru' => 'Raavi', - 'Cans' => 'Euphemia', - 'Cher' => 'Plantagenet Cherokee', - 'Yiii' => 'Microsoft Yi Baiti', - 'Tibt' => 'Microsoft Himalaya', - 'Thaa' => 'MV Boli', - 'Deva' => 'Mangal', - 'Telu' => 'Gautami', - 'Taml' => 'Latha', - 'Syrc' => 'Estrangelo Edessa', - 'Orya' => 'Kalinga', - 'Mlym' => 'Kartika', - 'Laoo' => 'DokChampa', - 'Sinh' => 'Iskoola Pota', - 'Mong' => 'Mongolian Baiti', - 'Viet' => 'Arial', - 'Uigh' => 'Microsoft Uighur', - 'Geor' => 'Sylfaen', - ]; - - /** - * Map of core colours. - * - * @var string[] - */ - private static $colourScheme = [ - 'dk2' => '1F497D', - 'lt2' => 'EEECE1', - 'accent1' => '4F81BD', - 'accent2' => 'C0504D', - 'accent3' => '9BBB59', - 'accent4' => '8064A2', - 'accent5' => '4BACC6', - 'accent6' => 'F79646', - 'hlink' => '0000FF', - 'folHlink' => '800080', - ]; - /** * Write theme to XML format. * * @return string XML Output */ - public function writeTheme() + public function writeTheme(Spreadsheet $spreadsheet) { // Create XML writer $objWriter = null; @@ -115,6 +23,7 @@ class Theme extends WriterPart } else { $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY); } + $theme = $spreadsheet->getTheme(); // XML header $objWriter->startDocument('1.0', 'UTF-8', 'yes'); @@ -129,50 +38,39 @@ class Theme extends WriterPart // a:clrScheme $objWriter->startElement('a:clrScheme'); - $objWriter->writeAttribute('name', 'Office'); + $objWriter->writeAttribute('name', $theme->getThemeColorName()); - // a:dk1 - $objWriter->startElement('a:dk1'); - - // a:sysClr - $objWriter->startElement('a:sysClr'); - $objWriter->writeAttribute('val', 'windowText'); - $objWriter->writeAttribute('lastClr', '000000'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:lt1 - $objWriter->startElement('a:lt1'); - - // a:sysClr - $objWriter->startElement('a:sysClr'); - $objWriter->writeAttribute('val', 'window'); - $objWriter->writeAttribute('lastClr', 'FFFFFF'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:dk2 - $this->writeColourScheme($objWriter); + $this->writeColourScheme($objWriter, $theme); $objWriter->endElement(); // a:fontScheme $objWriter->startElement('a:fontScheme'); - $objWriter->writeAttribute('name', 'Office'); + $objWriter->writeAttribute('name', $theme->getThemeFontName()); // a:majorFont $objWriter->startElement('a:majorFont'); - $this->writeFonts($objWriter, 'Cambria', self::$majorFonts); - $objWriter->endElement(); + $this->writeFonts( + $objWriter, + $theme->getMajorFontLatin(), + $theme->getMajorFontEastAsian(), + $theme->getMajorFontComplexScript(), + $theme->getMajorFontSubstitutions() + ); + $objWriter->endElement(); // a:majorFont // a:minorFont $objWriter->startElement('a:minorFont'); - $this->writeFonts($objWriter, 'Calibri', self::$minorFonts); - $objWriter->endElement(); + $this->writeFonts( + $objWriter, + $theme->getMinorFontLatin(), + $theme->getMinorFontEastAsian(), + $theme->getMinorFontComplexScript(), + $theme->getMinorFontSubstitutions() + ); + $objWriter->endElement(); // a:minorFont - $objWriter->endElement(); + $objWriter->endElement(); // a:fontScheme // a:fmtScheme $objWriter->startElement('a:fmtScheme'); @@ -786,7 +684,7 @@ class Theme extends WriterPart * * @param string[] $fontSet */ - private function writeFonts(XMLWriter $objWriter, string $latinFont, array $fontSet): void + private function writeFonts(XMLWriter $objWriter, string $latinFont, string $eastAsianFont, string $complexScriptFont, array $fontSet): void { // a:latin $objWriter->startElement('a:latin'); @@ -795,12 +693,12 @@ class Theme extends WriterPart // a:ea $objWriter->startElement('a:ea'); - $objWriter->writeAttribute('typeface', ''); + $objWriter->writeAttribute('typeface', $eastAsianFont); $objWriter->endElement(); // a:cs $objWriter->startElement('a:cs'); - $objWriter->writeAttribute('typeface', ''); + $objWriter->writeAttribute('typeface', $complexScriptFont); $objWriter->endElement(); foreach ($fontSet as $fontScript => $typeface) { @@ -814,16 +712,33 @@ class Theme extends WriterPart /** * Write colour scheme to XML format. */ - private function writeColourScheme(XMLWriter $objWriter): void + private function writeColourScheme(XMLWriter $objWriter, SpreadsheetTheme $theme): void { - foreach (self::$colourScheme as $colourName => $colourValue) { - $objWriter->startElement('a:' . $colourName); + $themeArray = $theme->getThemeColors(); + // a:dk1 + $objWriter->startElement('a:dk1'); + $objWriter->startElement('a:sysClr'); + $objWriter->writeAttribute('val', 'windowText'); + $objWriter->writeAttribute('lastClr', $themeArray['dk1'] ?? '000000'); + $objWriter->endElement(); // a:sysClr + $objWriter->endElement(); // a:dk1 - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', $colourValue); - $objWriter->endElement(); + // a:lt1 + $objWriter->startElement('a:lt1'); + $objWriter->startElement('a:sysClr'); + $objWriter->writeAttribute('val', 'window'); + $objWriter->writeAttribute('lastClr', $themeArray['lt1'] ?? 'FFFFFF'); + $objWriter->endElement(); // a:sysClr + $objWriter->endElement(); // a:lt1 - $objWriter->endElement(); + foreach ($themeArray as $colourName => $colourValue) { + if ($colourName !== 'dk1' && $colourName !== 'lt1') { + $objWriter->startElement('a:' . $colourName); + $objWriter->startElement('a:srgbClr'); + $objWriter->writeAttribute('val', $colourValue); + $objWriter->endElement(); // a:srgbClr + $objWriter->endElement(); // a:$colourName + } } } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php index 53c451245..5e453b3d8 100644 --- a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php @@ -18,6 +18,18 @@ use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet as PhpspreadsheetWorksheet; class Worksheet extends WriterPart { + /** @var string */ + private $numberStoredAsText = ''; + + /** @var string */ + private $formula = ''; + + /** @var string */ + private $twoDigitTextYear = ''; + + /** @var string */ + private $evalError = ''; + /** * Write worksheet to XML format. * @@ -28,6 +40,10 @@ class Worksheet extends WriterPart */ public function writeWorksheet(PhpspreadsheetWorksheet $worksheet, $stringTable = [], $includeCharts = false) { + $this->numberStoredAsText = ''; + $this->formula = ''; + $this->twoDigitTextYear = ''; + $this->evalError = ''; // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { @@ -118,6 +134,9 @@ class Worksheet extends WriterPart // AlternateContent $this->writeAlternateContent($objWriter, $worksheet); + // IgnoredErrors + $this->writeIgnoredErrors($objWriter); + // Table $this->writeTable($objWriter, $worksheet); @@ -131,6 +150,32 @@ class Worksheet extends WriterPart return $objWriter->getData(); } + private function writeIgnoredError(XMLWriter $objWriter, bool &$started, string $attr, string $cells): void + { + if ($cells !== '') { + if (!$started) { + $objWriter->startElement('ignoredErrors'); + $started = true; + } + $objWriter->startElement('ignoredError'); + $objWriter->writeAttribute('sqref', substr($cells, 1)); + $objWriter->writeAttribute($attr, '1'); + $objWriter->endElement(); + } + } + + private function writeIgnoredErrors(XMLWriter $objWriter): void + { + $started = false; + $this->writeIgnoredError($objWriter, $started, 'numberStoredAsText', $this->numberStoredAsText); + $this->writeIgnoredError($objWriter, $started, 'formula', $this->formula); + $this->writeIgnoredError($objWriter, $started, 'twoDigitTextYear', $this->twoDigitTextYear); + $this->writeIgnoredError($objWriter, $started, 'evalError', $this->evalError); + if ($started) { + $objWriter->endElement(); + } + } + /** * Write SheetPr. */ @@ -1134,7 +1179,20 @@ class Worksheet extends WriterPart array_pop($columnsInRow); foreach ($columnsInRow as $column) { // Write cell - $this->writeCell($objWriter, $worksheet, "{$column}{$currentRow}", $aFlippedStringTable); + $coord = "$column$currentRow"; + if ($worksheet->getCell($coord)->getIgnoredErrors()->getNumberStoredAsText()) { + $this->numberStoredAsText .= " $coord"; + } + if ($worksheet->getCell($coord)->getIgnoredErrors()->getFormula()) { + $this->formula .= " $coord"; + } + if ($worksheet->getCell($coord)->getIgnoredErrors()->getTwoDigitTextYear()) { + $this->twoDigitTextYear .= " $coord"; + } + if ($worksheet->getCell($coord)->getIgnoredErrors()->getEvalError()) { + $this->evalError .= " $coord"; + } + $this->writeCell($objWriter, $worksheet, $coord, $aFlippedStringTable); } } diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream0.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream0.php new file mode 100644 index 000000000..886731ca9 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream0.php @@ -0,0 +1,17 @@ +setEnableZip64(false); + $options->setOutputStream($fileHandle); + + return new ZipStream(null, $options); + } +} diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream3.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream3.php new file mode 100644 index 000000000..d9c8d0b16 --- /dev/null +++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/ZipStream3.php @@ -0,0 +1,22 @@ + + * @var string[] */ const ALL = [ self::SSL, diff --git a/vendor/rmccue/requests/src/Cookie.php b/vendor/rmccue/requests/src/Cookie.php index ccbbc73db..6f971d6db 100644 --- a/vendor/rmccue/requests/src/Cookie.php +++ b/vendor/rmccue/requests/src/Cookie.php @@ -36,8 +36,8 @@ class Cookie { /** * Cookie attributes * - * Valid keys are (currently) path, domain, expires, max-age, secure and - * httponly. + * Valid keys are `'path'`, `'domain'`, `'expires'`, `'max-age'`, `'secure'` and + * `'httponly'`. * * @var \WpOrg\Requests\Utility\CaseInsensitiveDictionary|array Array-like object */ @@ -46,8 +46,7 @@ class Cookie { /** * Cookie flags * - * Valid keys are (currently) creation, last-access, persistent and - * host-only. + * Valid keys are `'creation'`, `'last-access'`, `'persistent'` and `'host-only'`. * * @var array */ @@ -66,11 +65,13 @@ class Cookie { /** * Create a new cookie object * - * @param string $name - * @param string $value + * @param string $name The name of the cookie. + * @param string $value The value for the cookie. * @param array|\WpOrg\Requests\Utility\CaseInsensitiveDictionary $attributes Associative array of attribute data - * @param array $flags - * @param int|null $reference_time + * @param array $flags The flags for the cookie. + * Valid keys are `'creation'`, `'last-access'`, + * `'persistent'` and `'host-only'`. + * @param int|null $reference_time Reference time for relative calculations. * * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $name argument is not a string. * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $value argument is not a string. @@ -279,7 +280,11 @@ class Cookie { public function normalize() { foreach ($this->attributes as $key => $value) { $orig_value = $value; - $value = $this->normalize_attribute($key, $value); + + if (is_string($key)) { + $value = $this->normalize_attribute($key, $value); + } + if ($value === null) { unset($this->attributes[$key]); continue; @@ -299,7 +304,7 @@ class Cookie { * Handles parsing individual attributes from the cookie values. * * @param string $name Attribute name - * @param string|boolean $value Attribute value (string value, or true if empty/flag) + * @param string|int|bool $value Attribute value (string/integer value, or true if empty/flag) * @return mixed Value if available, or null if the attribute value is invalid (and should be skipped) */ protected function normalize_attribute($name, $value) { diff --git a/vendor/rmccue/requests/src/Cookie/Jar.php b/vendor/rmccue/requests/src/Cookie/Jar.php index dfbb8b739..7633786b9 100644 --- a/vendor/rmccue/requests/src/Cookie/Jar.php +++ b/vendor/rmccue/requests/src/Cookie/Jar.php @@ -49,7 +49,8 @@ class Jar implements ArrayAccess, IteratorAggregate { /** * Normalise cookie data into a \WpOrg\Requests\Cookie * - * @param string|\WpOrg\Requests\Cookie $cookie + * @param string|\WpOrg\Requests\Cookie $cookie Cookie header value, possibly pre-parsed (object). + * @param string $key Optional. The name for this cookie. * @return \WpOrg\Requests\Cookie */ public function normalize_cookie($cookie, $key = '') { @@ -106,7 +107,7 @@ class Jar implements ArrayAccess, IteratorAggregate { /** * Unset the given header * - * @param string $offset + * @param string $offset The key for the item to unset. */ #[ReturnTypeWillChange] public function offsetUnset($offset) { @@ -171,7 +172,7 @@ class Jar implements ArrayAccess, IteratorAggregate { /** * Parse all cookies from a response and attach them to the response * - * @param \WpOrg\Requests\Response $response + * @param \WpOrg\Requests\Response $response Response as received. */ public function before_redirect_check(Response $response) { $url = $response->url; diff --git a/vendor/rmccue/requests/src/IdnaEncoder.php b/vendor/rmccue/requests/src/IdnaEncoder.php index 094fff3d5..4257a1acb 100644 --- a/vendor/rmccue/requests/src/IdnaEncoder.php +++ b/vendor/rmccue/requests/src/IdnaEncoder.php @@ -137,7 +137,7 @@ class IdnaEncoder { * * @internal (Testing found regex was the fastest implementation) * - * @param string $text + * @param string $text Text to examine. * @return bool Is the text string ASCII-only? */ protected static function is_ascii($text) { @@ -148,7 +148,7 @@ class IdnaEncoder { * Prepare a text string for use as an IDNA name * * @todo Implement this based on RFC 3491 and the newer 5891 - * @param string $text + * @param string $text Text to prepare. * @return string Prepared string */ protected static function nameprep($text) { @@ -160,7 +160,7 @@ class IdnaEncoder { * * Based on \WpOrg\Requests\Iri::replace_invalid_with_pct_encoding() * - * @param string $input + * @param string $input Text to convert. * @return array Unicode code points * * @throws \WpOrg\Requests\Exception Invalid UTF-8 codepoint (`idna.invalidcodepoint`) @@ -329,10 +329,10 @@ class IdnaEncoder { } // output the code point for digit t + ((q - t) mod (base - t)) - $digit = $t + (($q - $t) % (self::BOOTSTRAP_BASE - $t)); + $digit = (int) ($t + (($q - $t) % (self::BOOTSTRAP_BASE - $t))); $output .= self::digit_to_char($digit); // let q = (q - t) div (base - t) - $q = floor(($q - $t) / (self::BOOTSTRAP_BASE - $t)); + $q = (int) floor(($q - $t) / (self::BOOTSTRAP_BASE - $t)); } // end // output the code point for digit q $output .= self::digit_to_char($q); @@ -381,7 +381,7 @@ class IdnaEncoder { * @param int $delta * @param int $numpoints * @param bool $firsttime - * @return int New bias + * @return int|float New bias * * function adapt(delta,numpoints,firsttime): */ diff --git a/vendor/rmccue/requests/src/Iri.php b/vendor/rmccue/requests/src/Iri.php index 244578d34..c452c7365 100644 --- a/vendor/rmccue/requests/src/Iri.php +++ b/vendor/rmccue/requests/src/Iri.php @@ -395,11 +395,11 @@ class Iri { // preceding "/" (if any) from the output buffer; otherwise, elseif (strpos($input, '/../') === 0) { $input = substr($input, 3); - $output = substr_replace($output, '', strrpos($output, '/')); + $output = substr_replace($output, '', (strrpos($output, '/') ?: 0)); } elseif ($input === '/..') { $input = '/'; - $output = substr_replace($output, '', strrpos($output, '/')); + $output = substr_replace($output, '', (strrpos($output, '/') ?: 0)); } // D: if the input buffer consists only of "." or "..", then remove // that from the input buffer; otherwise, @@ -824,7 +824,8 @@ class Iri { else { $iuserinfo = null; } - if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false) { + + if (($port_start = strpos($remaining, ':', (strpos($remaining, ']') ?: 0))) !== false) { $port = substr($remaining, $port_start + 1); if ($port === false || $port === '') { $port = null; diff --git a/vendor/rmccue/requests/src/Requests.php b/vendor/rmccue/requests/src/Requests.php index a8d9d7e53..ac6ff55f9 100644 --- a/vendor/rmccue/requests/src/Requests.php +++ b/vendor/rmccue/requests/src/Requests.php @@ -148,7 +148,7 @@ class Requests { * * @var string */ - const VERSION = '2.0.5'; + const VERSION = '2.0.7'; /** * Selected transport name @@ -642,12 +642,14 @@ class Requests { /** * Set the default values * + * The $options parameter is updated with the results. + * * @param string $url URL to request * @param array $headers Extra headers to send with the request * @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests * @param string $type HTTP request type * @param array $options Options for the request - * @return void $options is updated with the results + * @return void * * @throws \WpOrg\Requests\Exception When the $url is not an http(s) URL. */ @@ -824,9 +826,11 @@ class Requests { * Internal use only. Converts a raw HTTP response to a \WpOrg\Requests\Response * while still executing a multiple request. * + * `$response` is either set to a \WpOrg\Requests\Response instance, or a \WpOrg\Requests\Exception object + * * @param string $response Full response text including headers and body (will be overwritten with Response instance) * @param array $request Request data as passed into {@see \WpOrg\Requests\Requests::request_multiple()} - * @return void `$response` is either set to a \WpOrg\Requests\Response instance, or a \WpOrg\Requests\Exception object + * @return void */ public static function parse_multiple(&$response, $request) { try { diff --git a/vendor/rmccue/requests/src/Response.php b/vendor/rmccue/requests/src/Response.php index 8964521a8..86a0438ba 100644 --- a/vendor/rmccue/requests/src/Response.php +++ b/vendor/rmccue/requests/src/Response.php @@ -137,16 +137,16 @@ class Response { * * @link https://php.net/json-decode * - * @param ?bool $associative Optional. When `true`, JSON objects will be returned as associative arrays; - * When `false`, JSON objects will be returned as objects. - * When `null`, JSON objects will be returned as associative arrays - * or objects depending on whether `JSON_OBJECT_AS_ARRAY` is set in the flags. - * Defaults to `true` (in contrast to the PHP native default of `null`). - * @param int $depth Optional. Maximum nesting depth of the structure being decoded. - * Defaults to `512`. - * @param int $options Optional. Bitmask of JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, - * JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. - * Defaults to `0` (no options set). + * @param bool|null $associative Optional. When `true`, JSON objects will be returned as associative arrays; + * When `false`, JSON objects will be returned as objects. + * When `null`, JSON objects will be returned as associative arrays + * or objects depending on whether `JSON_OBJECT_AS_ARRAY` is set in the flags. + * Defaults to `true` (in contrast to the PHP native default of `null`). + * @param int $depth Optional. Maximum nesting depth of the structure being decoded. + * Defaults to `512`. + * @param int $options Optional. Bitmask of JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, + * JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. + * Defaults to `0` (no options set). * * @return array * diff --git a/vendor/rmccue/requests/src/Response/Headers.php b/vendor/rmccue/requests/src/Response/Headers.php index eb4f68736..b4d0fcf91 100644 --- a/vendor/rmccue/requests/src/Response/Headers.php +++ b/vendor/rmccue/requests/src/Response/Headers.php @@ -27,7 +27,7 @@ class Headers extends CaseInsensitiveDictionary { * Avoid using this where commas may be used unquoted in values, such as * Set-Cookie headers. * - * @param string $offset + * @param string $offset Name of the header to retrieve. * @return string|null Header value */ public function offsetGet($offset) { @@ -69,7 +69,7 @@ class Headers extends CaseInsensitiveDictionary { /** * Get all values for a given header * - * @param string $offset + * @param string $offset Name of the header to retrieve. * @return array|null Header values * * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not valid as an array key. @@ -79,7 +79,10 @@ class Headers extends CaseInsensitiveDictionary { throw InvalidArgument::create(1, '$offset', 'string|int', gettype($offset)); } - $offset = strtolower($offset); + if (is_string($offset)) { + $offset = strtolower($offset); + } + if (!isset($this->data[$offset])) { return null; } diff --git a/vendor/rmccue/requests/src/Transport/Curl.php b/vendor/rmccue/requests/src/Transport/Curl.php index 8b0a13080..7316987b5 100644 --- a/vendor/rmccue/requests/src/Transport/Curl.php +++ b/vendor/rmccue/requests/src/Transport/Curl.php @@ -465,7 +465,7 @@ final class Curl implements Transport { * @param string $response Response data from the body * @param array $options Request options * @return string|false HTTP response data including headers. False if non-blocking. - * @throws \WpOrg\Requests\Exception + * @throws \WpOrg\Requests\Exception If the request resulted in a cURL error. */ public function process_response($response, $options) { if ($options['blocking'] === false) { @@ -561,7 +561,7 @@ final class Curl implements Transport { /** * Format a URL given GET data * - * @param string $url + * @param string $url Original URL. * @param array|object $data Data to build query using, see {@link https://www.php.net/http_build_query} * @return string URL with data */ diff --git a/vendor/rmccue/requests/src/Transport/Fsockopen.php b/vendor/rmccue/requests/src/Transport/Fsockopen.php index c3bd4a63d..2b53d0c10 100644 --- a/vendor/rmccue/requests/src/Transport/Fsockopen.php +++ b/vendor/rmccue/requests/src/Transport/Fsockopen.php @@ -51,6 +51,11 @@ final class Fsockopen implements Transport { */ private $max_bytes = false; + /** + * Cache for received connection errors. + * + * @var string + */ private $connect_error = ''; /** @@ -405,7 +410,7 @@ final class Fsockopen implements Transport { /** * Format a URL given GET data * - * @param array $url_parts + * @param array $url_parts Array of URL parts as received from {@link https://www.php.net/parse_url} * @param array|object $data Data to build query using, see {@link https://www.php.net/http_build_query} * @return string URL with data */ diff --git a/vendor/rmccue/requests/src/Utility/CaseInsensitiveDictionary.php b/vendor/rmccue/requests/src/Utility/CaseInsensitiveDictionary.php index 3c24cebd4..0e1a914cd 100644 --- a/vendor/rmccue/requests/src/Utility/CaseInsensitiveDictionary.php +++ b/vendor/rmccue/requests/src/Utility/CaseInsensitiveDictionary.php @@ -95,7 +95,7 @@ class CaseInsensitiveDictionary implements ArrayAccess, IteratorAggregate { /** * Unset the given header * - * @param string $offset + * @param string $offset The key for the item to unset. */ #[ReturnTypeWillChange] public function offsetUnset($offset) { diff --git a/vendor/rmccue/requests/src/Utility/FilteredIterator.php b/vendor/rmccue/requests/src/Utility/FilteredIterator.php index 973a5d25a..4865966c4 100644 --- a/vendor/rmccue/requests/src/Utility/FilteredIterator.php +++ b/vendor/rmccue/requests/src/Utility/FilteredIterator.php @@ -28,7 +28,7 @@ final class FilteredIterator extends ArrayIterator { /** * Create a new iterator * - * @param array $data + * @param array $data The array or object to be iterated on. * @param callable $callback Callback to be called on each value * * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $data argument is not iterable. @@ -46,14 +46,25 @@ final class FilteredIterator extends ArrayIterator { } /** - * @inheritdoc + * Prevent unserialization of the object for security reasons. * * @phpcs:disable PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__unserializeFound + * + * @param array $data Restored array of data originally serialized. + * + * @return void */ #[ReturnTypeWillChange] public function __unserialize($data) {} // phpcs:enable + /** + * Perform reinitialization tasks. + * + * Prevents a callback from being injected during unserialization of an object. + * + * @return void + */ public function __wakeup() { unset($this->callback); } @@ -75,7 +86,11 @@ final class FilteredIterator extends ArrayIterator { } /** - * @inheritdoc + * Prevent creating a PHP value from a stored representation of the object for security reasons. + * + * @param string $data The serialized string. + * + * @return void */ #[ReturnTypeWillChange] public function unserialize($data) {} diff --git a/vendor/services.php b/vendor/services.php index 832d9b17b..4181a3b33 100755 --- a/vendor/services.php +++ b/vendor/services.php @@ -1,7 +1,9 @@ 'think\\app\\Service', - 1 => 'think\\trace\\Service', + 1 => 'think\\queue\\Service', + 2 => 'think\\trace\\Service', + 3 => 'yunwuxin\\cron\\Service', ); \ No newline at end of file diff --git a/vendor/symfony/deprecation-contracts/.gitignore b/vendor/symfony/deprecation-contracts/.gitignore deleted file mode 100644 index c49a5d8df..000000000 --- a/vendor/symfony/deprecation-contracts/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -vendor/ -composer.lock -phpunit.xml diff --git a/vendor/symfony/deprecation-contracts/LICENSE b/vendor/symfony/deprecation-contracts/LICENSE index 406242ff2..0ed3a2465 100644 --- a/vendor/symfony/deprecation-contracts/LICENSE +++ b/vendor/symfony/deprecation-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020-2022 Fabien Potencier +Copyright (c) 2020-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/deprecation-contracts/README.md b/vendor/symfony/deprecation-contracts/README.md index 4957933a6..9814864c0 100644 --- a/vendor/symfony/deprecation-contracts/README.md +++ b/vendor/symfony/deprecation-contracts/README.md @@ -22,5 +22,5 @@ trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use This will generate the following message: `Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.` -While not necessarily recommended, the deprecation notices can be completely ignored by declaring an empty +While not recommended, the deprecation notices can be completely ignored by declaring an empty `function trigger_deprecation() {}` in your application. diff --git a/vendor/symfony/deprecation-contracts/composer.json b/vendor/symfony/deprecation-contracts/composer.json index 1c1b4ba0e..c6d02d874 100644 --- a/vendor/symfony/deprecation-contracts/composer.json +++ b/vendor/symfony/deprecation-contracts/composer.json @@ -15,7 +15,7 @@ } ], "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, "autoload": { "files": [ @@ -25,7 +25,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", diff --git a/vendor/symfony/http-client-contracts/.gitignore b/vendor/symfony/http-client-contracts/.gitignore deleted file mode 100644 index c49a5d8df..000000000 --- a/vendor/symfony/http-client-contracts/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -vendor/ -composer.lock -phpunit.xml diff --git a/vendor/symfony/http-client-contracts/HttpClientInterface.php b/vendor/symfony/http-client-contracts/HttpClientInterface.php index bc8d196f4..59636258f 100644 --- a/vendor/symfony/http-client-contracts/HttpClientInterface.php +++ b/vendor/symfony/http-client-contracts/HttpClientInterface.php @@ -52,8 +52,8 @@ interface HttpClientInterface 'resolve' => [], // string[] - a map of host to IP address that SHOULD replace DNS resolution 'proxy' => null, // string - by default, the proxy-related env vars handled by curl SHOULD be honored 'no_proxy' => null, // string - a comma separated list of hosts that do not require a proxy to be reached - 'timeout' => null, // float - the idle timeout - defaults to ini_get('default_socket_timeout') - 'max_duration' => 0, // float - the maximum execution time for the request+response as a whole; + 'timeout' => null, // float - the idle timeout (in seconds) - defaults to ini_get('default_socket_timeout') + 'max_duration' => 0, // float - the maximum execution time (in seconds) for the request+response as a whole; // a value lower than or equal to 0 means it is unlimited 'bindto' => '0', // string - the interface or the local socket to bind to 'verify_peer' => true, // see https://php.net/context.ssl for the following options @@ -66,6 +66,7 @@ interface HttpClientInterface 'ciphers' => null, 'peer_fingerprint' => null, 'capture_peer_cert_chain' => false, + 'crypto_method' => \STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, // STREAM_CRYPTO_METHOD_TLSv*_CLIENT - minimum TLS version 'extra' => [], // array - additional options that can be ignored if unsupported, unlike regular options ]; diff --git a/vendor/symfony/http-client-contracts/LICENSE b/vendor/symfony/http-client-contracts/LICENSE index 74cdc2dbf..7536caeae 100644 --- a/vendor/symfony/http-client-contracts/LICENSE +++ b/vendor/symfony/http-client-contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2022 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/http-client-contracts/README.md b/vendor/symfony/http-client-contracts/README.md index 03b3a69b7..24d72f566 100644 --- a/vendor/symfony/http-client-contracts/README.md +++ b/vendor/symfony/http-client-contracts/README.md @@ -3,7 +3,7 @@ Symfony HttpClient Contracts A set of abstractions extracted out of the Symfony components. -Can be used to build on semantics that the Symfony components proved useful - and +Can be used to build on semantics that the Symfony components proved useful and that already have battle tested implementations. See https://github.com/symfony/contracts/blob/main/README.md for more information. diff --git a/vendor/symfony/http-client-contracts/Test/Fixtures/web/index.php b/vendor/symfony/http-client-contracts/Test/Fixtures/web/index.php index 30a704975..8e28bf532 100644 --- a/vendor/symfony/http-client-contracts/Test/Fixtures/web/index.php +++ b/vendor/symfony/http-client-contracts/Test/Fixtures/web/index.php @@ -15,7 +15,7 @@ if (!$_POST) { foreach ($_SERVER as $k => $v) { switch ($k) { default: - if (0 !== strpos($k, 'HTTP_')) { + if (!str_starts_with($k, 'HTTP_')) { continue 2; } // no break @@ -86,6 +86,12 @@ switch ($vars['REQUEST_URI']) { header('Location: //?foo=bar', true, 301); break; + case '/301/proxy': + case 'http://localhost:8057/301/proxy': + case 'http://127.0.0.1:8057/301/proxy': + header('Location: http://localhost:8057/', true, 301); + break; + case '/302': if (!isset($vars['HTTP_AUTHORIZATION'])) { header('Location: http://localhost:8057/', true, 302); diff --git a/vendor/symfony/http-client-contracts/Test/HttpClientTestCase.php b/vendor/symfony/http-client-contracts/Test/HttpClientTestCase.php index 8cffeac71..9cfd33fc1 100644 --- a/vendor/symfony/http-client-contracts/Test/HttpClientTestCase.php +++ b/vendor/symfony/http-client-contracts/Test/HttpClientTestCase.php @@ -226,13 +226,13 @@ abstract class HttpClientTestCase extends TestCase try { $response->getHeaders(); $this->fail(ClientExceptionInterface::class.' expected'); - } catch (ClientExceptionInterface $e) { + } catch (ClientExceptionInterface) { } try { $response->getContent(); $this->fail(ClientExceptionInterface::class.' expected'); - } catch (ClientExceptionInterface $e) { + } catch (ClientExceptionInterface) { } $this->assertSame(404, $response->getStatusCode()); @@ -246,7 +246,7 @@ abstract class HttpClientTestCase extends TestCase $this->assertTrue($chunk->isFirst()); } $this->fail(ClientExceptionInterface::class.' expected'); - } catch (ClientExceptionInterface $e) { + } catch (ClientExceptionInterface) { } } @@ -266,14 +266,14 @@ abstract class HttpClientTestCase extends TestCase try { $response->getStatusCode(); $this->fail(TransportExceptionInterface::class.' expected'); - } catch (TransportExceptionInterface $e) { + } catch (TransportExceptionInterface) { $this->addToAssertionCount(1); } try { $response->getStatusCode(); $this->fail(TransportExceptionInterface::class.' still expected'); - } catch (TransportExceptionInterface $e) { + } catch (TransportExceptionInterface) { $this->addToAssertionCount(1); } @@ -283,7 +283,7 @@ abstract class HttpClientTestCase extends TestCase foreach ($client->stream($response) as $r => $chunk) { } $this->fail(TransportExceptionInterface::class.' expected'); - } catch (TransportExceptionInterface $e) { + } catch (TransportExceptionInterface) { $this->addToAssertionCount(1); } @@ -437,7 +437,7 @@ abstract class HttpClientTestCase extends TestCase try { $response->getHeaders(); $this->fail(RedirectionExceptionInterface::class.' expected'); - } catch (RedirectionExceptionInterface $e) { + } catch (RedirectionExceptionInterface) { } $this->assertSame(302, $response->getStatusCode()); @@ -859,7 +859,7 @@ abstract class HttpClientTestCase extends TestCase try { $response->getContent(); $this->fail(TransportExceptionInterface::class.' expected'); - } catch (TransportExceptionInterface $e) { + } catch (TransportExceptionInterface) { } } $responses = []; @@ -892,7 +892,7 @@ abstract class HttpClientTestCase extends TestCase try { unset($response); $this->fail(TransportExceptionInterface::class.' expected'); - } catch (TransportExceptionInterface $e) { + } catch (TransportExceptionInterface) { } } @@ -969,6 +969,14 @@ abstract class HttpClientTestCase extends TestCase } finally { unset($_SERVER['http_proxy']); } + + $response = $client->request('GET', 'http://localhost:8057/301/proxy', [ + 'proxy' => 'http://localhost:8057', + ]); + + $body = $response->toArray(); + $this->assertSame('localhost:8057', $body['HTTP_HOST']); + $this->assertMatchesRegularExpression('#^http://(localhost|127\.0\.0\.1):8057/$#', $body['REQUEST_URI']); } public function testNoProxy() @@ -1110,7 +1118,7 @@ abstract class HttpClientTestCase extends TestCase try { $response->getContent(); - } catch (TransportExceptionInterface $e) { + } catch (TransportExceptionInterface) { $this->addToAssertionCount(1); } @@ -1125,7 +1133,7 @@ abstract class HttpClientTestCase extends TestCase $client2 = $client->withOptions(['base_uri' => 'http://localhost:8057/']); $this->assertNotSame($client, $client2); - $this->assertSame(\get_class($client), \get_class($client2)); + $this->assertSame($client::class, $client2::class); $response = $client2->request('GET', '/'); $this->assertSame(200, $response->getStatusCode()); diff --git a/vendor/symfony/http-client-contracts/composer.json b/vendor/symfony/http-client-contracts/composer.json index a26300f4a..084d49072 100644 --- a/vendor/symfony/http-client-contracts/composer.json +++ b/vendor/symfony/http-client-contracts/composer.json @@ -16,18 +16,18 @@ } ], "require": { - "php": ">=8.0.2" - }, - "suggest": { - "symfony/http-client-implementation": "" + "php": ">=8.1" }, "autoload": { - "psr-4": { "Symfony\\Contracts\\HttpClient\\": "" } + "psr-4": { "Symfony\\Contracts\\HttpClient\\": "" }, + "exclude-from-classmap": [ + "/Test/" + ] }, "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", diff --git a/vendor/symfony/http-client/AmpHttpClient.php b/vendor/symfony/http-client/AmpHttpClient.php index cddd3cd3a..a8d731150 100644 --- a/vendor/symfony/http-client/AmpHttpClient.php +++ b/vendor/symfony/http-client/AmpHttpClient.php @@ -49,21 +49,20 @@ final class AmpHttpClient implements HttpClientInterface, LoggerAwareInterface, private array $defaultOptions = self::OPTIONS_DEFAULTS; private static array $emptyDefaults = self::OPTIONS_DEFAULTS; - - private $multi; + private AmpClientState $multi; /** - * @param array $defaultOptions Default requests' options - * @param callable $clientConfigurator A callable that builds a {@see DelegateHttpClient} from a {@see PooledHttpClient}; - * passing null builds an {@see InterceptedHttpClient} with 2 retries on failures - * @param int $maxHostConnections The maximum number of connections to a single host - * @param int $maxPendingPushes The maximum number of pushed responses to accept in the queue + * @param array $defaultOptions Default requests' options + * @param callable|null $clientConfigurator A callable that builds a {@see DelegateHttpClient} from a {@see PooledHttpClient}; + * passing null builds an {@see InterceptedHttpClient} with 2 retries on failures + * @param int $maxHostConnections The maximum number of connections to a single host + * @param int $maxPendingPushes The maximum number of pushed responses to accept in the queue * * @see HttpClientInterface::OPTIONS_DEFAULTS for available options */ public function __construct(array $defaultOptions = [], callable $clientConfigurator = null, int $maxHostConnections = 6, int $maxPendingPushes = 50) { - $this->defaultOptions['buffer'] = $this->defaultOptions['buffer'] ?? \Closure::fromCallable([__CLASS__, 'shouldBuffer']); + $this->defaultOptions['buffer'] ??= self::shouldBuffer(...); if ($defaultOptions) { [, $this->defaultOptions] = self::prepareRequest(null, null, $defaultOptions, $this->defaultOptions); @@ -74,8 +73,6 @@ final class AmpHttpClient implements HttpClientInterface, LoggerAwareInterface, /** * @see HttpClientInterface::OPTIONS_DEFAULTS for available options - * - * {@inheritdoc} */ public function request(string $method, string $url, array $options = []): ResponseInterface { @@ -88,10 +85,10 @@ final class AmpHttpClient implements HttpClientInterface, LoggerAwareInterface, } if ($options['bindto']) { - if (0 === strpos($options['bindto'], 'if!')) { + if (str_starts_with($options['bindto'], 'if!')) { throw new TransportException(__CLASS__.' cannot bind to network interfaces, use e.g. CurlHttpClient instead.'); } - if (0 === strpos($options['bindto'], 'host!')) { + if (str_starts_with($options['bindto'], 'host!')) { $options['bindto'] = substr($options['bindto'], 5); } } @@ -119,11 +116,11 @@ final class AmpHttpClient implements HttpClientInterface, LoggerAwareInterface, $request = new Request(implode('', $url), $method); if ($options['http_version']) { - switch ((float) $options['http_version']) { - case 1.0: $request->setProtocolVersions(['1.0']); break; - case 1.1: $request->setProtocolVersions(['1.1', '1.0']); break; - default: $request->setProtocolVersions(['2', '1.1', '1.0']); break; - } + $request->setProtocolVersions(match ((float) $options['http_version']) { + 1.0 => ['1.0'], + 1.1 => $request->setProtocolVersions(['1.1', '1.0']), + default => ['2', '1.1', '1.0'], + }); } foreach ($options['headers'] as $v) { @@ -147,9 +144,6 @@ final class AmpHttpClient implements HttpClientInterface, LoggerAwareInterface, return new AmpResponse($this->multi, $request, $options, $this->logger); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { if ($responses instanceof AmpResponse) { @@ -167,9 +161,7 @@ final class AmpHttpClient implements HttpClientInterface, LoggerAwareInterface, foreach ($pushedResponses as [$pushedUrl, $pushDeferred]) { $pushDeferred->fail(new CancelledException()); - if ($this->logger) { - $this->logger->debug(sprintf('Unused pushed response: "%s"', $pushedUrl)); - } + $this->logger?->debug(sprintf('Unused pushed response: "%s"', $pushedUrl)); } } diff --git a/vendor/symfony/http-client/AsyncDecoratorTrait.php b/vendor/symfony/http-client/AsyncDecoratorTrait.php index 1a2aa4fb0..912b8250e 100644 --- a/vendor/symfony/http-client/AsyncDecoratorTrait.php +++ b/vendor/symfony/http-client/AsyncDecoratorTrait.php @@ -26,15 +26,10 @@ trait AsyncDecoratorTrait use DecoratorTrait; /** - * {@inheritdoc} - * * @return AsyncResponse */ abstract public function request(string $method, string $url, array $options = []): ResponseInterface; - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { if ($responses instanceof AsyncResponse) { diff --git a/vendor/symfony/http-client/CHANGELOG.md b/vendor/symfony/http-client/CHANGELOG.md index 7c2fc2273..d6d50d2d5 100644 --- a/vendor/symfony/http-client/CHANGELOG.md +++ b/vendor/symfony/http-client/CHANGELOG.md @@ -1,6 +1,19 @@ CHANGELOG ========= +6.2 +--- + + * Make `HttplugClient` implement `Psr\Http\Message\RequestFactoryInterface`, `StreamFactoryInterface` and `UriFactoryInterface` + * Deprecate implementing `Http\Message\RequestFactory`, `StreamFactory` and `UriFactory` on `HttplugClient` + * Add `withOptions()` to `HttplugClient` and `Psr18Client` + +6.1 +--- + + * Allow yielding `Exception` from MockResponse's `$body` to mock transport errors + * Remove credentials from requests redirected to same host but different port + 5.4 --- diff --git a/vendor/symfony/http-client/CachingHttpClient.php b/vendor/symfony/http-client/CachingHttpClient.php index 0271fda64..5e3fbf507 100644 --- a/vendor/symfony/http-client/CachingHttpClient.php +++ b/vendor/symfony/http-client/CachingHttpClient.php @@ -35,8 +35,8 @@ class CachingHttpClient implements HttpClientInterface, ResetInterface { use HttpClientTrait; - private $client; - private $cache; + private HttpClientInterface $client; + private HttpCache $cache; private array $defaultOptions = self::OPTIONS_DEFAULTS; public function __construct(HttpClientInterface $client, StoreInterface $store, array $defaultOptions = []) @@ -64,9 +64,6 @@ class CachingHttpClient implements HttpClientInterface, ResetInterface } } - /** - * {@inheritdoc} - */ public function request(string $method, string $url, array $options = []): ResponseInterface { [$url, $options] = $this->prepareRequest($method, $url, $options, $this->defaultOptions, true); @@ -107,9 +104,6 @@ class CachingHttpClient implements HttpClientInterface, ResetInterface return MockResponse::fromRequest($method, $url, $options, $response); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { if ($responses instanceof ResponseInterface) { diff --git a/vendor/symfony/http-client/Chunk/DataChunk.php b/vendor/symfony/http-client/Chunk/DataChunk.php index e2365cd0b..3507a0cd0 100644 --- a/vendor/symfony/http-client/Chunk/DataChunk.php +++ b/vendor/symfony/http-client/Chunk/DataChunk.php @@ -29,57 +29,36 @@ class DataChunk implements ChunkInterface $this->content = $content; } - /** - * {@inheritdoc} - */ public function isTimeout(): bool { return false; } - /** - * {@inheritdoc} - */ public function isFirst(): bool { return false; } - /** - * {@inheritdoc} - */ public function isLast(): bool { return false; } - /** - * {@inheritdoc} - */ public function getInformationalStatus(): ?array { return null; } - /** - * {@inheritdoc} - */ public function getContent(): string { return $this->content; } - /** - * {@inheritdoc} - */ public function getOffset(): int { return $this->offset; } - /** - * {@inheritdoc} - */ public function getError(): ?string { return null; diff --git a/vendor/symfony/http-client/Chunk/ErrorChunk.php b/vendor/symfony/http-client/Chunk/ErrorChunk.php index a989c39a7..c797fc343 100644 --- a/vendor/symfony/http-client/Chunk/ErrorChunk.php +++ b/vendor/symfony/http-client/Chunk/ErrorChunk.php @@ -39,9 +39,6 @@ class ErrorChunk implements ChunkInterface } } - /** - * {@inheritdoc} - */ public function isTimeout(): bool { $this->didThrow = true; @@ -53,53 +50,35 @@ class ErrorChunk implements ChunkInterface return true; } - /** - * {@inheritdoc} - */ public function isFirst(): bool { $this->didThrow = true; throw null !== $this->error ? new TransportException($this->errorMessage, 0, $this->error) : new TimeoutException($this->errorMessage); } - /** - * {@inheritdoc} - */ public function isLast(): bool { $this->didThrow = true; throw null !== $this->error ? new TransportException($this->errorMessage, 0, $this->error) : new TimeoutException($this->errorMessage); } - /** - * {@inheritdoc} - */ public function getInformationalStatus(): ?array { $this->didThrow = true; throw null !== $this->error ? new TransportException($this->errorMessage, 0, $this->error) : new TimeoutException($this->errorMessage); } - /** - * {@inheritdoc} - */ public function getContent(): string { $this->didThrow = true; throw null !== $this->error ? new TransportException($this->errorMessage, 0, $this->error) : new TimeoutException($this->errorMessage); } - /** - * {@inheritdoc} - */ public function getOffset(): int { return $this->offset; } - /** - * {@inheritdoc} - */ public function getError(): ?string { return $this->errorMessage; diff --git a/vendor/symfony/http-client/Chunk/FirstChunk.php b/vendor/symfony/http-client/Chunk/FirstChunk.php index d891ca856..f6ba8b8ac 100644 --- a/vendor/symfony/http-client/Chunk/FirstChunk.php +++ b/vendor/symfony/http-client/Chunk/FirstChunk.php @@ -18,9 +18,6 @@ namespace Symfony\Component\HttpClient\Chunk; */ class FirstChunk extends DataChunk { - /** - * {@inheritdoc} - */ public function isFirst(): bool { return true; diff --git a/vendor/symfony/http-client/Chunk/InformationalChunk.php b/vendor/symfony/http-client/Chunk/InformationalChunk.php index fbc3ccbd1..31ed1aa24 100644 --- a/vendor/symfony/http-client/Chunk/InformationalChunk.php +++ b/vendor/symfony/http-client/Chunk/InformationalChunk.php @@ -25,9 +25,6 @@ class InformationalChunk extends DataChunk $this->status = [$statusCode, $headers]; } - /** - * {@inheritdoc} - */ public function getInformationalStatus(): ?array { return $this->status; diff --git a/vendor/symfony/http-client/Chunk/LastChunk.php b/vendor/symfony/http-client/Chunk/LastChunk.php index 84095d392..a64d12379 100644 --- a/vendor/symfony/http-client/Chunk/LastChunk.php +++ b/vendor/symfony/http-client/Chunk/LastChunk.php @@ -18,9 +18,6 @@ namespace Symfony\Component\HttpClient\Chunk; */ class LastChunk extends DataChunk { - /** - * {@inheritdoc} - */ public function isLast(): bool { return true; diff --git a/vendor/symfony/http-client/Chunk/ServerSentEvent.php b/vendor/symfony/http-client/Chunk/ServerSentEvent.php index 1f55ba4d7..296918e6a 100644 --- a/vendor/symfony/http-client/Chunk/ServerSentEvent.php +++ b/vendor/symfony/http-client/Chunk/ServerSentEvent.php @@ -29,7 +29,7 @@ final class ServerSentEvent extends DataChunk implements ChunkInterface parent::__construct(-1, $content); // remove BOM - if (0 === strpos($content, "\xEF\xBB\xBF")) { + if (str_starts_with($content, "\xEF\xBB\xBF")) { $content = substr($content, 3); } diff --git a/vendor/symfony/http-client/CurlHttpClient.php b/vendor/symfony/http-client/CurlHttpClient.php index 4bc8f9151..3143599e9 100644 --- a/vendor/symfony/http-client/CurlHttpClient.php +++ b/vendor/symfony/http-client/CurlHttpClient.php @@ -50,7 +50,7 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, /** * An internal object to share state between the client and its responses. */ - private $multi; + private CurlClientState $multi; /** * @param array $defaultOptions Default request's options @@ -65,7 +65,7 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, throw new \LogicException('You cannot use the "Symfony\Component\HttpClient\CurlHttpClient" as the "curl" extension is not installed.'); } - $this->defaultOptions['buffer'] = $this->defaultOptions['buffer'] ?? \Closure::fromCallable([__CLASS__, 'shouldBuffer']); + $this->defaultOptions['buffer'] ??= self::shouldBuffer(...); if ($defaultOptions) { [, $this->defaultOptions] = self::prepareRequest(null, null, $defaultOptions, $this->defaultOptions); @@ -81,8 +81,6 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, /** * @see HttpClientInterface::OPTIONS_DEFAULTS for available options - * - * {@inheritdoc} */ public function request(string $method, string $url, array $options = []): ResponseInterface { @@ -90,10 +88,8 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, $scheme = $url['scheme']; $authority = $url['authority']; $host = parse_url($authority, \PHP_URL_HOST); - $proxy = $options['proxy'] - ?? ('https:' === $url['scheme'] ? $_SERVER['https_proxy'] ?? $_SERVER['HTTPS_PROXY'] ?? null : null) - // Ignore HTTP_PROXY except on the CLI to work around httpoxy set of vulnerabilities - ?? $_SERVER['http_proxy'] ?? (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? $_SERVER['HTTP_PROXY'] ?? null : null) ?? $_SERVER['all_proxy'] ?? $_SERVER['ALL_PROXY'] ?? null; + $port = parse_url($authority, \PHP_URL_PORT) ?: ('http:' === $scheme ? 80 : 443); + $proxy = self::getProxyUrl($options['proxy'], $url); $url = implode('', $url); if (!isset($options['normalized_headers']['user-agent'])) { @@ -167,7 +163,6 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, // First reset any old DNS cache entries then add the new ones $resolve = $this->multi->dnsCache->evictions; $this->multi->dnsCache->evictions = []; - $port = parse_url($authority, \PHP_URL_PORT) ?: ('http:' === $scheme ? 80 : 443); if ($resolve && 0x072A00 > CurlClientState::$curlVersion['version_number']) { // DNS cache removals require curl 7.42 or higher @@ -283,21 +278,21 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, unset($this->multi->pushedResponses[$url]); if (self::acceptPushForRequest($method, $options, $pushedResponse)) { - $this->logger && $this->logger->debug(sprintf('Accepting pushed response: "%s %s"', $method, $url)); + $this->logger?->debug(sprintf('Accepting pushed response: "%s %s"', $method, $url)); // Reinitialize the pushed response with request's options $ch = $pushedResponse->handle; $pushedResponse = $pushedResponse->response; $pushedResponse->__construct($this->multi, $url, $options, $this->logger); } else { - $this->logger && $this->logger->debug(sprintf('Rejecting pushed response: "%s"', $url)); + $this->logger?->debug(sprintf('Rejecting pushed response: "%s"', $url)); $pushedResponse = null; } } if (!$pushedResponse) { $ch = curl_init(); - $this->logger && $this->logger->info(sprintf('Request: "%s %s"', $method, $url)); + $this->logger?->info(sprintf('Request: "%s %s"', $method, $url)); $curlopts += [\CURLOPT_SHARE => $this->multi->share]; } @@ -308,12 +303,9 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, } } - return $pushedResponse ?? new CurlResponse($this->multi, $ch, $options, $this->logger, $method, self::createRedirectResolver($options, $host), CurlClientState::$curlVersion['version_number']); + return $pushedResponse ?? new CurlResponse($this->multi, $ch, $options, $this->logger, $method, self::createRedirectResolver($options, $host, $port), CurlClientState::$curlVersion['version_number'], $url); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { if ($responses instanceof CurlResponse) { @@ -388,11 +380,12 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, * * Work around CVE-2018-1000007: Authorization and Cookie headers should not follow redirects - fixed in Curl 7.64 */ - private static function createRedirectResolver(array $options, string $host): \Closure + private static function createRedirectResolver(array $options, string $host, int $port): \Closure { $redirectHeaders = []; if (0 < $options['max_redirects']) { $redirectHeaders['host'] = $host; + $redirectHeaders['port'] = $port; $redirectHeaders['with_auth'] = $redirectHeaders['no_auth'] = array_filter($options['headers'], static function ($h) { return 0 !== stripos($h, 'Host:'); }); @@ -404,10 +397,10 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, } } - return static function ($ch, string $location, bool $noContent) use (&$redirectHeaders) { + return static function ($ch, string $location, bool $noContent) use (&$redirectHeaders, $options) { try { $location = self::parseUrl($location); - } catch (InvalidArgumentException $e) { + } catch (InvalidArgumentException) { return null; } @@ -420,7 +413,8 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, } if ($redirectHeaders && $host = parse_url('http:'.$location['authority'], \PHP_URL_HOST)) { - $requestHeaders = $redirectHeaders['host'] === $host ? $redirectHeaders['with_auth'] : $redirectHeaders['no_auth']; + $port = parse_url('http:'.$location['authority'], \PHP_URL_PORT) ?: ('http:' === $location['scheme'] ? 80 : 443); + $requestHeaders = $redirectHeaders['host'] === $host && $redirectHeaders['port'] === $port ? $redirectHeaders['with_auth'] : $redirectHeaders['no_auth']; curl_setopt($ch, \CURLOPT_HTTPHEADER, $requestHeaders); } elseif ($noContent && $redirectHeaders) { curl_setopt($ch, \CURLOPT_HTTPHEADER, $redirectHeaders['with_auth']); @@ -429,11 +423,7 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, $url = self::parseUrl(curl_getinfo($ch, \CURLINFO_EFFECTIVE_URL)); $url = self::resolveUrl($location, $url); - curl_setopt($ch, \CURLOPT_PROXY, $options['proxy'] - ?? ('https:' === $url['scheme'] ? $_SERVER['https_proxy'] ?? $_SERVER['HTTPS_PROXY'] ?? null : null) - // Ignore HTTP_PROXY except on the CLI to work around httpoxy set of vulnerabilities - ?? $_SERVER['http_proxy'] ?? (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? $_SERVER['HTTP_PROXY'] ?? null : null) ?? $_SERVER['all_proxy'] ?? $_SERVER['ALL_PROXY'] ?? null - ); + curl_setopt($ch, \CURLOPT_PROXY, self::getProxyUrl($options['proxy'], $url)); return implode('', $url); }; @@ -469,6 +459,7 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface, \CURLOPT_TIMEOUT_MS => 'max_duration', \CURLOPT_TIMEOUT => 'max_duration', \CURLOPT_MAXREDIRS => 'max_redirects', + \CURLOPT_POSTREDIR => 'max_redirects', \CURLOPT_PROXY => 'proxy', \CURLOPT_NOPROXY => 'no_proxy', \CURLOPT_SSL_VERIFYPEER => 'verify_peer', diff --git a/vendor/symfony/http-client/DataCollector/HttpClientDataCollector.php b/vendor/symfony/http-client/DataCollector/HttpClientDataCollector.php index dda03d5a3..524251729 100644 --- a/vendor/symfony/http-client/DataCollector/HttpClientDataCollector.php +++ b/vendor/symfony/http-client/DataCollector/HttpClientDataCollector.php @@ -11,6 +11,7 @@ namespace Symfony\Component\HttpClient\DataCollector; +use Symfony\Component\HttpClient\HttpClientTrait; use Symfony\Component\HttpClient\TraceableHttpClient; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -23,6 +24,8 @@ use Symfony\Component\VarDumper\Caster\ImgStub; */ final class HttpClientDataCollector extends DataCollector implements LateDataCollectorInterface { + use HttpClientTrait; + /** * @var TraceableHttpClient[] */ @@ -33,9 +36,6 @@ final class HttpClientDataCollector extends DataCollector implements LateDataCol $this->clients[$name] = $client; } - /** - * {@inheritdoc} - */ public function collect(Request $request, Response $response, \Throwable $exception = null) { $this->lateCollect(); @@ -43,8 +43,8 @@ final class HttpClientDataCollector extends DataCollector implements LateDataCol public function lateCollect() { - $this->data['request_count'] = 0; - $this->data['error_count'] = 0; + $this->data['request_count'] = $this->data['request_count'] ?? 0; + $this->data['error_count'] = $this->data['error_count'] ?? 0; $this->data += ['clients' => []]; foreach ($this->clients as $name => $client) { @@ -59,7 +59,8 @@ final class HttpClientDataCollector extends DataCollector implements LateDataCol $this->data['clients'][$name]['traces'] = array_merge($this->data['clients'][$name]['traces'], $traces); $this->data['request_count'] += \count($traces); - $this->data['error_count'] += $this->data['clients'][$name]['error_count'] += $errorCount; + $this->data['error_count'] += $errorCount; + $this->data['clients'][$name]['error_count'] += $errorCount; $client->reset(); } @@ -80,9 +81,6 @@ final class HttpClientDataCollector extends DataCollector implements LateDataCol return $this->data['error_count'] ?? 0; } - /** - * {@inheritdoc} - */ public function getName(): string { return 'http_client'; @@ -145,7 +143,7 @@ final class HttpClientDataCollector extends DataCollector implements LateDataCol } } - if (0 === strpos($contentType, 'image/') && class_exists(ImgStub::class)) { + if (str_starts_with($contentType, 'image/') && class_exists(ImgStub::class)) { $content = new ImgStub($content, $contentType, ''); } else { $content = [$content]; @@ -168,8 +166,97 @@ final class HttpClientDataCollector extends DataCollector implements LateDataCol unset($traces[$i]['info']); // break PHP reference used by TraceableHttpClient $traces[$i]['info'] = $this->cloneVar($info); $traces[$i]['options'] = $this->cloneVar($trace['options']); + $traces[$i]['curlCommand'] = $this->getCurlCommand($trace); } return [$errorCount, $traces]; } + + private function getCurlCommand(array $trace): ?string + { + if (!isset($trace['info']['debug'])) { + return null; + } + + $url = $trace['info']['original_url'] ?? $trace['info']['url'] ?? $trace['url']; + $command = ['curl', '--compressed']; + + if (isset($trace['options']['resolve'])) { + $port = parse_url($url, \PHP_URL_PORT) ?: (str_starts_with('http:', $url) ? 80 : 443); + foreach ($trace['options']['resolve'] as $host => $ip) { + if (null !== $ip) { + $command[] = '--resolve '.escapeshellarg("$host:$port:$ip"); + } + } + } + + $dataArg = []; + + if ($json = $trace['options']['json'] ?? null) { + if (!$this->argMaxLengthIsSafe($payload = self::jsonEncode($json))) { + return null; + } + $dataArg[] = '--data '.escapeshellarg($payload); + } elseif ($body = $trace['options']['body'] ?? null) { + if (\is_string($body)) { + if (!$this->argMaxLengthIsSafe($body)) { + return null; + } + try { + $dataArg[] = '--data '.escapeshellarg($body); + } catch (\ValueError) { + return null; + } + } elseif (\is_array($body)) { + $body = explode('&', self::normalizeBody($body)); + foreach ($body as $value) { + if (!$this->argMaxLengthIsSafe($payload = urldecode($value))) { + return null; + } + $dataArg[] = '--data '.escapeshellarg($payload); + } + } else { + return null; + } + } + + $dataArg = empty($dataArg) ? null : implode(' ', $dataArg); + + foreach (explode("\n", $trace['info']['debug']) as $line) { + $line = substr($line, 0, -1); + + if (str_starts_with('< ', $line)) { + // End of the request, beginning of the response. Stop parsing. + break; + } + + if ('' === $line || preg_match('/^[*<]|(Host: )/', $line)) { + continue; + } + + if (preg_match('/^> ([A-Z]+)/', $line, $match)) { + $command[] = sprintf('--request %s', $match[1]); + $command[] = sprintf('--url %s', escapeshellarg($url)); + continue; + } + + $command[] = '--header '.escapeshellarg($line); + } + + if (null !== $dataArg) { + $command[] = $dataArg; + } + + return implode(" \\\n ", $command); + } + + /** + * Let's be defensive : we authorize only size of 8kio on Windows for escapeshellarg() argument to avoid a fatal error. + * + * @see https://github.com/php/php-src/blob/9458f5f2c8a8e3d6c65cc181747a5a75654b7c6e/ext/standard/exec.c#L397 + */ + private function argMaxLengthIsSafe(string $payload): bool + { + return \strlen($payload) < ('\\' === \DIRECTORY_SEPARATOR ? 8100 : 256000); + } } diff --git a/vendor/symfony/http-client/DecoratorTrait.php b/vendor/symfony/http-client/DecoratorTrait.php index a08b725c9..f38664b43 100644 --- a/vendor/symfony/http-client/DecoratorTrait.php +++ b/vendor/symfony/http-client/DecoratorTrait.php @@ -23,32 +23,23 @@ use Symfony\Contracts\Service\ResetInterface; */ trait DecoratorTrait { - private $client; + private HttpClientInterface $client; public function __construct(HttpClientInterface $client = null) { $this->client = $client ?? HttpClient::create(); } - /** - * {@inheritdoc} - */ public function request(string $method, string $url, array $options = []): ResponseInterface { return $this->client->request($method, $url, $options); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { return $this->client->stream($responses, $timeout); } - /** - * {@inheritdoc} - */ public function withOptions(array $options): static { $clone = clone $this; diff --git a/vendor/symfony/http-client/DependencyInjection/HttpClientPass.php b/vendor/symfony/http-client/DependencyInjection/HttpClientPass.php index 53645a12f..c42d873fc 100644 --- a/vendor/symfony/http-client/DependencyInjection/HttpClientPass.php +++ b/vendor/symfony/http-client/DependencyInjection/HttpClientPass.php @@ -19,9 +19,6 @@ use Symfony\Component\HttpClient\TraceableHttpClient; final class HttpClientPass implements CompilerPassInterface { - /** - * {@inheritdoc} - */ public function process(ContainerBuilder $container) { if (!$container->hasDefinition('data_collector.http_client')) { diff --git a/vendor/symfony/http-client/EventSourceHttpClient.php b/vendor/symfony/http-client/EventSourceHttpClient.php index 11c54848e..377c29d5f 100644 --- a/vendor/symfony/http-client/EventSourceHttpClient.php +++ b/vendor/symfony/http-client/EventSourceHttpClient.php @@ -84,7 +84,7 @@ final class EventSourceHttpClient implements HttpClientInterface, ResetInterface return; } - } catch (TransportExceptionInterface $e) { + } catch (TransportExceptionInterface) { $state->lastError = $lastError ?? microtime(true); if (null === $state->buffer || ($isTimeout && microtime(true) - $state->lastError < $state->reconnectionTime)) { diff --git a/vendor/symfony/http-client/Exception/HttpExceptionTrait.php b/vendor/symfony/http-client/Exception/HttpExceptionTrait.php index 8cbaa1cd1..264ef24b2 100644 --- a/vendor/symfony/http-client/Exception/HttpExceptionTrait.php +++ b/vendor/symfony/http-client/Exception/HttpExceptionTrait.php @@ -20,7 +20,7 @@ use Symfony\Contracts\HttpClient\ResponseInterface; */ trait HttpExceptionTrait { - private $response; + private ResponseInterface $response; public function __construct(ResponseInterface $response) { diff --git a/vendor/symfony/http-client/HttpClient.php b/vendor/symfony/http-client/HttpClient.php index 352410d33..0e7d9b440 100644 --- a/vendor/symfony/http-client/HttpClient.php +++ b/vendor/symfony/http-client/HttpClient.php @@ -42,7 +42,7 @@ final class HttpClient } static $curlVersion = null; - $curlVersion = $curlVersion ?? curl_version(); + $curlVersion ??= curl_version(); // HTTP/2 push crashes before curl 7.61 if (0x073D00 > $curlVersion['version_number'] || !(\CURL_VERSION_HTTP2 & $curlVersion['features'])) { diff --git a/vendor/symfony/http-client/HttpClientTrait.php b/vendor/symfony/http-client/HttpClientTrait.php index f09b4e8ea..36118113f 100644 --- a/vendor/symfony/http-client/HttpClientTrait.php +++ b/vendor/symfony/http-client/HttpClientTrait.php @@ -25,9 +25,6 @@ trait HttpClientTrait { private static int $CHUNK_SIZE = 16372; - /** - * {@inheritdoc} - */ public function withOptions(array $options): static { $clone = clone $this; @@ -97,6 +94,10 @@ trait HttpClientTrait } if (isset($options['body'])) { + if (\is_array($options['body']) && (!isset($options['normalized_headers']['content-type'][0]) || !str_contains($options['normalized_headers']['content-type'][0], 'application/x-www-form-urlencoded'))) { + $options['normalized_headers']['content-type'] = ['Content-Type: application/x-www-form-urlencoded']; + } + $options['body'] = self::normalizeBody($options['body']); if (\is_string($options['body']) @@ -202,7 +203,7 @@ trait HttpClientTrait } // Option "query" is never inherited from defaults - $options['query'] = $options['query'] ?? []; + $options['query'] ??= []; $options += $defaultOptions; @@ -394,13 +395,13 @@ trait HttpClientTrait private static function normalizePeerFingerprint(mixed $fingerprint): array { if (\is_string($fingerprint)) { - switch (\strlen($fingerprint = str_replace(':', '', $fingerprint))) { - case 32: $fingerprint = ['md5' => $fingerprint]; break; - case 40: $fingerprint = ['sha1' => $fingerprint]; break; - case 44: $fingerprint = ['pin-sha256' => [$fingerprint]]; break; - case 64: $fingerprint = ['sha256' => $fingerprint]; break; - default: throw new InvalidArgumentException(sprintf('Cannot auto-detect fingerprint algorithm for "%s".', $fingerprint)); - } + $fingerprint = match (\strlen($fingerprint = str_replace(':', '', $fingerprint))) { + 32 => ['md5' => $fingerprint], + 40 => ['sha1' => $fingerprint], + 44 => ['pin-sha256' => [$fingerprint]], + 64 => ['sha256' => $fingerprint], + default => throw new InvalidArgumentException(sprintf('Cannot auto-detect fingerprint algorithm for "%s".', $fingerprint)), + }; } elseif (\is_array($fingerprint)) { foreach ($fingerprint as $algo => $hash) { $fingerprint[$algo] = 'pin-sha256' === $algo ? (array) $hash : str_replace(':', '', $hash); @@ -417,7 +418,7 @@ trait HttpClientTrait */ private static function jsonEncode(mixed $value, int $flags = null, int $maxDepth = 512): string { - $flags = $flags ?? (\JSON_HEX_TAG | \JSON_HEX_APOS | \JSON_HEX_AMP | \JSON_HEX_QUOT | \JSON_PRESERVE_ZERO_FRACTION); + $flags ??= \JSON_HEX_TAG | \JSON_HEX_APOS | \JSON_HEX_AMP | \JSON_HEX_QUOT | \JSON_PRESERVE_ZERO_FRACTION; try { $value = json_encode($value, $flags | \JSON_THROW_ON_ERROR, $maxDepth); @@ -457,7 +458,7 @@ trait HttpClientTrait } else { if (null === $url['path']) { $url['path'] = $base['path']; - $url['query'] = $url['query'] ?? $base['query']; + $url['query'] ??= $base['query']; } else { if ('/' !== $url['path'][0]) { if (null === $base['path']) { @@ -539,7 +540,7 @@ trait HttpClientTrait } // https://tools.ietf.org/html/rfc3986#section-3.3 - $parts[$part] = preg_replace_callback("#[^-A-Za-z0-9._~!$&/'()*+,;=:@%]++#", function ($m) { return rawurlencode($m[0]); }, $parts[$part]); + $parts[$part] = preg_replace_callback("#[^-A-Za-z0-9._~!$&/'()[\]*+,;=:@{}%]++#", function ($m) { return rawurlencode($m[0]); }, $parts[$part]); } return [ @@ -613,6 +614,23 @@ trait HttpClientTrait $queryArray = []; if ($queryString) { + if (str_contains($queryString, '%')) { + // https://tools.ietf.org/html/rfc3986#section-2.3 + some chars not encoded by browsers + $queryString = strtr($queryString, [ + '%21' => '!', + '%24' => '$', + '%28' => '(', + '%29' => ')', + '%2A' => '*', + '%2F' => '/', + '%3A' => ':', + '%3B' => ';', + '%40' => '@', + '%5B' => '[', + '%5D' => ']', + ]); + } + foreach (explode('&', $queryString) as $v) { $queryArray[rawurldecode(explode('=', $v, 2)[0])] = $v; } @@ -626,16 +644,7 @@ trait HttpClientTrait */ private static function getProxy(?string $proxy, array $url, ?string $noProxy): ?array { - if (null === $proxy) { - // Ignore HTTP_PROXY except on the CLI to work around httpoxy set of vulnerabilities - $proxy = $_SERVER['http_proxy'] ?? (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? $_SERVER['HTTP_PROXY'] ?? null : null) ?? $_SERVER['all_proxy'] ?? $_SERVER['ALL_PROXY'] ?? null; - - if ('https:' === $url['scheme']) { - $proxy = $_SERVER['https_proxy'] ?? $_SERVER['HTTPS_PROXY'] ?? $proxy; - } - } - - if (null === $proxy) { + if (null === $proxy = self::getProxyUrl($proxy, $url)) { return null; } @@ -653,7 +662,7 @@ trait HttpClientTrait throw new TransportException(sprintf('Unsupported proxy scheme "%s": "http" or "https" expected.', $proxy['scheme'])); } - $noProxy = $noProxy ?? $_SERVER['no_proxy'] ?? $_SERVER['NO_PROXY'] ?? ''; + $noProxy ??= $_SERVER['no_proxy'] ?? $_SERVER['NO_PROXY'] ?? ''; $noProxy = $noProxy ? preg_split('/[\s,]+/', $noProxy) : []; return [ @@ -663,6 +672,22 @@ trait HttpClientTrait ]; } + private static function getProxyUrl(?string $proxy, array $url): ?string + { + if (null !== $proxy) { + return $proxy; + } + + // Ignore HTTP_PROXY except on the CLI to work around httpoxy set of vulnerabilities + $proxy = $_SERVER['http_proxy'] ?? (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? $_SERVER['HTTP_PROXY'] ?? null : null) ?? $_SERVER['all_proxy'] ?? $_SERVER['ALL_PROXY'] ?? null; + + if ('https:' === $url['scheme']) { + $proxy = $_SERVER['https_proxy'] ?? $_SERVER['HTTPS_PROXY'] ?? $proxy; + } + + return $proxy; + } + private static function shouldBuffer(array $headers): bool { if (null === $contentType = $headers['content-type'][0] ?? null) { diff --git a/vendor/symfony/http-client/HttpOptions.php b/vendor/symfony/http-client/HttpOptions.php index d71b11926..a07fac7ed 100644 --- a/vendor/symfony/http-client/HttpOptions.php +++ b/vendor/symfony/http-client/HttpOptions.php @@ -32,7 +32,7 @@ class HttpOptions /** * @return $this */ - public function setAuthBasic(string $user, string $password = ''): static + public function setAuthBasic(string $user, #[\SensitiveParameter] string $password = ''): static { $this->options['auth_basic'] = $user; @@ -46,7 +46,7 @@ class HttpOptions /** * @return $this */ - public function setAuthBearer(string $token): static + public function setAuthBearer(#[\SensitiveParameter] string $token): static { $this->options['auth_bearer'] = $token; diff --git a/vendor/symfony/http-client/HttplugClient.php b/vendor/symfony/http-client/HttplugClient.php index 676cfe6ae..661f9fec0 100644 --- a/vendor/symfony/http-client/HttplugClient.php +++ b/vendor/symfony/http-client/HttplugClient.php @@ -46,7 +46,11 @@ if (!interface_exists(HttplugInterface::class)) { } if (!interface_exists(RequestFactory::class)) { - throw new \LogicException('You cannot use "Symfony\Component\HttpClient\HttplugClient" as the "php-http/message-factory" package is not installed. Try running "composer require nyholm/psr7".'); + throw new \LogicException('You cannot use "Symfony\Component\HttpClient\HttplugClient" as the "php-http/message-factory" package is not installed. Try running "composer require php-http/message-factory".'); +} + +if (!interface_exists(RequestFactoryInterface::class)) { + throw new \LogicException('You cannot use the "Symfony\Component\HttpClient\HttplugClient" as the "psr/http-factory" package is not installed. Try running "composer require nyholm/psr7".'); } /** @@ -57,18 +61,18 @@ if (!interface_exists(RequestFactory::class)) { * * @author Nicolas Grekas */ -final class HttplugClient implements HttplugInterface, HttpAsyncClient, RequestFactory, StreamFactory, UriFactory, ResetInterface +final class HttplugClient implements HttplugInterface, HttpAsyncClient, RequestFactoryInterface, StreamFactoryInterface, UriFactoryInterface, RequestFactory, StreamFactory, UriFactory, ResetInterface { - private $client; - private $responseFactory; - private $streamFactory; + private HttpClientInterface $client; + private ResponseFactoryInterface $responseFactory; + private StreamFactoryInterface $streamFactory; /** * @var \SplObjectStorage|null */ private ?\SplObjectStorage $promisePool; - private $waitLoop; + private HttplugWaitLoop $waitLoop; public function __construct(HttpClientInterface $client = null, ResponseFactoryInterface $responseFactory = null, StreamFactoryInterface $streamFactory = null) { @@ -95,9 +99,14 @@ final class HttplugClient implements HttplugInterface, HttpAsyncClient, RequestF $this->waitLoop = new HttplugWaitLoop($this->client, $this->promisePool, $this->responseFactory, $this->streamFactory); } - /** - * {@inheritdoc} - */ + public function withOptions(array $options): static + { + $clone = clone $this; + $clone->client = $clone->client->withOptions($options); + + return $clone; + } + public function sendRequest(RequestInterface $request): Psr7ResponseInterface { try { @@ -107,9 +116,6 @@ final class HttplugClient implements HttplugInterface, HttpAsyncClient, RequestF } } - /** - * {@inheritdoc} - */ public function sendAsyncRequest(RequestInterface $request): HttplugPromise { if (!$promisePool = $this->promisePool) { @@ -149,10 +155,14 @@ final class HttplugClient implements HttplugInterface, HttpAsyncClient, RequestF } /** - * {@inheritdoc} + * @param string $method + * @param UriInterface|string $uri */ public function createRequest($method, $uri, array $headers = [], $body = null, $protocolVersion = '1.1'): RequestInterface { + if (2 < \func_num_args()) { + trigger_deprecation('symfony/http-client', '6.2', 'Passing more than 2 arguments to "%s()" is deprecated.', __METHOD__); + } if ($this->responseFactory instanceof RequestFactoryInterface) { $request = $this->responseFactory->createRequest($method, $uri); } elseif (class_exists(Request::class)) { @@ -165,7 +175,7 @@ final class HttplugClient implements HttplugInterface, HttpAsyncClient, RequestF $request = $request ->withProtocolVersion($protocolVersion) - ->withBody($this->createStream($body)) + ->withBody($this->createStream($body ?? '')) ; foreach ($headers as $name => $value) { @@ -176,20 +186,24 @@ final class HttplugClient implements HttplugInterface, HttpAsyncClient, RequestF } /** - * {@inheritdoc} + * @param string $content */ - public function createStream($body = null): StreamInterface + public function createStream($content = ''): StreamInterface { - if ($body instanceof StreamInterface) { - return $body; + if (!\is_string($content)) { + trigger_deprecation('symfony/http-client', '6.2', 'Passing a "%s" to "%s()" is deprecated, use "createStreamFrom*()" instead.', get_debug_type($content), __METHOD__); } - if (\is_string($body ?? '')) { - $stream = $this->streamFactory->createStream($body ?? ''); - } elseif (\is_resource($body)) { - $stream = $this->streamFactory->createStreamFromResource($body); + if ($content instanceof StreamInterface) { + return $content; + } + + if (\is_string($content ?? '')) { + $stream = $this->streamFactory->createStream($content ?? ''); + } elseif (\is_resource($content)) { + $stream = $this->streamFactory->createStreamFromResource($content); } else { - throw new \InvalidArgumentException(sprintf('"%s()" expects string, resource or StreamInterface, "%s" given.', __METHOD__, get_debug_type($body))); + throw new \InvalidArgumentException(sprintf('"%s()" expects string, resource or StreamInterface, "%s" given.', __METHOD__, get_debug_type($content))); } if ($stream->isSeekable()) { @@ -199,11 +213,25 @@ final class HttplugClient implements HttplugInterface, HttpAsyncClient, RequestF return $stream; } - /** - * {@inheritdoc} - */ - public function createUri($uri): UriInterface + public function createStreamFromFile(string $filename, string $mode = 'r'): StreamInterface { + return $this->streamFactory->createStreamFromFile($filename, $mode); + } + + public function createStreamFromResource($resource): StreamInterface + { + return $this->streamFactory->createStreamFromResource($resource); + } + + /** + * @param string $uri + */ + public function createUri($uri = ''): UriInterface + { + if (!\is_string($uri)) { + trigger_deprecation('symfony/http-client', '6.2', 'Passing a "%s" to "%s()" is deprecated, pass a string instead.', get_debug_type($uri), __METHOD__); + } + if ($uri instanceof UriInterface) { return $uri; } diff --git a/vendor/symfony/http-client/Internal/AmpBody.php b/vendor/symfony/http-client/Internal/AmpBody.php index a6ff7635b..bd995e17d 100644 --- a/vendor/symfony/http-client/Internal/AmpBody.php +++ b/vendor/symfony/http-client/Internal/AmpBody.php @@ -25,7 +25,7 @@ use Symfony\Component\HttpClient\Exception\TransportException; */ class AmpBody implements RequestBody, InputStream { - private $body; + private ResourceInputStream|\Closure|string $body; private array $info; private \Closure $onProgress; private ?int $offset = 0; diff --git a/vendor/symfony/http-client/Internal/AmpClientState.php b/vendor/symfony/http-client/Internal/AmpClientState.php index 28906e629..18a1722c3 100644 --- a/vendor/symfony/http-client/Internal/AmpClientState.php +++ b/vendor/symfony/http-client/Internal/AmpClientState.php @@ -49,12 +49,12 @@ final class AmpClientState extends ClientState private \Closure $clientConfigurator; private int $maxHostConnections; private int $maxPendingPushes; - private $logger; + private ?LoggerInterface $logger; public function __construct(?callable $clientConfigurator, int $maxHostConnections, int $maxPendingPushes, ?LoggerInterface &$logger) { $clientConfigurator ??= static fn (PooledHttpClient $client) => new InterceptedHttpClient($client, new RetryRequests(2)); - $this->clientConfigurator = $clientConfigurator instanceof \Closure ? $clientConfigurator : \Closure::fromCallable($clientConfigurator); + $this->clientConfigurator = $clientConfigurator(...); $this->maxHostConnections = $maxHostConnections; $this->maxPendingPushes = $maxPendingPushes; @@ -76,7 +76,7 @@ final class AmpClientState extends ClientState foreach ($options['proxy']['no_proxy'] as $rule) { $dotRule = '.'.ltrim($rule, '.'); - if ('*' === $rule || $host === $rule || substr($host, -\strlen($dotRule)) === $dotRule) { + if ('*' === $rule || $host === $rule || str_ends_with($host, $dotRule)) { $options['proxy'] = null; break; } @@ -200,11 +200,11 @@ final class AmpClientState extends ClientState if ($this->maxPendingPushes <= \count($this->pushedResponses[$authority] ?? [])) { $fifoUrl = key($this->pushedResponses[$authority]); unset($this->pushedResponses[$authority][$fifoUrl]); - $this->logger && $this->logger->debug(sprintf('Evicting oldest pushed response: "%s"', $fifoUrl)); + $this->logger?->debug(sprintf('Evicting oldest pushed response: "%s"', $fifoUrl)); } $url = (string) $request->getUri(); - $this->logger && $this->logger->debug(sprintf('Queueing pushed response: "%s"', $url)); + $this->logger?->debug(sprintf('Queueing pushed response: "%s"', $url)); $this->pushedResponses[$authority][] = [$url, $deferred, $request, $response, [ 'proxy' => $options['proxy'], 'bindto' => $options['bindto'], diff --git a/vendor/symfony/http-client/Internal/AmpListener.php b/vendor/symfony/http-client/Internal/AmpListener.php index 37c43d148..206c44982 100644 --- a/vendor/symfony/http-client/Internal/AmpListener.php +++ b/vendor/symfony/http-client/Internal/AmpListener.php @@ -50,7 +50,7 @@ class AmpListener implements EventListener public function startRequest(Request $request): Promise { - $this->info['start_time'] = $this->info['start_time'] ?? microtime(true); + $this->info['start_time'] ??= microtime(true); ($this->onProgress)(); return new Success(); @@ -81,7 +81,7 @@ class AmpListener implements EventListener { $host = $stream->getRemoteAddress()->getHost(); - if (false !== strpos($host, ':')) { + if (str_contains($host, ':')) { $host = '['.$host.']'; } diff --git a/vendor/symfony/http-client/Internal/CurlClientState.php b/vendor/symfony/http-client/Internal/CurlClientState.php index 2934fc863..8e2a42ed0 100644 --- a/vendor/symfony/http-client/Internal/CurlClientState.php +++ b/vendor/symfony/http-client/Internal/CurlClientState.php @@ -25,6 +25,7 @@ final class CurlClientState extends ClientState { public ?\CurlMultiHandle $handle; public ?\CurlShareHandle $share; + public bool $performing = false; /** @var PushedResponse[] */ public array $pushedResponses = []; @@ -38,7 +39,7 @@ final class CurlClientState extends ClientState public function __construct(int $maxHostConnections, int $maxPendingPushes) { - self::$curlVersion = self::$curlVersion ?? curl_version(); + self::$curlVersion ??= curl_version(); $this->handle = curl_multi_init(); $this->dnsCache = new DnsCache(); @@ -82,7 +83,7 @@ final class CurlClientState extends ClientState public function reset() { foreach ($this->pushedResponses as $url => $response) { - $this->logger && $this->logger->debug(sprintf('Unused pushed response: "%s"', $url)); + $this->logger?->debug(sprintf('Unused pushed response: "%s"', $url)); curl_multi_remove_handle($this->handle, $response->handle); curl_close($response->handle); } @@ -113,7 +114,7 @@ final class CurlClientState extends ClientState } if (!isset($headers[':method']) || !isset($headers[':scheme']) || !isset($headers[':authority']) || !isset($headers[':path'])) { - $this->logger && $this->logger->debug(sprintf('Rejecting pushed response from "%s": pushed headers are invalid', $origin)); + $this->logger?->debug(sprintf('Rejecting pushed response from "%s": pushed headers are invalid', $origin)); return \CURL_PUSH_DENY; } @@ -124,7 +125,7 @@ final class CurlClientState extends ClientState // but this is a MUST in the HTTP/2 RFC; let's restrict pushes to the original host, // ignoring domains mentioned as alt-name in the certificate for now (same as curl). if (!str_starts_with($origin, $url.'/')) { - $this->logger && $this->logger->debug(sprintf('Rejecting pushed response from "%s": server is not authoritative for "%s"', $origin, $url)); + $this->logger?->debug(sprintf('Rejecting pushed response from "%s": server is not authoritative for "%s"', $origin, $url)); return \CURL_PUSH_DENY; } @@ -132,11 +133,11 @@ final class CurlClientState extends ClientState if ($maxPendingPushes <= \count($this->pushedResponses)) { $fifoUrl = key($this->pushedResponses); unset($this->pushedResponses[$fifoUrl]); - $this->logger && $this->logger->debug(sprintf('Evicting oldest pushed response: "%s"', $fifoUrl)); + $this->logger?->debug(sprintf('Evicting oldest pushed response: "%s"', $fifoUrl)); } $url .= $headers[':path'][0]; - $this->logger && $this->logger->debug(sprintf('Queueing pushed response: "%s"', $url)); + $this->logger?->debug(sprintf('Queueing pushed response: "%s"', $url)); $this->pushedResponses[$url] = new PushedResponse(new CurlResponse($this, $pushed), $headers, $this->openHandles[(int) $parent][1] ?? [], $pushed); diff --git a/vendor/symfony/http-client/Internal/HttplugWaitLoop.php b/vendor/symfony/http-client/Internal/HttplugWaitLoop.php index e3685c4d4..85d7e01d6 100644 --- a/vendor/symfony/http-client/Internal/HttplugWaitLoop.php +++ b/vendor/symfony/http-client/Internal/HttplugWaitLoop.php @@ -30,10 +30,10 @@ use Symfony\Contracts\HttpClient\ResponseInterface; */ final class HttplugWaitLoop { - private $client; + private HttpClientInterface $client; private ?\SplObjectStorage $promisePool; - private $responseFactory; - private $streamFactory; + private ResponseFactoryInterface $responseFactory; + private StreamFactoryInterface $streamFactory; /** * @param \SplObjectStorage|null $promisePool @@ -120,7 +120,11 @@ final class HttplugWaitLoop foreach ($response->getHeaders(false) as $name => $values) { foreach ($values as $value) { - $psrResponse = $psrResponse->withAddedHeader($name, $value); + try { + $psrResponse = $psrResponse->withAddedHeader($name, $value); + } catch (\InvalidArgumentException $e) { + // ignore invalid header + } } } diff --git a/vendor/symfony/http-client/Internal/PushedResponse.php b/vendor/symfony/http-client/Internal/PushedResponse.php index 51c94e9ba..f1e0ad687 100644 --- a/vendor/symfony/http-client/Internal/PushedResponse.php +++ b/vendor/symfony/http-client/Internal/PushedResponse.php @@ -22,7 +22,7 @@ use Symfony\Component\HttpClient\Response\CurlResponse; */ final class PushedResponse { - public $response; + public CurlResponse $response; /** @var string[] */ public array $requestHeaders; diff --git a/vendor/symfony/http-client/LICENSE b/vendor/symfony/http-client/LICENSE index 99757d517..7536caeae 100644 --- a/vendor/symfony/http-client/LICENSE +++ b/vendor/symfony/http-client/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2023 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/http-client/MockHttpClient.php b/vendor/symfony/http-client/MockHttpClient.php index ecb2423d5..7906b9a96 100644 --- a/vendor/symfony/http-client/MockHttpClient.php +++ b/vendor/symfony/http-client/MockHttpClient.php @@ -28,7 +28,7 @@ class MockHttpClient implements HttpClientInterface, ResetInterface { use HttpClientTrait; - private $responseFactory; + private ResponseInterface|\Closure|iterable|null $responseFactory; private int $requestsCount = 0; private array $defaultOptions = []; @@ -56,12 +56,9 @@ class MockHttpClient implements HttpClientInterface, ResetInterface })(); } - $this->responseFactory = !\is_callable($responseFactory) || $responseFactory instanceof \Closure ? $responseFactory : \Closure::fromCallable($responseFactory); + $this->responseFactory = !\is_callable($responseFactory) ? $responseFactory : $responseFactory(...); } - /** - * {@inheritdoc} - */ public function request(string $method, string $url, array $options = []): ResponseInterface { [$url, $options] = $this->prepareRequest($method, $url, $options, $this->defaultOptions, true); @@ -81,15 +78,12 @@ class MockHttpClient implements HttpClientInterface, ResetInterface ++$this->requestsCount; if (!$response instanceof ResponseInterface) { - throw new TransportException(sprintf('The response factory passed to MockHttpClient must return/yield an instance of ResponseInterface, "%s" given.', \is_object($response) ? \get_class($response) : \gettype($response))); + throw new TransportException(sprintf('The response factory passed to MockHttpClient must return/yield an instance of ResponseInterface, "%s" given.', get_debug_type($response))); } return MockResponse::fromRequest($method, $url, $options, $response); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { if ($responses instanceof ResponseInterface) { @@ -104,9 +98,6 @@ class MockHttpClient implements HttpClientInterface, ResetInterface return $this->requestsCount; } - /** - * {@inheritdoc} - */ public function withOptions(array $options): static { $clone = clone $this; diff --git a/vendor/symfony/http-client/NativeHttpClient.php b/vendor/symfony/http-client/NativeHttpClient.php index 83625ae51..734effbb4 100644 --- a/vendor/symfony/http-client/NativeHttpClient.php +++ b/vendor/symfony/http-client/NativeHttpClient.php @@ -39,7 +39,7 @@ final class NativeHttpClient implements HttpClientInterface, LoggerAwareInterfac private array $defaultOptions = self::OPTIONS_DEFAULTS; private static array $emptyDefaults = self::OPTIONS_DEFAULTS; - private $multi; + private NativeClientState $multi; /** * @param array $defaultOptions Default request's options @@ -49,7 +49,7 @@ final class NativeHttpClient implements HttpClientInterface, LoggerAwareInterfac */ public function __construct(array $defaultOptions = [], int $maxHostConnections = 6) { - $this->defaultOptions['buffer'] = $this->defaultOptions['buffer'] ?? \Closure::fromCallable([__CLASS__, 'shouldBuffer']); + $this->defaultOptions['buffer'] ??= self::shouldBuffer(...); if ($defaultOptions) { [, $this->defaultOptions] = self::prepareRequest(null, null, $defaultOptions, $this->defaultOptions); @@ -61,8 +61,6 @@ final class NativeHttpClient implements HttpClientInterface, LoggerAwareInterfac /** * @see HttpClientInterface::OPTIONS_DEFAULTS for available options - * - * {@inheritdoc} */ public function request(string $method, string $url, array $options = []): ResponseInterface { @@ -189,7 +187,7 @@ final class NativeHttpClient implements HttpClientInterface, LoggerAwareInterfac $this->multi->dnsCache = $options['resolve'] + $this->multi->dnsCache; } - $this->logger && $this->logger->info(sprintf('Request: "%s %s"', $method, implode('', $url))); + $this->logger?->info(sprintf('Request: "%s %s"', $method, implode('', $url))); if (!isset($options['normalized_headers']['user-agent'])) { $options['headers'][] = 'User-Agent: Symfony HttpClient/Native'; @@ -248,15 +246,12 @@ final class NativeHttpClient implements HttpClientInterface, LoggerAwareInterfac $url['authority'] = substr_replace($url['authority'], $ip, -\strlen($host) - \strlen($port), \strlen($host)); } - return [self::createRedirectResolver($options, $host, $proxy, $info, $onProgress), implode('', $url)]; + return [self::createRedirectResolver($options, $host, $port, $proxy, $info, $onProgress), implode('', $url)]; }; return new NativeResponse($this->multi, $context, implode('', $url), $options, $info, $resolver, $onProgress, $this->logger); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { if ($responses instanceof NativeResponse) { @@ -342,11 +337,11 @@ final class NativeHttpClient implements HttpClientInterface, LoggerAwareInterfac /** * Handles redirects - the native logic is too buggy to be used. */ - private static function createRedirectResolver(array $options, string $host, ?array $proxy, array &$info, ?\Closure $onProgress): \Closure + private static function createRedirectResolver(array $options, string $host, string $port, ?array $proxy, array &$info, ?\Closure $onProgress): \Closure { $redirectHeaders = []; if (0 < $maxRedirects = $options['max_redirects']) { - $redirectHeaders = ['host' => $host]; + $redirectHeaders = ['host' => $host, 'port' => $port]; $redirectHeaders['with_auth'] = $redirectHeaders['no_auth'] = array_filter($options['headers'], static function ($h) { return 0 !== stripos($h, 'Host:'); }); @@ -367,7 +362,7 @@ final class NativeHttpClient implements HttpClientInterface, LoggerAwareInterfac try { $url = self::parseUrl($location); - } catch (InvalidArgumentException $e) { + } catch (InvalidArgumentException) { $info['redirect_url'] = null; return null; @@ -406,7 +401,7 @@ final class NativeHttpClient implements HttpClientInterface, LoggerAwareInterfac if (false !== (parse_url($location, \PHP_URL_HOST) ?? false)) { // Authorization and Cookie headers MUST NOT follow except for the initial host name - $requestHeaders = $redirectHeaders['host'] === $host ? $redirectHeaders['with_auth'] : $redirectHeaders['no_auth']; + $requestHeaders = $redirectHeaders['host'] === $host && $redirectHeaders['port'] === $port ? $redirectHeaders['with_auth'] : $redirectHeaders['no_auth']; $requestHeaders[] = 'Host: '.$host.$port; $dnsResolve = !self::configureHeadersAndProxy($context, $host, $requestHeaders, $proxy, 'https:' === $url['scheme']); } else { diff --git a/vendor/symfony/http-client/NoPrivateNetworkHttpClient.php b/vendor/symfony/http-client/NoPrivateNetworkHttpClient.php index d3ea5ad5e..89885abe1 100644 --- a/vendor/symfony/http-client/NoPrivateNetworkHttpClient.php +++ b/vendor/symfony/http-client/NoPrivateNetworkHttpClient.php @@ -45,7 +45,7 @@ final class NoPrivateNetworkHttpClient implements HttpClientInterface, LoggerAwa '::/128', ]; - private $client; + private HttpClientInterface $client; private string|array|null $subnets; /** @@ -62,9 +62,6 @@ final class NoPrivateNetworkHttpClient implements HttpClientInterface, LoggerAwa $this->subnets = $subnets; } - /** - * {@inheritdoc} - */ public function request(string $method, string $url, array $options = []): ResponseInterface { $onProgress = $options['on_progress'] ?? null; @@ -90,17 +87,11 @@ final class NoPrivateNetworkHttpClient implements HttpClientInterface, LoggerAwa return $this->client->request($method, $url, $options); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { return $this->client->stream($responses, $timeout); } - /** - * {@inheritdoc} - */ public function setLogger(LoggerInterface $logger): void { if ($this->client instanceof LoggerAwareInterface) { @@ -108,9 +99,6 @@ final class NoPrivateNetworkHttpClient implements HttpClientInterface, LoggerAwa } } - /** - * {@inheritdoc} - */ public function withOptions(array $options): static { $clone = clone $this; diff --git a/vendor/symfony/http-client/Psr18Client.php b/vendor/symfony/http-client/Psr18Client.php index 650c28570..699acf449 100644 --- a/vendor/symfony/http-client/Psr18Client.php +++ b/vendor/symfony/http-client/Psr18Client.php @@ -52,9 +52,9 @@ if (!interface_exists(ClientInterface::class)) { */ final class Psr18Client implements ClientInterface, RequestFactoryInterface, StreamFactoryInterface, UriFactoryInterface, ResetInterface { - private $client; - private $responseFactory; - private $streamFactory; + private HttpClientInterface $client; + private ResponseFactoryInterface $responseFactory; + private StreamFactoryInterface $streamFactory; public function __construct(HttpClientInterface $client = null, ResponseFactoryInterface $responseFactory = null, StreamFactoryInterface $streamFactory = null) { @@ -79,9 +79,14 @@ final class Psr18Client implements ClientInterface, RequestFactoryInterface, Str $this->streamFactory = $streamFactory; } - /** - * {@inheritdoc} - */ + public function withOptions(array $options): static + { + $clone = clone $this; + $clone->client = $clone->client->withOptions($options); + + return $clone; + } + public function sendRequest(RequestInterface $request): ResponseInterface { try { @@ -131,9 +136,6 @@ final class Psr18Client implements ClientInterface, RequestFactoryInterface, Str } } - /** - * {@inheritdoc} - */ public function createRequest(string $method, $uri): RequestInterface { if ($this->responseFactory instanceof RequestFactoryInterface) { @@ -151,9 +153,6 @@ final class Psr18Client implements ClientInterface, RequestFactoryInterface, Str throw new \LogicException(sprintf('You cannot use "%s()" as the "nyholm/psr7" package is not installed. Try running "composer require nyholm/psr7".', __METHOD__)); } - /** - * {@inheritdoc} - */ public function createStream(string $content = ''): StreamInterface { $stream = $this->streamFactory->createStream($content); @@ -165,25 +164,16 @@ final class Psr18Client implements ClientInterface, RequestFactoryInterface, Str return $stream; } - /** - * {@inheritdoc} - */ public function createStreamFromFile(string $filename, string $mode = 'r'): StreamInterface { return $this->streamFactory->createStreamFromFile($filename, $mode); } - /** - * {@inheritdoc} - */ public function createStreamFromResource($resource): StreamInterface { return $this->streamFactory->createStreamFromResource($resource); } - /** - * {@inheritdoc} - */ public function createUri(string $uri = ''): UriInterface { if ($this->responseFactory instanceof UriFactoryInterface) { @@ -214,7 +204,7 @@ final class Psr18Client implements ClientInterface, RequestFactoryInterface, Str */ class Psr18NetworkException extends \RuntimeException implements NetworkExceptionInterface { - private $request; + private RequestInterface $request; public function __construct(TransportExceptionInterface $e, RequestInterface $request) { @@ -233,7 +223,7 @@ class Psr18NetworkException extends \RuntimeException implements NetworkExceptio */ class Psr18RequestException extends \InvalidArgumentException implements RequestExceptionInterface { - private $request; + private RequestInterface $request; public function __construct(TransportExceptionInterface $e, RequestInterface $request) { diff --git a/vendor/symfony/http-client/README.md b/vendor/symfony/http-client/README.md index 0c55ccc11..214489b7e 100644 --- a/vendor/symfony/http-client/README.md +++ b/vendor/symfony/http-client/README.md @@ -3,16 +3,6 @@ HttpClient component The HttpClient component provides powerful methods to fetch HTTP resources synchronously or asynchronously. -Sponsor -------- - -The Httpclient component for Symfony 5.4/6.0 is [backed][1] by [Klaxoon][2]. - -Klaxoon is a platform that empowers organizations to run effective and -productive workshops easily in a hybrid environment. Anytime, Anywhere. - -Help Symfony by [sponsoring][3] its development! - Resources --------- @@ -21,7 +11,3 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) - -[1]: https://symfony.com/backers -[2]: https://klaxoon.com -[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/http-client/Response/AmpResponse.php b/vendor/symfony/http-client/Response/AmpResponse.php index cea7102ea..9aad82641 100644 --- a/vendor/symfony/http-client/Response/AmpResponse.php +++ b/vendor/symfony/http-client/Response/AmpResponse.php @@ -45,9 +45,8 @@ final class AmpResponse implements ResponseInterface, StreamableInterface private static string $nextId = 'a'; - private $multi; + private AmpClientState $multi; private ?array $options; - private $canceller; private \Closure $onProgress; private static ?string $delay = null; @@ -73,13 +72,14 @@ final class AmpResponse implements ResponseInterface, StreamableInterface $info = &$this->info; $headers = &$this->headers; - $canceller = $this->canceller = new CancellationTokenSource(); + $canceller = new CancellationTokenSource(); $handle = &$this->handle; $info['url'] = (string) $request->getUri(); $info['http_method'] = $request->getMethod(); $info['start_time'] = null; $info['redirect_url'] = null; + $info['original_url'] = $info['url']; $info['redirect_time'] = 0.0; $info['redirect_count'] = 0; $info['size_upload'] = 0.0; @@ -136,9 +136,6 @@ final class AmpResponse implements ResponseInterface, StreamableInterface }); } - /** - * {@inheritdoc} - */ public function getInfo(string $type = null): mixed { return null !== $type ? $this->info[$type] ?? null : $this->info; @@ -167,9 +164,6 @@ final class AmpResponse implements ResponseInterface, StreamableInterface } } - /** - * {@inheritdoc} - */ private static function schedule(self $response, array &$runningResponses): void { if (isset($runningResponses[0])) { @@ -185,8 +179,6 @@ final class AmpResponse implements ResponseInterface, StreamableInterface } /** - * {@inheritdoc} - * * @param AmpClientState $multi */ private static function perform(ClientState $multi, array &$responses = null): void @@ -207,8 +199,6 @@ final class AmpResponse implements ResponseInterface, StreamableInterface } /** - * {@inheritdoc} - * * @param AmpClientState $multi */ private static function select(ClientState $multi, float $timeout): int @@ -216,7 +206,7 @@ final class AmpResponse implements ResponseInterface, StreamableInterface $timeout += microtime(true); self::$delay = Loop::defer(static function () use ($timeout) { if (0 < $timeout -= microtime(true)) { - self::$delay = Loop::delay(ceil(1000 * $timeout), [Loop::class, 'stop']); + self::$delay = Loop::delay(ceil(1000 * $timeout), Loop::stop(...)); } else { Loop::stop(); } @@ -227,7 +217,7 @@ final class AmpResponse implements ResponseInterface, StreamableInterface return null === self::$delay ? 1 : 0; } - private static function generateResponse(Request $request, AmpClientState $multi, string $id, array &$info, array &$headers, CancellationTokenSource $canceller, array &$options, \Closure $onProgress, &$handle, ?LoggerInterface $logger, Promise &$pause) + private static function generateResponse(Request $request, AmpClientState $multi, string $id, array &$info, array &$headers, CancellationTokenSource $canceller, array &$options, \Closure $onProgress, &$handle, ?LoggerInterface $logger, Promise &$pause): \Generator { $request->setInformationalResponseHandler(static function (Response $response) use ($multi, $id, &$info, &$headers) { self::addResponseHeaders($response, $info, $headers); @@ -238,7 +228,7 @@ final class AmpResponse implements ResponseInterface, StreamableInterface try { /* @var Response $response */ if (null === $response = yield from self::getPushedResponse($request, $multi, $info, $headers, $options, $logger)) { - $logger && $logger->info(sprintf('Request: "%s %s"', $info['http_method'], $info['url'])); + $logger?->info(sprintf('Request: "%s %s"', $info['http_method'], $info['url'])); $response = yield from self::followRedirects($request, $multi, $info, $headers, $canceller, $options, $onProgress, $handle, $logger, $pause); } @@ -286,7 +276,7 @@ final class AmpResponse implements ResponseInterface, StreamableInterface self::stopLoop(); } - private static function followRedirects(Request $originRequest, AmpClientState $multi, array &$info, array &$headers, CancellationTokenSource $canceller, array $options, \Closure $onProgress, &$handle, ?LoggerInterface $logger, Promise &$pause) + private static function followRedirects(Request $originRequest, AmpClientState $multi, array &$info, array &$headers, CancellationTokenSource $canceller, array $options, \Closure $onProgress, &$handle, ?LoggerInterface $logger, Promise &$pause): \Generator { yield $pause; @@ -310,11 +300,11 @@ final class AmpResponse implements ResponseInterface, StreamableInterface }; try { - $previousUrl = $previousUrl ?? $urlResolver::parseUrl($info['url']); + $previousUrl ??= $urlResolver::parseUrl($info['url']); $location = $urlResolver::parseUrl($location); $location = $urlResolver::resolveUrl($location, $previousUrl); $info['redirect_url'] = implode('', $location); - } catch (InvalidArgumentException $e) { + } catch (InvalidArgumentException) { return $response; } @@ -322,13 +312,13 @@ final class AmpResponse implements ResponseInterface, StreamableInterface return $response; } - $logger && $logger->info(sprintf('Redirecting: "%s %s"', $status, $info['url'])); + $logger?->info(sprintf('Redirecting: "%s %s"', $status, $info['url'])); try { // Discard body of redirects while (null !== yield $response->getBody()->read()) { } - } catch (HttpException|StreamException $e) { + } catch (HttpException|StreamException) { // Ignore streaming errors on previous responses } @@ -358,7 +348,7 @@ final class AmpResponse implements ResponseInterface, StreamableInterface } foreach ($originRequest->getRawHeaders() as [$name, $value]) { - $request->setHeader($name, $value); + $request->addHeader($name, $value); } if ($request->getUri()->getAuthority() !== $originRequest->getUri()->getAuthority()) { @@ -400,7 +390,7 @@ final class AmpResponse implements ResponseInterface, StreamableInterface /** * Accepts pushed responses only if their headers related to authentication match the request. */ - private static function getPushedResponse(Request $request, AmpClientState $multi, array &$info, array &$headers, array $options, ?LoggerInterface $logger) + private static function getPushedResponse(Request $request, AmpClientState $multi, array &$info, array &$headers, array $options, ?LoggerInterface $logger): \Generator { if ('' !== $options['body']) { return null; @@ -430,14 +420,14 @@ final class AmpResponse implements ResponseInterface, StreamableInterface foreach ($response->getHeaderArray('vary') as $vary) { foreach (preg_split('/\s*+,\s*+/', $vary) as $v) { if ('*' === $v || ($pushedRequest->getHeaderArray($v) !== $request->getHeaderArray($v) && 'accept-encoding' !== strtolower($v))) { - $logger && $logger->debug(sprintf('Skipping pushed response: "%s"', $info['url'])); + $logger?->debug(sprintf('Skipping pushed response: "%s"', $info['url'])); continue 3; } } } $pushDeferred->resolve(); - $logger && $logger->debug(sprintf('Accepting pushed response: "%s %s"', $info['http_method'], $info['url'])); + $logger?->debug(sprintf('Accepting pushed response: "%s %s"', $info['http_method'], $info['url'])); self::addResponseHeaders($response, $info, $headers); unset($multi->pushedResponses[$authority][$i]); @@ -456,6 +446,6 @@ final class AmpResponse implements ResponseInterface, StreamableInterface self::$delay = null; } - Loop::defer([Loop::class, 'stop']); + Loop::defer(Loop::stop(...)); } } diff --git a/vendor/symfony/http-client/Response/AsyncContext.php b/vendor/symfony/http-client/Response/AsyncContext.php index 7fd815d52..55903463a 100644 --- a/vendor/symfony/http-client/Response/AsyncContext.php +++ b/vendor/symfony/http-client/Response/AsyncContext.php @@ -26,8 +26,8 @@ use Symfony\Contracts\HttpClient\ResponseInterface; final class AsyncContext { private $passthru; - private $client; - private $response; + private HttpClientInterface $client; + private ResponseInterface $response; private array $info = []; private $content; private int $offset; diff --git a/vendor/symfony/http-client/Response/AsyncResponse.php b/vendor/symfony/http-client/Response/AsyncResponse.php index 14c080e9f..8236623b2 100644 --- a/vendor/symfony/http-client/Response/AsyncResponse.php +++ b/vendor/symfony/http-client/Response/AsyncResponse.php @@ -34,8 +34,8 @@ final class AsyncResponse implements ResponseInterface, StreamableInterface private const FIRST_CHUNK_YIELDED = 1; private const LAST_CHUNK_YIELDED = 2; - private $client; - private $response; + private ?HttpClientInterface $client; + private ResponseInterface $response; private array $info = ['canceled' => false]; private $passthru; private $stream; @@ -123,9 +123,6 @@ final class AsyncResponse implements ResponseInterface, StreamableInterface return $this->info + $this->response->getInfo(); } - /** - * {@inheritdoc} - */ public function toStream(bool $throw = true) { if ($throw) { @@ -146,9 +143,6 @@ final class AsyncResponse implements ResponseInterface, StreamableInterface return $stream; } - /** - * {@inheritdoc} - */ public function cancel(): void { if ($this->info['canceled']) { @@ -171,7 +165,7 @@ final class AsyncResponse implements ResponseInterface, StreamableInterface } $this->passthru = null; - } catch (ExceptionInterface $e) { + } catch (ExceptionInterface) { // ignore any errors when canceling } } @@ -196,7 +190,7 @@ final class AsyncResponse implements ResponseInterface, StreamableInterface foreach (self::passthru($this->client, $this, new LastChunk()) as $chunk) { // no-op } - } catch (ExceptionInterface $e) { + } catch (ExceptionInterface) { // ignore any errors when destructing } } diff --git a/vendor/symfony/http-client/Response/CommonResponseTrait.php b/vendor/symfony/http-client/Response/CommonResponseTrait.php index 448b85424..06f6b7d88 100644 --- a/vendor/symfony/http-client/Response/CommonResponseTrait.php +++ b/vendor/symfony/http-client/Response/CommonResponseTrait.php @@ -35,9 +35,6 @@ trait CommonResponseTrait private int $offset = 0; private ?array $jsonData = null; - /** - * {@inheritdoc} - */ public function getContent(bool $throw = true): string { if ($this->initializer) { @@ -75,9 +72,6 @@ trait CommonResponseTrait return stream_get_contents($this->content); } - /** - * {@inheritdoc} - */ public function toArray(bool $throw = true): array { if ('' === $content = $this->getContent($throw)) { @@ -106,9 +100,6 @@ trait CommonResponseTrait return $content; } - /** - * {@inheritdoc} - */ public function toStream(bool $throw = true) { if ($throw) { diff --git a/vendor/symfony/http-client/Response/CurlResponse.php b/vendor/symfony/http-client/Response/CurlResponse.php index ae18d5840..9c151546a 100644 --- a/vendor/symfony/http-client/Response/CurlResponse.php +++ b/vendor/symfony/http-client/Response/CurlResponse.php @@ -32,8 +32,7 @@ final class CurlResponse implements ResponseInterface, StreamableInterface } use TransportResponseTrait; - private static bool $performing = false; - private $multi; + private CurlClientState $multi; /** * @var resource @@ -43,7 +42,7 @@ final class CurlResponse implements ResponseInterface, StreamableInterface /** * @internal */ - public function __construct(CurlClientState $multi, \CurlHandle|string $ch, array $options = null, LoggerInterface $logger = null, string $method = 'GET', callable $resolveRedirect = null, int $curlVersion = null) + public function __construct(CurlClientState $multi, \CurlHandle|string $ch, array $options = null, LoggerInterface $logger = null, string $method = 'GET', callable $resolveRedirect = null, int $curlVersion = null, string $originalUrl = null) { $this->multi = $multi; @@ -68,7 +67,8 @@ final class CurlResponse implements ResponseInterface, StreamableInterface $this->info['http_method'] = $method; $this->info['user_data'] = $options['user_data'] ?? null; $this->info['max_duration'] = $options['max_duration'] ?? null; - $this->info['start_time'] = $this->info['start_time'] ?? microtime(true); + $this->info['start_time'] ??= microtime(true); + $this->info['original_url'] = $originalUrl ?? $this->info['url'] ?? curl_getinfo($ch, \CURLINFO_EFFECTIVE_URL); $info = &$this->info; $headers = &$this->headers; $debugBuffer = $this->debugBuffer; @@ -79,17 +79,7 @@ final class CurlResponse implements ResponseInterface, StreamableInterface } curl_setopt($ch, \CURLOPT_HEADERFUNCTION, static function ($ch, string $data) use (&$info, &$headers, $options, $multi, $id, &$location, $resolveRedirect, $logger): int { - if (0 !== substr_compare($data, "\r\n", -2)) { - return 0; - } - - $len = 0; - - foreach (explode("\r\n", substr($data, 0, -2)) as $data) { - $len += 2 + self::parseHeaderLine($ch, $data, $info, $headers, $options, $multi, $id, $location, $resolveRedirect, $logger); - } - - return $len; + return self::parseHeaderLine($ch, $data, $info, $headers, $options, $multi, $id, $location, $resolveRedirect, $logger); }); if (null === $options) { @@ -181,7 +171,7 @@ final class CurlResponse implements ResponseInterface, StreamableInterface unset($multi->pauseExpiries[$id], $multi->openHandles[$id], $multi->handlesActivity[$id]); curl_setopt($ch, \CURLOPT_PRIVATE, '_0'); - if (self::$performing) { + if ($multi->performing) { return; } @@ -203,9 +193,6 @@ final class CurlResponse implements ResponseInterface, StreamableInterface }); } - /** - * {@inheritdoc} - */ public function getInfo(string $type = null): mixed { if (!$info = $this->finalInfo) { @@ -234,18 +221,15 @@ final class CurlResponse implements ResponseInterface, StreamableInterface return null !== $type ? $info[$type] ?? null : $info; } - /** - * {@inheritdoc} - */ public function getContent(bool $throw = true): string { - $performing = self::$performing; - self::$performing = $performing || '_0' === curl_getinfo($this->handle, \CURLINFO_PRIVATE); + $performing = $this->multi->performing; + $this->multi->performing = $performing || '_0' === curl_getinfo($this->handle, \CURLINFO_PRIVATE); try { return $this->doGetContent($throw); } finally { - self::$performing = $performing; + $this->multi->performing = $performing; } } @@ -264,9 +248,6 @@ final class CurlResponse implements ResponseInterface, StreamableInterface } } - /** - * {@inheritdoc} - */ private static function schedule(self $response, array &$runningResponses): void { if (isset($runningResponses[$i = (int) $response->multi->handle])) { @@ -283,13 +264,11 @@ final class CurlResponse implements ResponseInterface, StreamableInterface } /** - * {@inheritdoc} - * * @param CurlClientState $multi */ private static function perform(ClientState $multi, array &$responses = null): void { - if (self::$performing) { + if ($multi->performing) { if ($responses) { $response = current($responses); $multi->handlesActivity[(int) $response->handle][] = null; @@ -300,7 +279,7 @@ final class CurlResponse implements ResponseInterface, StreamableInterface } try { - self::$performing = true; + $multi->performing = true; ++$multi->execCounter; $active = 0; while (\CURLM_CALL_MULTI_PERFORM === ($err = curl_multi_exec($multi->handle, $active))) { @@ -337,13 +316,11 @@ final class CurlResponse implements ResponseInterface, StreamableInterface $multi->handlesActivity[$id][] = \in_array($result, [\CURLE_OK, \CURLE_TOO_MANY_REDIRECTS], true) || '_0' === $waitFor || curl_getinfo($ch, \CURLINFO_SIZE_DOWNLOAD) === curl_getinfo($ch, \CURLINFO_CONTENT_LENGTH_DOWNLOAD) ? null : new TransportException(ucfirst(curl_error($ch) ?: curl_strerror($result)).sprintf(' for "%s".', curl_getinfo($ch, \CURLINFO_EFFECTIVE_URL))); } } finally { - self::$performing = false; + $multi->performing = false; } } /** - * {@inheritdoc} - * * @param CurlClientState $multi */ private static function select(ClientState $multi, float $timeout): int @@ -379,19 +356,29 @@ final class CurlResponse implements ResponseInterface, StreamableInterface */ private static function parseHeaderLine($ch, string $data, array &$info, array &$headers, ?array $options, CurlClientState $multi, int $id, ?string &$location, ?callable $resolveRedirect, ?LoggerInterface $logger): int { + if (!str_ends_with($data, "\r\n")) { + return 0; + } + $waitFor = @curl_getinfo($ch, \CURLINFO_PRIVATE) ?: '_0'; if ('H' !== $waitFor[0]) { return \strlen($data); // Ignore HTTP trailers } - if ('' !== $data) { + $statusCode = curl_getinfo($ch, \CURLINFO_RESPONSE_CODE); + + if ($statusCode !== $info['http_code'] && !preg_match("#^HTTP/\d+(?:\.\d+)? {$statusCode}(?: |\r\n$)#", $data)) { + return \strlen($data); // Ignore headers from responses to CONNECT requests + } + + if ("\r\n" !== $data) { // Regular header line: add it to the list - self::addResponseHeaders([$data], $info, $headers); + self::addResponseHeaders([substr($data, 0, -2)], $info, $headers); if (!str_starts_with($data, 'HTTP/')) { if (0 === stripos($data, 'Location:')) { - $location = trim(substr($data, 9)); + $location = trim(substr($data, 9, -2)); } return \strlen($data); @@ -414,7 +401,7 @@ final class CurlResponse implements ResponseInterface, StreamableInterface // End of headers: handle informational responses, redirects, etc. - if (200 > $statusCode = curl_getinfo($ch, \CURLINFO_RESPONSE_CODE)) { + if (200 > $statusCode) { $multi->handlesActivity[$id][] = new InformationalChunk($statusCode, $headers); $location = null; diff --git a/vendor/symfony/http-client/Response/HttplugPromise.php b/vendor/symfony/http-client/Response/HttplugPromise.php index 09ed10df3..deaea720d 100644 --- a/vendor/symfony/http-client/Response/HttplugPromise.php +++ b/vendor/symfony/http-client/Response/HttplugPromise.php @@ -23,7 +23,7 @@ use Psr\Http\Message\ResponseInterface as Psr7ResponseInterface; */ final class HttplugPromise implements HttplugPromiseInterface { - private $promise; + private GuzzlePromiseInterface $promise; public function __construct(GuzzlePromiseInterface $promise) { @@ -43,17 +43,12 @@ final class HttplugPromise implements HttplugPromiseInterface $this->promise->cancel(); } - /** - * {@inheritdoc} - */ public function getState(): string { return $this->promise->getState(); } /** - * {@inheritdoc} - * * @return Psr7ResponseInterface|mixed */ public function wait($unwrap = true): mixed diff --git a/vendor/symfony/http-client/Response/MockResponse.php b/vendor/symfony/http-client/Response/MockResponse.php index 496b7bee5..24089013f 100644 --- a/vendor/symfony/http-client/Response/MockResponse.php +++ b/vendor/symfony/http-client/Response/MockResponse.php @@ -39,9 +39,9 @@ class MockResponse implements ResponseInterface, StreamableInterface private static int $idSequence = 0; /** - * @param string|string[]|iterable $body The response body as a string or an iterable of strings, - * yielding an empty string simulates an idle timeout, - * throwing an exception yields an ErrorChunk + * @param string|iterable $body The response body as a string or an iterable of strings, + * yielding an empty string simulates an idle timeout, + * throwing or yielding an exception yields an ErrorChunk * * @see ResponseInterface::getInfo() for possible info, e.g. "response_headers" */ @@ -90,17 +90,11 @@ class MockResponse implements ResponseInterface, StreamableInterface return $this->requestMethod; } - /** - * {@inheritdoc} - */ public function getInfo(string $type = null): mixed { return null !== $type ? $this->info[$type] ?? null : $this->info; } - /** - * {@inheritdoc} - */ public function cancel(): void { $this->info['canceled'] = true; @@ -110,11 +104,12 @@ class MockResponse implements ResponseInterface, StreamableInterface } catch (TransportException $e) { // ignore errors when canceling } + + $onProgress = $this->requestOptions['on_progress'] ?? static function () {}; + $dlSize = isset($this->headers['content-encoding']) || 'HEAD' === ($this->info['http_method'] ?? null) || \in_array($this->info['http_code'], [204, 304], true) ? 0 : (int) ($this->headers['content-length'][0] ?? 0); + $onProgress($this->offset, $dlSize, $this->info); } - /** - * {@inheritdoc} - */ protected function close(): void { $this->inflate = null; @@ -142,6 +137,7 @@ class MockResponse implements ResponseInterface, StreamableInterface $response->info['user_data'] = $options['user_data'] ?? null; $response->info['max_duration'] = $options['max_duration'] ?? null; $response->info['url'] = $url; + $response->info['original_url'] = $url; if ($mock instanceof self) { $mock->requestOptions = $response->requestOptions; @@ -155,16 +151,13 @@ class MockResponse implements ResponseInterface, StreamableInterface return $response; } - /** - * {@inheritdoc} - */ protected static function schedule(self $response, array &$runningResponses): void { if (!isset($response->id)) { throw new InvalidArgumentException('MockResponse instances must be issued by MockHttpClient before processing.'); } - $multi = self::$mainMulti ?? self::$mainMulti = new ClientState(); + $multi = self::$mainMulti ??= new ClientState(); if (!isset($runningResponses[0])) { $runningResponses[0] = [$multi, []]; @@ -173,9 +166,6 @@ class MockResponse implements ResponseInterface, StreamableInterface $runningResponses[0][1][$response->id] = $response; } - /** - * {@inheritdoc} - */ protected static function perform(ClientState $multi, array &$responses): void { foreach ($responses as $response) { @@ -219,9 +209,6 @@ class MockResponse implements ResponseInterface, StreamableInterface } } - /** - * {@inheritdoc} - */ protected static function select(ClientState $multi, float $timeout): int { return 42; @@ -230,7 +217,7 @@ class MockResponse implements ResponseInterface, StreamableInterface /** * Simulates sending the request. */ - private static function writeRequest(self $response, array $options, ResponseInterface $mock) + private static function writeRequest(self $response, array $options, ResponseInterface $mock): void { $onProgress = $options['on_progress'] ?? static function () {}; $response->info += $mock->getInfo() ?: []; @@ -273,7 +260,7 @@ class MockResponse implements ResponseInterface, StreamableInterface /** * Simulates reading the response. */ - private static function readResponse(self $response, array $options, ResponseInterface $mock, int &$offset) + private static function readResponse(self $response, array $options, ResponseInterface $mock, int &$offset): void { $onProgress = $options['on_progress'] ?? static function () {}; @@ -307,6 +294,10 @@ class MockResponse implements ResponseInterface, StreamableInterface if (!\is_string($body)) { try { foreach ($body as $chunk) { + if ($chunk instanceof \Throwable) { + throw $chunk; + } + if ('' === $chunk = (string) $chunk) { // simulate an idle timeout $response->body[] = new ErrorChunk($offset, sprintf('Idle timeout reached for "%s".', $response->info['url'])); diff --git a/vendor/symfony/http-client/Response/NativeResponse.php b/vendor/symfony/http-client/Response/NativeResponse.php index 96f1256a1..a6b9dd989 100644 --- a/vendor/symfony/http-client/Response/NativeResponse.php +++ b/vendor/symfony/http-client/Response/NativeResponse.php @@ -43,7 +43,7 @@ final class NativeResponse implements ResponseInterface, StreamableInterface */ private $buffer; - private $multi; + private NativeClientState $multi; private float $pauseExpiry = 0.0; /** @@ -66,6 +66,7 @@ final class NativeResponse implements ResponseInterface, StreamableInterface // Temporary resource to dechunk the response stream $this->buffer = fopen('php://temp', 'w+'); + $info['original_url'] = implode('', $info['url']); $info['user_data'] = $options['user_data']; $info['max_duration'] = $options['max_duration']; ++$multi->responseCount; @@ -87,9 +88,6 @@ final class NativeResponse implements ResponseInterface, StreamableInterface }); } - /** - * {@inheritdoc} - */ public function getInfo(string $type = null): mixed { if (!$info = $this->finalInfo) { @@ -127,7 +125,7 @@ final class NativeResponse implements ResponseInterface, StreamableInterface throw new TransportException($msg); } - $this->logger && $this->logger->info(sprintf('%s for "%s".', $msg, $url ?? $this->url)); + $this->logger?->info(sprintf('%s for "%s".', $msg, $url ?? $this->url)); }); try { @@ -163,7 +161,7 @@ final class NativeResponse implements ResponseInterface, StreamableInterface break; } - $this->logger && $this->logger->info(sprintf('Redirecting: "%s %s"', $this->info['http_code'], $url ?? $this->url)); + $this->logger?->info(sprintf('Redirecting: "%s %s"', $this->info['http_code'], $url ?? $this->url)); } } catch (\Throwable $e) { $this->close(); @@ -208,18 +206,12 @@ final class NativeResponse implements ResponseInterface, StreamableInterface $this->multi->hosts[$host] = 1 + ($this->multi->hosts[$host] ?? 0); } - /** - * {@inheritdoc} - */ private function close(): void { $this->canary->cancel(); $this->handle = $this->buffer = $this->inflate = $this->onProgress = null; } - /** - * {@inheritdoc} - */ private static function schedule(self $response, array &$runningResponses): void { if (!isset($runningResponses[$i = $response->multi->id])) { @@ -236,8 +228,6 @@ final class NativeResponse implements ResponseInterface, StreamableInterface } /** - * {@inheritdoc} - * * @param NativeClientState $multi */ private static function perform(ClientState $multi, array &$responses = null): void @@ -347,8 +337,6 @@ final class NativeResponse implements ResponseInterface, StreamableInterface } /** - * {@inheritdoc} - * * @param NativeClientState $multi */ private static function select(ClientState $multi, float $timeout): int @@ -365,7 +353,7 @@ final class NativeResponse implements ResponseInterface, StreamableInterface continue; } - if ($pauseExpiry && ($now ?? $now = microtime(true)) < $pauseExpiry) { + if ($pauseExpiry && ($now ??= microtime(true)) < $pauseExpiry) { $timeout = min($timeout, $pauseExpiry - $now); continue; } diff --git a/vendor/symfony/http-client/Response/StreamWrapper.php b/vendor/symfony/http-client/Response/StreamWrapper.php index 3768e2e06..f891313dd 100644 --- a/vendor/symfony/http-client/Response/StreamWrapper.php +++ b/vendor/symfony/http-client/Response/StreamWrapper.php @@ -25,9 +25,9 @@ class StreamWrapper /** @var resource|null */ public $context; - private $client; + private HttpClientInterface|ResponseInterface $client; - private $response; + private ResponseInterface $response; /** @var resource|string|null */ private $content; @@ -116,7 +116,7 @@ class StreamWrapper return false; } - public function stream_read(int $count) + public function stream_read(int $count): string|false { if (\is_resource($this->content)) { // Empty the internal activity list @@ -174,9 +174,7 @@ class StreamWrapper if ('' !== $data = $chunk->getContent()) { if (\strlen($data) > $count) { - if (null === $this->content) { - $this->content = substr($data, $count); - } + $this->content ??= substr($data, $count); $data = substr($data, 0, $count); } $this->offset += \strlen($data); diff --git a/vendor/symfony/http-client/Response/TraceableResponse.php b/vendor/symfony/http-client/Response/TraceableResponse.php index f8a7ceedc..507799e14 100644 --- a/vendor/symfony/http-client/Response/TraceableResponse.php +++ b/vendor/symfony/http-client/Response/TraceableResponse.php @@ -31,10 +31,10 @@ use Symfony\Contracts\HttpClient\ResponseInterface; */ class TraceableResponse implements ResponseInterface, StreamableInterface { - private $client; - private $response; + private HttpClientInterface $client; + private ResponseInterface $response; private mixed $content; - private $event; + private ?StopwatchEvent $event; public function __construct(HttpClientInterface $client, ResponseInterface $response, &$content, StopwatchEvent $event = null) { @@ -59,7 +59,7 @@ class TraceableResponse implements ResponseInterface, StreamableInterface try { $this->response->__destruct(); } finally { - if ($this->event && $this->event->isStarted()) { + if ($this->event?->isStarted()) { $this->event->stop(); } } @@ -70,7 +70,7 @@ class TraceableResponse implements ResponseInterface, StreamableInterface try { return $this->response->getStatusCode(); } finally { - if ($this->event && $this->event->isStarted()) { + if ($this->event?->isStarted()) { $this->event->lap(); } } @@ -81,7 +81,7 @@ class TraceableResponse implements ResponseInterface, StreamableInterface try { return $this->response->getHeaders($throw); } finally { - if ($this->event && $this->event->isStarted()) { + if ($this->event?->isStarted()) { $this->event->lap(); } } @@ -96,7 +96,7 @@ class TraceableResponse implements ResponseInterface, StreamableInterface return $this->content = $this->response->getContent(false); } finally { - if ($this->event && $this->event->isStarted()) { + if ($this->event?->isStarted()) { $this->event->stop(); } if ($throw) { @@ -114,7 +114,7 @@ class TraceableResponse implements ResponseInterface, StreamableInterface return $this->content = $this->response->toArray(false); } finally { - if ($this->event && $this->event->isStarted()) { + if ($this->event?->isStarted()) { $this->event->stop(); } if ($throw) { @@ -127,7 +127,7 @@ class TraceableResponse implements ResponseInterface, StreamableInterface { $this->response->cancel(); - if ($this->event && $this->event->isStarted()) { + if ($this->event?->isStarted()) { $this->event->stop(); } } @@ -202,7 +202,7 @@ class TraceableResponse implements ResponseInterface, StreamableInterface } } - private function checkStatusCode(int $code) + private function checkStatusCode(int $code): void { if (500 <= $code) { throw new ServerException($this); diff --git a/vendor/symfony/http-client/Response/TransportResponseTrait.php b/vendor/symfony/http-client/Response/TransportResponseTrait.php index 802ba83f2..ac53b99a6 100644 --- a/vendor/symfony/http-client/Response/TransportResponseTrait.php +++ b/vendor/symfony/http-client/Response/TransportResponseTrait.php @@ -11,11 +11,13 @@ namespace Symfony\Component\HttpClient\Response; +use Psr\Log\LoggerInterface; use Symfony\Component\HttpClient\Chunk\DataChunk; use Symfony\Component\HttpClient\Chunk\ErrorChunk; use Symfony\Component\HttpClient\Chunk\FirstChunk; use Symfony\Component\HttpClient\Chunk\LastChunk; use Symfony\Component\HttpClient\Exception\TransportException; +use Symfony\Component\HttpClient\Internal\Canary; use Symfony\Component\HttpClient\Internal\ClientState; /** @@ -27,7 +29,7 @@ use Symfony\Component\HttpClient\Internal\ClientState; */ trait TransportResponseTrait { - private $canary; + private Canary $canary; private array $headers = []; private array $info = [ 'response_headers' => [], @@ -40,13 +42,10 @@ trait TransportResponseTrait private $handle; private int|string $id; private ?float $timeout = 0; - private $inflate = null; + private \InflateContext|bool|null $inflate = null; private ?array $finalInfo = null; - private $logger = null; + private ?LoggerInterface $logger = null; - /** - * {@inheritdoc} - */ public function getStatusCode(): int { if ($this->initializer) { @@ -56,9 +55,6 @@ trait TransportResponseTrait return $this->info['http_code']; } - /** - * {@inheritdoc} - */ public function getHeaders(bool $throw = true): array { if ($this->initializer) { @@ -72,9 +68,6 @@ trait TransportResponseTrait return $this->headers; } - /** - * {@inheritdoc} - */ public function cancel(): void { $this->info['canceled'] = true; @@ -129,7 +122,7 @@ trait TransportResponseTrait /** * Ensures the request is always sent and that the response code was checked. */ - private function doDestruct() + private function doDestruct(): void { $this->shouldBuffer = true; @@ -189,7 +182,7 @@ trait TransportResponseTrait continue; } elseif ($elapsedTimeout >= $timeoutMax) { $multi->handlesActivity[$j] = [new ErrorChunk($response->offset, sprintf('Idle timeout reached for "%s".', $response->getInfo('url')))]; - $multi->lastTimeout ?? $multi->lastTimeout = $lastActivity; + $multi->lastTimeout ??= $lastActivity; } else { continue; } diff --git a/vendor/symfony/http-client/Retry/GenericRetryStrategy.php b/vendor/symfony/http-client/Retry/GenericRetryStrategy.php index 9d1473c34..edbf2c066 100644 --- a/vendor/symfony/http-client/Retry/GenericRetryStrategy.php +++ b/vendor/symfony/http-client/Retry/GenericRetryStrategy.php @@ -102,7 +102,7 @@ class GenericRetryStrategy implements RetryStrategyInterface $delay = $this->delayMs * $this->multiplier ** $context->getInfo('retry_count'); if ($this->jitter > 0) { - $randomness = $delay * $this->jitter; + $randomness = (int) ($delay * $this->jitter); $delay = $delay + random_int(-$randomness, +$randomness); } diff --git a/vendor/symfony/http-client/RetryableHttpClient.php b/vendor/symfony/http-client/RetryableHttpClient.php index 71d0a8cf5..d0c13165b 100644 --- a/vendor/symfony/http-client/RetryableHttpClient.php +++ b/vendor/symfony/http-client/RetryableHttpClient.php @@ -32,9 +32,9 @@ class RetryableHttpClient implements HttpClientInterface, ResetInterface { use AsyncDecoratorTrait; - private $strategy; + private RetryStrategyInterface $strategy; private int $maxRetries; - private $logger; + private LoggerInterface $logger; /** * @param int $maxRetries The maximum number of times to retry diff --git a/vendor/symfony/http-client/ScopingHttpClient.php b/vendor/symfony/http-client/ScopingHttpClient.php index 74bb82045..da8ef4c98 100644 --- a/vendor/symfony/http-client/ScopingHttpClient.php +++ b/vendor/symfony/http-client/ScopingHttpClient.php @@ -28,7 +28,7 @@ class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAw { use HttpClientTrait; - private $client; + private HttpClientInterface $client; private array $defaultOptionsByRegexp; private ?string $defaultRegexp; @@ -45,18 +45,13 @@ class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAw public static function forBaseUri(HttpClientInterface $client, string $baseUri, array $defaultOptions = [], string $regexp = null): self { - if (null === $regexp) { - $regexp = preg_quote(implode('', self::resolveUrl(self::parseUrl('.'), self::parseUrl($baseUri)))); - } + $regexp ??= preg_quote(implode('', self::resolveUrl(self::parseUrl('.'), self::parseUrl($baseUri)))); $defaultOptions['base_uri'] = $baseUri; return new self($client, [$regexp => $defaultOptions], $regexp); } - /** - * {@inheritdoc} - */ public function request(string $method, string $url, array $options = []): ResponseInterface { $e = null; @@ -93,9 +88,6 @@ class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAw return $this->client->request($method, $url, $options); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { return $this->client->stream($responses, $timeout); @@ -108,9 +100,6 @@ class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAw } } - /** - * {@inheritdoc} - */ public function setLogger(LoggerInterface $logger): void { if ($this->client instanceof LoggerAwareInterface) { @@ -118,9 +107,6 @@ class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAw } } - /** - * {@inheritdoc} - */ public function withOptions(array $options): static { $clone = clone $this; diff --git a/vendor/symfony/http-client/TraceableHttpClient.php b/vendor/symfony/http-client/TraceableHttpClient.php index bca2859d4..b9df9732a 100644 --- a/vendor/symfony/http-client/TraceableHttpClient.php +++ b/vendor/symfony/http-client/TraceableHttpClient.php @@ -26,8 +26,8 @@ use Symfony\Contracts\Service\ResetInterface; */ final class TraceableHttpClient implements HttpClientInterface, ResetInterface, LoggerAwareInterface { - private $client; - private $stopwatch; + private HttpClientInterface $client; + private ?Stopwatch $stopwatch; private \ArrayObject $tracedRequests; public function __construct(HttpClientInterface $client, Stopwatch $stopwatch = null) @@ -37,9 +37,6 @@ final class TraceableHttpClient implements HttpClientInterface, ResetInterface, $this->tracedRequests = new \ArrayObject(); } - /** - * {@inheritdoc} - */ public function request(string $method, string $url, array $options = []): ResponseInterface { $content = null; @@ -66,12 +63,9 @@ final class TraceableHttpClient implements HttpClientInterface, ResetInterface, } }; - return new TraceableResponse($this->client, $this->client->request($method, $url, $options), $content, null === $this->stopwatch ? null : $this->stopwatch->start("$method $url", 'http_client')); + return new TraceableResponse($this->client, $this->client->request($method, $url, $options), $content, $this->stopwatch?->start("$method $url", 'http_client')); } - /** - * {@inheritdoc} - */ public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface { if ($responses instanceof TraceableResponse) { @@ -95,9 +89,6 @@ final class TraceableHttpClient implements HttpClientInterface, ResetInterface, $this->tracedRequests->exchangeArray([]); } - /** - * {@inheritdoc} - */ public function setLogger(LoggerInterface $logger): void { if ($this->client instanceof LoggerAwareInterface) { @@ -105,9 +96,6 @@ final class TraceableHttpClient implements HttpClientInterface, ResetInterface, } } - /** - * {@inheritdoc} - */ public function withOptions(array $options): static { $clone = clone $this; diff --git a/vendor/symfony/http-client/composer.json b/vendor/symfony/http-client/composer.json index 02a7653b5..34a1714bf 100644 --- a/vendor/symfony/http-client/composer.json +++ b/vendor/symfony/http-client/composer.json @@ -2,6 +2,7 @@ "name": "symfony/http-client", "type": "library", "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "keywords": ["http"], "homepage": "https://symfony.com", "license": "MIT", "authors": [ @@ -21,8 +22,9 @@ "symfony/http-client-implementation": "3.0" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/http-client-contracts": "^3", "symfony/service-contracts": "^1.0|^2|^3" }, @@ -34,6 +36,7 @@ "guzzlehttp/promises": "^1.4", "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", + "php-http/message-factory": "^1.0", "psr/http-client": "^1.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/http-kernel": "^5.4|^6.0", diff --git a/vendor/symfony/http-foundation/BinaryFileResponse.php b/vendor/symfony/http-foundation/BinaryFileResponse.php index 8990c9111..08bd03bf6 100644 --- a/vendor/symfony/http-foundation/BinaryFileResponse.php +++ b/vendor/symfony/http-foundation/BinaryFileResponse.php @@ -224,7 +224,7 @@ class BinaryFileResponse extends Response $parts = HeaderUtils::split($request->headers->get('X-Accel-Mapping', ''), ',='); foreach ($parts as $part) { [$pathPrefix, $location] = $part; - if (substr($path, 0, \strlen($pathPrefix)) === $pathPrefix) { + if (str_starts_with($path, $pathPrefix)) { $path = $location.substr($path, \strlen($pathPrefix)); // Only set X-Accel-Redirect header if a valid URI can be produced // as nginx does not serve arbitrary file paths. diff --git a/vendor/symfony/http-foundation/CHANGELOG.md b/vendor/symfony/http-foundation/CHANGELOG.md index b528419d3..fdbd39cea 100644 --- a/vendor/symfony/http-foundation/CHANGELOG.md +++ b/vendor/symfony/http-foundation/CHANGELOG.md @@ -1,6 +1,12 @@ CHANGELOG ========= +6.1 +--- + + * Add stale while revalidate and stale if error cache header + * Allow dynamic session "ttl" when using a remote storage + 6.0 --- diff --git a/vendor/symfony/http-foundation/Cookie.php b/vendor/symfony/http-foundation/Cookie.php index fb2853046..b6166d70e 100644 --- a/vendor/symfony/http-foundation/Cookie.php +++ b/vendor/symfony/http-foundation/Cookie.php @@ -87,7 +87,7 @@ class Cookie * * @throws \InvalidArgumentException */ - public function __construct(string $name, string $value = null, int|string|\DateTimeInterface $expire = 0, ?string $path = '/', string $domain = null, bool $secure = null, bool $httpOnly = true, bool $raw = false, ?string $sameSite = 'lax') + public function __construct(string $name, string $value = null, int|string|\DateTimeInterface $expire = 0, ?string $path = '/', string $domain = null, bool $secure = null, bool $httpOnly = true, bool $raw = false, ?string $sameSite = self::SAMESITE_LAX) { // from PHP source code if ($raw && false !== strpbrk($name, self::RESERVED_CHARS_LIST)) { @@ -244,12 +244,12 @@ class Cookie $str .= '='; if ('' === (string) $this->getValue()) { - $str .= 'deleted; expires='.gmdate('D, d-M-Y H:i:s T', time() - 31536001).'; Max-Age=0'; + $str .= 'deleted; expires='.gmdate('D, d M Y H:i:s T', time() - 31536001).'; Max-Age=0'; } else { $str .= $this->isRaw() ? $this->getValue() : rawurlencode($this->getValue()); if (0 !== $this->getExpiresTime()) { - $str .= '; expires='.gmdate('D, d-M-Y H:i:s T', $this->getExpiresTime()).'; Max-Age='.$this->getMaxAge(); + $str .= '; expires='.gmdate('D, d M Y H:i:s T', $this->getExpiresTime()).'; Max-Age='.$this->getMaxAge(); } } diff --git a/vendor/symfony/http-foundation/ExpressionRequestMatcher.php b/vendor/symfony/http-foundation/ExpressionRequestMatcher.php index 9dbf2f743..f2a07307d 100644 --- a/vendor/symfony/http-foundation/ExpressionRequestMatcher.php +++ b/vendor/symfony/http-foundation/ExpressionRequestMatcher.php @@ -21,8 +21,8 @@ use Symfony\Component\ExpressionLanguage\ExpressionLanguage; */ class ExpressionRequestMatcher extends RequestMatcher { - private $language; - private $expression; + private ExpressionLanguage $language; + private Expression|string $expression; public function setExpression(ExpressionLanguage $language, Expression|string $expression) { diff --git a/vendor/symfony/http-foundation/IpUtils.php b/vendor/symfony/http-foundation/IpUtils.php index 51c698e4e..8f78d1b1d 100644 --- a/vendor/symfony/http-foundation/IpUtils.php +++ b/vendor/symfony/http-foundation/IpUtils.php @@ -168,7 +168,7 @@ class IpUtils public static function anonymize(string $ip): string { $wrappedIPv6 = false; - if ('[' === substr($ip, 0, 1) && ']' === substr($ip, -1, 1)) { + if (str_starts_with($ip, '[') && str_ends_with($ip, ']')) { $wrappedIPv6 = true; $ip = substr($ip, 1, -1); } diff --git a/vendor/symfony/http-foundation/README.md b/vendor/symfony/http-foundation/README.md index 424f2c4f0..5cf900744 100644 --- a/vendor/symfony/http-foundation/README.md +++ b/vendor/symfony/http-foundation/README.md @@ -4,16 +4,6 @@ HttpFoundation Component The HttpFoundation component defines an object-oriented layer for the HTTP specification. -Sponsor -------- - -The HttpFoundation component for Symfony 5.4/6.0 is [backed][1] by [Laravel][2]. - -Laravel is a PHP web development framework that is passionate about maximum developer -happiness. Laravel is built using a variety of bespoke and Symfony based components. - -Help Symfony by [sponsoring][3] its development! - Resources --------- @@ -22,7 +12,3 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) - -[1]: https://symfony.com/backers -[2]: https://laravel.com/ -[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/http-foundation/Request.php b/vendor/symfony/http-foundation/Request.php index a20e9af15..b39b9c062 100644 --- a/vendor/symfony/http-foundation/Request.php +++ b/vendor/symfony/http-foundation/Request.php @@ -690,6 +690,8 @@ class Request /** * Gets the Session. + * + * @throws SessionNotFoundException When session is not set properly */ public function getSession(): SessionInterface { @@ -1874,7 +1876,7 @@ class Request if (class_exists(\Locale::class, false)) { \Locale::setDefault($locale); } - } catch (\Exception $e) { + } catch (\Exception) { } } diff --git a/vendor/symfony/http-foundation/Response.php b/vendor/symfony/http-foundation/Response.php index c48efdfb7..80fedc19b 100644 --- a/vendor/symfony/http-foundation/Response.php +++ b/vendor/symfony/http-foundation/Response.php @@ -98,6 +98,8 @@ class Response 'proxy_revalidate' => false, 'max_age' => true, 's_maxage' => true, + 'stale_if_error' => true, // RFC5861 + 'stale_while_revalidate' => true, // RFC5861 'immutable' => false, 'last_modified' => true, 'etag' => true, @@ -699,7 +701,7 @@ class Response { try { return $this->headers->getDate('Expires'); - } catch (\RuntimeException $e) { + } catch (\RuntimeException) { // according to RFC 2616 invalid date formats (e.g. "0" and "-1") must be treated as in the past return \DateTime::createFromFormat('U', time() - 172800); } @@ -774,6 +776,38 @@ class Response return $this; } + /** + * Sets the number of seconds after which the response should no longer be returned by shared caches when backend is down. + * + * This method sets the Cache-Control stale-if-error directive. + * + * @return $this + * + * @final + */ + public function setStaleIfError(int $value): static + { + $this->headers->addCacheControlDirective('stale-if-error', $value); + + return $this; + } + + /** + * Sets the number of seconds after which the response should no longer return stale content by shared caches. + * + * This method sets the Cache-Control stale-while-revalidate directive. + * + * @return $this + * + * @final + */ + public function setStaleWhileRevalidate(int $value): static + { + $this->headers->addCacheControlDirective('stale-while-revalidate', $value); + + return $this; + } + /** * Sets the number of seconds after which the response should no longer be considered fresh by shared caches. * @@ -947,6 +981,14 @@ class Response $this->setSharedMaxAge($options['s_maxage']); } + if (isset($options['stale_while_revalidate'])) { + $this->setStaleWhileRevalidate($options['stale_while_revalidate']); + } + + if (isset($options['stale_if_error'])) { + $this->setStaleIfError($options['stale_if_error']); + } + foreach (self::HTTP_RESPONSE_CACHE_CONTROL_DIRECTIVES as $directive => $hasValue) { if (!$hasValue && isset($options[$directive])) { if ($options[$directive]) { diff --git a/vendor/symfony/http-foundation/Session/Session.php b/vendor/symfony/http-foundation/Session/Session.php index 3254f1885..4e17e7efc 100644 --- a/vendor/symfony/http-foundation/Session/Session.php +++ b/vendor/symfony/http-foundation/Session/Session.php @@ -43,13 +43,13 @@ class Session implements SessionInterface, \IteratorAggregate, \Countable public function __construct(SessionStorageInterface $storage = null, AttributeBagInterface $attributes = null, FlashBagInterface $flashes = null, callable $usageReporter = null) { $this->storage = $storage ?? new NativeSessionStorage(); - $this->usageReporter = $usageReporter instanceof \Closure || !\is_callable($usageReporter) ? $usageReporter : \Closure::fromCallable($usageReporter); + $this->usageReporter = null === $usageReporter ? null : $usageReporter(...); - $attributes = $attributes ?? new AttributeBag(); + $attributes ??= new AttributeBag(); $this->attributeName = $attributes->getName(); $this->registerBag($attributes); - $flashes = $flashes ?? new FlashBag(); + $flashes ??= new FlashBag(); $this->flashName = $flashes->getName(); $this->registerBag($flashes); } diff --git a/vendor/symfony/http-foundation/Session/SessionBagProxy.php b/vendor/symfony/http-foundation/Session/SessionBagProxy.php index 1d405e3c7..76dfed724 100644 --- a/vendor/symfony/http-foundation/Session/SessionBagProxy.php +++ b/vendor/symfony/http-foundation/Session/SessionBagProxy.php @@ -18,7 +18,7 @@ namespace Symfony\Component\HttpFoundation\Session; */ final class SessionBagProxy implements SessionBagInterface { - private $bag; + private SessionBagInterface $bag; private array $data; private ?int $usageIndex; private ?\Closure $usageReporter; @@ -28,7 +28,7 @@ final class SessionBagProxy implements SessionBagInterface $this->bag = $bag; $this->data = &$data; $this->usageIndex = &$usageIndex; - $this->usageReporter = $usageReporter instanceof \Closure || !\is_callable($usageReporter) ? $usageReporter : \Closure::fromCallable($usageReporter); + $this->usageReporter = null === $usageReporter ? null : $usageReporter(...); } public function getBag(): SessionBagInterface diff --git a/vendor/symfony/http-foundation/Session/SessionFactory.php b/vendor/symfony/http-foundation/Session/SessionFactory.php index ffbd82cc4..cdb6af51e 100644 --- a/vendor/symfony/http-foundation/Session/SessionFactory.php +++ b/vendor/symfony/http-foundation/Session/SessionFactory.php @@ -22,15 +22,15 @@ class_exists(Session::class); */ class SessionFactory implements SessionFactoryInterface { - private $requestStack; - private $storageFactory; + private RequestStack $requestStack; + private SessionStorageFactoryInterface $storageFactory; private ?\Closure $usageReporter; public function __construct(RequestStack $requestStack, SessionStorageFactoryInterface $storageFactory, callable $usageReporter = null) { $this->requestStack = $requestStack; $this->storageFactory = $storageFactory; - $this->usageReporter = $usageReporter instanceof \Closure || !\is_callable($usageReporter) ? $usageReporter : \Closure::fromCallable($usageReporter); + $this->usageReporter = null === $usageReporter ? null : $usageReporter(...); } public function createSession(): SessionInterface diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/MarshallingSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/MarshallingSessionHandler.php index 377d1e090..9962fef3d 100644 --- a/vendor/symfony/http-foundation/Session/Storage/Handler/MarshallingSessionHandler.php +++ b/vendor/symfony/http-foundation/Session/Storage/Handler/MarshallingSessionHandler.php @@ -18,8 +18,8 @@ use Symfony\Component\Cache\Marshaller\MarshallerInterface; */ class MarshallingSessionHandler implements \SessionHandlerInterface, \SessionUpdateTimestampHandlerInterface { - private $handler; - private $marshaller; + private AbstractSessionHandler $handler; + private MarshallerInterface $marshaller; public function __construct(AbstractSessionHandler $handler, MarshallerInterface $marshaller) { diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php index b61a6d0e9..04c1afdd3 100644 --- a/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php +++ b/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php @@ -21,12 +21,12 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler; */ class MemcachedSessionHandler extends AbstractSessionHandler { - private $memcached; + private \Memcached $memcached; /** * Time to live in seconds. */ - private ?int $ttl; + private int|\Closure|null $ttl; /** * Key prefix for shared environments. @@ -84,7 +84,7 @@ class MemcachedSessionHandler extends AbstractSessionHandler private function getCompatibleTtl(): int { - $ttl = (int) ($this->ttl ?? \ini_get('session.gc_maxlifetime')); + $ttl = ($this->ttl instanceof \Closure ? ($this->ttl)() : $this->ttl) ?? \ini_get('session.gc_maxlifetime'); // If the relative TTL that is used exceeds 30 days, memcached will treat the value as Unix time. // We have to convert it to an absolute Unix time at this point, to make sure the TTL is correct. diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php index f4886dd9c..c95537777 100644 --- a/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php +++ b/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php @@ -26,9 +26,10 @@ use MongoDB\Collection; */ class MongoDbSessionHandler extends AbstractSessionHandler { - private $mongo; - private $collection; + private Client $mongo; + private Collection $collection; private array $options; + private int|\Closure|null $ttl; /** * Constructor. @@ -39,7 +40,8 @@ class MongoDbSessionHandler extends AbstractSessionHandler * * id_field: The field name for storing the session id [default: _id] * * data_field: The field name for storing the session data [default: data] * * time_field: The field name for storing the timestamp [default: time] - * * expiry_field: The field name for storing the expiry-timestamp [default: expires_at]. + * * expiry_field: The field name for storing the expiry-timestamp [default: expires_at] + * * ttl: The time to live in seconds. * * It is strongly recommended to put an index on the `expiry_field` for * garbage-collection. Alternatively it's possible to automatically expire @@ -74,6 +76,7 @@ class MongoDbSessionHandler extends AbstractSessionHandler 'time_field' => 'time', 'expiry_field' => 'expires_at', ], $options); + $this->ttl = $this->options['ttl'] ?? null; } public function close(): bool @@ -105,7 +108,8 @@ class MongoDbSessionHandler extends AbstractSessionHandler */ protected function doWrite(string $sessionId, string $data): bool { - $expiry = new UTCDateTime((time() + (int) \ini_get('session.gc_maxlifetime')) * 1000); + $ttl = ($this->ttl instanceof \Closure ? ($this->ttl)() : $this->ttl) ?? \ini_get('session.gc_maxlifetime'); + $expiry = new UTCDateTime((time() + (int) $ttl) * 1000); $fields = [ $this->options['time_field'] => new UTCDateTime(), @@ -124,7 +128,8 @@ class MongoDbSessionHandler extends AbstractSessionHandler public function updateTimestamp(string $sessionId, string $data): bool { - $expiry = new UTCDateTime((time() + (int) \ini_get('session.gc_maxlifetime')) * 1000); + $ttl = ($this->ttl instanceof \Closure ? ($this->ttl)() : $this->ttl) ?? \ini_get('session.gc_maxlifetime'); + $expiry = new UTCDateTime((time() + (int) $ttl) * 1000); $this->getCollection()->updateOne( [$this->options['id_field'] => $sessionId], diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php index 40ac49d91..dd80145aa 100644 --- a/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php +++ b/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php @@ -65,7 +65,7 @@ class PdoSessionHandler extends AbstractSessionHandler */ public const LOCK_TRANSACTIONAL = 2; - private $pdo; + private \PDO $pdo; /** * DSN string or null for session.save_path or false when lazy connection disabled. @@ -79,6 +79,11 @@ class PdoSessionHandler extends AbstractSessionHandler private string $lifetimeCol = 'sess_lifetime'; private string $timeCol = 'sess_time'; + /** + * Time to live in seconds. + */ + private int|\Closure|null $ttl; + /** * Username when lazy-connect. */ @@ -137,6 +142,7 @@ class PdoSessionHandler extends AbstractSessionHandler * * db_password: The password when lazy-connect [default: ''] * * db_connection_options: An array of driver-specific connection options [default: []] * * lock_mode: The strategy for locking, see constants [default: LOCK_TRANSACTIONAL] + * * ttl: The time to live in seconds. * * @param \PDO|string|null $pdoOrDsn A \PDO instance or DSN string or URL string or null * @@ -166,6 +172,7 @@ class PdoSessionHandler extends AbstractSessionHandler $this->password = $options['db_password'] ?? $this->password; $this->connectionOptions = $options['db_connection_options'] ?? $this->connectionOptions; $this->lockMode = $options['lock_mode'] ?? $this->lockMode; + $this->ttl = $options['ttl'] ?? null; } /** @@ -184,30 +191,19 @@ class PdoSessionHandler extends AbstractSessionHandler // connect if we are not yet $this->getConnection(); - switch ($this->driver) { - case 'mysql': - // We use varbinary for the ID column because it prevents unwanted conversions: - // - character set conversions between server and client - // - trailing space removal - // - case-insensitivity - // - language processing like é == e - $sql = "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB"; - break; - case 'sqlite': - $sql = "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)"; - break; - case 'pgsql': - $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR(128) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)"; - break; - case 'oci': - $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR2(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)"; - break; - case 'sqlsrv': - $sql = "CREATE TABLE $this->table ($this->idCol VARCHAR(128) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)"; - break; - default: - throw new \DomainException(sprintf('Creating the session table is currently not implemented for PDO driver "%s".', $this->driver)); - } + $sql = match ($this->driver) { + // We use varbinary for the ID column because it prevents unwanted conversions: + // - character set conversions between server and client + // - trailing space removal + // - case-insensitivity + // - language processing like é == e + 'mysql' => "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB", + 'sqlite' => "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)", + 'pgsql' => "CREATE TABLE $this->table ($this->idCol VARCHAR(128) NOT NULL PRIMARY KEY, $this->dataCol BYTEA NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)", + 'oci' => "CREATE TABLE $this->table ($this->idCol VARCHAR2(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)", + 'sqlsrv' => "CREATE TABLE $this->table ($this->idCol VARCHAR(128) NOT NULL PRIMARY KEY, $this->dataCol VARBINARY(MAX) NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)", + default => throw new \DomainException(sprintf('Creating the session table is currently not implemented for PDO driver "%s".', $this->driver)), + }; try { $this->pdo->exec($sql); @@ -286,7 +282,7 @@ class PdoSessionHandler extends AbstractSessionHandler */ protected function doWrite(string $sessionId, string $data): bool { - $maxlifetime = (int) \ini_get('session.gc_maxlifetime'); + $maxlifetime = (int) (($this->ttl instanceof \Closure ? ($this->ttl)() : $this->ttl) ?? \ini_get('session.gc_maxlifetime')); try { // We use a single MERGE SQL query when supported by the database. @@ -329,7 +325,7 @@ class PdoSessionHandler extends AbstractSessionHandler public function updateTimestamp(string $sessionId, string $data): bool { - $expiry = time() + (int) \ini_get('session.gc_maxlifetime'); + $expiry = time() + (int) (($this->ttl instanceof \Closure ? ($this->ttl)() : $this->ttl) ?? \ini_get('session.gc_maxlifetime')); try { $updateStmt = $this->pdo->prepare( @@ -454,7 +450,7 @@ class PdoSessionHandler extends AbstractSessionHandler // If "unix_socket" is not in the query, we continue with the same process as pgsql // no break case 'pgsql': - $dsn ?? $dsn = 'pgsql:'; + $dsn ??= 'pgsql:'; if (isset($params['host']) && '' !== $params['host']) { $dsn .= 'host='.$params['host'].';'; diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php index f9f3ce6ed..d4dc1b91a 100644 --- a/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php +++ b/vendor/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php @@ -23,7 +23,7 @@ use Symfony\Component\Cache\Traits\RedisProxy; */ class RedisSessionHandler extends AbstractSessionHandler { - private $redis; + private \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface|RedisProxy|RedisClusterProxy $redis; /** * Key prefix for shared environments. @@ -33,7 +33,7 @@ class RedisSessionHandler extends AbstractSessionHandler /** * Time to live in seconds. */ - private ?int $ttl; + private int|\Closure|null $ttl; /** * List of available options: @@ -66,7 +66,8 @@ class RedisSessionHandler extends AbstractSessionHandler */ protected function doWrite(string $sessionId, string $data): bool { - $result = $this->redis->setEx($this->prefix.$sessionId, (int) ($this->ttl ?? \ini_get('session.gc_maxlifetime')), $data); + $ttl = ($this->ttl instanceof \Closure ? ($this->ttl)() : $this->ttl) ?? \ini_get('session.gc_maxlifetime'); + $result = $this->redis->setEx($this->prefix.$sessionId, (int) $ttl, $data); return $result && !$result instanceof ErrorInterface; } @@ -81,7 +82,7 @@ class RedisSessionHandler extends AbstractSessionHandler if ($unlink) { try { $unlink = false !== $this->redis->unlink($this->prefix.$sessionId); - } catch (\Throwable $e) { + } catch (\Throwable) { $unlink = false; } } @@ -109,6 +110,8 @@ class RedisSessionHandler extends AbstractSessionHandler public function updateTimestamp(string $sessionId, string $data): bool { - return $this->redis->expire($this->prefix.$sessionId, (int) ($this->ttl ?? \ini_get('session.gc_maxlifetime'))); + $ttl = ($this->ttl instanceof \Closure ? ($this->ttl)() : $this->ttl) ?? \ini_get('session.gc_maxlifetime'); + + return $this->redis->expire($this->prefix.$sessionId, (int) $ttl); } } diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php b/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php index 19ff94c81..9ad2a1090 100644 --- a/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php +++ b/vendor/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php @@ -21,11 +21,16 @@ use Symfony\Component\Cache\Traits\RedisProxy; */ class SessionHandlerFactory { - public static function createHandler(object|string $connection): AbstractSessionHandler + public static function createHandler(object|string $connection, array $options = []): AbstractSessionHandler { - if ($options = \is_string($connection) ? parse_url($connection) : false) { - parse_str($options['query'] ?? '', $options); + if ($query = \is_string($connection) ? parse_url($connection) : false) { + parse_str($query['query'] ?? '', $query); + + if (($options['ttl'] ?? null) instanceof \Closure) { + $query['ttl'] = $options['ttl']; + } } + $options = ($query ?: []) + $options; switch (true) { case $connection instanceof \Redis: @@ -58,7 +63,7 @@ class SessionHandlerFactory $handlerClass = str_starts_with($connection, 'memcached:') ? MemcachedSessionHandler::class : RedisSessionHandler::class; $connection = AbstractAdapter::createConnection($connection, ['lazy' => true]); - return new $handlerClass($connection, array_intersect_key($options ?: [], ['prefix' => 1, 'ttl' => 1])); + return new $handlerClass($connection, array_intersect_key($options, ['prefix' => 1, 'ttl' => 1])); case str_starts_with($connection, 'pdo_oci://'): if (!class_exists(DriverManager::class)) { @@ -76,7 +81,7 @@ class SessionHandlerFactory case str_starts_with($connection, 'sqlsrv://'): case str_starts_with($connection, 'sqlite://'): case str_starts_with($connection, 'sqlite3://'): - return new PdoSessionHandler($connection, $options ?: []); + return new PdoSessionHandler($connection, $options); } throw new \InvalidArgumentException(sprintf('Unsupported Connection: "%s".', $connection)); diff --git a/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php b/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php index c354d12ae..8ecf943dc 100644 --- a/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php +++ b/vendor/symfony/http-foundation/Session/Storage/MockFileSessionStorageFactory.php @@ -23,7 +23,7 @@ class MockFileSessionStorageFactory implements SessionStorageFactoryInterface { private ?string $savePath; private string $name; - private $metaBag; + private ?MetadataBag $metaBag; /** * @see MockFileSessionStorage constructor. diff --git a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php index ea6c7de1e..08901284c 100644 --- a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php +++ b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorageFactory.php @@ -23,8 +23,8 @@ class_exists(NativeSessionStorage::class); class NativeSessionStorageFactory implements SessionStorageFactoryInterface { private array $options; - private $handler; - private $metaBag; + private AbstractProxy|\SessionHandlerInterface|null $handler; + private ?MetadataBag $metaBag; private bool $secure; /** @@ -41,7 +41,7 @@ class NativeSessionStorageFactory implements SessionStorageFactoryInterface public function createStorage(?Request $request): SessionStorageInterface { $storage = new NativeSessionStorage($this->options, $this->handler, $this->metaBag); - if ($this->secure && $request && $request->isSecure()) { + if ($this->secure && $request?->isSecure()) { $storage->setOptions(['cookie_secure' => true]); } diff --git a/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php b/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php index cce1ec6c3..5cc738024 100644 --- a/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php +++ b/vendor/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorageFactory.php @@ -22,8 +22,8 @@ class_exists(PhpBridgeSessionStorage::class); */ class PhpBridgeSessionStorageFactory implements SessionStorageFactoryInterface { - private $handler; - private $metaBag; + private AbstractProxy|\SessionHandlerInterface|null $handler; + private ?MetadataBag $metaBag; private bool $secure; public function __construct(AbstractProxy|\SessionHandlerInterface $handler = null, MetadataBag $metaBag = null, bool $secure = false) @@ -36,7 +36,7 @@ class PhpBridgeSessionStorageFactory implements SessionStorageFactoryInterface public function createStorage(?Request $request): SessionStorageInterface { $storage = new PhpBridgeSessionStorage($this->handler, $this->metaBag); - if ($this->secure && $request && $request->isSecure()) { + if ($this->secure && $request?->isSecure()) { $storage->setOptions(['cookie_secure' => true]); } diff --git a/vendor/symfony/http-foundation/Test/Constraint/ResponseFormatSame.php b/vendor/symfony/http-foundation/Test/Constraint/ResponseFormatSame.php index cb9699c32..765849960 100644 --- a/vendor/symfony/http-foundation/Test/Constraint/ResponseFormatSame.php +++ b/vendor/symfony/http-foundation/Test/Constraint/ResponseFormatSame.php @@ -22,7 +22,7 @@ use Symfony\Component\HttpFoundation\Response; */ final class ResponseFormatSame extends Constraint { - private $request; + private Request $request; private ?string $format; public function __construct(Request $request, ?string $format) diff --git a/vendor/symfony/http-foundation/UrlHelper.php b/vendor/symfony/http-foundation/UrlHelper.php index c15f101cd..42fcf0459 100644 --- a/vendor/symfony/http-foundation/UrlHelper.php +++ b/vendor/symfony/http-foundation/UrlHelper.php @@ -20,8 +20,8 @@ use Symfony\Component\Routing\RequestContext; */ final class UrlHelper { - private $requestStack; - private $requestContext; + private RequestStack $requestStack; + private ?RequestContext $requestContext; public function __construct(RequestStack $requestStack, RequestContext $requestContext = null) { @@ -31,7 +31,7 @@ final class UrlHelper public function getAbsoluteUrl(string $path): string { - if (str_contains($path, '://') || '//' === substr($path, 0, 2)) { + if (str_contains($path, '://') || str_starts_with($path, '//')) { return $path; } @@ -60,7 +60,7 @@ final class UrlHelper public function getRelativePath(string $path): string { - if (str_contains($path, '://') || '//' === substr($path, 0, 2)) { + if (str_contains($path, '://') || str_starts_with($path, '//')) { return $path; } diff --git a/vendor/symfony/http-foundation/composer.json b/vendor/symfony/http-foundation/composer.json index 42405d957..1b232eb54 100644 --- a/vendor/symfony/http-foundation/composer.json +++ b/vendor/symfony/http-foundation/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": ">=8.0.2", + "php": ">=8.1", "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1" }, diff --git a/vendor/symfony/mime/Address.php b/vendor/symfony/mime/Address.php index c3b7e16ed..ce57f77ee 100644 --- a/vendor/symfony/mime/Address.php +++ b/vendor/symfony/mime/Address.php @@ -42,7 +42,7 @@ final class Address public function __construct(string $address, string $name = '') { if (!class_exists(EmailValidator::class)) { - throw new LogicException(sprintf('The "%s" class cannot be used as it needs "%s"; try running "composer require egulias/email-validator".', __CLASS__, EmailValidator::class)); + throw new LogicException(sprintf('The "%s" class cannot be used as it needs "%s". Try running "composer require egulias/email-validator".', __CLASS__, EmailValidator::class)); } self::$validator ??= new EmailValidator(); @@ -92,7 +92,7 @@ final class Address return $address; } - if (false === strpos($address, '<')) { + if (!str_contains($address, '<')) { return new self($address); } diff --git a/vendor/symfony/mime/CHANGELOG.md b/vendor/symfony/mime/CHANGELOG.md index b076e4e86..41eb14a4e 100644 --- a/vendor/symfony/mime/CHANGELOG.md +++ b/vendor/symfony/mime/CHANGELOG.md @@ -1,6 +1,24 @@ CHANGELOG ========= +6.3 +--- + + * Support detection of related parts if `Content-Id` is used instead of the name + * Add `TextPart::getDisposition()` + +6.2 +--- + + * Add `File` + * Deprecate `Email::attachPart()`, use `addPart()` instead + * Deprecate calling `Message::setBody()` without arguments + +6.1 +--- + + * Add `DataPart::getFilename()` and `DataPart::getContentType()` + 6.0 --- diff --git a/vendor/symfony/mime/CharacterStream.php b/vendor/symfony/mime/CharacterStream.php index 2433c4489..21d7bc5f0 100644 --- a/vendor/symfony/mime/CharacterStream.php +++ b/vendor/symfony/mime/CharacterStream.php @@ -72,29 +72,22 @@ final class CharacterStream $this->fixedWidth = 0; $this->map = ['p' => [], 'i' => []]; } else { - switch ($charset) { + $this->fixedWidth = match ($charset) { // 16 bits - case 'ucs2': - case 'ucs-2': - case 'utf16': - case 'utf-16': - $this->fixedWidth = 2; - break; - - // 32 bits - case 'ucs4': - case 'ucs-4': - case 'utf32': - case 'utf-32': - $this->fixedWidth = 4; - break; - - // 7-8 bit charsets: (us-)?ascii, (iso|iec)-?8859-?[0-9]+, windows-?125[0-9], cp-?[0-9]+, ansi, macintosh, + 'ucs2', + 'ucs-2', + 'utf16', + 'utf-16' => 2, + // 32 bits + 'ucs4', + 'ucs-4', + 'utf32', + 'utf-32' => 4, + // 7-8 bit charsets: (us-)?ascii, (iso|iec)-?8859-?[0-9]+, windows-?125[0-9], cp-?[0-9]+, ansi, macintosh, // koi-?7, koi-?8-?.+, mik, (cork|t1), v?iscii - // and fallback - default: - $this->fixedWidth = 1; - } + // and fallback + default => 1, + }; } if (\is_resource($input)) { $blocks = 16372; diff --git a/vendor/symfony/mime/Crypto/DkimSigner.php b/vendor/symfony/mime/Crypto/DkimSigner.php index ce07747df..1d2005e5c 100644 --- a/vendor/symfony/mime/Crypto/DkimSigner.php +++ b/vendor/symfony/mime/Crypto/DkimSigner.php @@ -30,7 +30,7 @@ final class DkimSigner public const ALGO_SHA256 = 'rsa-sha256'; public const ALGO_ED25519 = 'ed25519-sha256'; // RFC 8463 - private $key; + private \OpenSSLAsymmetricKey $key; private string $domainName; private string $selector; private array $defaultOptions; diff --git a/vendor/symfony/mime/Crypto/SMimeEncrypter.php b/vendor/symfony/mime/Crypto/SMimeEncrypter.php index 0ccf2cd5e..7d5dfecd2 100644 --- a/vendor/symfony/mime/Crypto/SMimeEncrypter.php +++ b/vendor/symfony/mime/Crypto/SMimeEncrypter.php @@ -33,7 +33,7 @@ final class SMimeEncrypter extends SMime } if (\is_array($certificate)) { - $this->certs = array_map([$this, 'normalizeFilePath'], $certificate); + $this->certs = array_map($this->normalizeFilePath(...), $certificate); } else { $this->certs = $this->normalizeFilePath($certificate); } diff --git a/vendor/symfony/mime/DependencyInjection/AddMimeTypeGuesserPass.php b/vendor/symfony/mime/DependencyInjection/AddMimeTypeGuesserPass.php index 5b2e66b5c..70fa78633 100644 --- a/vendor/symfony/mime/DependencyInjection/AddMimeTypeGuesserPass.php +++ b/vendor/symfony/mime/DependencyInjection/AddMimeTypeGuesserPass.php @@ -23,7 +23,7 @@ use Symfony\Component\DependencyInjection\Reference; class AddMimeTypeGuesserPass implements CompilerPassInterface { /** - * {@inheritdoc} + * @return void */ public function process(ContainerBuilder $container) { diff --git a/vendor/symfony/mime/DraftEmail.php b/vendor/symfony/mime/DraftEmail.php new file mode 100644 index 000000000..a60fea173 --- /dev/null +++ b/vendor/symfony/mime/DraftEmail.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Mime; + +use Symfony\Component\Mime\Header\Headers; +use Symfony\Component\Mime\Part\AbstractPart; + +/** + * @author Kevin Bond + */ +class DraftEmail extends Email +{ + public function __construct(Headers $headers = null, AbstractPart $body = null) + { + parent::__construct($headers, $body); + + $this->getHeaders()->addTextHeader('X-Unsent', '1'); + } + + /** + * Override default behavior as draft emails do not require From/Sender/Date/Message-ID headers. + * These are added by the client that actually sends the email. + */ + public function getPreparedHeaders(): Headers + { + $headers = clone $this->getHeaders(); + + if (!$headers->has('MIME-Version')) { + $headers->addTextHeader('MIME-Version', '1.0'); + } + + $headers->remove('Bcc'); + + return $headers; + } +} diff --git a/vendor/symfony/mime/Email.php b/vendor/symfony/mime/Email.php index cfbfa8e9d..7f3496d1f 100644 --- a/vendor/symfony/mime/Email.php +++ b/vendor/symfony/mime/Email.php @@ -14,6 +14,7 @@ namespace Symfony\Component\Mime; use Symfony\Component\Mime\Exception\LogicException; use Symfony\Component\Mime\Part\AbstractPart; use Symfony\Component\Mime\Part\DataPart; +use Symfony\Component\Mime\Part\File; use Symfony\Component\Mime\Part\Multipart\AlternativePart; use Symfony\Component\Mime\Part\Multipart\MixedPart; use Symfony\Component\Mime\Part\Multipart\RelatedPart; @@ -326,14 +327,7 @@ class Email extends Message */ public function attach($body, string $name = null, string $contentType = null): static { - if (!\is_string($body) && !\is_resource($body)) { - throw new \TypeError(sprintf('The body must be a string or a resource (got "%s").', get_debug_type($body))); - } - - $this->cachedBody = null; - $this->attachments[] = ['body' => $body, 'name' => $name, 'content-type' => $contentType, 'inline' => false]; - - return $this; + return $this->addPart(new DataPart($body, $name, $contentType)); } /** @@ -341,10 +335,7 @@ class Email extends Message */ public function attachFromPath(string $path, string $name = null, string $contentType = null): static { - $this->cachedBody = null; - $this->attachments[] = ['path' => $path, 'name' => $name, 'content-type' => $contentType, 'inline' => false]; - - return $this; + return $this->addPart(new DataPart(new File($path), $name, $contentType)); } /** @@ -354,14 +345,7 @@ class Email extends Message */ public function embed($body, string $name = null, string $contentType = null): static { - if (!\is_string($body) && !\is_resource($body)) { - throw new \TypeError(sprintf('The body must be a string or a resource (got "%s").', get_debug_type($body))); - } - - $this->cachedBody = null; - $this->attachments[] = ['body' => $body, 'name' => $name, 'content-type' => $contentType, 'inline' => true]; - - return $this; + return $this->addPart((new DataPart($body, $name, $contentType))->asInline()); } /** @@ -369,34 +353,38 @@ class Email extends Message */ public function embedFromPath(string $path, string $name = null, string $contentType = null): static { - $this->cachedBody = null; - $this->attachments[] = ['path' => $path, 'name' => $name, 'content-type' => $contentType, 'inline' => true]; + return $this->addPart((new DataPart(new File($path), $name, $contentType))->asInline()); + } - return $this; + /** + * @return $this + * + * @deprecated since Symfony 6.2, use addPart() instead + */ + public function attachPart(DataPart $part): static + { + @trigger_deprecation('symfony/mime', '6.2', 'The "%s()" method is deprecated, use "addPart()" instead.', __METHOD__); + + return $this->addPart($part); } /** * @return $this */ - public function attachPart(DataPart $part): static + public function addPart(DataPart $part): static { $this->cachedBody = null; - $this->attachments[] = ['part' => $part]; + $this->attachments[] = $part; return $this; } /** - * @return array|DataPart[] + * @return DataPart[] */ public function getAttachments(): array { - $parts = []; - foreach ($this->attachments as $attachment) { - $parts[] = $this->createDataPart($attachment); - } - - return $parts; + return $this->attachments; } public function getBody(): AbstractPart @@ -408,13 +396,25 @@ class Email extends Message return $this->generateBody(); } + /** + * @return void + */ public function ensureValidity() + { + $this->ensureBodyValid(); + + if ('1' === $this->getHeaders()->getHeaderBody('X-Unsent')) { + throw new LogicException('Cannot send messages marked as "draft".'); + } + + parent::ensureValidity(); + } + + private function ensureBodyValid(): void { if (null === $this->text && null === $this->html && !$this->attachments) { throw new LogicException('A message must have a text or an HTML part or attachments.'); } - - parent::ensureValidity(); } /** @@ -443,7 +443,7 @@ class Email extends Message return $this->cachedBody; } - $this->ensureValidity(); + $this->ensureBodyValid(); [$htmlPart, $otherParts, $relatedParts] = $this->prepareParts(); @@ -479,43 +479,39 @@ class Email extends Message if (null !== $html) { $htmlPart = new TextPart($html, $this->htmlCharset, 'html'); $html = $htmlPart->getBody(); - preg_match_all('(]*src\s*=\s*(?:([\'"])cid:(.+?)\\1|cid:([^>\s]+)))i', $html, $names); - $names = array_filter(array_unique(array_merge($names[2], $names[3]))); + + $regexes = [ + ']*src\s*=\s*(?:([\'"])cid:(.+?)\\1|cid:([^>\s]+))', + '<\w+\s+[^>]*background\s*=\s*(?:([\'"])cid:(.+?)\\1|cid:([^>\s]+))', + ]; + $tmpMatches = []; + foreach ($regexes as $regex) { + preg_match_all('/'.$regex.'/i', $html, $tmpMatches); + $names = array_merge($names, $tmpMatches[2], $tmpMatches[3]); + } + $names = array_filter(array_unique($names)); } - // usage of reflection is a temporary workaround for missing getters that will be added in 6.2 - $nameRef = new \ReflectionProperty(TextPart::class, 'name'); - $nameRef->setAccessible(true); $otherParts = $relatedParts = []; - foreach ($this->attachments as $attachment) { - $part = $this->createDataPart($attachment); - if (isset($attachment['part'])) { - $attachment['name'] = $nameRef->getValue($part); - } - - $related = false; + foreach ($this->attachments as $part) { foreach ($names as $name) { - if ($name !== $attachment['name']) { + if ($name !== $part->getName() && (!$part->hasContentId() || $name !== $part->getContentId())) { continue; } if (isset($relatedParts[$name])) { continue 2; } - $part->setDisposition('inline'); - $html = str_replace('cid:'.$name, 'cid:'.$part->getContentId(), $html, $count); - if ($count) { - $related = true; + + if ($name !== $part->getContentId()) { + $html = str_replace('cid:'.$name, 'cid:'.$part->getContentId(), $html, $count); } - $part->setName($part->getContentId()); + $relatedParts[$name] = $part; + $part->setName($part->getContentId())->asInline(); - break; + continue 2; } - if ($related) { - $relatedParts[$attachment['name']] = $part; - } else { - $otherParts[] = $part; - } + $otherParts[] = $part; } if (null !== $htmlPart) { $htmlPart = new TextPart($html, $this->htmlCharset, 'html'); @@ -524,24 +520,6 @@ class Email extends Message return [$htmlPart, $otherParts, array_values($relatedParts)]; } - private function createDataPart(array $attachment): DataPart - { - if (isset($attachment['part'])) { - return $attachment['part']; - } - - if (isset($attachment['body'])) { - $part = new DataPart($attachment['body'], $attachment['name'] ?? null, $attachment['content-type'] ?? null); - } else { - $part = DataPart::fromPath($attachment['path'] ?? '', $attachment['name'] ?? null, $attachment['content-type'] ?? null); - } - if ($attachment['inline']) { - $part->asInline(); - } - - return $part; - } - /** * @return $this */ @@ -552,7 +530,10 @@ class Email extends Message return $this; } - private function addListAddressHeaderBody(string $name, array $addresses) + /** + * @return $this + */ + private function addListAddressHeaderBody(string $name, array $addresses): static { if (!$header = $this->getHeaders()->get($name)) { return $this->setListAddressHeaderBody($name, $addresses); @@ -591,12 +572,6 @@ class Email extends Message $this->html = (new TextPart($this->html))->getBody(); } - foreach ($this->attachments as $i => $attachment) { - if (isset($attachment['body']) && \is_resource($attachment['body'])) { - $this->attachments[$i]['body'] = (new TextPart($attachment['body']))->getBody(); - } - } - return [$this->text, $this->textCharset, $this->html, $this->htmlCharset, $this->attachments, parent::__serialize()]; } diff --git a/vendor/symfony/mime/Encoder/QpContentEncoder.php b/vendor/symfony/mime/Encoder/QpContentEncoder.php index 4703cc2e6..6f420fff3 100644 --- a/vendor/symfony/mime/Encoder/QpContentEncoder.php +++ b/vendor/symfony/mime/Encoder/QpContentEncoder.php @@ -46,15 +46,10 @@ final class QpContentEncoder implements ContentEncoderInterface // transform =0D=0A to CRLF $string = str_replace(["\t=0D=0A", ' =0D=0A', '=0D=0A'], ["=09\r\n", "=20\r\n", "\r\n"], $string); - switch (\ord(substr($string, -1))) { - case 0x09: - $string = substr_replace($string, '=09', -1); - break; - case 0x20: - $string = substr_replace($string, '=20', -1); - break; - } - - return $string; + return match (\ord(substr($string, -1))) { + 0x09 => substr_replace($string, '=09', -1), + 0x20 => substr_replace($string, '=20', -1), + default => $string, + }; } } diff --git a/vendor/symfony/mime/Encoder/QpEncoder.php b/vendor/symfony/mime/Encoder/QpEncoder.php index 0b4bcf538..160dde329 100644 --- a/vendor/symfony/mime/Encoder/QpEncoder.php +++ b/vendor/symfony/mime/Encoder/QpEncoder.php @@ -106,8 +106,6 @@ class QpEncoder implements EncoderInterface } /** - * {@inheritdoc} - * * Takes an unencoded string and produces a QP encoded string from it. * * QP encoded strings have a maximum line length of 76 characters. @@ -184,12 +182,11 @@ class QpEncoder implements EncoderInterface private function standardize(string $string): string { $string = str_replace(["\t=0D=0A", ' =0D=0A', '=0D=0A'], ["=09\r\n", "=20\r\n", "\r\n"], $string); - switch ($end = \ord(substr($string, -1))) { - case 0x09: - case 0x20: - $string = substr_replace($string, self::QP_MAP[$end], -1); - } - return $string; + return match ($end = \ord(substr($string, -1))) { + 0x09, + 0x20 => substr_replace($string, self::QP_MAP[$end], -1), + default => $string, + }; } } diff --git a/vendor/symfony/mime/FileBinaryMimeTypeGuesser.php b/vendor/symfony/mime/FileBinaryMimeTypeGuesser.php index 5d6bee847..83e2950ce 100644 --- a/vendor/symfony/mime/FileBinaryMimeTypeGuesser.php +++ b/vendor/symfony/mime/FileBinaryMimeTypeGuesser.php @@ -36,9 +36,6 @@ class FileBinaryMimeTypeGuesser implements MimeTypeGuesserInterface $this->cmd = $cmd; } - /** - * {@inheritdoc} - */ public function isGuesserSupported(): bool { static $supported = null; @@ -58,9 +55,6 @@ class FileBinaryMimeTypeGuesser implements MimeTypeGuesserInterface return $supported = 0 === $exitStatus && '' !== $binPath; } - /** - * {@inheritdoc} - */ public function guessMimeType(string $path): ?string { if (!is_file($path) || !is_readable($path)) { diff --git a/vendor/symfony/mime/FileinfoMimeTypeGuesser.php b/vendor/symfony/mime/FileinfoMimeTypeGuesser.php index c40a8196d..aff590115 100644 --- a/vendor/symfony/mime/FileinfoMimeTypeGuesser.php +++ b/vendor/symfony/mime/FileinfoMimeTypeGuesser.php @@ -24,7 +24,7 @@ class FileinfoMimeTypeGuesser implements MimeTypeGuesserInterface private ?string $magicFile; /** - * @param string $magicFile A magic file to use with the finfo instance + * @param string|null $magicFile A magic file to use with the finfo instance * * @see http://www.php.net/manual/en/function.finfo-open.php */ @@ -33,17 +33,11 @@ class FileinfoMimeTypeGuesser implements MimeTypeGuesserInterface $this->magicFile = $magicFile; } - /** - * {@inheritdoc} - */ public function isGuesserSupported(): bool { return \function_exists('finfo_open'); } - /** - * {@inheritdoc} - */ public function guessMimeType(string $path): ?string { if (!is_file($path) || !is_readable($path)) { diff --git a/vendor/symfony/mime/Header/AbstractHeader.php b/vendor/symfony/mime/Header/AbstractHeader.php index 46e566345..122281127 100644 --- a/vendor/symfony/mime/Header/AbstractHeader.php +++ b/vendor/symfony/mime/Header/AbstractHeader.php @@ -34,6 +34,9 @@ abstract class AbstractHeader implements HeaderInterface $this->name = $name; } + /** + * @return void + */ public function setCharset(string $charset) { $this->charset = $charset; @@ -48,6 +51,8 @@ abstract class AbstractHeader implements HeaderInterface * Set the language used in this Header. * * For example, for US English, 'en-us'. + * + * @return void */ public function setLanguage(string $lang) { @@ -64,6 +69,9 @@ abstract class AbstractHeader implements HeaderInterface return $this->name; } + /** + * @return void + */ public function setMaxLineLength(int $lineLength) { $this->lineLength = $lineLength; @@ -231,9 +239,7 @@ abstract class AbstractHeader implements HeaderInterface */ protected function toTokens(string $string = null): array { - if (null === $string) { - $string = $this->getBodyAsString(); - } + $string ??= $this->getBodyAsString(); $tokens = []; // Generate atoms; split at all invisible boundaries followed by WSP @@ -263,8 +269,8 @@ abstract class AbstractHeader implements HeaderInterface // Build all tokens back into compliant header foreach ($tokens as $i => $token) { // Line longer than specified maximum or token was just a new line - if (("\r\n" === $token) || - ($i > 0 && \strlen($currentLine.$token) > $this->lineLength) + if (("\r\n" === $token) + || ($i > 0 && \strlen($currentLine.$token) > $this->lineLength) && '' !== $currentLine) { $headerLines[] = ''; $currentLine = &$headerLines[$lineCount++]; diff --git a/vendor/symfony/mime/Header/DateHeader.php b/vendor/symfony/mime/Header/DateHeader.php index b07dfedeb..67156cb79 100644 --- a/vendor/symfony/mime/Header/DateHeader.php +++ b/vendor/symfony/mime/Header/DateHeader.php @@ -30,7 +30,7 @@ final class DateHeader extends AbstractHeader /** * @param \DateTimeInterface $body */ - public function setBody(mixed $body) + public function setBody(mixed $body): void { $this->setDateTime($body); } @@ -50,7 +50,7 @@ final class DateHeader extends AbstractHeader * * If a DateTime instance is provided, it is converted to DateTimeImmutable. */ - public function setDateTime(\DateTimeInterface $dateTime) + public function setDateTime(\DateTimeInterface $dateTime): void { if ($dateTime instanceof \DateTime) { $immutable = new \DateTimeImmutable('@'.$dateTime->getTimestamp()); diff --git a/vendor/symfony/mime/Header/HeaderInterface.php b/vendor/symfony/mime/Header/HeaderInterface.php index 092fc238a..5bc4162c3 100644 --- a/vendor/symfony/mime/Header/HeaderInterface.php +++ b/vendor/symfony/mime/Header/HeaderInterface.php @@ -22,6 +22,8 @@ interface HeaderInterface * Sets the body. * * The type depends on the Header concrete class. + * + * @return void */ public function setBody(mixed $body); @@ -32,16 +34,25 @@ interface HeaderInterface */ public function getBody(): mixed; + /** + * @return void + */ public function setCharset(string $charset); public function getCharset(): ?string; + /** + * @return void + */ public function setLanguage(string $lang); public function getLanguage(): ?string; public function getName(): string; + /** + * @return void + */ public function setMaxLineLength(int $lineLength); public function getMaxLineLength(): int; diff --git a/vendor/symfony/mime/Header/Headers.php b/vendor/symfony/mime/Header/Headers.php index 115928155..57d730127 100644 --- a/vendor/symfony/mime/Header/Headers.php +++ b/vendor/symfony/mime/Header/Headers.php @@ -34,8 +34,8 @@ final class Headers 'cc' => MailboxListHeader::class, 'bcc' => MailboxListHeader::class, 'message-id' => IdentificationHeader::class, - 'in-reply-to' => UnstructuredHeader::class, // `In-Reply-To` and `References` are less strict than RFC 2822 (3.6.4) to allow users entering the original email's ... - 'references' => UnstructuredHeader::class, // ... `Message-ID`, even if that is no valid `msg-id` + 'in-reply-to' => [UnstructuredHeader::class, IdentificationHeader::class], // `In-Reply-To` and `References` are less strict than RFC 2822 (3.6.4) to allow users entering the original email's ... + 'references' => [UnstructuredHeader::class, IdentificationHeader::class], // ... `Message-ID`, even if that is no valid `msg-id` 'return-path' => PathHeader::class, ]; @@ -61,7 +61,7 @@ final class Headers } } - public function setMaxLineLength(int $lineLength) + public function setMaxLineLength(int $lineLength): void { $this->lineLength = $lineLength; foreach ($this->all() as $header) { @@ -137,7 +137,11 @@ final class Headers */ public function addHeader(string $name, mixed $argument, array $more = []): static { - $parts = explode('\\', self::HEADER_CLASS_MAP[strtolower($name)] ?? UnstructuredHeader::class); + $headerClass = self::HEADER_CLASS_MAP[strtolower($name)] ?? UnstructuredHeader::class; + if (\is_array($headerClass)) { + $headerClass = $headerClass[0]; + } + $parts = explode('\\', $headerClass); $method = 'add'.ucfirst(array_pop($parts)); if ('addUnstructuredHeader' === $method) { $method = 'addTextHeader'; @@ -220,10 +224,22 @@ final class Headers public static function checkHeaderClass(HeaderInterface $header): void { $name = strtolower($header->getName()); - - if (($c = self::HEADER_CLASS_MAP[$name] ?? null) && !$header instanceof $c) { - throw new LogicException(sprintf('The "%s" header must be an instance of "%s" (got "%s").', $header->getName(), $c, get_debug_type($header))); + $headerClasses = self::HEADER_CLASS_MAP[$name] ?? []; + if (!\is_array($headerClasses)) { + $headerClasses = [$headerClasses]; } + + if (!$headerClasses) { + return; + } + + foreach ($headerClasses as $c) { + if ($header instanceof $c) { + return; + } + } + + throw new LogicException(sprintf('The "%s" header must be an instance of "%s" (got "%s").', $header->getName(), implode('" or "', $headerClasses), get_debug_type($header))); } public function toString(): string @@ -248,7 +264,7 @@ final class Headers return $arr; } - public function getHeaderBody(string $name) + public function getHeaderBody(string $name): mixed { return $this->has($name) ? $this->get($name)->getBody() : null; } diff --git a/vendor/symfony/mime/Header/IdentificationHeader.php b/vendor/symfony/mime/Header/IdentificationHeader.php index 40fd7c36d..14e18bf25 100644 --- a/vendor/symfony/mime/Header/IdentificationHeader.php +++ b/vendor/symfony/mime/Header/IdentificationHeader.php @@ -36,7 +36,7 @@ final class IdentificationHeader extends AbstractHeader * * @throws RfcComplianceException */ - public function setBody(mixed $body) + public function setBody(mixed $body): void { $this->setId($body); } @@ -53,7 +53,7 @@ final class IdentificationHeader extends AbstractHeader * * @throws RfcComplianceException */ - public function setId(string|array $id) + public function setId(string|array $id): void { $this->setIds(\is_array($id) ? $id : [$id]); } @@ -75,7 +75,7 @@ final class IdentificationHeader extends AbstractHeader * * @throws RfcComplianceException */ - public function setIds(array $ids) + public function setIds(array $ids): void { $this->ids = []; $this->idsAsAddresses = []; diff --git a/vendor/symfony/mime/Header/MailboxHeader.php b/vendor/symfony/mime/Header/MailboxHeader.php index 877e72e35..8ba964b53 100644 --- a/vendor/symfony/mime/Header/MailboxHeader.php +++ b/vendor/symfony/mime/Header/MailboxHeader.php @@ -21,7 +21,7 @@ use Symfony\Component\Mime\Exception\RfcComplianceException; */ final class MailboxHeader extends AbstractHeader { - private $address; + private Address $address; public function __construct(string $name, Address $address) { @@ -35,7 +35,7 @@ final class MailboxHeader extends AbstractHeader * * @throws RfcComplianceException */ - public function setBody(mixed $body) + public function setBody(mixed $body): void { $this->setAddress($body); } @@ -51,7 +51,7 @@ final class MailboxHeader extends AbstractHeader /** * @throws RfcComplianceException */ - public function setAddress(Address $address) + public function setAddress(Address $address): void { $this->address = $address; } diff --git a/vendor/symfony/mime/Header/MailboxListHeader.php b/vendor/symfony/mime/Header/MailboxListHeader.php index e6e6ce195..8d902fb75 100644 --- a/vendor/symfony/mime/Header/MailboxListHeader.php +++ b/vendor/symfony/mime/Header/MailboxListHeader.php @@ -38,15 +38,15 @@ final class MailboxListHeader extends AbstractHeader * * @throws RfcComplianceException */ - public function setBody(mixed $body) + public function setBody(mixed $body): void { $this->setAddresses($body); } /** - * @throws RfcComplianceException - * * @return Address[] + * + * @throws RfcComplianceException */ public function getBody(): array { @@ -60,7 +60,7 @@ final class MailboxListHeader extends AbstractHeader * * @throws RfcComplianceException */ - public function setAddresses(array $addresses) + public function setAddresses(array $addresses): void { $this->addresses = []; $this->addAddresses($addresses); @@ -73,7 +73,7 @@ final class MailboxListHeader extends AbstractHeader * * @throws RfcComplianceException */ - public function addAddresses(array $addresses) + public function addAddresses(array $addresses): void { foreach ($addresses as $address) { $this->addAddress($address); @@ -83,7 +83,7 @@ final class MailboxListHeader extends AbstractHeader /** * @throws RfcComplianceException */ - public function addAddress(Address $address) + public function addAddress(Address $address): void { $this->addresses[] = $address; } @@ -99,9 +99,9 @@ final class MailboxListHeader extends AbstractHeader /** * Gets the full mailbox list of this Header as an array of valid RFC 2822 strings. * - * @throws RfcComplianceException - * * @return string[] + * + * @throws RfcComplianceException */ public function getAddressStrings(): array { diff --git a/vendor/symfony/mime/Header/ParameterizedHeader.php b/vendor/symfony/mime/Header/ParameterizedHeader.php index ac5ccc58e..0618e82bd 100644 --- a/vendor/symfony/mime/Header/ParameterizedHeader.php +++ b/vendor/symfony/mime/Header/ParameterizedHeader.php @@ -25,7 +25,7 @@ final class ParameterizedHeader extends UnstructuredHeader */ public const TOKEN_REGEX = '(?:[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7E]+)'; - private $encoder = null; + private ?Rfc2231Encoder $encoder = null; private array $parameters = []; public function __construct(string $name, string $value, array $parameters = []) @@ -41,7 +41,7 @@ final class ParameterizedHeader extends UnstructuredHeader } } - public function setParameter(string $parameter, ?string $value) + public function setParameter(string $parameter, ?string $value): void { $this->setParameters(array_merge($this->getParameters(), [$parameter => $value])); } @@ -54,7 +54,7 @@ final class ParameterizedHeader extends UnstructuredHeader /** * @param string[] $parameters */ - public function setParameters(array $parameters) + public function setParameters(array $parameters): void { $this->parameters = $parameters; } diff --git a/vendor/symfony/mime/Header/PathHeader.php b/vendor/symfony/mime/Header/PathHeader.php index af267bb10..63eb30af0 100644 --- a/vendor/symfony/mime/Header/PathHeader.php +++ b/vendor/symfony/mime/Header/PathHeader.php @@ -21,7 +21,7 @@ use Symfony\Component\Mime\Exception\RfcComplianceException; */ final class PathHeader extends AbstractHeader { - private $address; + private Address $address; public function __construct(string $name, Address $address) { @@ -35,7 +35,7 @@ final class PathHeader extends AbstractHeader * * @throws RfcComplianceException */ - public function setBody(mixed $body) + public function setBody(mixed $body): void { $this->setAddress($body); } @@ -45,7 +45,7 @@ final class PathHeader extends AbstractHeader return $this->getAddress(); } - public function setAddress(Address $address) + public function setAddress(Address $address): void { $this->address = $address; } diff --git a/vendor/symfony/mime/Header/UnstructuredHeader.php b/vendor/symfony/mime/Header/UnstructuredHeader.php index 668b0be7f..61c06d8f5 100644 --- a/vendor/symfony/mime/Header/UnstructuredHeader.php +++ b/vendor/symfony/mime/Header/UnstructuredHeader.php @@ -29,6 +29,8 @@ class UnstructuredHeader extends AbstractHeader /** * @param string $body + * + * @return void */ public function setBody(mixed $body) { @@ -50,6 +52,8 @@ class UnstructuredHeader extends AbstractHeader /** * Set the (unencoded) value of this header. + * + * @return void */ public function setValue(string $value) { diff --git a/vendor/symfony/mime/HtmlToTextConverter/DefaultHtmlToTextConverter.php b/vendor/symfony/mime/HtmlToTextConverter/DefaultHtmlToTextConverter.php new file mode 100644 index 000000000..2aaf8e6c4 --- /dev/null +++ b/vendor/symfony/mime/HtmlToTextConverter/DefaultHtmlToTextConverter.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Mime\HtmlToTextConverter; + +/** + * @author Fabien Potencier + */ +class DefaultHtmlToTextConverter implements HtmlToTextConverterInterface +{ + public function convert(string $html, string $charset): string + { + return strip_tags(preg_replace('{<(head|style)\b.*?}is', '', $html)); + } +} diff --git a/vendor/symfony/mime/HtmlToTextConverter/HtmlToTextConverterInterface.php b/vendor/symfony/mime/HtmlToTextConverter/HtmlToTextConverterInterface.php new file mode 100644 index 000000000..696f37ccf --- /dev/null +++ b/vendor/symfony/mime/HtmlToTextConverter/HtmlToTextConverterInterface.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Mime\HtmlToTextConverter; + +/** + * @author Fabien Potencier + */ +interface HtmlToTextConverterInterface +{ + /** + * Converts an HTML representation of a Message to a text representation. + * + * The output must use the same charset as the HTML one. + */ + public function convert(string $html, string $charset): string; +} diff --git a/vendor/symfony/mime/HtmlToTextConverter/LeagueHtmlToMarkdownConverter.php b/vendor/symfony/mime/HtmlToTextConverter/LeagueHtmlToMarkdownConverter.php new file mode 100644 index 000000000..253a7b19f --- /dev/null +++ b/vendor/symfony/mime/HtmlToTextConverter/LeagueHtmlToMarkdownConverter.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Mime\HtmlToTextConverter; + +use League\HTMLToMarkdown\HtmlConverter; +use League\HTMLToMarkdown\HtmlConverterInterface; + +/** + * @author Fabien Potencier + */ +class LeagueHtmlToMarkdownConverter implements HtmlToTextConverterInterface +{ + public function __construct( + private HtmlConverterInterface $converter = new HtmlConverter([ + 'hard_break' => true, + 'strip_tags' => true, + 'remove_nodes' => 'head style', + ]), + ) { + } + + public function convert(string $html, string $charset): string + { + return $this->converter->convert($html); + } +} diff --git a/vendor/symfony/mime/LICENSE b/vendor/symfony/mime/LICENSE index 58b42bc8a..4dd83ce0f 100644 --- a/vendor/symfony/mime/LICENSE +++ b/vendor/symfony/mime/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2010-2023 Fabien Potencier +Copyright (c) 2010-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/mime/Message.php b/vendor/symfony/mime/Message.php index a60d0f527..e636c2e8e 100644 --- a/vendor/symfony/mime/Message.php +++ b/vendor/symfony/mime/Message.php @@ -21,8 +21,8 @@ use Symfony\Component\Mime\Part\TextPart; */ class Message extends RawMessage { - private $headers; - private $body; + private Headers $headers; + private ?AbstractPart $body; public function __construct(Headers $headers = null, AbstractPart $body = null) { @@ -44,6 +44,9 @@ class Message extends RawMessage */ public function setBody(AbstractPart $body = null): static { + if (1 > \func_num_args()) { + trigger_deprecation('symfony/mime', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + } $this->body = $body; return $this; @@ -122,6 +125,9 @@ class Message extends RawMessage yield from $body->toIterable(); } + /** + * @return void + */ public function ensureValidity() { if (!$this->headers->has('To') && !$this->headers->has('Cc') && !$this->headers->has('Bcc')) { diff --git a/vendor/symfony/mime/MessageConverter.php b/vendor/symfony/mime/MessageConverter.php index 0539eac8e..bdce921af 100644 --- a/vendor/symfony/mime/MessageConverter.php +++ b/vendor/symfony/mime/MessageConverter.php @@ -58,7 +58,7 @@ final class MessageConverter throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message))); } - return self::attachParts($email, \array_slice($parts, 1)); + return self::addParts($email, \array_slice($parts, 1)); } throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message))); @@ -80,9 +80,9 @@ final class MessageConverter { $parts = $part->getParts(); if ( - 2 === \count($parts) && - $parts[0] instanceof TextPart && 'text' === $parts[0]->getMediaType() && 'plain' === $parts[0]->getMediaSubtype() && - $parts[1] instanceof TextPart && 'text' === $parts[1]->getMediaType() && 'html' === $parts[1]->getMediaSubtype() + 2 === \count($parts) + && $parts[0] instanceof TextPart && 'text' === $parts[0]->getMediaType() && 'plain' === $parts[0]->getMediaSubtype() + && $parts[1] instanceof TextPart && 'text' === $parts[1]->getMediaType() && 'html' === $parts[1]->getMediaSubtype() ) { return (new Email(clone $message->getHeaders())) ->text($parts[0]->getBody(), $parts[0]->getPreparedHeaders()->getHeaderParameter('Content-Type', 'charset') ?: 'utf-8') @@ -104,20 +104,17 @@ final class MessageConverter throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($message))); } - return self::attachParts($email, \array_slice($parts, 1)); + return self::addParts($email, \array_slice($parts, 1)); } - private static function attachParts(Email $email, array $parts): Email + private static function addParts(Email $email, array $parts): Email { foreach ($parts as $part) { if (!$part instanceof DataPart) { throw new RuntimeException(sprintf('Unable to create an Email from an instance of "%s" as the body is too complex.', get_debug_type($email))); } - $headers = $part->getPreparedHeaders(); - $method = 'inline' === $headers->getHeaderBody('Content-Disposition') ? 'embed' : 'attach'; - $name = $headers->getHeaderParameter('Content-Disposition', 'filename'); - $email->$method($part->getBody(), $name, $part->getMediaType().'/'.$part->getMediaSubtype()); + $email->addPart($part); } return $email; diff --git a/vendor/symfony/mime/MimeTypes.php b/vendor/symfony/mime/MimeTypes.php index 77cdcc23c..21c8aecf2 100644 --- a/vendor/symfony/mime/MimeTypes.php +++ b/vendor/symfony/mime/MimeTypes.php @@ -58,14 +58,14 @@ final class MimeTypes implements MimeTypesInterface $this->registerGuesser(new FileinfoMimeTypeGuesser()); } - public static function setDefault(self $default) + public static function setDefault(self $default): void { self::$default = $default; } public static function getDefault(): self { - return self::$default ?? self::$default = new self(); + return self::$default ??= new self(); } /** @@ -73,14 +73,11 @@ final class MimeTypes implements MimeTypesInterface * * The last registered guesser has precedence over the other ones. */ - public function registerGuesser(MimeTypeGuesserInterface $guesser) + public function registerGuesser(MimeTypeGuesserInterface $guesser): void { array_unshift($this->guessers, $guesser); } - /** - * {@inheritdoc} - */ public function getExtensions(string $mimeType): array { if ($this->extensions) { @@ -90,9 +87,6 @@ final class MimeTypes implements MimeTypesInterface return $extensions ?? self::MAP[$mimeType] ?? self::MAP[$lcMimeType ?? strtolower($mimeType)] ?? []; } - /** - * {@inheritdoc} - */ public function getMimeTypes(string $ext): array { if ($this->mimeTypes) { @@ -102,9 +96,6 @@ final class MimeTypes implements MimeTypesInterface return $mimeTypes ?? self::REVERSE_MAP[$ext] ?? self::REVERSE_MAP[$lcExt ?? strtolower($ext)] ?? []; } - /** - * {@inheritdoc} - */ public function isGuesserSupported(): bool { foreach ($this->guessers as $guesser) { @@ -117,8 +108,6 @@ final class MimeTypes implements MimeTypesInterface } /** - * {@inheritdoc} - * * The file is passed to each registered MIME type guesser in reverse order * of their registration (last registered is queried first). Once a guesser * returns a value that is not null, this method terminates and returns the diff --git a/vendor/symfony/mime/Part/AbstractMultipartPart.php b/vendor/symfony/mime/Part/AbstractMultipartPart.php index 685d25062..b7980ea0c 100644 --- a/vendor/symfony/mime/Part/AbstractMultipartPart.php +++ b/vendor/symfony/mime/Part/AbstractMultipartPart.php @@ -90,10 +90,6 @@ abstract class AbstractMultipartPart extends AbstractPart private function getBoundary(): string { - if (null === $this->boundary) { - $this->boundary = strtr(base64_encode(random_bytes(6)), '+/', '-_'); - } - - return $this->boundary; + return $this->boundary ??= strtr(base64_encode(random_bytes(6)), '+/', '-_'); } } diff --git a/vendor/symfony/mime/Part/DataPart.php b/vendor/symfony/mime/Part/DataPart.php index 300772edf..b42ecb4da 100644 --- a/vendor/symfony/mime/Part/DataPart.php +++ b/vendor/symfony/mime/Part/DataPart.php @@ -13,7 +13,6 @@ namespace Symfony\Component\Mime\Part; use Symfony\Component\Mime\Exception\InvalidArgumentException; use Symfony\Component\Mime\Header\Headers; -use Symfony\Component\Mime\MimeTypes; /** * @author Fabien Potencier @@ -23,23 +22,22 @@ class DataPart extends TextPart /** @internal */ protected $_parent; - private static $mimeTypes; - private $filename; private $mediaType; private $cid; - private $handle; /** - * @param resource|string $body + * @param resource|string|File $body Use a File instance to defer loading the file until rendering */ public function __construct($body, string $filename = null, string $contentType = null, string $encoding = null) { unset($this->_parent); - if (null === $contentType) { - $contentType = 'application/octet-stream'; + if ($body instanceof File && !$filename) { + $filename = $body->getFilename(); } + + $contentType ??= $body instanceof File ? $body->getContentType() : 'application/octet-stream'; [$this->mediaType, $subtype] = explode('/', $contentType); parent::__construct($body, null, $subtype, $encoding); @@ -53,32 +51,7 @@ class DataPart extends TextPart public static function fromPath(string $path, string $name = null, string $contentType = null): self { - if (null === $contentType) { - $ext = strtolower(substr($path, strrpos($path, '.') + 1)); - if (null === self::$mimeTypes) { - self::$mimeTypes = new MimeTypes(); - } - $contentType = self::$mimeTypes->getMimeTypes($ext)[0] ?? 'application/octet-stream'; - } - - if ((is_file($path) && !is_readable($path)) || is_dir($path)) { - throw new InvalidArgumentException(sprintf('Path "%s" is not readable.', $path)); - } - - if (false === $handle = @fopen($path, 'r', false)) { - throw new InvalidArgumentException(sprintf('Unable to open path "%s".', $path)); - } - - if (!is_file($path)) { - $cache = fopen('php://temp', 'r+'); - stream_copy_to_stream($handle, $cache); - $handle = $cache; - } - - $p = new self($handle, $name ?: basename($path), $contentType); - $p->handle = $handle; - - return $p; + return new self(new File($path), $name, $contentType); } /** @@ -89,6 +62,20 @@ class DataPart extends TextPart return $this->setDisposition('inline'); } + /** + * @return $this + */ + public function setContentId(string $cid): static + { + if (!str_contains($cid, '@')) { + throw new InvalidArgumentException(sprintf('Invalid cid "%s".', $cid)); + } + + $this->cid = $cid; + + return $this; + } + public function getContentId(): string { return $this->cid ?: $this->cid = $this->generateContentId(); @@ -129,18 +116,21 @@ class DataPart extends TextPart return $str; } + public function getFilename(): ?string + { + return $this->filename; + } + + public function getContentType(): string + { + return implode('/', [$this->getMediaType(), $this->getMediaSubtype()]); + } + private function generateContentId(): string { return bin2hex(random_bytes(16)).'@symfony'; } - public function __destruct() - { - if (null !== $this->handle && \is_resource($this->handle)) { - fclose($this->handle); - } - } - public function __sleep(): array { // converts the body to a string @@ -149,7 +139,6 @@ class DataPart extends TextPart $this->_parent = []; foreach (['body', 'charset', 'subtype', 'disposition', 'name', 'encoding'] as $name) { $r = new \ReflectionProperty(TextPart::class, $name); - $r->setAccessible(true); $this->_parent[$name] = $r->getValue($this); } $this->_headers = $this->getHeaders(); @@ -160,7 +149,6 @@ class DataPart extends TextPart public function __wakeup() { $r = new \ReflectionProperty(AbstractPart::class, 'headers'); - $r->setAccessible(true); $r->setValue($this, $this->_headers); unset($this->_headers); @@ -172,7 +160,6 @@ class DataPart extends TextPart throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); } $r = new \ReflectionProperty(TextPart::class, $name); - $r->setAccessible(true); $r->setValue($this, $this->_parent[$name]); } unset($this->_parent); diff --git a/vendor/symfony/mime/Part/File.php b/vendor/symfony/mime/Part/File.php new file mode 100644 index 000000000..0d75066ea --- /dev/null +++ b/vendor/symfony/mime/Part/File.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Mime\Part; + +use Symfony\Component\Mime\MimeTypes; + +/** + * @author Fabien Potencier + */ +class File +{ + private static $mimeTypes; + + public function __construct( + private string $path, + private ?string $filename = null, + ) { + } + + public function getPath(): string + { + return $this->path; + } + + public function getContentType(): string + { + $ext = strtolower(pathinfo($this->path, \PATHINFO_EXTENSION)); + self::$mimeTypes ??= new MimeTypes(); + + return self::$mimeTypes->getMimeTypes($ext)[0] ?? 'application/octet-stream'; + } + + public function getSize(): int + { + return filesize($this->path); + } + + public function getFilename(): string + { + return $this->filename ??= basename($this->getPath()); + } +} diff --git a/vendor/symfony/mime/Part/Multipart/FormDataPart.php b/vendor/symfony/mime/Part/Multipart/FormDataPart.php index 5f473ed25..e7dc3b17b 100644 --- a/vendor/symfony/mime/Part/Multipart/FormDataPart.php +++ b/vendor/symfony/mime/Part/Multipart/FormDataPart.php @@ -34,7 +34,7 @@ final class FormDataPart extends AbstractMultipartPart foreach ($fields as $name => $value) { if (!\is_string($value) && !\is_array($value) && !$value instanceof TextPart) { - throw new InvalidArgumentException(sprintf('A form field value can only be a string, an array, or an instance of TextPart ("%s" given).', get_debug_type($value))); + throw new InvalidArgumentException(sprintf('The value of the form field "%s" can only be a string, an array, or an instance of TextPart ("%s" given).', $name, get_debug_type($value))); } $this->fields[$name] = $value; @@ -58,7 +58,7 @@ final class FormDataPart extends AbstractMultipartPart $values = []; $prepare = function ($item, $key, $root = null) use (&$values, &$prepare) { - if (\is_int($key) && \is_array($item)) { + if (null === $root && \is_int($key) && \is_array($item)) { if (1 !== \count($item)) { throw new InvalidArgumentException(sprintf('Form field values with integer keys can only have one array element, the key being the field name and the value being the field value, %d provided.', \count($item))); } @@ -96,10 +96,7 @@ final class FormDataPart extends AbstractMultipartPart { static $r; - if (null === $r) { - $r = new \ReflectionProperty(TextPart::class, 'encoding'); - $r->setAccessible(true); - } + $r ??= new \ReflectionProperty(TextPart::class, 'encoding'); $part->setDisposition('form-data'); $part->setName($name); diff --git a/vendor/symfony/mime/Part/SMimePart.php b/vendor/symfony/mime/Part/SMimePart.php index 29e9dd19e..7021819f6 100644 --- a/vendor/symfony/mime/Part/SMimePart.php +++ b/vendor/symfony/mime/Part/SMimePart.php @@ -107,7 +107,6 @@ class SMimePart extends AbstractPart public function __wakeup(): void { $r = new \ReflectionProperty(AbstractPart::class, 'headers'); - $r->setAccessible(true); $r->setValue($this, $this->_headers); unset($this->_headers); } diff --git a/vendor/symfony/mime/Part/TextPart.php b/vendor/symfony/mime/Part/TextPart.php index bd73861d5..3b1eb8d82 100644 --- a/vendor/symfony/mime/Part/TextPart.php +++ b/vendor/symfony/mime/Part/TextPart.php @@ -40,7 +40,7 @@ class TextPart extends AbstractPart private $seekable; /** - * @param resource|string $body + * @param resource|string|File $body Use a File instance to defer loading the file until rendering */ public function __construct($body, ?string $charset = 'utf-8', string $subtype = 'plain', string $encoding = null) { @@ -48,8 +48,15 @@ class TextPart extends AbstractPart parent::__construct(); - if (!\is_string($body) && !\is_resource($body)) { - throw new \TypeError(sprintf('The body of "%s" must be a string or a resource (got "%s").', self::class, get_debug_type($body))); + if (!\is_string($body) && !\is_resource($body) && !$body instanceof File) { + throw new \TypeError(sprintf('The body of "%s" must be a string, a resource, or an instance of "%s" (got "%s").', self::class, File::class, get_debug_type($body))); + } + + if ($body instanceof File) { + $path = $body->getPath(); + if ((is_file($path) && !is_readable($path)) || is_dir($path)) { + throw new InvalidArgumentException(sprintf('Path "%s" is not readable.', $path)); + } } $this->body = $body; @@ -89,6 +96,14 @@ class TextPart extends AbstractPart return $this; } + /** + * @return ?string null or one of attachment, inline, or form-data + */ + public function getDisposition(): ?string + { + return $this->disposition; + } + /** * Sets the name of the file (used by FormDataPart). * @@ -101,8 +116,20 @@ class TextPart extends AbstractPart return $this; } + /** + * Gets the name of the file. + */ + public function getName(): ?string + { + return $this->name; + } + public function getBody(): string { + if ($this->body instanceof File) { + return file_get_contents($this->body->getPath()); + } + if (null === $this->seekable) { return $this->body; } @@ -121,7 +148,14 @@ class TextPart extends AbstractPart public function bodyToIterable(): iterable { - if (null !== $this->seekable) { + if ($this->body instanceof File) { + $path = $this->body->getPath(); + if (false === $handle = @fopen($path, 'r', false)) { + throw new InvalidArgumentException(sprintf('Unable to open path "%s".', $path)); + } + + yield from $this->getEncoder()->encodeByteStream($handle); + } elseif (null !== $this->seekable) { if ($this->seekable) { rewind($this->body); } @@ -170,14 +204,14 @@ class TextPart extends AbstractPart private function getEncoder(): ContentEncoderInterface { if ('8bit' === $this->encoding) { - return self::$encoders[$this->encoding] ?? (self::$encoders[$this->encoding] = new EightBitContentEncoder()); + return self::$encoders[$this->encoding] ??= new EightBitContentEncoder(); } if ('quoted-printable' === $this->encoding) { - return self::$encoders[$this->encoding] ?? (self::$encoders[$this->encoding] = new QpContentEncoder()); + return self::$encoders[$this->encoding] ??= new QpContentEncoder(); } - return self::$encoders[$this->encoding] ?? (self::$encoders[$this->encoding] = new Base64ContentEncoder()); + return self::$encoders[$this->encoding] ??= new Base64ContentEncoder(); } private function chooseEncoding(): string @@ -192,7 +226,7 @@ class TextPart extends AbstractPart public function __sleep(): array { // convert resources to strings for serialization - if (null !== $this->seekable) { + if (null !== $this->seekable || $this->body instanceof File) { $this->body = $this->getBody(); $this->seekable = null; } @@ -205,7 +239,6 @@ class TextPart extends AbstractPart public function __wakeup() { $r = new \ReflectionProperty(AbstractPart::class, 'headers'); - $r->setAccessible(true); $r->setValue($this, $this->_headers); unset($this->_headers); } diff --git a/vendor/symfony/mime/RawMessage.php b/vendor/symfony/mime/RawMessage.php index ed051aab6..aec398c58 100644 --- a/vendor/symfony/mime/RawMessage.php +++ b/vendor/symfony/mime/RawMessage.php @@ -54,6 +54,8 @@ class RawMessage } /** + * @return void + * * @throws LogicException if the message is not valid */ public function ensureValidity() diff --git a/vendor/symfony/mime/Test/Constraint/EmailAddressContains.php b/vendor/symfony/mime/Test/Constraint/EmailAddressContains.php index e32e3d951..6ca9cc058 100644 --- a/vendor/symfony/mime/Test/Constraint/EmailAddressContains.php +++ b/vendor/symfony/mime/Test/Constraint/EmailAddressContains.php @@ -27,9 +27,6 @@ final class EmailAddressContains extends Constraint $this->expectedValue = $expectedValue; } - /** - * {@inheritdoc} - */ public function toString(): string { return sprintf('contains address "%s" with value "%s"', $this->headerName, $this->expectedValue); @@ -37,12 +34,10 @@ final class EmailAddressContains extends Constraint /** * @param RawMessage $message - * - * {@inheritdoc} */ protected function matches($message): bool { - if (RawMessage::class === \get_class($message)) { + if (RawMessage::class === $message::class) { throw new \LogicException('Unable to test a message address on a RawMessage instance.'); } @@ -64,8 +59,6 @@ final class EmailAddressContains extends Constraint /** * @param RawMessage $message - * - * {@inheritdoc} */ protected function failureDescription($message): string { diff --git a/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php b/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php index a0ee81ddd..d5c8ae981 100644 --- a/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php +++ b/vendor/symfony/mime/Test/Constraint/EmailAttachmentCount.php @@ -26,9 +26,6 @@ final class EmailAttachmentCount extends Constraint $this->transport = $transport; } - /** - * {@inheritdoc} - */ public function toString(): string { return sprintf('has sent "%d" attachment(s)', $this->expectedValue); @@ -36,12 +33,10 @@ final class EmailAttachmentCount extends Constraint /** * @param RawMessage $message - * - * {@inheritdoc} */ protected function matches($message): bool { - if (RawMessage::class === \get_class($message) || Message::class === \get_class($message)) { + if (RawMessage::class === $message::class || Message::class === $message::class) { throw new \LogicException('Unable to test a message attachment on a RawMessage or Message instance.'); } @@ -50,8 +45,6 @@ final class EmailAttachmentCount extends Constraint /** * @param RawMessage $message - * - * {@inheritdoc} */ protected function failureDescription($message): string { diff --git a/vendor/symfony/mime/Test/Constraint/EmailHasHeader.php b/vendor/symfony/mime/Test/Constraint/EmailHasHeader.php index ef4a28585..b7c5625b2 100644 --- a/vendor/symfony/mime/Test/Constraint/EmailHasHeader.php +++ b/vendor/symfony/mime/Test/Constraint/EmailHasHeader.php @@ -23,9 +23,6 @@ final class EmailHasHeader extends Constraint $this->headerName = $headerName; } - /** - * {@inheritdoc} - */ public function toString(): string { return sprintf('has header "%s"', $this->headerName); @@ -33,12 +30,10 @@ final class EmailHasHeader extends Constraint /** * @param RawMessage $message - * - * {@inheritdoc} */ protected function matches($message): bool { - if (RawMessage::class === \get_class($message)) { + if (RawMessage::class === $message::class) { throw new \LogicException('Unable to test a message header on a RawMessage instance.'); } @@ -47,8 +42,6 @@ final class EmailHasHeader extends Constraint /** * @param RawMessage $message - * - * {@inheritdoc} */ protected function failureDescription($message): string { diff --git a/vendor/symfony/mime/Test/Constraint/EmailHeaderSame.php b/vendor/symfony/mime/Test/Constraint/EmailHeaderSame.php index bb0cba698..edb6ab425 100644 --- a/vendor/symfony/mime/Test/Constraint/EmailHeaderSame.php +++ b/vendor/symfony/mime/Test/Constraint/EmailHeaderSame.php @@ -26,9 +26,6 @@ final class EmailHeaderSame extends Constraint $this->expectedValue = $expectedValue; } - /** - * {@inheritdoc} - */ public function toString(): string { return sprintf('has header "%s" with value "%s"', $this->headerName, $this->expectedValue); @@ -36,12 +33,10 @@ final class EmailHeaderSame extends Constraint /** * @param RawMessage $message - * - * {@inheritdoc} */ protected function matches($message): bool { - if (RawMessage::class === \get_class($message)) { + if (RawMessage::class === $message::class) { throw new \LogicException('Unable to test a message header on a RawMessage instance.'); } @@ -50,8 +45,6 @@ final class EmailHeaderSame extends Constraint /** * @param RawMessage $message - * - * {@inheritdoc} */ protected function failureDescription($message): string { diff --git a/vendor/symfony/mime/Test/Constraint/EmailHtmlBodyContains.php b/vendor/symfony/mime/Test/Constraint/EmailHtmlBodyContains.php index 67ab85eb6..cbf303d1b 100644 --- a/vendor/symfony/mime/Test/Constraint/EmailHtmlBodyContains.php +++ b/vendor/symfony/mime/Test/Constraint/EmailHtmlBodyContains.php @@ -24,31 +24,24 @@ final class EmailHtmlBodyContains extends Constraint $this->expectedText = $expectedText; } - /** - * {@inheritdoc} - */ public function toString(): string { return sprintf('contains "%s"', $this->expectedText); } /** - * {@inheritdoc} - * * @param RawMessage $message */ protected function matches($message): bool { - if (RawMessage::class === \get_class($message) || Message::class === \get_class($message)) { + if (RawMessage::class === $message::class || Message::class === $message::class) { throw new \LogicException('Unable to test a message HTML body on a RawMessage or Message instance.'); } - return false !== mb_strpos($message->getHtmlBody(), $this->expectedText); + return str_contains($message->getHtmlBody(), $this->expectedText); } /** - * {@inheritdoc} - * * @param RawMessage $message */ protected function failureDescription($message): string diff --git a/vendor/symfony/mime/Test/Constraint/EmailTextBodyContains.php b/vendor/symfony/mime/Test/Constraint/EmailTextBodyContains.php index f31655fd0..592595cf4 100644 --- a/vendor/symfony/mime/Test/Constraint/EmailTextBodyContains.php +++ b/vendor/symfony/mime/Test/Constraint/EmailTextBodyContains.php @@ -24,31 +24,24 @@ final class EmailTextBodyContains extends Constraint $this->expectedText = $expectedText; } - /** - * {@inheritdoc} - */ public function toString(): string { return sprintf('contains "%s"', $this->expectedText); } /** - * {@inheritdoc} - * * @param RawMessage $message */ protected function matches($message): bool { - if (RawMessage::class === \get_class($message) || Message::class === \get_class($message)) { + if (RawMessage::class === $message::class || Message::class === $message::class) { throw new \LogicException('Unable to test a message text body on a RawMessage or Message instance.'); } - return false !== mb_strpos($message->getTextBody(), $this->expectedText); + return str_contains($message->getTextBody(), $this->expectedText); } /** - * {@inheritdoc} - * * @param RawMessage $message */ protected function failureDescription($message): string diff --git a/vendor/symfony/mime/composer.json b/vendor/symfony/mime/composer.json index 02e3a07f0..b7bdc7824 100644 --- a/vendor/symfony/mime/composer.json +++ b/vendor/symfony/mime/composer.json @@ -16,24 +16,26 @@ } ], "require": { - "php": ">=8.0.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" + "symfony/serializer": "~6.2.13|^6.3.2" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" + "symfony/serializer": "<6.2.13|>=6.3,<6.3.2" }, "autoload": { "psr-4": { "Symfony\\Component\\Mime\\": "" }, diff --git a/vendor/symfony/polyfill-ctype/Ctype.php b/vendor/symfony/polyfill-ctype/Ctype.php deleted file mode 100755 index ba75a2c95..000000000 --- a/vendor/symfony/polyfill-ctype/Ctype.php +++ /dev/null @@ -1,232 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Polyfill\Ctype; - -/** - * Ctype implementation through regex. - * - * @internal - * - * @author Gert de Pagter - */ -final class Ctype -{ - /** - * Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise. - * - * @see https://php.net/ctype-alnum - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_alnum($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text); - } - - /** - * Returns TRUE if every character in text is a letter, FALSE otherwise. - * - * @see https://php.net/ctype-alpha - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_alpha($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text); - } - - /** - * Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise. - * - * @see https://php.net/ctype-cntrl - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_cntrl($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text); - } - - /** - * Returns TRUE if every character in the string text is a decimal digit, FALSE otherwise. - * - * @see https://php.net/ctype-digit - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_digit($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text); - } - - /** - * Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise. - * - * @see https://php.net/ctype-graph - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_graph($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text); - } - - /** - * Returns TRUE if every character in text is a lowercase letter. - * - * @see https://php.net/ctype-lower - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_lower($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text); - } - - /** - * Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all. - * - * @see https://php.net/ctype-print - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_print($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text); - } - - /** - * Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise. - * - * @see https://php.net/ctype-punct - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_punct($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text); - } - - /** - * Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters. - * - * @see https://php.net/ctype-space - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_space($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text); - } - - /** - * Returns TRUE if every character in text is an uppercase letter. - * - * @see https://php.net/ctype-upper - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_upper($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text); - } - - /** - * Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise. - * - * @see https://php.net/ctype-xdigit - * - * @param mixed $text - * - * @return bool - */ - public static function ctype_xdigit($text) - { - $text = self::convert_int_to_char_for_ctype($text, __FUNCTION__); - - return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text); - } - - /** - * Converts integers to their char versions according to normal ctype behaviour, if needed. - * - * If an integer between -128 and 255 inclusive is provided, - * it is interpreted as the ASCII value of a single character - * (negative values have 256 added in order to allow characters in the Extended ASCII range). - * Any other integer is interpreted as a string containing the decimal digits of the integer. - * - * @param mixed $int - * @param string $function - * - * @return mixed - */ - private static function convert_int_to_char_for_ctype($int, $function) - { - if (!\is_int($int)) { - return $int; - } - - if ($int < -128 || $int > 255) { - return (string) $int; - } - - if (\PHP_VERSION_ID >= 80100) { - @trigger_error($function.'(): Argument of type int will be interpreted as string in the future', \E_USER_DEPRECATED); - } - - if ($int < 0) { - $int += 256; - } - - return \chr($int); - } -} diff --git a/vendor/symfony/polyfill-ctype/README.md b/vendor/symfony/polyfill-ctype/README.md deleted file mode 100755 index b144d03c3..000000000 --- a/vendor/symfony/polyfill-ctype/README.md +++ /dev/null @@ -1,12 +0,0 @@ -Symfony Polyfill / Ctype -======================== - -This component provides `ctype_*` functions to users who run php versions without the ctype extension. - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/vendor/symfony/polyfill-ctype/bootstrap.php b/vendor/symfony/polyfill-ctype/bootstrap.php deleted file mode 100755 index d54524b31..000000000 --- a/vendor/symfony/polyfill-ctype/bootstrap.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Ctype as p; - -if (\PHP_VERSION_ID >= 80000) { - return require __DIR__.'/bootstrap80.php'; -} - -if (!function_exists('ctype_alnum')) { - function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); } -} -if (!function_exists('ctype_alpha')) { - function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); } -} -if (!function_exists('ctype_cntrl')) { - function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); } -} -if (!function_exists('ctype_digit')) { - function ctype_digit($text) { return p\Ctype::ctype_digit($text); } -} -if (!function_exists('ctype_graph')) { - function ctype_graph($text) { return p\Ctype::ctype_graph($text); } -} -if (!function_exists('ctype_lower')) { - function ctype_lower($text) { return p\Ctype::ctype_lower($text); } -} -if (!function_exists('ctype_print')) { - function ctype_print($text) { return p\Ctype::ctype_print($text); } -} -if (!function_exists('ctype_punct')) { - function ctype_punct($text) { return p\Ctype::ctype_punct($text); } -} -if (!function_exists('ctype_space')) { - function ctype_space($text) { return p\Ctype::ctype_space($text); } -} -if (!function_exists('ctype_upper')) { - function ctype_upper($text) { return p\Ctype::ctype_upper($text); } -} -if (!function_exists('ctype_xdigit')) { - function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); } -} diff --git a/vendor/symfony/polyfill-ctype/bootstrap80.php b/vendor/symfony/polyfill-ctype/bootstrap80.php deleted file mode 100755 index ab2f8611d..000000000 --- a/vendor/symfony/polyfill-ctype/bootstrap80.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Ctype as p; - -if (!function_exists('ctype_alnum')) { - function ctype_alnum(mixed $text): bool { return p\Ctype::ctype_alnum($text); } -} -if (!function_exists('ctype_alpha')) { - function ctype_alpha(mixed $text): bool { return p\Ctype::ctype_alpha($text); } -} -if (!function_exists('ctype_cntrl')) { - function ctype_cntrl(mixed $text): bool { return p\Ctype::ctype_cntrl($text); } -} -if (!function_exists('ctype_digit')) { - function ctype_digit(mixed $text): bool { return p\Ctype::ctype_digit($text); } -} -if (!function_exists('ctype_graph')) { - function ctype_graph(mixed $text): bool { return p\Ctype::ctype_graph($text); } -} -if (!function_exists('ctype_lower')) { - function ctype_lower(mixed $text): bool { return p\Ctype::ctype_lower($text); } -} -if (!function_exists('ctype_print')) { - function ctype_print(mixed $text): bool { return p\Ctype::ctype_print($text); } -} -if (!function_exists('ctype_punct')) { - function ctype_punct(mixed $text): bool { return p\Ctype::ctype_punct($text); } -} -if (!function_exists('ctype_space')) { - function ctype_space(mixed $text): bool { return p\Ctype::ctype_space($text); } -} -if (!function_exists('ctype_upper')) { - function ctype_upper(mixed $text): bool { return p\Ctype::ctype_upper($text); } -} -if (!function_exists('ctype_xdigit')) { - function ctype_xdigit(mixed $text): bool { return p\Ctype::ctype_xdigit($text); } -} diff --git a/vendor/symfony/polyfill-ctype/composer.json b/vendor/symfony/polyfill-ctype/composer.json deleted file mode 100755 index 1b3efff57..000000000 --- a/vendor/symfony/polyfill-ctype/composer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "symfony/polyfill-ctype", - "type": "library", - "description": "Symfony polyfill for ctype functions", - "keywords": ["polyfill", "compatibility", "portable", "ctype"], - "homepage": "https://symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "autoload": { - "psr-4": { "Symfony\\Polyfill\\Ctype\\": "" }, - "files": [ "bootstrap.php" ] - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - } -} diff --git a/vendor/symfony/process/CHANGELOG.md b/vendor/symfony/process/CHANGELOG.md new file mode 100644 index 000000000..31b9ee6a2 --- /dev/null +++ b/vendor/symfony/process/CHANGELOG.md @@ -0,0 +1,116 @@ +CHANGELOG +========= + +5.2.0 +----- + + * added `Process::setOptions()` to set `Process` specific options + * added option `create_new_console` to allow a subprocess to continue + to run after the main script exited, both on Linux and on Windows + +5.1.0 +----- + + * added `Process::getStartTime()` to retrieve the start time of the process as float + +5.0.0 +----- + + * removed `Process::inheritEnvironmentVariables()` + * removed `PhpProcess::setPhpBinary()` + * `Process` must be instantiated with a command array, use `Process::fromShellCommandline()` when the command should be parsed by the shell + * removed `Process::setCommandLine()` + +4.4.0 +----- + + * deprecated `Process::inheritEnvironmentVariables()`: env variables are always inherited. + * added `Process::getLastOutputTime()` method + +4.2.0 +----- + + * added the `Process::fromShellCommandline()` to run commands in a shell wrapper + * deprecated passing a command as string when creating a `Process` instance + * deprecated the `Process::setCommandline()` and the `PhpProcess::setPhpBinary()` methods + * added the `Process::waitUntil()` method to wait for the process only for a + specific output, then continue the normal execution of your application + +4.1.0 +----- + + * added the `Process::isTtySupported()` method that allows to check for TTY support + * made `PhpExecutableFinder` look for the `PHP_BINARY` env var when searching the php binary + * added the `ProcessSignaledException` class to properly catch signaled process errors + +4.0.0 +----- + + * environment variables will always be inherited + * added a second `array $env = []` argument to the `start()`, `run()`, + `mustRun()`, and `restart()` methods of the `Process` class + * added a second `array $env = []` argument to the `start()` method of the + `PhpProcess` class + * the `ProcessUtils::escapeArgument()` method has been removed + * the `areEnvironmentVariablesInherited()`, `getOptions()`, and `setOptions()` + methods of the `Process` class have been removed + * support for passing `proc_open()` options has been removed + * removed the `ProcessBuilder` class, use the `Process` class instead + * removed the `getEnhanceWindowsCompatibility()` and `setEnhanceWindowsCompatibility()` methods of the `Process` class + * passing a not existing working directory to the constructor of the `Symfony\Component\Process\Process` class is not + supported anymore + +3.4.0 +----- + + * deprecated the ProcessBuilder class + * deprecated calling `Process::start()` without setting a valid working directory beforehand (via `setWorkingDirectory()` or constructor) + +3.3.0 +----- + + * added command line arrays in the `Process` class + * added `$env` argument to `Process::start()`, `run()`, `mustRun()` and `restart()` methods + * deprecated the `ProcessUtils::escapeArgument()` method + * deprecated not inheriting environment variables + * deprecated configuring `proc_open()` options + * deprecated configuring enhanced Windows compatibility + * deprecated configuring enhanced sigchild compatibility + +2.5.0 +----- + + * added support for PTY mode + * added the convenience method "mustRun" + * deprecation: Process::setStdin() is deprecated in favor of Process::setInput() + * deprecation: Process::getStdin() is deprecated in favor of Process::getInput() + * deprecation: Process::setInput() and ProcessBuilder::setInput() do not accept non-scalar types + +2.4.0 +----- + + * added the ability to define an idle timeout + +2.3.0 +----- + + * added ProcessUtils::escapeArgument() to fix the bug in escapeshellarg() function on Windows + * added Process::signal() + * added Process::getPid() + * added support for a TTY mode + +2.2.0 +----- + + * added ProcessBuilder::setArguments() to reset the arguments on a builder + * added a way to retrieve the standard and error output incrementally + * added Process:restart() + +2.1.0 +----- + + * added support for non-blocking processes (start(), wait(), isRunning(), stop()) + * enhanced Windows compatibility + * added Process::getExitCodeText() that returns a string representation for + the exit code returned by the process + * added ProcessBuilder diff --git a/vendor/symfony/process/Exception/ExceptionInterface.php b/vendor/symfony/process/Exception/ExceptionInterface.php new file mode 100644 index 000000000..bd4a60403 --- /dev/null +++ b/vendor/symfony/process/Exception/ExceptionInterface.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Exception; + +/** + * Marker Interface for the Process Component. + * + * @author Johannes M. Schmitt + */ +interface ExceptionInterface extends \Throwable +{ +} diff --git a/vendor/symfony/process/Exception/InvalidArgumentException.php b/vendor/symfony/process/Exception/InvalidArgumentException.php new file mode 100644 index 000000000..926ee2118 --- /dev/null +++ b/vendor/symfony/process/Exception/InvalidArgumentException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Exception; + +/** + * InvalidArgumentException for the Process Component. + * + * @author Romain Neutron + */ +class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/process/Exception/LogicException.php b/vendor/symfony/process/Exception/LogicException.php new file mode 100644 index 000000000..be3d490dd --- /dev/null +++ b/vendor/symfony/process/Exception/LogicException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Exception; + +/** + * LogicException for the Process Component. + * + * @author Romain Neutron + */ +class LogicException extends \LogicException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/process/Exception/ProcessFailedException.php b/vendor/symfony/process/Exception/ProcessFailedException.php new file mode 100644 index 000000000..328acfde5 --- /dev/null +++ b/vendor/symfony/process/Exception/ProcessFailedException.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Exception; + +use Symfony\Component\Process\Process; + +/** + * Exception for failed processes. + * + * @author Johannes M. Schmitt + */ +class ProcessFailedException extends RuntimeException +{ + private $process; + + public function __construct(Process $process) + { + if ($process->isSuccessful()) { + throw new InvalidArgumentException('Expected a failed process, but the given process was successful.'); + } + + $error = sprintf('The command "%s" failed.'."\n\nExit Code: %s(%s)\n\nWorking directory: %s", + $process->getCommandLine(), + $process->getExitCode(), + $process->getExitCodeText(), + $process->getWorkingDirectory() + ); + + if (!$process->isOutputDisabled()) { + $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", + $process->getOutput(), + $process->getErrorOutput() + ); + } + + parent::__construct($error); + + $this->process = $process; + } + + public function getProcess() + { + return $this->process; + } +} diff --git a/vendor/symfony/process/Exception/ProcessSignaledException.php b/vendor/symfony/process/Exception/ProcessSignaledException.php new file mode 100644 index 000000000..d4d322756 --- /dev/null +++ b/vendor/symfony/process/Exception/ProcessSignaledException.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Exception; + +use Symfony\Component\Process\Process; + +/** + * Exception that is thrown when a process has been signaled. + * + * @author Sullivan Senechal + */ +final class ProcessSignaledException extends RuntimeException +{ + private $process; + + public function __construct(Process $process) + { + $this->process = $process; + + parent::__construct(sprintf('The process has been signaled with signal "%s".', $process->getTermSignal())); + } + + public function getProcess(): Process + { + return $this->process; + } + + public function getSignal(): int + { + return $this->getProcess()->getTermSignal(); + } +} diff --git a/vendor/symfony/process/Exception/ProcessTimedOutException.php b/vendor/symfony/process/Exception/ProcessTimedOutException.php new file mode 100644 index 000000000..94391a459 --- /dev/null +++ b/vendor/symfony/process/Exception/ProcessTimedOutException.php @@ -0,0 +1,69 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Exception; + +use Symfony\Component\Process\Process; + +/** + * Exception that is thrown when a process times out. + * + * @author Johannes M. Schmitt + */ +class ProcessTimedOutException extends RuntimeException +{ + public const TYPE_GENERAL = 1; + public const TYPE_IDLE = 2; + + private $process; + private $timeoutType; + + public function __construct(Process $process, int $timeoutType) + { + $this->process = $process; + $this->timeoutType = $timeoutType; + + parent::__construct(sprintf( + 'The process "%s" exceeded the timeout of %s seconds.', + $process->getCommandLine(), + $this->getExceededTimeout() + )); + } + + public function getProcess() + { + return $this->process; + } + + public function isGeneralTimeout() + { + return self::TYPE_GENERAL === $this->timeoutType; + } + + public function isIdleTimeout() + { + return self::TYPE_IDLE === $this->timeoutType; + } + + public function getExceededTimeout() + { + switch ($this->timeoutType) { + case self::TYPE_GENERAL: + return $this->process->getTimeout(); + + case self::TYPE_IDLE: + return $this->process->getIdleTimeout(); + + default: + throw new \LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType)); + } + } +} diff --git a/vendor/symfony/yaml/Exception/RuntimeException.php b/vendor/symfony/process/Exception/RuntimeException.php old mode 100755 new mode 100644 similarity index 68% rename from vendor/symfony/yaml/Exception/RuntimeException.php rename to vendor/symfony/process/Exception/RuntimeException.php index 3f36b73be..adead2536 --- a/vendor/symfony/yaml/Exception/RuntimeException.php +++ b/vendor/symfony/process/Exception/RuntimeException.php @@ -9,12 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Yaml\Exception; +namespace Symfony\Component\Process\Exception; /** - * Exception class thrown when an error occurs during parsing. + * RuntimeException for the Process Component. * - * @author Romain Neutron + * @author Johannes M. Schmitt */ class RuntimeException extends \RuntimeException implements ExceptionInterface { diff --git a/vendor/symfony/process/ExecutableFinder.php b/vendor/symfony/process/ExecutableFinder.php new file mode 100644 index 000000000..eb8f06292 --- /dev/null +++ b/vendor/symfony/process/ExecutableFinder.php @@ -0,0 +1,86 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process; + +/** + * Generic executable finder. + * + * @author Fabien Potencier + * @author Johannes M. Schmitt + */ +class ExecutableFinder +{ + private $suffixes = ['.exe', '.bat', '.cmd', '.com']; + + /** + * Replaces default suffixes of executable. + */ + public function setSuffixes(array $suffixes) + { + $this->suffixes = $suffixes; + } + + /** + * Adds new possible suffix to check for executable. + */ + public function addSuffix(string $suffix) + { + $this->suffixes[] = $suffix; + } + + /** + * Finds an executable by name. + * + * @param string $name The executable name (without the extension) + * @param string|null $default The default to return if no executable is found + * @param array $extraDirs Additional dirs to check into + * + * @return string|null + */ + public function find(string $name, string $default = null, array $extraDirs = []) + { + if (\ini_get('open_basedir')) { + $searchPath = array_merge(explode(\PATH_SEPARATOR, \ini_get('open_basedir')), $extraDirs); + $dirs = []; + foreach ($searchPath as $path) { + // Silencing against https://bugs.php.net/69240 + if (@is_dir($path)) { + $dirs[] = $path; + } else { + if (basename($path) == $name && @is_executable($path)) { + return $path; + } + } + } + } else { + $dirs = array_merge( + explode(\PATH_SEPARATOR, getenv('PATH') ?: getenv('Path')), + $extraDirs + ); + } + + $suffixes = ['']; + if ('\\' === \DIRECTORY_SEPARATOR) { + $pathExt = getenv('PATHEXT'); + $suffixes = array_merge($pathExt ? explode(\PATH_SEPARATOR, $pathExt) : $this->suffixes, $suffixes); + } + foreach ($suffixes as $suffix) { + foreach ($dirs as $dir) { + if (@is_file($file = $dir.\DIRECTORY_SEPARATOR.$name.$suffix) && ('\\' === \DIRECTORY_SEPARATOR || @is_executable($file))) { + return $file; + } + } + } + + return $default; + } +} diff --git a/vendor/symfony/process/InputStream.php b/vendor/symfony/process/InputStream.php new file mode 100644 index 000000000..240665f32 --- /dev/null +++ b/vendor/symfony/process/InputStream.php @@ -0,0 +1,96 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process; + +use Symfony\Component\Process\Exception\RuntimeException; + +/** + * Provides a way to continuously write to the input of a Process until the InputStream is closed. + * + * @author Nicolas Grekas + * + * @implements \IteratorAggregate + */ +class InputStream implements \IteratorAggregate +{ + /** @var callable|null */ + private $onEmpty = null; + private $input = []; + private $open = true; + + /** + * Sets a callback that is called when the write buffer becomes empty. + */ + public function onEmpty(callable $onEmpty = null) + { + $this->onEmpty = $onEmpty; + } + + /** + * Appends an input to the write buffer. + * + * @param resource|string|int|float|bool|\Traversable|null $input The input to append as scalar, + * stream resource or \Traversable + */ + public function write($input) + { + if (null === $input) { + return; + } + if ($this->isClosed()) { + throw new RuntimeException(sprintf('"%s" is closed.', static::class)); + } + $this->input[] = ProcessUtils::validateInput(__METHOD__, $input); + } + + /** + * Closes the write buffer. + */ + public function close() + { + $this->open = false; + } + + /** + * Tells whether the write buffer is closed or not. + */ + public function isClosed() + { + return !$this->open; + } + + /** + * @return \Traversable + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + $this->open = true; + + while ($this->open || $this->input) { + if (!$this->input) { + yield ''; + continue; + } + $current = array_shift($this->input); + + if ($current instanceof \Iterator) { + yield from $current; + } else { + yield $current; + } + if (!$this->input && $this->open && null !== $onEmpty = $this->onEmpty) { + $this->write($onEmpty($this)); + } + } + } +} diff --git a/vendor/symfony/yaml/LICENSE b/vendor/symfony/process/LICENSE old mode 100755 new mode 100644 similarity index 95% rename from vendor/symfony/yaml/LICENSE rename to vendor/symfony/process/LICENSE index 21d7fb9e2..0138f8f07 --- a/vendor/symfony/yaml/LICENSE +++ b/vendor/symfony/process/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/process/PhpExecutableFinder.php b/vendor/symfony/process/PhpExecutableFinder.php new file mode 100644 index 000000000..bed6c3dc8 --- /dev/null +++ b/vendor/symfony/process/PhpExecutableFinder.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process; + +/** + * An executable finder specifically designed for the PHP executable. + * + * @author Fabien Potencier + * @author Johannes M. Schmitt + */ +class PhpExecutableFinder +{ + private $executableFinder; + + public function __construct() + { + $this->executableFinder = new ExecutableFinder(); + } + + /** + * Finds The PHP executable. + * + * @return string|false + */ + public function find(bool $includeArgs = true) + { + if ($php = getenv('PHP_BINARY')) { + if (!is_executable($php)) { + $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v'; + if ($php = strtok(exec($command.' '.escapeshellarg($php)), \PHP_EOL)) { + if (!is_executable($php)) { + return false; + } + } else { + return false; + } + } + + if (@is_dir($php)) { + return false; + } + + return $php; + } + + $args = $this->findArguments(); + $args = $includeArgs && $args ? ' '.implode(' ', $args) : ''; + + // PHP_BINARY return the current sapi executable + if (\PHP_BINARY && \in_array(\PHP_SAPI, ['cli', 'cli-server', 'phpdbg'], true)) { + return \PHP_BINARY.$args; + } + + if ($php = getenv('PHP_PATH')) { + if (!@is_executable($php) || @is_dir($php)) { + return false; + } + + return $php; + } + + if ($php = getenv('PHP_PEAR_PHP_BIN')) { + if (@is_executable($php) && !@is_dir($php)) { + return $php; + } + } + + if (@is_executable($php = \PHP_BINDIR.('\\' === \DIRECTORY_SEPARATOR ? '\\php.exe' : '/php')) && !@is_dir($php)) { + return $php; + } + + $dirs = [\PHP_BINDIR]; + if ('\\' === \DIRECTORY_SEPARATOR) { + $dirs[] = 'C:\xampp\php\\'; + } + + return $this->executableFinder->find('php', false, $dirs); + } + + /** + * Finds the PHP executable arguments. + * + * @return array + */ + public function findArguments() + { + $arguments = []; + if ('phpdbg' === \PHP_SAPI) { + $arguments[] = '-qrr'; + } + + return $arguments; + } +} diff --git a/vendor/symfony/process/PhpProcess.php b/vendor/symfony/process/PhpProcess.php new file mode 100644 index 000000000..2bc338e5e --- /dev/null +++ b/vendor/symfony/process/PhpProcess.php @@ -0,0 +1,72 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process; + +use Symfony\Component\Process\Exception\LogicException; +use Symfony\Component\Process\Exception\RuntimeException; + +/** + * PhpProcess runs a PHP script in an independent process. + * + * $p = new PhpProcess(''); + * $p->run(); + * print $p->getOutput()."\n"; + * + * @author Fabien Potencier + */ +class PhpProcess extends Process +{ + /** + * @param string $script The PHP script to run (as a string) + * @param string|null $cwd The working directory or null to use the working dir of the current PHP process + * @param array|null $env The environment variables or null to use the same environment as the current PHP process + * @param int $timeout The timeout in seconds + * @param array|null $php Path to the PHP binary to use with any additional arguments + */ + public function __construct(string $script, string $cwd = null, array $env = null, int $timeout = 60, array $php = null) + { + if (null === $php) { + $executableFinder = new PhpExecutableFinder(); + $php = $executableFinder->find(false); + $php = false === $php ? null : array_merge([$php], $executableFinder->findArguments()); + } + if ('phpdbg' === \PHP_SAPI) { + $file = tempnam(sys_get_temp_dir(), 'dbg'); + file_put_contents($file, $script); + register_shutdown_function('unlink', $file); + $php[] = $file; + $script = null; + } + + parent::__construct($php, $cwd, $env, $script, $timeout); + } + + /** + * {@inheritdoc} + */ + public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60) + { + throw new LogicException(sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); + } + + /** + * {@inheritdoc} + */ + public function start(callable $callback = null, array $env = []) + { + if (null === $this->getCommandLine()) { + throw new RuntimeException('Unable to find the PHP executable.'); + } + + parent::start($callback, $env); + } +} diff --git a/vendor/symfony/process/Pipes/AbstractPipes.php b/vendor/symfony/process/Pipes/AbstractPipes.php new file mode 100644 index 000000000..656dc0328 --- /dev/null +++ b/vendor/symfony/process/Pipes/AbstractPipes.php @@ -0,0 +1,180 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Pipes; + +use Symfony\Component\Process\Exception\InvalidArgumentException; + +/** + * @author Romain Neutron + * + * @internal + */ +abstract class AbstractPipes implements PipesInterface +{ + public $pipes = []; + + private $inputBuffer = ''; + private $input; + private $blocked = true; + private $lastError; + + /** + * @param resource|string|int|float|bool|\Iterator|null $input + */ + public function __construct($input) + { + if (\is_resource($input) || $input instanceof \Iterator) { + $this->input = $input; + } elseif (\is_string($input)) { + $this->inputBuffer = $input; + } else { + $this->inputBuffer = (string) $input; + } + } + + /** + * {@inheritdoc} + */ + public function close() + { + foreach ($this->pipes as $pipe) { + if (\is_resource($pipe)) { + fclose($pipe); + } + } + $this->pipes = []; + } + + /** + * Returns true if a system call has been interrupted. + */ + protected function hasSystemCallBeenInterrupted(): bool + { + $lastError = $this->lastError; + $this->lastError = null; + + // stream_select returns false when the `select` system call is interrupted by an incoming signal + return null !== $lastError && false !== stripos($lastError, 'interrupted system call'); + } + + /** + * Unblocks streams. + */ + protected function unblock() + { + if (!$this->blocked) { + return; + } + + foreach ($this->pipes as $pipe) { + stream_set_blocking($pipe, 0); + } + if (\is_resource($this->input)) { + stream_set_blocking($this->input, 0); + } + + $this->blocked = false; + } + + /** + * Writes input to stdin. + * + * @throws InvalidArgumentException When an input iterator yields a non supported value + */ + protected function write(): ?array + { + if (!isset($this->pipes[0])) { + return null; + } + $input = $this->input; + + if ($input instanceof \Iterator) { + if (!$input->valid()) { + $input = null; + } elseif (\is_resource($input = $input->current())) { + stream_set_blocking($input, 0); + } elseif (!isset($this->inputBuffer[0])) { + if (!\is_string($input)) { + if (!\is_scalar($input)) { + throw new InvalidArgumentException(sprintf('"%s" yielded a value of type "%s", but only scalars and stream resources are supported.', get_debug_type($this->input), get_debug_type($input))); + } + $input = (string) $input; + } + $this->inputBuffer = $input; + $this->input->next(); + $input = null; + } else { + $input = null; + } + } + + $r = $e = []; + $w = [$this->pipes[0]]; + + // let's have a look if something changed in streams + if (false === @stream_select($r, $w, $e, 0, 0)) { + return null; + } + + foreach ($w as $stdin) { + if (isset($this->inputBuffer[0])) { + $written = fwrite($stdin, $this->inputBuffer); + $this->inputBuffer = substr($this->inputBuffer, $written); + if (isset($this->inputBuffer[0])) { + return [$this->pipes[0]]; + } + } + + if ($input) { + while (true) { + $data = fread($input, self::CHUNK_SIZE); + if (!isset($data[0])) { + break; + } + $written = fwrite($stdin, $data); + $data = substr($data, $written); + if (isset($data[0])) { + $this->inputBuffer = $data; + + return [$this->pipes[0]]; + } + } + if (feof($input)) { + if ($this->input instanceof \Iterator) { + $this->input->next(); + } else { + $this->input = null; + } + } + } + } + + // no input to read on resource, buffer is empty + if (!isset($this->inputBuffer[0]) && !($this->input instanceof \Iterator ? $this->input->valid() : $this->input)) { + $this->input = null; + fclose($this->pipes[0]); + unset($this->pipes[0]); + } elseif (!$w) { + return [$this->pipes[0]]; + } + + return null; + } + + /** + * @internal + */ + public function handleError(int $type, string $msg) + { + $this->lastError = $msg; + } +} diff --git a/vendor/symfony/process/Pipes/PipesInterface.php b/vendor/symfony/process/Pipes/PipesInterface.php new file mode 100644 index 000000000..50eb5c47e --- /dev/null +++ b/vendor/symfony/process/Pipes/PipesInterface.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Pipes; + +/** + * PipesInterface manages descriptors and pipes for the use of proc_open. + * + * @author Romain Neutron + * + * @internal + */ +interface PipesInterface +{ + public const CHUNK_SIZE = 16384; + + /** + * Returns an array of descriptors for the use of proc_open. + */ + public function getDescriptors(): array; + + /** + * Returns an array of filenames indexed by their related stream in case these pipes use temporary files. + * + * @return string[] + */ + public function getFiles(): array; + + /** + * Reads data in file handles and pipes. + * + * @param bool $blocking Whether to use blocking calls or not + * @param bool $close Whether to close pipes if they've reached EOF + * + * @return string[] An array of read data indexed by their fd + */ + public function readAndWrite(bool $blocking, bool $close = false): array; + + /** + * Returns if the current state has open file handles or pipes. + */ + public function areOpen(): bool; + + /** + * Returns if pipes are able to read output. + */ + public function haveReadSupport(): bool; + + /** + * Closes file handles and pipes. + */ + public function close(); +} diff --git a/vendor/symfony/process/Pipes/UnixPipes.php b/vendor/symfony/process/Pipes/UnixPipes.php new file mode 100644 index 000000000..5a0e9d47f --- /dev/null +++ b/vendor/symfony/process/Pipes/UnixPipes.php @@ -0,0 +1,163 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Pipes; + +use Symfony\Component\Process\Process; + +/** + * UnixPipes implementation uses unix pipes as handles. + * + * @author Romain Neutron + * + * @internal + */ +class UnixPipes extends AbstractPipes +{ + private $ttyMode; + private $ptyMode; + private $haveReadSupport; + + public function __construct(?bool $ttyMode, bool $ptyMode, $input, bool $haveReadSupport) + { + $this->ttyMode = $ttyMode; + $this->ptyMode = $ptyMode; + $this->haveReadSupport = $haveReadSupport; + + parent::__construct($input); + } + + public function __sleep(): array + { + throw new \BadMethodCallException('Cannot serialize '.__CLASS__); + } + + public function __wakeup() + { + throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); + } + + public function __destruct() + { + $this->close(); + } + + /** + * {@inheritdoc} + */ + public function getDescriptors(): array + { + if (!$this->haveReadSupport) { + $nullstream = fopen('/dev/null', 'c'); + + return [ + ['pipe', 'r'], + $nullstream, + $nullstream, + ]; + } + + if ($this->ttyMode) { + return [ + ['file', '/dev/tty', 'r'], + ['file', '/dev/tty', 'w'], + ['file', '/dev/tty', 'w'], + ]; + } + + if ($this->ptyMode && Process::isPtySupported()) { + return [ + ['pty'], + ['pty'], + ['pty'], + ]; + } + + return [ + ['pipe', 'r'], + ['pipe', 'w'], // stdout + ['pipe', 'w'], // stderr + ]; + } + + /** + * {@inheritdoc} + */ + public function getFiles(): array + { + return []; + } + + /** + * {@inheritdoc} + */ + public function readAndWrite(bool $blocking, bool $close = false): array + { + $this->unblock(); + $w = $this->write(); + + $read = $e = []; + $r = $this->pipes; + unset($r[0]); + + // let's have a look if something changed in streams + set_error_handler([$this, 'handleError']); + if (($r || $w) && false === stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1E6 : 0)) { + restore_error_handler(); + // if a system call has been interrupted, forget about it, let's try again + // otherwise, an error occurred, let's reset pipes + if (!$this->hasSystemCallBeenInterrupted()) { + $this->pipes = []; + } + + return $read; + } + restore_error_handler(); + + foreach ($r as $pipe) { + // prior PHP 5.4 the array passed to stream_select is modified and + // lose key association, we have to find back the key + $read[$type = array_search($pipe, $this->pipes, true)] = ''; + + do { + $data = @fread($pipe, self::CHUNK_SIZE); + $read[$type] .= $data; + } while (isset($data[0]) && ($close || isset($data[self::CHUNK_SIZE - 1]))); + + if (!isset($read[$type][0])) { + unset($read[$type]); + } + + if ($close && feof($pipe)) { + fclose($pipe); + unset($this->pipes[$type]); + } + } + + return $read; + } + + /** + * {@inheritdoc} + */ + public function haveReadSupport(): bool + { + return $this->haveReadSupport; + } + + /** + * {@inheritdoc} + */ + public function areOpen(): bool + { + return (bool) $this->pipes; + } +} diff --git a/vendor/symfony/process/Pipes/WindowsPipes.php b/vendor/symfony/process/Pipes/WindowsPipes.php new file mode 100644 index 000000000..bca84f574 --- /dev/null +++ b/vendor/symfony/process/Pipes/WindowsPipes.php @@ -0,0 +1,204 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process\Pipes; + +use Symfony\Component\Process\Exception\RuntimeException; +use Symfony\Component\Process\Process; + +/** + * WindowsPipes implementation uses temporary files as handles. + * + * @see https://bugs.php.net/51800 + * @see https://bugs.php.net/65650 + * + * @author Romain Neutron + * + * @internal + */ +class WindowsPipes extends AbstractPipes +{ + private $files = []; + private $fileHandles = []; + private $lockHandles = []; + private $readBytes = [ + Process::STDOUT => 0, + Process::STDERR => 0, + ]; + private $haveReadSupport; + + public function __construct($input, bool $haveReadSupport) + { + $this->haveReadSupport = $haveReadSupport; + + if ($this->haveReadSupport) { + // Fix for PHP bug #51800: reading from STDOUT pipe hangs forever on Windows if the output is too big. + // Workaround for this problem is to use temporary files instead of pipes on Windows platform. + // + // @see https://bugs.php.net/51800 + $pipes = [ + Process::STDOUT => Process::OUT, + Process::STDERR => Process::ERR, + ]; + $tmpDir = sys_get_temp_dir(); + $lastError = 'unknown reason'; + set_error_handler(function ($type, $msg) use (&$lastError) { $lastError = $msg; }); + for ($i = 0;; ++$i) { + foreach ($pipes as $pipe => $name) { + $file = sprintf('%s\\sf_proc_%02X.%s', $tmpDir, $i, $name); + + if (!$h = fopen($file.'.lock', 'w')) { + if (file_exists($file.'.lock')) { + continue 2; + } + restore_error_handler(); + throw new RuntimeException('A temporary file could not be opened to write the process output: '.$lastError); + } + if (!flock($h, \LOCK_EX | \LOCK_NB)) { + continue 2; + } + if (isset($this->lockHandles[$pipe])) { + flock($this->lockHandles[$pipe], \LOCK_UN); + fclose($this->lockHandles[$pipe]); + } + $this->lockHandles[$pipe] = $h; + + if (!($h = fopen($file, 'w')) || !fclose($h) || !$h = fopen($file, 'r')) { + flock($this->lockHandles[$pipe], \LOCK_UN); + fclose($this->lockHandles[$pipe]); + unset($this->lockHandles[$pipe]); + continue 2; + } + $this->fileHandles[$pipe] = $h; + $this->files[$pipe] = $file; + } + break; + } + restore_error_handler(); + } + + parent::__construct($input); + } + + public function __sleep(): array + { + throw new \BadMethodCallException('Cannot serialize '.__CLASS__); + } + + public function __wakeup() + { + throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); + } + + public function __destruct() + { + $this->close(); + } + + /** + * {@inheritdoc} + */ + public function getDescriptors(): array + { + if (!$this->haveReadSupport) { + $nullstream = fopen('NUL', 'c'); + + return [ + ['pipe', 'r'], + $nullstream, + $nullstream, + ]; + } + + // We're not using pipe on Windows platform as it hangs (https://bugs.php.net/51800) + // We're not using file handles as it can produce corrupted output https://bugs.php.net/65650 + // So we redirect output within the commandline and pass the nul device to the process + return [ + ['pipe', 'r'], + ['file', 'NUL', 'w'], + ['file', 'NUL', 'w'], + ]; + } + + /** + * {@inheritdoc} + */ + public function getFiles(): array + { + return $this->files; + } + + /** + * {@inheritdoc} + */ + public function readAndWrite(bool $blocking, bool $close = false): array + { + $this->unblock(); + $w = $this->write(); + $read = $r = $e = []; + + if ($blocking) { + if ($w) { + @stream_select($r, $w, $e, 0, Process::TIMEOUT_PRECISION * 1E6); + } elseif ($this->fileHandles) { + usleep(Process::TIMEOUT_PRECISION * 1E6); + } + } + foreach ($this->fileHandles as $type => $fileHandle) { + $data = stream_get_contents($fileHandle, -1, $this->readBytes[$type]); + + if (isset($data[0])) { + $this->readBytes[$type] += \strlen($data); + $read[$type] = $data; + } + if ($close) { + ftruncate($fileHandle, 0); + fclose($fileHandle); + flock($this->lockHandles[$type], \LOCK_UN); + fclose($this->lockHandles[$type]); + unset($this->fileHandles[$type], $this->lockHandles[$type]); + } + } + + return $read; + } + + /** + * {@inheritdoc} + */ + public function haveReadSupport(): bool + { + return $this->haveReadSupport; + } + + /** + * {@inheritdoc} + */ + public function areOpen(): bool + { + return $this->pipes && $this->fileHandles; + } + + /** + * {@inheritdoc} + */ + public function close() + { + parent::close(); + foreach ($this->fileHandles as $type => $handle) { + ftruncate($handle, 0); + fclose($handle); + flock($this->lockHandles[$type], \LOCK_UN); + fclose($this->lockHandles[$type]); + } + $this->fileHandles = $this->lockHandles = []; + } +} diff --git a/vendor/symfony/process/Process.php b/vendor/symfony/process/Process.php new file mode 100644 index 000000000..9b19475ac --- /dev/null +++ b/vendor/symfony/process/Process.php @@ -0,0 +1,1652 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process; + +use Symfony\Component\Process\Exception\InvalidArgumentException; +use Symfony\Component\Process\Exception\LogicException; +use Symfony\Component\Process\Exception\ProcessFailedException; +use Symfony\Component\Process\Exception\ProcessSignaledException; +use Symfony\Component\Process\Exception\ProcessTimedOutException; +use Symfony\Component\Process\Exception\RuntimeException; +use Symfony\Component\Process\Pipes\PipesInterface; +use Symfony\Component\Process\Pipes\UnixPipes; +use Symfony\Component\Process\Pipes\WindowsPipes; + +/** + * Process is a thin wrapper around proc_* functions to easily + * start independent PHP processes. + * + * @author Fabien Potencier + * @author Romain Neutron + * + * @implements \IteratorAggregate + */ +class Process implements \IteratorAggregate +{ + public const ERR = 'err'; + public const OUT = 'out'; + + public const STATUS_READY = 'ready'; + public const STATUS_STARTED = 'started'; + public const STATUS_TERMINATED = 'terminated'; + + public const STDIN = 0; + public const STDOUT = 1; + public const STDERR = 2; + + // Timeout Precision in seconds. + public const TIMEOUT_PRECISION = 0.2; + + public const ITER_NON_BLOCKING = 1; // By default, iterating over outputs is a blocking call, use this flag to make it non-blocking + public const ITER_KEEP_OUTPUT = 2; // By default, outputs are cleared while iterating, use this flag to keep them in memory + public const ITER_SKIP_OUT = 4; // Use this flag to skip STDOUT while iterating + public const ITER_SKIP_ERR = 8; // Use this flag to skip STDERR while iterating + + private $callback; + private $hasCallback = false; + private $commandline; + private $cwd; + private $env = []; + private $input; + private $starttime; + private $lastOutputTime; + private $timeout; + private $idleTimeout; + private $exitcode; + private $fallbackStatus = []; + private $processInformation; + private $outputDisabled = false; + private $stdout; + private $stderr; + private $process; + private $status = self::STATUS_READY; + private $incrementalOutputOffset = 0; + private $incrementalErrorOutputOffset = 0; + private $tty = false; + private $pty; + private $options = ['suppress_errors' => true, 'bypass_shell' => true]; + + private $useFileHandles = false; + /** @var PipesInterface */ + private $processPipes; + + private $latestSignal; + + private static $sigchild; + + /** + * Exit codes translation table. + * + * User-defined errors must use exit codes in the 64-113 range. + */ + public static $exitCodes = [ + 0 => 'OK', + 1 => 'General error', + 2 => 'Misuse of shell builtins', + + 126 => 'Invoked command cannot execute', + 127 => 'Command not found', + 128 => 'Invalid exit argument', + + // signals + 129 => 'Hangup', + 130 => 'Interrupt', + 131 => 'Quit and dump core', + 132 => 'Illegal instruction', + 133 => 'Trace/breakpoint trap', + 134 => 'Process aborted', + 135 => 'Bus error: "access to undefined portion of memory object"', + 136 => 'Floating point exception: "erroneous arithmetic operation"', + 137 => 'Kill (terminate immediately)', + 138 => 'User-defined 1', + 139 => 'Segmentation violation', + 140 => 'User-defined 2', + 141 => 'Write to pipe with no one reading', + 142 => 'Signal raised by alarm', + 143 => 'Termination (request to terminate)', + // 144 - not defined + 145 => 'Child process terminated, stopped (or continued*)', + 146 => 'Continue if stopped', + 147 => 'Stop executing temporarily', + 148 => 'Terminal stop signal', + 149 => 'Background process attempting to read from tty ("in")', + 150 => 'Background process attempting to write to tty ("out")', + 151 => 'Urgent data available on socket', + 152 => 'CPU time limit exceeded', + 153 => 'File size limit exceeded', + 154 => 'Signal raised by timer counting virtual time: "virtual timer expired"', + 155 => 'Profiling timer expired', + // 156 - not defined + 157 => 'Pollable event', + // 158 - not defined + 159 => 'Bad syscall', + ]; + + /** + * @param array $command The command to run and its arguments listed as separate entries + * @param string|null $cwd The working directory or null to use the working dir of the current PHP process + * @param array|null $env The environment variables or null to use the same environment as the current PHP process + * @param mixed $input The input as stream resource, scalar or \Traversable, or null for no input + * @param int|float|null $timeout The timeout in seconds or null to disable + * + * @throws LogicException When proc_open is not installed + */ + public function __construct(array $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60) + { + if (!\function_exists('proc_open')) { + throw new LogicException('The Process class relies on proc_open, which is not available on your PHP installation.'); + } + + $this->commandline = $command; + $this->cwd = $cwd; + + // on Windows, if the cwd changed via chdir(), proc_open defaults to the dir where PHP was started + // on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected + // @see : https://bugs.php.net/51800 + // @see : https://bugs.php.net/50524 + if (null === $this->cwd && (\defined('ZEND_THREAD_SAFE') || '\\' === \DIRECTORY_SEPARATOR)) { + $this->cwd = getcwd(); + } + if (null !== $env) { + $this->setEnv($env); + } + + $this->setInput($input); + $this->setTimeout($timeout); + $this->useFileHandles = '\\' === \DIRECTORY_SEPARATOR; + $this->pty = false; + } + + /** + * Creates a Process instance as a command-line to be run in a shell wrapper. + * + * Command-lines are parsed by the shell of your OS (/bin/sh on Unix-like, cmd.exe on Windows.) + * This allows using e.g. pipes or conditional execution. In this mode, signals are sent to the + * shell wrapper and not to your commands. + * + * In order to inject dynamic values into command-lines, we strongly recommend using placeholders. + * This will save escaping values, which is not portable nor secure anyway: + * + * $process = Process::fromShellCommandline('my_command "${:MY_VAR}"'); + * $process->run(null, ['MY_VAR' => $theValue]); + * + * @param string $command The command line to pass to the shell of the OS + * @param string|null $cwd The working directory or null to use the working dir of the current PHP process + * @param array|null $env The environment variables or null to use the same environment as the current PHP process + * @param mixed $input The input as stream resource, scalar or \Traversable, or null for no input + * @param int|float|null $timeout The timeout in seconds or null to disable + * + * @return static + * + * @throws LogicException When proc_open is not installed + */ + public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60) + { + $process = new static([], $cwd, $env, $input, $timeout); + $process->commandline = $command; + + return $process; + } + + /** + * @return array + */ + public function __sleep() + { + throw new \BadMethodCallException('Cannot serialize '.__CLASS__); + } + + public function __wakeup() + { + throw new \BadMethodCallException('Cannot unserialize '.__CLASS__); + } + + public function __destruct() + { + if ($this->options['create_new_console'] ?? false) { + $this->processPipes->close(); + } else { + $this->stop(0); + } + } + + public function __clone() + { + $this->resetProcessData(); + } + + /** + * Runs the process. + * + * The callback receives the type of output (out or err) and + * some bytes from the output in real-time. It allows to have feedback + * from the independent process during execution. + * + * The STDOUT and STDERR are also available after the process is finished + * via the getOutput() and getErrorOutput() methods. + * + * @param callable|null $callback A PHP callback to run whenever there is some + * output available on STDOUT or STDERR + * + * @return int The exit status code + * + * @throws RuntimeException When process can't be launched + * @throws RuntimeException When process is already running + * @throws ProcessTimedOutException When process timed out + * @throws ProcessSignaledException When process stopped after receiving signal + * @throws LogicException In case a callback is provided and output has been disabled + * + * @final + */ + public function run(callable $callback = null, array $env = []): int + { + $this->start($callback, $env); + + return $this->wait(); + } + + /** + * Runs the process. + * + * This is identical to run() except that an exception is thrown if the process + * exits with a non-zero exit code. + * + * @return $this + * + * @throws ProcessFailedException if the process didn't terminate successfully + * + * @final + */ + public function mustRun(callable $callback = null, array $env = []): self + { + if (0 !== $this->run($callback, $env)) { + throw new ProcessFailedException($this); + } + + return $this; + } + + /** + * Starts the process and returns after writing the input to STDIN. + * + * This method blocks until all STDIN data is sent to the process then it + * returns while the process runs in the background. + * + * The termination of the process can be awaited with wait(). + * + * The callback receives the type of output (out or err) and some bytes from + * the output in real-time while writing the standard input to the process. + * It allows to have feedback from the independent process during execution. + * + * @param callable|null $callback A PHP callback to run whenever there is some + * output available on STDOUT or STDERR + * + * @throws RuntimeException When process can't be launched + * @throws RuntimeException When process is already running + * @throws LogicException In case a callback is provided and output has been disabled + */ + public function start(callable $callback = null, array $env = []) + { + if ($this->isRunning()) { + throw new RuntimeException('Process is already running.'); + } + + $this->resetProcessData(); + $this->starttime = $this->lastOutputTime = microtime(true); + $this->callback = $this->buildCallback($callback); + $this->hasCallback = null !== $callback; + $descriptors = $this->getDescriptors(); + + if ($this->env) { + $env += '\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($this->env, $env, 'strcasecmp') : $this->env; + } + + $env += '\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($this->getDefaultEnv(), $env, 'strcasecmp') : $this->getDefaultEnv(); + + if (\is_array($commandline = $this->commandline)) { + $commandline = implode(' ', array_map([$this, 'escapeArgument'], $commandline)); + + if ('\\' !== \DIRECTORY_SEPARATOR) { + // exec is mandatory to deal with sending a signal to the process + $commandline = 'exec '.$commandline; + } + } else { + $commandline = $this->replacePlaceholders($commandline, $env); + } + + if ('\\' === \DIRECTORY_SEPARATOR) { + $commandline = $this->prepareWindowsCommandLine($commandline, $env); + } elseif (!$this->useFileHandles && $this->isSigchildEnabled()) { + // last exit code is output on the fourth pipe and caught to work around --enable-sigchild + $descriptors[3] = ['pipe', 'w']; + + // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input + $commandline = '{ ('.$commandline.') <&3 3<&- 3>/dev/null & } 3<&0;'; + $commandline .= 'pid=$!; echo $pid >&3; wait $pid; code=$?; echo $code >&3; exit $code'; + + // Workaround for the bug, when PTS functionality is enabled. + // @see : https://bugs.php.net/69442 + $ptsWorkaround = fopen(__FILE__, 'r'); + } + + $envPairs = []; + foreach ($env as $k => $v) { + if (false !== $v && false === \in_array($k, ['argc', 'argv', 'ARGC', 'ARGV'], true)) { + $envPairs[] = $k.'='.$v; + } + } + + if (!is_dir($this->cwd)) { + throw new RuntimeException(sprintf('The provided cwd "%s" does not exist.', $this->cwd)); + } + + $this->process = @proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); + + if (!\is_resource($this->process)) { + throw new RuntimeException('Unable to launch a new process.'); + } + $this->status = self::STATUS_STARTED; + + if (isset($descriptors[3])) { + $this->fallbackStatus['pid'] = (int) fgets($this->processPipes->pipes[3]); + } + + if ($this->tty) { + return; + } + + $this->updateStatus(false); + $this->checkTimeout(); + } + + /** + * Restarts the process. + * + * Be warned that the process is cloned before being started. + * + * @param callable|null $callback A PHP callback to run whenever there is some + * output available on STDOUT or STDERR + * + * @return static + * + * @throws RuntimeException When process can't be launched + * @throws RuntimeException When process is already running + * + * @see start() + * + * @final + */ + public function restart(callable $callback = null, array $env = []): self + { + if ($this->isRunning()) { + throw new RuntimeException('Process is already running.'); + } + + $process = clone $this; + $process->start($callback, $env); + + return $process; + } + + /** + * Waits for the process to terminate. + * + * The callback receives the type of output (out or err) and some bytes + * from the output in real-time while writing the standard input to the process. + * It allows to have feedback from the independent process during execution. + * + * @param callable|null $callback A valid PHP callback + * + * @return int The exitcode of the process + * + * @throws ProcessTimedOutException When process timed out + * @throws ProcessSignaledException When process stopped after receiving signal + * @throws LogicException When process is not yet started + */ + public function wait(callable $callback = null) + { + $this->requireProcessIsStarted(__FUNCTION__); + + $this->updateStatus(false); + + if (null !== $callback) { + if (!$this->processPipes->haveReadSupport()) { + $this->stop(0); + throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::wait".'); + } + $this->callback = $this->buildCallback($callback); + } + + do { + $this->checkTimeout(); + $running = $this->isRunning() && ('\\' === \DIRECTORY_SEPARATOR || $this->processPipes->areOpen()); + $this->readPipes($running, '\\' !== \DIRECTORY_SEPARATOR || !$running); + } while ($running); + + while ($this->isRunning()) { + $this->checkTimeout(); + usleep(1000); + } + + if ($this->processInformation['signaled'] && $this->processInformation['termsig'] !== $this->latestSignal) { + throw new ProcessSignaledException($this); + } + + return $this->exitcode; + } + + /** + * Waits until the callback returns true. + * + * The callback receives the type of output (out or err) and some bytes + * from the output in real-time while writing the standard input to the process. + * It allows to have feedback from the independent process during execution. + * + * @throws RuntimeException When process timed out + * @throws LogicException When process is not yet started + * @throws ProcessTimedOutException In case the timeout was reached + */ + public function waitUntil(callable $callback): bool + { + $this->requireProcessIsStarted(__FUNCTION__); + $this->updateStatus(false); + + if (!$this->processPipes->haveReadSupport()) { + $this->stop(0); + throw new LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::waitUntil".'); + } + $callback = $this->buildCallback($callback); + + $ready = false; + while (true) { + $this->checkTimeout(); + $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen(); + $output = $this->processPipes->readAndWrite($running, '\\' !== \DIRECTORY_SEPARATOR || !$running); + + foreach ($output as $type => $data) { + if (3 !== $type) { + $ready = $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data) || $ready; + } elseif (!isset($this->fallbackStatus['signaled'])) { + $this->fallbackStatus['exitcode'] = (int) $data; + } + } + if ($ready) { + return true; + } + if (!$running) { + return false; + } + + usleep(1000); + } + } + + /** + * Returns the Pid (process identifier), if applicable. + * + * @return int|null The process id if running, null otherwise + */ + public function getPid() + { + return $this->isRunning() ? $this->processInformation['pid'] : null; + } + + /** + * Sends a POSIX signal to the process. + * + * @param int $signal A valid POSIX signal (see https://php.net/pcntl.constants) + * + * @return $this + * + * @throws LogicException In case the process is not running + * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed + * @throws RuntimeException In case of failure + */ + public function signal(int $signal) + { + $this->doSignal($signal, true); + + return $this; + } + + /** + * Disables fetching output and error output from the underlying process. + * + * @return $this + * + * @throws RuntimeException In case the process is already running + * @throws LogicException if an idle timeout is set + */ + public function disableOutput() + { + if ($this->isRunning()) { + throw new RuntimeException('Disabling output while the process is running is not possible.'); + } + if (null !== $this->idleTimeout) { + throw new LogicException('Output cannot be disabled while an idle timeout is set.'); + } + + $this->outputDisabled = true; + + return $this; + } + + /** + * Enables fetching output and error output from the underlying process. + * + * @return $this + * + * @throws RuntimeException In case the process is already running + */ + public function enableOutput() + { + if ($this->isRunning()) { + throw new RuntimeException('Enabling output while the process is running is not possible.'); + } + + $this->outputDisabled = false; + + return $this; + } + + /** + * Returns true in case the output is disabled, false otherwise. + * + * @return bool + */ + public function isOutputDisabled() + { + return $this->outputDisabled; + } + + /** + * Returns the current output of the process (STDOUT). + * + * @return string + * + * @throws LogicException in case the output has been disabled + * @throws LogicException In case the process is not started + */ + public function getOutput() + { + $this->readPipesForOutput(__FUNCTION__); + + if (false === $ret = stream_get_contents($this->stdout, -1, 0)) { + return ''; + } + + return $ret; + } + + /** + * Returns the output incrementally. + * + * In comparison with the getOutput method which always return the whole + * output, this one returns the new output since the last call. + * + * @return string + * + * @throws LogicException in case the output has been disabled + * @throws LogicException In case the process is not started + */ + public function getIncrementalOutput() + { + $this->readPipesForOutput(__FUNCTION__); + + $latest = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset); + $this->incrementalOutputOffset = ftell($this->stdout); + + if (false === $latest) { + return ''; + } + + return $latest; + } + + /** + * Returns an iterator to the output of the process, with the output type as keys (Process::OUT/ERR). + * + * @param int $flags A bit field of Process::ITER_* flags + * + * @return \Generator + * + * @throws LogicException in case the output has been disabled + * @throws LogicException In case the process is not started + */ + #[\ReturnTypeWillChange] + public function getIterator(int $flags = 0) + { + $this->readPipesForOutput(__FUNCTION__, false); + + $clearOutput = !(self::ITER_KEEP_OUTPUT & $flags); + $blocking = !(self::ITER_NON_BLOCKING & $flags); + $yieldOut = !(self::ITER_SKIP_OUT & $flags); + $yieldErr = !(self::ITER_SKIP_ERR & $flags); + + while (null !== $this->callback || ($yieldOut && !feof($this->stdout)) || ($yieldErr && !feof($this->stderr))) { + if ($yieldOut) { + $out = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset); + + if (isset($out[0])) { + if ($clearOutput) { + $this->clearOutput(); + } else { + $this->incrementalOutputOffset = ftell($this->stdout); + } + + yield self::OUT => $out; + } + } + + if ($yieldErr) { + $err = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset); + + if (isset($err[0])) { + if ($clearOutput) { + $this->clearErrorOutput(); + } else { + $this->incrementalErrorOutputOffset = ftell($this->stderr); + } + + yield self::ERR => $err; + } + } + + if (!$blocking && !isset($out[0]) && !isset($err[0])) { + yield self::OUT => ''; + } + + $this->checkTimeout(); + $this->readPipesForOutput(__FUNCTION__, $blocking); + } + } + + /** + * Clears the process output. + * + * @return $this + */ + public function clearOutput() + { + ftruncate($this->stdout, 0); + fseek($this->stdout, 0); + $this->incrementalOutputOffset = 0; + + return $this; + } + + /** + * Returns the current error output of the process (STDERR). + * + * @return string + * + * @throws LogicException in case the output has been disabled + * @throws LogicException In case the process is not started + */ + public function getErrorOutput() + { + $this->readPipesForOutput(__FUNCTION__); + + if (false === $ret = stream_get_contents($this->stderr, -1, 0)) { + return ''; + } + + return $ret; + } + + /** + * Returns the errorOutput incrementally. + * + * In comparison with the getErrorOutput method which always return the + * whole error output, this one returns the new error output since the last + * call. + * + * @return string + * + * @throws LogicException in case the output has been disabled + * @throws LogicException In case the process is not started + */ + public function getIncrementalErrorOutput() + { + $this->readPipesForOutput(__FUNCTION__); + + $latest = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset); + $this->incrementalErrorOutputOffset = ftell($this->stderr); + + if (false === $latest) { + return ''; + } + + return $latest; + } + + /** + * Clears the process output. + * + * @return $this + */ + public function clearErrorOutput() + { + ftruncate($this->stderr, 0); + fseek($this->stderr, 0); + $this->incrementalErrorOutputOffset = 0; + + return $this; + } + + /** + * Returns the exit code returned by the process. + * + * @return int|null The exit status code, null if the Process is not terminated + */ + public function getExitCode() + { + $this->updateStatus(false); + + return $this->exitcode; + } + + /** + * Returns a string representation for the exit code returned by the process. + * + * This method relies on the Unix exit code status standardization + * and might not be relevant for other operating systems. + * + * @return string|null A string representation for the exit status code, null if the Process is not terminated + * + * @see http://tldp.org/LDP/abs/html/exitcodes.html + * @see http://en.wikipedia.org/wiki/Unix_signal + */ + public function getExitCodeText() + { + if (null === $exitcode = $this->getExitCode()) { + return null; + } + + return self::$exitCodes[$exitcode] ?? 'Unknown error'; + } + + /** + * Checks if the process ended successfully. + * + * @return bool + */ + public function isSuccessful() + { + return 0 === $this->getExitCode(); + } + + /** + * Returns true if the child process has been terminated by an uncaught signal. + * + * It always returns false on Windows. + * + * @return bool + * + * @throws LogicException In case the process is not terminated + */ + public function hasBeenSignaled() + { + $this->requireProcessIsTerminated(__FUNCTION__); + + return $this->processInformation['signaled']; + } + + /** + * Returns the number of the signal that caused the child process to terminate its execution. + * + * It is only meaningful if hasBeenSignaled() returns true. + * + * @return int + * + * @throws RuntimeException In case --enable-sigchild is activated + * @throws LogicException In case the process is not terminated + */ + public function getTermSignal() + { + $this->requireProcessIsTerminated(__FUNCTION__); + + if ($this->isSigchildEnabled() && -1 === $this->processInformation['termsig']) { + throw new RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal cannot be retrieved.'); + } + + return $this->processInformation['termsig']; + } + + /** + * Returns true if the child process has been stopped by a signal. + * + * It always returns false on Windows. + * + * @return bool + * + * @throws LogicException In case the process is not terminated + */ + public function hasBeenStopped() + { + $this->requireProcessIsTerminated(__FUNCTION__); + + return $this->processInformation['stopped']; + } + + /** + * Returns the number of the signal that caused the child process to stop its execution. + * + * It is only meaningful if hasBeenStopped() returns true. + * + * @return int + * + * @throws LogicException In case the process is not terminated + */ + public function getStopSignal() + { + $this->requireProcessIsTerminated(__FUNCTION__); + + return $this->processInformation['stopsig']; + } + + /** + * Checks if the process is currently running. + * + * @return bool + */ + public function isRunning() + { + if (self::STATUS_STARTED !== $this->status) { + return false; + } + + $this->updateStatus(false); + + return $this->processInformation['running']; + } + + /** + * Checks if the process has been started with no regard to the current state. + * + * @return bool + */ + public function isStarted() + { + return self::STATUS_READY != $this->status; + } + + /** + * Checks if the process is terminated. + * + * @return bool + */ + public function isTerminated() + { + $this->updateStatus(false); + + return self::STATUS_TERMINATED == $this->status; + } + + /** + * Gets the process status. + * + * The status is one of: ready, started, terminated. + * + * @return string + */ + public function getStatus() + { + $this->updateStatus(false); + + return $this->status; + } + + /** + * Stops the process. + * + * @param int|float $timeout The timeout in seconds + * @param int|null $signal A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL (9) + * + * @return int|null The exit-code of the process or null if it's not running + */ + public function stop(float $timeout = 10, int $signal = null) + { + $timeoutMicro = microtime(true) + $timeout; + if ($this->isRunning()) { + // given SIGTERM may not be defined and that "proc_terminate" uses the constant value and not the constant itself, we use the same here + $this->doSignal(15, false); + do { + usleep(1000); + } while ($this->isRunning() && microtime(true) < $timeoutMicro); + + if ($this->isRunning()) { + // Avoid exception here: process is supposed to be running, but it might have stopped just + // after this line. In any case, let's silently discard the error, we cannot do anything. + $this->doSignal($signal ?: 9, false); + } + } + + if ($this->isRunning()) { + if (isset($this->fallbackStatus['pid'])) { + unset($this->fallbackStatus['pid']); + + return $this->stop(0, $signal); + } + $this->close(); + } + + return $this->exitcode; + } + + /** + * Adds a line to the STDOUT stream. + * + * @internal + */ + public function addOutput(string $line) + { + $this->lastOutputTime = microtime(true); + + fseek($this->stdout, 0, \SEEK_END); + fwrite($this->stdout, $line); + fseek($this->stdout, $this->incrementalOutputOffset); + } + + /** + * Adds a line to the STDERR stream. + * + * @internal + */ + public function addErrorOutput(string $line) + { + $this->lastOutputTime = microtime(true); + + fseek($this->stderr, 0, \SEEK_END); + fwrite($this->stderr, $line); + fseek($this->stderr, $this->incrementalErrorOutputOffset); + } + + /** + * Gets the last output time in seconds. + */ + public function getLastOutputTime(): ?float + { + return $this->lastOutputTime; + } + + /** + * Gets the command line to be executed. + * + * @return string + */ + public function getCommandLine() + { + return \is_array($this->commandline) ? implode(' ', array_map([$this, 'escapeArgument'], $this->commandline)) : $this->commandline; + } + + /** + * Gets the process timeout in seconds (max. runtime). + * + * @return float|null + */ + public function getTimeout() + { + return $this->timeout; + } + + /** + * Gets the process idle timeout in seconds (max. time since last output). + * + * @return float|null + */ + public function getIdleTimeout() + { + return $this->idleTimeout; + } + + /** + * Sets the process timeout (max. runtime) in seconds. + * + * To disable the timeout, set this value to null. + * + * @return $this + * + * @throws InvalidArgumentException if the timeout is negative + */ + public function setTimeout(?float $timeout) + { + $this->timeout = $this->validateTimeout($timeout); + + return $this; + } + + /** + * Sets the process idle timeout (max. time since last output) in seconds. + * + * To disable the timeout, set this value to null. + * + * @return $this + * + * @throws LogicException if the output is disabled + * @throws InvalidArgumentException if the timeout is negative + */ + public function setIdleTimeout(?float $timeout) + { + if (null !== $timeout && $this->outputDisabled) { + throw new LogicException('Idle timeout cannot be set while the output is disabled.'); + } + + $this->idleTimeout = $this->validateTimeout($timeout); + + return $this; + } + + /** + * Enables or disables the TTY mode. + * + * @return $this + * + * @throws RuntimeException In case the TTY mode is not supported + */ + public function setTty(bool $tty) + { + if ('\\' === \DIRECTORY_SEPARATOR && $tty) { + throw new RuntimeException('TTY mode is not supported on Windows platform.'); + } + + if ($tty && !self::isTtySupported()) { + throw new RuntimeException('TTY mode requires /dev/tty to be read/writable.'); + } + + $this->tty = $tty; + + return $this; + } + + /** + * Checks if the TTY mode is enabled. + * + * @return bool + */ + public function isTty() + { + return $this->tty; + } + + /** + * Sets PTY mode. + * + * @return $this + */ + public function setPty(bool $bool) + { + $this->pty = $bool; + + return $this; + } + + /** + * Returns PTY state. + * + * @return bool + */ + public function isPty() + { + return $this->pty; + } + + /** + * Gets the working directory. + * + * @return string|null + */ + public function getWorkingDirectory() + { + if (null === $this->cwd) { + // getcwd() will return false if any one of the parent directories does not have + // the readable or search mode set, even if the current directory does + return getcwd() ?: null; + } + + return $this->cwd; + } + + /** + * Sets the current working directory. + * + * @return $this + */ + public function setWorkingDirectory(string $cwd) + { + $this->cwd = $cwd; + + return $this; + } + + /** + * Gets the environment variables. + * + * @return array + */ + public function getEnv() + { + return $this->env; + } + + /** + * Sets the environment variables. + * + * @param array $env The new environment variables + * + * @return $this + */ + public function setEnv(array $env) + { + $this->env = $env; + + return $this; + } + + /** + * Gets the Process input. + * + * @return resource|string|\Iterator|null + */ + public function getInput() + { + return $this->input; + } + + /** + * Sets the input. + * + * This content will be passed to the underlying process standard input. + * + * @param string|int|float|bool|resource|\Traversable|null $input The content + * + * @return $this + * + * @throws LogicException In case the process is running + */ + public function setInput($input) + { + if ($this->isRunning()) { + throw new LogicException('Input cannot be set while the process is running.'); + } + + $this->input = ProcessUtils::validateInput(__METHOD__, $input); + + return $this; + } + + /** + * Performs a check between the timeout definition and the time the process started. + * + * In case you run a background process (with the start method), you should + * trigger this method regularly to ensure the process timeout + * + * @throws ProcessTimedOutException In case the timeout was reached + */ + public function checkTimeout() + { + if (self::STATUS_STARTED !== $this->status) { + return; + } + + if (null !== $this->timeout && $this->timeout < microtime(true) - $this->starttime) { + $this->stop(0); + + throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_GENERAL); + } + + if (null !== $this->idleTimeout && $this->idleTimeout < microtime(true) - $this->lastOutputTime) { + $this->stop(0); + + throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_IDLE); + } + } + + /** + * @throws LogicException in case process is not started + */ + public function getStartTime(): float + { + if (!$this->isStarted()) { + throw new LogicException('Start time is only available after process start.'); + } + + return $this->starttime; + } + + /** + * Defines options to pass to the underlying proc_open(). + * + * @see https://php.net/proc_open for the options supported by PHP. + * + * Enabling the "create_new_console" option allows a subprocess to continue + * to run after the main process exited, on both Windows and *nix + */ + public function setOptions(array $options) + { + if ($this->isRunning()) { + throw new RuntimeException('Setting options while the process is running is not possible.'); + } + + $defaultOptions = $this->options; + $existingOptions = ['blocking_pipes', 'create_process_group', 'create_new_console']; + + foreach ($options as $key => $value) { + if (!\in_array($key, $existingOptions)) { + $this->options = $defaultOptions; + throw new LogicException(sprintf('Invalid option "%s" passed to "%s()". Supported options are "%s".', $key, __METHOD__, implode('", "', $existingOptions))); + } + $this->options[$key] = $value; + } + } + + /** + * Returns whether TTY is supported on the current operating system. + */ + public static function isTtySupported(): bool + { + static $isTtySupported; + + if (null === $isTtySupported) { + $isTtySupported = (bool) @proc_open('echo 1 >/dev/null', [['file', '/dev/tty', 'r'], ['file', '/dev/tty', 'w'], ['file', '/dev/tty', 'w']], $pipes); + } + + return $isTtySupported; + } + + /** + * Returns whether PTY is supported on the current operating system. + * + * @return bool + */ + public static function isPtySupported() + { + static $result; + + if (null !== $result) { + return $result; + } + + if ('\\' === \DIRECTORY_SEPARATOR) { + return $result = false; + } + + return $result = (bool) @proc_open('echo 1 >/dev/null', [['pty'], ['pty'], ['pty']], $pipes); + } + + /** + * Creates the descriptors needed by the proc_open. + */ + private function getDescriptors(): array + { + if ($this->input instanceof \Iterator) { + $this->input->rewind(); + } + if ('\\' === \DIRECTORY_SEPARATOR) { + $this->processPipes = new WindowsPipes($this->input, !$this->outputDisabled || $this->hasCallback); + } else { + $this->processPipes = new UnixPipes($this->isTty(), $this->isPty(), $this->input, !$this->outputDisabled || $this->hasCallback); + } + + return $this->processPipes->getDescriptors(); + } + + /** + * Builds up the callback used by wait(). + * + * The callbacks adds all occurred output to the specific buffer and calls + * the user callback (if present) with the received output. + * + * @param callable|null $callback The user defined PHP callback + * + * @return \Closure + */ + protected function buildCallback(callable $callback = null) + { + if ($this->outputDisabled) { + return function ($type, $data) use ($callback): bool { + return null !== $callback && $callback($type, $data); + }; + } + + $out = self::OUT; + + return function ($type, $data) use ($callback, $out): bool { + if ($out == $type) { + $this->addOutput($data); + } else { + $this->addErrorOutput($data); + } + + return null !== $callback && $callback($type, $data); + }; + } + + /** + * Updates the status of the process, reads pipes. + * + * @param bool $blocking Whether to use a blocking read call + */ + protected function updateStatus(bool $blocking) + { + if (self::STATUS_STARTED !== $this->status) { + return; + } + + $this->processInformation = proc_get_status($this->process); + $running = $this->processInformation['running']; + + $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running); + + if ($this->fallbackStatus && $this->isSigchildEnabled()) { + $this->processInformation = $this->fallbackStatus + $this->processInformation; + } + + if (!$running) { + $this->close(); + } + } + + /** + * Returns whether PHP has been compiled with the '--enable-sigchild' option or not. + * + * @return bool + */ + protected function isSigchildEnabled() + { + if (null !== self::$sigchild) { + return self::$sigchild; + } + + if (!\function_exists('phpinfo')) { + return self::$sigchild = false; + } + + ob_start(); + phpinfo(\INFO_GENERAL); + + return self::$sigchild = str_contains(ob_get_clean(), '--enable-sigchild'); + } + + /** + * Reads pipes for the freshest output. + * + * @param string $caller The name of the method that needs fresh outputs + * @param bool $blocking Whether to use blocking calls or not + * + * @throws LogicException in case output has been disabled or process is not started + */ + private function readPipesForOutput(string $caller, bool $blocking = false) + { + if ($this->outputDisabled) { + throw new LogicException('Output has been disabled.'); + } + + $this->requireProcessIsStarted($caller); + + $this->updateStatus($blocking); + } + + /** + * Validates and returns the filtered timeout. + * + * @throws InvalidArgumentException if the given timeout is a negative number + */ + private function validateTimeout(?float $timeout): ?float + { + $timeout = (float) $timeout; + + if (0.0 === $timeout) { + $timeout = null; + } elseif ($timeout < 0) { + throw new InvalidArgumentException('The timeout value must be a valid positive integer or float number.'); + } + + return $timeout; + } + + /** + * Reads pipes, executes callback. + * + * @param bool $blocking Whether to use blocking calls or not + * @param bool $close Whether to close file handles or not + */ + private function readPipes(bool $blocking, bool $close) + { + $result = $this->processPipes->readAndWrite($blocking, $close); + + $callback = $this->callback; + foreach ($result as $type => $data) { + if (3 !== $type) { + $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data); + } elseif (!isset($this->fallbackStatus['signaled'])) { + $this->fallbackStatus['exitcode'] = (int) $data; + } + } + } + + /** + * Closes process resource, closes file handles, sets the exitcode. + * + * @return int The exitcode + */ + private function close(): int + { + $this->processPipes->close(); + if (\is_resource($this->process)) { + proc_close($this->process); + } + $this->exitcode = $this->processInformation['exitcode']; + $this->status = self::STATUS_TERMINATED; + + if (-1 === $this->exitcode) { + if ($this->processInformation['signaled'] && 0 < $this->processInformation['termsig']) { + // if process has been signaled, no exitcode but a valid termsig, apply Unix convention + $this->exitcode = 128 + $this->processInformation['termsig']; + } elseif ($this->isSigchildEnabled()) { + $this->processInformation['signaled'] = true; + $this->processInformation['termsig'] = -1; + } + } + + // Free memory from self-reference callback created by buildCallback + // Doing so in other contexts like __destruct or by garbage collector is ineffective + // Now pipes are closed, so the callback is no longer necessary + $this->callback = null; + + return $this->exitcode; + } + + /** + * Resets data related to the latest run of the process. + */ + private function resetProcessData() + { + $this->starttime = null; + $this->callback = null; + $this->exitcode = null; + $this->fallbackStatus = []; + $this->processInformation = null; + $this->stdout = fopen('php://temp/maxmemory:'.(1024 * 1024), 'w+'); + $this->stderr = fopen('php://temp/maxmemory:'.(1024 * 1024), 'w+'); + $this->process = null; + $this->latestSignal = null; + $this->status = self::STATUS_READY; + $this->incrementalOutputOffset = 0; + $this->incrementalErrorOutputOffset = 0; + } + + /** + * Sends a POSIX signal to the process. + * + * @param int $signal A valid POSIX signal (see https://php.net/pcntl.constants) + * @param bool $throwException Whether to throw exception in case signal failed + * + * @throws LogicException In case the process is not running + * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed + * @throws RuntimeException In case of failure + */ + private function doSignal(int $signal, bool $throwException): bool + { + if (null === $pid = $this->getPid()) { + if ($throwException) { + throw new LogicException('Cannot send signal on a non running process.'); + } + + return false; + } + + if ('\\' === \DIRECTORY_SEPARATOR) { + exec(sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode); + if ($exitCode && $this->isRunning()) { + if ($throwException) { + throw new RuntimeException(sprintf('Unable to kill the process (%s).', implode(' ', $output))); + } + + return false; + } + } else { + if (!$this->isSigchildEnabled()) { + $ok = @proc_terminate($this->process, $signal); + } elseif (\function_exists('posix_kill')) { + $ok = @posix_kill($pid, $signal); + } elseif ($ok = proc_open(sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) { + $ok = false === fgets($pipes[2]); + } + if (!$ok) { + if ($throwException) { + throw new RuntimeException(sprintf('Error while sending signal "%s".', $signal)); + } + + return false; + } + } + + $this->latestSignal = $signal; + $this->fallbackStatus['signaled'] = true; + $this->fallbackStatus['exitcode'] = -1; + $this->fallbackStatus['termsig'] = $this->latestSignal; + + return true; + } + + private function prepareWindowsCommandLine(string $cmd, array &$env): string + { + $uid = uniqid('', true); + $varCount = 0; + $varCache = []; + $cmd = preg_replace_callback( + '/"(?:( + [^"%!^]*+ + (?: + (?: !LF! | "(?:\^[%!^])?+" ) + [^"%!^]*+ + )++ + ) | [^"]*+ )"/x', + function ($m) use (&$env, &$varCache, &$varCount, $uid) { + if (!isset($m[1])) { + return $m[0]; + } + if (isset($varCache[$m[0]])) { + return $varCache[$m[0]]; + } + if (str_contains($value = $m[1], "\0")) { + $value = str_replace("\0", '?', $value); + } + if (false === strpbrk($value, "\"%!\n")) { + return '"'.$value.'"'; + } + + $value = str_replace(['!LF!', '"^!"', '"^%"', '"^^"', '""'], ["\n", '!', '%', '^', '"'], $value); + $value = '"'.preg_replace('/(\\\\*)"/', '$1$1\\"', $value).'"'; + $var = $uid.++$varCount; + + $env[$var] = $value; + + return $varCache[$m[0]] = '!'.$var.'!'; + }, + $cmd + ); + + $cmd = 'cmd /V:ON /E:ON /D /C ('.str_replace("\n", ' ', $cmd).')'; + foreach ($this->processPipes->getFiles() as $offset => $filename) { + $cmd .= ' '.$offset.'>"'.$filename.'"'; + } + + return $cmd; + } + + /** + * Ensures the process is running or terminated, throws a LogicException if the process has a not started. + * + * @throws LogicException if the process has not run + */ + private function requireProcessIsStarted(string $functionName) + { + if (!$this->isStarted()) { + throw new LogicException(sprintf('Process must be started before calling "%s()".', $functionName)); + } + } + + /** + * Ensures the process is terminated, throws a LogicException if the process has a status different than "terminated". + * + * @throws LogicException if the process is not yet terminated + */ + private function requireProcessIsTerminated(string $functionName) + { + if (!$this->isTerminated()) { + throw new LogicException(sprintf('Process must be terminated before calling "%s()".', $functionName)); + } + } + + /** + * Escapes a string to be used as a shell argument. + */ + private function escapeArgument(?string $argument): string + { + if ('' === $argument || null === $argument) { + return '""'; + } + if ('\\' !== \DIRECTORY_SEPARATOR) { + return "'".str_replace("'", "'\\''", $argument)."'"; + } + if (str_contains($argument, "\0")) { + $argument = str_replace("\0", '?', $argument); + } + if (!preg_match('/[\/()%!^"<>&|\s]/', $argument)) { + return $argument; + } + $argument = preg_replace('/(\\\\+)$/', '$1$1', $argument); + + return '"'.str_replace(['"', '^', '%', '!', "\n"], ['""', '"^^"', '"^%"', '"^!"', '!LF!'], $argument).'"'; + } + + private function replacePlaceholders(string $commandline, array $env) + { + return preg_replace_callback('/"\$\{:([_a-zA-Z]++[_a-zA-Z0-9]*+)\}"/', function ($matches) use ($commandline, $env) { + if (!isset($env[$matches[1]]) || false === $env[$matches[1]]) { + throw new InvalidArgumentException(sprintf('Command line is missing a value for parameter "%s": ', $matches[1]).$commandline); + } + + return $this->escapeArgument($env[$matches[1]]); + }, $commandline); + } + + private function getDefaultEnv(): array + { + $env = getenv(); + $env = ('\\' === \DIRECTORY_SEPARATOR ? array_intersect_ukey($env, $_SERVER, 'strcasecmp') : array_intersect_key($env, $_SERVER)) ?: $env; + + return $_ENV + ('\\' === \DIRECTORY_SEPARATOR ? array_diff_ukey($env, $_ENV, 'strcasecmp') : $env); + } +} diff --git a/vendor/symfony/process/ProcessUtils.php b/vendor/symfony/process/ProcessUtils.php new file mode 100644 index 000000000..2a7aff71b --- /dev/null +++ b/vendor/symfony/process/ProcessUtils.php @@ -0,0 +1,69 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Process; + +use Symfony\Component\Process\Exception\InvalidArgumentException; + +/** + * ProcessUtils is a bunch of utility methods. + * + * This class contains static methods only and is not meant to be instantiated. + * + * @author Martin Hasoň + */ +class ProcessUtils +{ + /** + * This class should not be instantiated. + */ + private function __construct() + { + } + + /** + * Validates and normalizes a Process input. + * + * @param string $caller The name of method call that validates the input + * @param mixed $input The input to validate + * + * @return mixed + * + * @throws InvalidArgumentException In case the input is not valid + */ + public static function validateInput(string $caller, $input) + { + if (null !== $input) { + if (\is_resource($input)) { + return $input; + } + if (\is_string($input)) { + return $input; + } + if (\is_scalar($input)) { + return (string) $input; + } + if ($input instanceof Process) { + return $input->getIterator($input::ITER_SKIP_ERR); + } + if ($input instanceof \Iterator) { + return $input; + } + if ($input instanceof \Traversable) { + return new \IteratorIterator($input); + } + + throw new InvalidArgumentException(sprintf('"%s" only accepts strings, Traversable objects or stream resources.', $caller)); + } + + return $input; + } +} diff --git a/vendor/symfony/process/README.md b/vendor/symfony/process/README.md new file mode 100644 index 000000000..8777de4a6 --- /dev/null +++ b/vendor/symfony/process/README.md @@ -0,0 +1,28 @@ +Process Component +================= + +The Process component executes commands in sub-processes. + +Sponsor +------- + +The Process component for Symfony 5.4/6.0 is [backed][1] by [SensioLabs][2]. + +As the creator of Symfony, SensioLabs supports companies using Symfony, with an +offering encompassing consultancy, expertise, services, training, and technical +assistance to ensure the success of web application development projects. + +Help Symfony by [sponsoring][3] its development! + +Resources +--------- + + * [Documentation](https://symfony.com/doc/current/components/process.html) + * [Contributing](https://symfony.com/doc/current/contributing/index.html) + * [Report issues](https://github.com/symfony/symfony/issues) and + [send Pull Requests](https://github.com/symfony/symfony/pulls) + in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[2]: https://sensiolabs.com +[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/yaml/composer.json b/vendor/symfony/process/composer.json old mode 100755 new mode 100644 similarity index 59% rename from vendor/symfony/yaml/composer.json rename to vendor/symfony/process/composer.json index d07323608..1669eba57 --- a/vendor/symfony/yaml/composer.json +++ b/vendor/symfony/process/composer.json @@ -1,7 +1,7 @@ { - "name": "symfony/yaml", + "name": "symfony/process", "type": "library", - "description": "Symfony Yaml Component", + "description": "Executes commands in sub-processes", "keywords": [], "homepage": "https://symfony.com", "license": "MIT", @@ -16,19 +16,14 @@ } ], "require": { - "php": ">=5.3.9", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" }, "autoload": { - "psr-4": { "Symfony\\Component\\Yaml\\": "" }, + "psr-4": { "Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "/Tests/" ] }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - } + "minimum-stability": "dev" } diff --git a/vendor/symfony/psr-http-message-bridge/.php-cs-fixer.dist.php b/vendor/symfony/psr-http-message-bridge/.php-cs-fixer.dist.php old mode 100755 new mode 100644 diff --git a/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/PsrServerRequestResolver.php b/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/PsrServerRequestResolver.php old mode 100755 new mode 100644 index 29dc7dc98..61cd8c5c5 --- a/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/PsrServerRequestResolver.php +++ b/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/PsrServerRequestResolver.php @@ -17,6 +17,7 @@ use Psr\Http\Message\ServerRequestInterface; use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; +use Symfony\Component\HttpKernel\Controller\ValueResolverInterface as BaseValueResolverInterface; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; /** @@ -25,7 +26,7 @@ use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; * @author Iltar van der Berg * @author Alexander M. Turek */ -final class PsrServerRequestResolver implements ArgumentValueResolverInterface +final class PsrServerRequestResolver implements ArgumentValueResolverInterface, ValueResolverInterface { private const SUPPORTED_TYPES = [ ServerRequestInterface::class => true, @@ -45,6 +46,10 @@ final class PsrServerRequestResolver implements ArgumentValueResolverInterface */ public function supports(Request $request, ArgumentMetadata $argument): bool { + if ($this instanceof BaseValueResolverInterface) { + trigger_deprecation('symfony/psr-http-message-bridge', '2.3', 'Method "%s" is deprecated, call "resolve()" without calling "supports()" first.', __METHOD__); + } + return self::SUPPORTED_TYPES[$argument->getType()] ?? false; } @@ -53,6 +58,10 @@ final class PsrServerRequestResolver implements ArgumentValueResolverInterface */ public function resolve(Request $request, ArgumentMetadata $argument): \Traversable { + if (!isset(self::SUPPORTED_TYPES[$argument->getType()])) { + return; + } + yield $this->httpMessageFactory->createRequest($request); } } diff --git a/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/ValueResolverInterface.php b/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/ValueResolverInterface.php new file mode 100644 index 000000000..83a321ab7 --- /dev/null +++ b/vendor/symfony/psr-http-message-bridge/ArgumentValueResolver/ValueResolverInterface.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\PsrHttpMessage\ArgumentValueResolver; + +use Symfony\Component\HttpKernel\Controller\ValueResolverInterface as BaseValueResolverInterface; + +if (interface_exists(BaseValueResolverInterface::class)) { + /** @internal */ + interface ValueResolverInterface extends BaseValueResolverInterface + { + } +} else { + /** @internal */ + interface ValueResolverInterface + { + } +} diff --git a/vendor/symfony/psr-http-message-bridge/CHANGELOG.md b/vendor/symfony/psr-http-message-bridge/CHANGELOG.md old mode 100755 new mode 100644 index 1378fd6ac..f32c06f2e --- a/vendor/symfony/psr-http-message-bridge/CHANGELOG.md +++ b/vendor/symfony/psr-http-message-bridge/CHANGELOG.md @@ -1,6 +1,15 @@ CHANGELOG ========= +# 2.3.1 (2023-07-26) + +* Don't rely on `Request::getPayload()` to populate the parsed body + +# 2.3.0 (2023-07-25) + +* Leverage `Request::getPayload()` to populate the parsed body of PSR-7 requests +* Implement `ValueResolverInterface` introduced with Symfony 6.2 + # 2.2.0 (2023-04-21) * Drop support for Symfony 4 diff --git a/vendor/symfony/psr-http-message-bridge/EventListener/PsrResponseListener.php b/vendor/symfony/psr-http-message-bridge/EventListener/PsrResponseListener.php old mode 100755 new mode 100644 diff --git a/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php b/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php old mode 100755 new mode 100644 index 457e3468d..a69e8ffee --- a/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php +++ b/vendor/symfony/psr-http-message-bridge/Factory/HttpFoundationFactory.php @@ -41,6 +41,8 @@ class HttpFoundationFactory implements HttpFoundationFactoryInterface /** * {@inheritdoc} + * + * @return Request */ public function createRequest(ServerRequestInterface $psrRequest, bool $streamed = false) { @@ -121,6 +123,8 @@ class HttpFoundationFactory implements HttpFoundationFactoryInterface /** * {@inheritdoc} + * + * @return Response */ public function createResponse(ResponseInterface $psrResponse, bool $streamed = false) { @@ -217,13 +221,13 @@ class HttpFoundationFactory implements HttpFoundationFactoryInterface return new Cookie( $cookieName, $cookieValue, - isset($cookieExpire) ? $cookieExpire : 0, - isset($cookiePath) ? $cookiePath : '/', - isset($cookieDomain) ? $cookieDomain : null, + $cookieExpire ?? 0, + $cookiePath ?? '/', + $cookieDomain ?? null, isset($cookieSecure), isset($cookieHttpOnly), true, - isset($samesite) ? $samesite : null + $samesite ?? null ); } diff --git a/vendor/symfony/psr-http-message-bridge/Factory/PsrHttpFactory.php b/vendor/symfony/psr-http-message-bridge/Factory/PsrHttpFactory.php old mode 100755 new mode 100644 index b1b6f9ae2..09c4360dd --- a/vendor/symfony/psr-http-message-bridge/Factory/PsrHttpFactory.php +++ b/vendor/symfony/psr-http-message-bridge/Factory/PsrHttpFactory.php @@ -12,7 +12,9 @@ namespace Symfony\Bridge\PsrHttpMessage\Factory; use Psr\Http\Message\ResponseFactoryInterface; +use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestFactoryInterface; +use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\StreamFactoryInterface; use Psr\Http\Message\UploadedFileFactoryInterface; use Psr\Http\Message\UploadedFileInterface; @@ -27,6 +29,7 @@ use Symfony\Component\HttpFoundation\StreamedResponse; * Builds Psr\HttpMessage instances using a PSR-17 implementation. * * @author Antonio J. García Lagar + * @author Aurélien Pillevesse */ class PsrHttpFactory implements HttpMessageFactoryInterface { @@ -45,6 +48,8 @@ class PsrHttpFactory implements HttpMessageFactoryInterface /** * {@inheritdoc} + * + * @return ServerRequestInterface */ public function createRequest(Request $symfonyRequest) { @@ -67,12 +72,28 @@ class PsrHttpFactory implements HttpMessageFactoryInterface $body = $this->streamFactory->createStreamFromResource($symfonyRequest->getContent(true)); + if (method_exists(Request::class, 'getContentTypeFormat')) { + $format = $symfonyRequest->getContentTypeFormat(); + } else { + $format = $symfonyRequest->getContentType(); + } + + if ('json' === $format) { + $parsedBody = json_decode($symfonyRequest->getContent(), true, 512, \JSON_BIGINT_AS_STRING); + + if (!\is_array($parsedBody)) { + $parsedBody = null; + } + } else { + $parsedBody = $symfonyRequest->request->all(); + } + $request = $request ->withBody($body) ->withUploadedFiles($this->getFiles($symfonyRequest->files->all())) ->withCookieParams($symfonyRequest->cookies->all()) ->withQueryParams($symfonyRequest->query->all()) - ->withParsedBody($symfonyRequest->request->all()) + ->withParsedBody($parsedBody) ; foreach ($symfonyRequest->attributes->all() as $key => $value) { @@ -84,10 +105,8 @@ class PsrHttpFactory implements HttpMessageFactoryInterface /** * Converts Symfony uploaded files array to the PSR one. - * - * @return array */ - private function getFiles(array $uploadedFiles) + private function getFiles(array $uploadedFiles): array { $files = []; @@ -108,10 +127,8 @@ class PsrHttpFactory implements HttpMessageFactoryInterface /** * Creates a PSR-7 UploadedFile instance from a Symfony one. - * - * @return UploadedFileInterface */ - private function createUploadedFile(UploadedFile $symfonyUploadedFile) + private function createUploadedFile(UploadedFile $symfonyUploadedFile): UploadedFileInterface { return $this->uploadedFileFactory->createUploadedFile( $this->streamFactory->createStreamFromFile( @@ -126,6 +143,8 @@ class PsrHttpFactory implements HttpMessageFactoryInterface /** * {@inheritdoc} + * + * @return ResponseInterface */ public function createResponse(Response $symfonyResponse) { diff --git a/vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php b/vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php old mode 100755 new mode 100644 index b9510455c..4d38a1f7c --- a/vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php +++ b/vendor/symfony/psr-http-message-bridge/Factory/UploadedFile.php @@ -52,7 +52,7 @@ class UploadedFile extends BaseUploadedFile /** * {@inheritdoc} */ - public function move($directory, $name = null): File + public function move(string $directory, string $name = null): File { if (!$this->isValid() || $this->test) { return parent::move($directory, $name); diff --git a/vendor/symfony/psr-http-message-bridge/HttpFoundationFactoryInterface.php b/vendor/symfony/psr-http-message-bridge/HttpFoundationFactoryInterface.php old mode 100755 new mode 100644 diff --git a/vendor/symfony/psr-http-message-bridge/HttpMessageFactoryInterface.php b/vendor/symfony/psr-http-message-bridge/HttpMessageFactoryInterface.php old mode 100755 new mode 100644 diff --git a/vendor/symfony/psr-http-message-bridge/LICENSE b/vendor/symfony/psr-http-message-bridge/LICENSE old mode 100755 new mode 100644 diff --git a/vendor/symfony/psr-http-message-bridge/README.md b/vendor/symfony/psr-http-message-bridge/README.md old mode 100755 new mode 100644 diff --git a/vendor/symfony/psr-http-message-bridge/composer.json b/vendor/symfony/psr-http-message-bridge/composer.json old mode 100755 new mode 100644 index e08b15c7a..b705eb2e2 --- a/vendor/symfony/psr-http-message-bridge/composer.json +++ b/vendor/symfony/psr-http-message-bridge/composer.json @@ -18,6 +18,7 @@ "require": { "php": ">=7.2.5", "psr/http-message": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", "symfony/http-foundation": "^5.4 || ^6.0" }, "require-dev": { @@ -41,7 +42,7 @@ }, "extra": { "branch-alias": { - "dev-main": "2.2-dev" + "dev-main": "2.3-dev" } } } diff --git a/vendor/symfony/translation-contracts/CHANGELOG.md b/vendor/symfony/translation-contracts/CHANGELOG.md new file mode 100644 index 000000000..7932e2613 --- /dev/null +++ b/vendor/symfony/translation-contracts/CHANGELOG.md @@ -0,0 +1,5 @@ +CHANGELOG +========= + +The changelog is maintained for all Symfony contracts at the following URL: +https://github.com/symfony/contracts/blob/main/CHANGELOG.md diff --git a/vendor/symfony/translation-contracts/LICENSE b/vendor/symfony/translation-contracts/LICENSE new file mode 100644 index 000000000..7536caeae --- /dev/null +++ b/vendor/symfony/translation-contracts/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2018-present Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/symfony/translation-contracts/LocaleAwareInterface.php b/vendor/symfony/translation-contracts/LocaleAwareInterface.php new file mode 100644 index 000000000..db40ba13e --- /dev/null +++ b/vendor/symfony/translation-contracts/LocaleAwareInterface.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Contracts\Translation; + +interface LocaleAwareInterface +{ + /** + * Sets the current locale. + * + * @return void + * + * @throws \InvalidArgumentException If the locale contains invalid characters + */ + public function setLocale(string $locale); + + /** + * Returns the current locale. + */ + public function getLocale(): string; +} diff --git a/vendor/symfony/translation-contracts/README.md b/vendor/symfony/translation-contracts/README.md new file mode 100644 index 000000000..b211d5849 --- /dev/null +++ b/vendor/symfony/translation-contracts/README.md @@ -0,0 +1,9 @@ +Symfony Translation Contracts +============================= + +A set of abstractions extracted out of the Symfony components. + +Can be used to build on semantics that the Symfony components proved useful and +that already have battle tested implementations. + +See https://github.com/symfony/contracts/blob/main/README.md for more information. diff --git a/vendor/symfony/translation-contracts/Test/TranslatorTest.php b/vendor/symfony/translation-contracts/Test/TranslatorTest.php new file mode 100644 index 000000000..674b78b3e --- /dev/null +++ b/vendor/symfony/translation-contracts/Test/TranslatorTest.php @@ -0,0 +1,384 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Contracts\Translation\Test; + +use PHPUnit\Framework\TestCase; +use Symfony\Contracts\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorTrait; + +/** + * Test should cover all languages mentioned on http://translate.sourceforge.net/wiki/l10n/pluralforms + * and Plural forms mentioned on http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms. + * + * See also https://developer.mozilla.org/en/Localization_and_Plurals which mentions 15 rules having a maximum of 6 forms. + * The mozilla code is also interesting to check for. + * + * As mentioned by chx http://drupal.org/node/1273968 we can cover all by testing number from 0 to 199 + * + * The goal to cover all languages is to far fetched so this test case is smaller. + * + * @author Clemens Tolboom clemens@build2be.nl + */ +class TranslatorTest extends TestCase +{ + private $defaultLocale; + + protected function setUp(): void + { + $this->defaultLocale = \Locale::getDefault(); + \Locale::setDefault('en'); + } + + protected function tearDown(): void + { + \Locale::setDefault($this->defaultLocale); + } + + public function getTranslator(): TranslatorInterface + { + return new class() implements TranslatorInterface { + use TranslatorTrait; + }; + } + + /** + * @dataProvider getTransTests + */ + public function testTrans($expected, $id, $parameters) + { + $translator = $this->getTranslator(); + + $this->assertEquals($expected, $translator->trans($id, $parameters)); + } + + /** + * @dataProvider getTransChoiceTests + */ + public function testTransChoiceWithExplicitLocale($expected, $id, $number) + { + $translator = $this->getTranslator(); + + $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number])); + } + + /** + * @requires extension intl + * + * @dataProvider getTransChoiceTests + */ + public function testTransChoiceWithDefaultLocale($expected, $id, $number) + { + $translator = $this->getTranslator(); + + $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number])); + } + + /** + * @dataProvider getTransChoiceTests + */ + public function testTransChoiceWithEnUsPosix($expected, $id, $number) + { + $translator = $this->getTranslator(); + $translator->setLocale('en_US_POSIX'); + + $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number])); + } + + public function testGetSetLocale() + { + $translator = $this->getTranslator(); + + $this->assertEquals('en', $translator->getLocale()); + } + + /** + * @requires extension intl + */ + public function testGetLocaleReturnsDefaultLocaleIfNotSet() + { + $translator = $this->getTranslator(); + + \Locale::setDefault('pt_BR'); + $this->assertEquals('pt_BR', $translator->getLocale()); + + \Locale::setDefault('en'); + $this->assertEquals('en', $translator->getLocale()); + } + + public static function getTransTests() + { + return [ + ['Symfony is great!', 'Symfony is great!', []], + ['Symfony is awesome!', 'Symfony is %what%!', ['%what%' => 'awesome']], + ]; + } + + public static function getTransChoiceTests() + { + return [ + ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], + ['There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1], + ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10], + ['There are 0 apples', 'There is 1 apple|There are %count% apples', 0], + ['There is 1 apple', 'There is 1 apple|There are %count% apples', 1], + ['There are 10 apples', 'There is 1 apple|There are %count% apples', 10], + // custom validation messages may be coded with a fixed value + ['There are 2 apples', 'There are 2 apples', 2], + ]; + } + + /** + * @dataProvider getInterval + */ + public function testInterval($expected, $number, $interval) + { + $translator = $this->getTranslator(); + + $this->assertEquals($expected, $translator->trans($interval.' foo|[1,Inf[ bar', ['%count%' => $number])); + } + + public static function getInterval() + { + return [ + ['foo', 3, '{1,2, 3 ,4}'], + ['bar', 10, '{1,2, 3 ,4}'], + ['bar', 3, '[1,2]'], + ['foo', 1, '[1,2]'], + ['foo', 2, '[1,2]'], + ['bar', 1, ']1,2['], + ['bar', 2, ']1,2['], + ['foo', log(0), '[-Inf,2['], + ['foo', -log(0), '[-2,+Inf]'], + ]; + } + + /** + * @dataProvider getChooseTests + */ + public function testChoose($expected, $id, $number, $locale = null) + { + $translator = $this->getTranslator(); + + $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number], null, $locale)); + } + + public function testReturnMessageIfExactlyOneStandardRuleIsGiven() + { + $translator = $this->getTranslator(); + + $this->assertEquals('There are two apples', $translator->trans('There are two apples', ['%count%' => 2])); + } + + /** + * @dataProvider getNonMatchingMessages + */ + public function testThrowExceptionIfMatchingMessageCannotBeFound($id, $number) + { + $this->expectException(\InvalidArgumentException::class); + $translator = $this->getTranslator(); + + $translator->trans($id, ['%count%' => $number]); + } + + public static function getNonMatchingMessages() + { + return [ + ['{0} There are no apples|{1} There is one apple', 2], + ['{1} There is one apple|]1,Inf] There are %count% apples', 0], + ['{1} There is one apple|]2,Inf] There are %count% apples', 2], + ['{0} There are no apples|There is one apple', 2], + ]; + } + + public static function getChooseTests() + { + return [ + ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], + ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], + ['There are no apples', '{0}There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], + + ['There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1], + + ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10], + ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf]There are %count% apples', 10], + ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10], + + ['There are 0 apples', 'There is one apple|There are %count% apples', 0], + ['There is one apple', 'There is one apple|There are %count% apples', 1], + ['There are 10 apples', 'There is one apple|There are %count% apples', 10], + + ['There are 0 apples', 'one: There is one apple|more: There are %count% apples', 0], + ['There is one apple', 'one: There is one apple|more: There are %count% apples', 1], + ['There are 10 apples', 'one: There is one apple|more: There are %count% apples', 10], + + ['There are no apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 0], + ['There is one apple', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 1], + ['There are 10 apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 10], + + ['', '{0}|{1} There is one apple|]1,Inf] There are %count% apples', 0], + ['', '{0} There are no apples|{1}|]1,Inf] There are %count% apples', 1], + + // Indexed only tests which are Gettext PoFile* compatible strings. + ['There are 0 apples', 'There is one apple|There are %count% apples', 0], + ['There is one apple', 'There is one apple|There are %count% apples', 1], + ['There are 2 apples', 'There is one apple|There are %count% apples', 2], + + // Tests for float numbers + ['There is almost one apple', '{0} There are no apples|]0,1[ There is almost one apple|{1} There is one apple|[1,Inf] There is more than one apple', 0.7], + ['There is one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1], + ['There is more than one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1.7], + ['There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0], + ['There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0.0], + ['There are no apples', '{0.0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0], + + // Test texts with new-lines + // with double-quotes and \n in id & double-quotes and actual newlines in text + ["This is a text with a\n new-line in it. Selector = 0.", '{0}This is a text with a + new-line in it. Selector = 0.|{1}This is a text with a + new-line in it. Selector = 1.|[1,Inf]This is a text with a + new-line in it. Selector > 1.', 0], + // with double-quotes and \n in id and single-quotes and actual newlines in text + ["This is a text with a\n new-line in it. Selector = 1.", '{0}This is a text with a + new-line in it. Selector = 0.|{1}This is a text with a + new-line in it. Selector = 1.|[1,Inf]This is a text with a + new-line in it. Selector > 1.', 1], + ["This is a text with a\n new-line in it. Selector > 1.", '{0}This is a text with a + new-line in it. Selector = 0.|{1}This is a text with a + new-line in it. Selector = 1.|[1,Inf]This is a text with a + new-line in it. Selector > 1.', 5], + // with double-quotes and id split across lines + ['This is a text with a + new-line in it. Selector = 1.', '{0}This is a text with a + new-line in it. Selector = 0.|{1}This is a text with a + new-line in it. Selector = 1.|[1,Inf]This is a text with a + new-line in it. Selector > 1.', 1], + // with single-quotes and id split across lines + ['This is a text with a + new-line in it. Selector > 1.', '{0}This is a text with a + new-line in it. Selector = 0.|{1}This is a text with a + new-line in it. Selector = 1.|[1,Inf]This is a text with a + new-line in it. Selector > 1.', 5], + // with single-quotes and \n in text + ['This is a text with a\nnew-line in it. Selector = 0.', '{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.', 0], + // with double-quotes and id split across lines + ["This is a text with a\nnew-line in it. Selector = 1.", "{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.", 1], + // escape pipe + ['This is a text with | in it. Selector = 0.', '{0}This is a text with || in it. Selector = 0.|{1}This is a text with || in it. Selector = 1.', 0], + // Empty plural set (2 plural forms) from a .PO file + ['', '|', 1], + // Empty plural set (3 plural forms) from a .PO file + ['', '||', 1], + + // Floating values + ['1.5 liters', '%count% liter|%count% liters', 1.5], + ['1.5 litre', '%count% litre|%count% litres', 1.5, 'fr'], + + // Negative values + ['-1 degree', '%count% degree|%count% degrees', -1], + ['-1 degré', '%count% degré|%count% degrés', -1], + ['-1.5 degrees', '%count% degree|%count% degrees', -1.5], + ['-1.5 degré', '%count% degré|%count% degrés', -1.5, 'fr'], + ['-2 degrees', '%count% degree|%count% degrees', -2], + ['-2 degrés', '%count% degré|%count% degrés', -2], + ]; + } + + /** + * @dataProvider failingLangcodes + */ + public function testFailedLangcodes($nplural, $langCodes) + { + $matrix = $this->generateTestData($langCodes); + $this->validateMatrix($nplural, $matrix, false); + } + + /** + * @dataProvider successLangcodes + */ + public function testLangcodes($nplural, $langCodes) + { + $matrix = $this->generateTestData($langCodes); + $this->validateMatrix($nplural, $matrix); + } + + /** + * This array should contain all currently known langcodes. + * + * As it is impossible to have this ever complete we should try as hard as possible to have it almost complete. + */ + public static function successLangcodes(): array + { + return [ + ['1', ['ay', 'bo', 'cgg', 'dz', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky']], + ['2', ['nl', 'fr', 'en', 'de', 'de_GE', 'hy', 'hy_AM', 'en_US_POSIX']], + ['3', ['be', 'bs', 'cs', 'hr']], + ['4', ['cy', 'mt', 'sl']], + ['6', ['ar']], + ]; + } + + /** + * This array should be at least empty within the near future. + * + * This both depends on a complete list trying to add above as understanding + * the plural rules of the current failing languages. + * + * @return array with nplural together with langcodes + */ + public static function failingLangcodes(): array + { + return [ + ['1', ['fa']], + ['2', ['jbo']], + ['3', ['cbs']], + ['4', ['gd', 'kw']], + ['5', ['ga']], + ]; + } + + /** + * We validate only on the plural coverage. Thus the real rules is not tested. + * + * @param string $nplural Plural expected + * @param array $matrix Containing langcodes and their plural index values + */ + protected function validateMatrix(string $nplural, array $matrix, bool $expectSuccess = true) + { + foreach ($matrix as $langCode => $data) { + $indexes = array_flip($data); + if ($expectSuccess) { + $this->assertCount($nplural, $indexes, "Langcode '$langCode' has '$nplural' plural forms."); + } else { + $this->assertNotEquals((int) $nplural, \count($indexes), "Langcode '$langCode' has '$nplural' plural forms."); + } + } + } + + protected function generateTestData($langCodes) + { + $translator = new class() { + use TranslatorTrait { + getPluralizationRule as public; + } + }; + + $matrix = []; + foreach ($langCodes as $langCode) { + for ($count = 0; $count < 200; ++$count) { + $plural = $translator->getPluralizationRule($count, $langCode); + $matrix[$langCode][$count] = $plural; + } + } + + return $matrix; + } +} diff --git a/vendor/symfony/translation-contracts/TranslatableInterface.php b/vendor/symfony/translation-contracts/TranslatableInterface.php new file mode 100644 index 000000000..47fd6fa02 --- /dev/null +++ b/vendor/symfony/translation-contracts/TranslatableInterface.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Contracts\Translation; + +/** + * @author Nicolas Grekas + */ +interface TranslatableInterface +{ + public function trans(TranslatorInterface $translator, string $locale = null): string; +} diff --git a/vendor/symfony/translation-contracts/TranslatorInterface.php b/vendor/symfony/translation-contracts/TranslatorInterface.php new file mode 100644 index 000000000..018db07eb --- /dev/null +++ b/vendor/symfony/translation-contracts/TranslatorInterface.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Contracts\Translation; + +/** + * @author Fabien Potencier + */ +interface TranslatorInterface +{ + /** + * Translates the given message. + * + * When a number is provided as a parameter named "%count%", the message is parsed for plural + * forms and a translation is chosen according to this number using the following rules: + * + * Given a message with different plural translations separated by a + * pipe (|), this method returns the correct portion of the message based + * on the given number, locale and the pluralization rules in the message + * itself. + * + * The message supports two different types of pluralization rules: + * + * interval: {0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples + * indexed: There is one apple|There are %count% apples + * + * The indexed solution can also contain labels (e.g. one: There is one apple). + * This is purely for making the translations more clear - it does not + * affect the functionality. + * + * The two methods can also be mixed: + * {0} There are no apples|one: There is one apple|more: There are %count% apples + * + * An interval can represent a finite set of numbers: + * {1,2,3,4} + * + * An interval can represent numbers between two numbers: + * [1, +Inf] + * ]-1,2[ + * + * The left delimiter can be [ (inclusive) or ] (exclusive). + * The right delimiter can be [ (exclusive) or ] (inclusive). + * Beside numbers, you can use -Inf and +Inf for the infinite. + * + * @see https://en.wikipedia.org/wiki/ISO_31-11 + * + * @param string $id The message id (may also be an object that can be cast to string) + * @param array $parameters An array of parameters for the message + * @param string|null $domain The domain for the message or null to use the default + * @param string|null $locale The locale or null to use the default + * + * @throws \InvalidArgumentException If the locale contains invalid characters + */ + public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null): string; + + /** + * Returns the default locale. + */ + public function getLocale(): string; +} diff --git a/vendor/symfony/translation-contracts/TranslatorTrait.php b/vendor/symfony/translation-contracts/TranslatorTrait.php new file mode 100644 index 000000000..e3b0adff0 --- /dev/null +++ b/vendor/symfony/translation-contracts/TranslatorTrait.php @@ -0,0 +1,225 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Contracts\Translation; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; + +/** + * A trait to help implement TranslatorInterface and LocaleAwareInterface. + * + * @author Fabien Potencier + */ +trait TranslatorTrait +{ + private ?string $locale = null; + + /** + * @return void + */ + public function setLocale(string $locale) + { + $this->locale = $locale; + } + + public function getLocale(): string + { + return $this->locale ?: (class_exists(\Locale::class) ? \Locale::getDefault() : 'en'); + } + + public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null): string + { + if (null === $id || '' === $id) { + return ''; + } + + if (!isset($parameters['%count%']) || !is_numeric($parameters['%count%'])) { + return strtr($id, $parameters); + } + + $number = (float) $parameters['%count%']; + $locale = $locale ?: $this->getLocale(); + + $parts = []; + if (preg_match('/^\|++$/', $id)) { + $parts = explode('|', $id); + } elseif (preg_match_all('/(?:\|\||[^\|])++/', $id, $matches)) { + $parts = $matches[0]; + } + + $intervalRegexp = <<<'EOF' +/^(?P + ({\s* + (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*) + \s*}) + + | + + (?P[\[\]]) + \s* + (?P-Inf|\-?\d+(\.\d+)?) + \s*,\s* + (?P\+?Inf|\-?\d+(\.\d+)?) + \s* + (?P[\[\]]) +)\s*(?P.*?)$/xs +EOF; + + $standardRules = []; + foreach ($parts as $part) { + $part = trim(str_replace('||', '|', $part)); + + // try to match an explicit rule, then fallback to the standard ones + if (preg_match($intervalRegexp, $part, $matches)) { + if ($matches[2]) { + foreach (explode(',', $matches[3]) as $n) { + if ($number == $n) { + return strtr($matches['message'], $parameters); + } + } + } else { + $leftNumber = '-Inf' === $matches['left'] ? -\INF : (float) $matches['left']; + $rightNumber = is_numeric($matches['right']) ? (float) $matches['right'] : \INF; + + if (('[' === $matches['left_delimiter'] ? $number >= $leftNumber : $number > $leftNumber) + && (']' === $matches['right_delimiter'] ? $number <= $rightNumber : $number < $rightNumber) + ) { + return strtr($matches['message'], $parameters); + } + } + } elseif (preg_match('/^\w+\:\s*(.*?)$/', $part, $matches)) { + $standardRules[] = $matches[1]; + } else { + $standardRules[] = $part; + } + } + + $position = $this->getPluralizationRule($number, $locale); + + if (!isset($standardRules[$position])) { + // when there's exactly one rule given, and that rule is a standard + // rule, use this rule + if (1 === \count($parts) && isset($standardRules[0])) { + return strtr($standardRules[0], $parameters); + } + + $message = sprintf('Unable to choose a translation for "%s" with locale "%s" for value "%d". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %%count%% apples").', $id, $locale, $number); + + if (class_exists(InvalidArgumentException::class)) { + throw new InvalidArgumentException($message); + } + + throw new \InvalidArgumentException($message); + } + + return strtr($standardRules[$position], $parameters); + } + + /** + * Returns the plural position to use for the given locale and number. + * + * The plural rules are derived from code of the Zend Framework (2010-09-25), + * which is subject to the new BSD license (http://framework.zend.com/license/new-bsd). + * Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + */ + private function getPluralizationRule(float $number, string $locale): int + { + $number = abs($number); + + return match ('pt_BR' !== $locale && 'en_US_POSIX' !== $locale && \strlen($locale) > 3 ? substr($locale, 0, strrpos($locale, '_')) : $locale) { + 'af', + 'bn', + 'bg', + 'ca', + 'da', + 'de', + 'el', + 'en', + 'en_US_POSIX', + 'eo', + 'es', + 'et', + 'eu', + 'fa', + 'fi', + 'fo', + 'fur', + 'fy', + 'gl', + 'gu', + 'ha', + 'he', + 'hu', + 'is', + 'it', + 'ku', + 'lb', + 'ml', + 'mn', + 'mr', + 'nah', + 'nb', + 'ne', + 'nl', + 'nn', + 'no', + 'oc', + 'om', + 'or', + 'pa', + 'pap', + 'ps', + 'pt', + 'so', + 'sq', + 'sv', + 'sw', + 'ta', + 'te', + 'tk', + 'ur', + 'zu' => (1 == $number) ? 0 : 1, + 'am', + 'bh', + 'fil', + 'fr', + 'gun', + 'hi', + 'hy', + 'ln', + 'mg', + 'nso', + 'pt_BR', + 'ti', + 'wa' => ($number < 2) ? 0 : 1, + 'be', + 'bs', + 'hr', + 'ru', + 'sh', + 'sr', + 'uk' => ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2), + 'cs', + 'sk' => (1 == $number) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2), + 'ga' => (1 == $number) ? 0 : ((2 == $number) ? 1 : 2), + 'lt' => ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2), + 'sl' => (1 == $number % 100) ? 0 : ((2 == $number % 100) ? 1 : (((3 == $number % 100) || (4 == $number % 100)) ? 2 : 3)), + 'mk' => (1 == $number % 10) ? 0 : 1, + 'mt' => (1 == $number) ? 0 : (((0 == $number) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3)), + 'lv' => (0 == $number) ? 0 : (((1 == $number % 10) && (11 != $number % 100)) ? 1 : 2), + 'pl' => (1 == $number) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 12) || ($number % 100 > 14))) ? 1 : 2), + 'cy' => (1 == $number) ? 0 : ((2 == $number) ? 1 : (((8 == $number) || (11 == $number)) ? 2 : 3)), + 'ro' => (1 == $number) ? 0 : (((0 == $number) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2), + 'ar' => (0 == $number) ? 0 : ((1 == $number) ? 1 : ((2 == $number) ? 2 : ((($number % 100 >= 3) && ($number % 100 <= 10)) ? 3 : ((($number % 100 >= 11) && ($number % 100 <= 99)) ? 4 : 5)))), + default => 0, + }; + } +} diff --git a/vendor/symfony/translation-contracts/composer.json b/vendor/symfony/translation-contracts/composer.json new file mode 100644 index 000000000..213b5cda8 --- /dev/null +++ b/vendor/symfony/translation-contracts/composer.json @@ -0,0 +1,37 @@ +{ + "name": "symfony/translation-contracts", + "type": "library", + "description": "Generic abstractions related to translation", + "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=8.1" + }, + "autoload": { + "psr-4": { "Symfony\\Contracts\\Translation\\": "" }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + } +} diff --git a/vendor/symfony/translation/CHANGELOG.md b/vendor/symfony/translation/CHANGELOG.md new file mode 100644 index 000000000..07ba0d031 --- /dev/null +++ b/vendor/symfony/translation/CHANGELOG.md @@ -0,0 +1,196 @@ +CHANGELOG +========= + +6.2.7 +----- + + * [BC BREAK] The following data providers for `ProviderFactoryTestCase` are now static: + `supportsProvider()`, `createProvider()`, `unsupportedSchemeProvider()`and `incompleteDsnProvider()` + * [BC BREAK] `ProviderTestCase::toStringProvider()` is now static + +6.2 +--- + + * Deprecate `PhpStringTokenParser` + * Deprecate `PhpExtractor` in favor of `PhpAstExtractor` + * Add `PhpAstExtractor` (requires [nikic/php-parser](https://github.com/nikic/php-parser) to be installed) + +6.1 +--- + + * Parameters implementing `TranslatableInterface` are processed + * Add the file extension to the `XliffFileDumper` constructor + +5.4 +--- + + * Add `github` format & autodetection to render errors as annotations when + running the XLIFF linter command in a Github Actions environment. + * Translation providers are not experimental anymore + +5.3 +--- + + * Add `translation:pull` and `translation:push` commands to manage translations with third-party providers + * Add `TranslatorBagInterface::getCatalogues` method + * Add support to load XLIFF string in `XliffFileLoader` + +5.2.0 +----- + + * added support for calling `trans` with ICU formatted messages + * added `PseudoLocalizationTranslator` + * added `TranslatableMessage` objects that represent a message that can be translated + * added the `t()` function to easily create `TranslatableMessage` objects + * Added support for extracting messages from `TranslatableMessage` objects + +5.1.0 +----- + + * added support for `name` attribute on `unit` element from xliff2 to be used as a translation key instead of always the `source` element + +5.0.0 +----- + + * removed support for using `null` as the locale in `Translator` + * removed `TranslatorInterface` + * removed `MessageSelector` + * removed `ChoiceMessageFormatterInterface` + * removed `PluralizationRule` + * removed `Interval` + * removed `transChoice()` methods, use the trans() method instead with a %count% parameter + * removed `FileDumper::setBackup()` and `TranslationWriter::disableBackup()` + * removed `MessageFormatter::choiceFormat()` + * added argument `$filename` to `PhpExtractor::parseTokens()` + * removed support for implicit STDIN usage in the `lint:xliff` command, use `lint:xliff -` (append a dash) instead to make it explicit. + +4.4.0 +----- + + * deprecated support for using `null` as the locale in `Translator` + * deprecated accepting STDIN implicitly when using the `lint:xliff` command, use `lint:xliff -` (append a dash) instead to make it explicit. + * Marked the `TranslationDataCollector` class as `@final`. + +4.3.0 +----- + + * Improved Xliff 1.2 loader to load the original file's metadata + * Added `TranslatorPathsPass` + +4.2.0 +----- + + * Started using ICU parent locales as fallback locales. + * allow using the ICU message format using domains with the "+intl-icu" suffix + * deprecated `Translator::transChoice()` in favor of using `Translator::trans()` with a `%count%` parameter + * deprecated `TranslatorInterface` in favor of `Symfony\Contracts\Translation\TranslatorInterface` + * deprecated `MessageSelector`, `Interval` and `PluralizationRules`; use `IdentityTranslator` instead + * Added `IntlFormatter` and `IntlFormatterInterface` + * added support for multiple files and directories in `XliffLintCommand` + * Marked `Translator::getFallbackLocales()` and `TranslationDataCollector::getFallbackLocales()` as internal + +4.1.0 +----- + + * The `FileDumper::setBackup()` method is deprecated. + * The `TranslationWriter::disableBackup()` method is deprecated. + * The `XliffFileDumper` will write "name" on the "unit" node when dumping XLIFF 2.0. + +4.0.0 +----- + + * removed the backup feature of the `FileDumper` class + * removed `TranslationWriter::writeTranslations()` method + * removed support for passing `MessageSelector` instances to the constructor of the `Translator` class + +3.4.0 +----- + + * Added `TranslationDumperPass` + * Added `TranslationExtractorPass` + * Added `TranslatorPass` + * Added `TranslationReader` and `TranslationReaderInterface` + * Added `` section to the Xliff 2.0 dumper. + * Improved Xliff 2.0 loader to load `` section. + * Added `TranslationWriterInterface` + * Deprecated `TranslationWriter::writeTranslations` in favor of `TranslationWriter::write` + * added support for adding custom message formatter and decoupling the default one. + * Added `PhpExtractor` + * Added `PhpStringTokenParser` + +3.2.0 +----- + + * Added support for escaping `|` in plural translations with double pipe. + +3.1.0 +----- + + * Deprecated the backup feature of the file dumper classes. + +3.0.0 +----- + + * removed `FileDumper::format()` method. + * Changed the visibility of the locale property in `Translator` from protected to private. + +2.8.0 +----- + + * deprecated FileDumper::format(), overwrite FileDumper::formatCatalogue() instead. + * deprecated Translator::getMessages(), rely on TranslatorBagInterface::getCatalogue() instead. + * added `FileDumper::formatCatalogue` which allows format the catalogue without dumping it into file. + * added option `json_encoding` to JsonFileDumper + * added options `as_tree`, `inline` to YamlFileDumper + * added support for XLIFF 2.0. + * added support for XLIFF target and tool attributes. + * added message parameters to DataCollectorTranslator. + * [DEPRECATION] The `DiffOperation` class has been deprecated and + will be removed in Symfony 3.0, since its operation has nothing to do with 'diff', + so the class name is misleading. The `TargetOperation` class should be used for + this use-case instead. + +2.7.0 +----- + + * added DataCollectorTranslator for collecting the translated messages. + +2.6.0 +----- + + * added possibility to cache catalogues + * added TranslatorBagInterface + * added LoggingTranslator + * added Translator::getMessages() for retrieving the message catalogue as an array + +2.5.0 +----- + + * added relative file path template to the file dumpers + * added optional backup to the file dumpers + * changed IcuResFileDumper to extend FileDumper + +2.3.0 +----- + + * added classes to make operations on catalogues (like making a diff or a merge on 2 catalogues) + * added Translator::getFallbackLocales() + * deprecated Translator::setFallbackLocale() in favor of the new Translator::setFallbackLocales() method + +2.2.0 +----- + + * QtTranslationsLoader class renamed to QtFileLoader. QtTranslationsLoader is deprecated and will be removed in 2.3. + * [BC BREAK] uniformized the exception thrown by the load() method when an error occurs. The load() method now + throws Symfony\Component\Translation\Exception\NotFoundResourceException when a resource cannot be found + and Symfony\Component\Translation\Exception\InvalidResourceException when a resource is invalid. + * changed the exception class thrown by some load() methods from \RuntimeException to \InvalidArgumentException + (IcuDatFileLoader, IcuResFileLoader and QtFileLoader) + +2.1.0 +----- + + * added support for more than one fallback locale + * added support for extracting translation messages from templates (Twig and PHP) + * added dumpers for translation catalogs + * added support for QT, gettext, and ResourceBundles diff --git a/vendor/symfony/translation/Catalogue/AbstractOperation.php b/vendor/symfony/translation/Catalogue/AbstractOperation.php new file mode 100644 index 000000000..65eea0bb9 --- /dev/null +++ b/vendor/symfony/translation/Catalogue/AbstractOperation.php @@ -0,0 +1,190 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Catalogue; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\Exception\LogicException; +use Symfony\Component\Translation\MessageCatalogue; +use Symfony\Component\Translation\MessageCatalogueInterface; + +/** + * Base catalogues binary operation class. + * + * A catalogue binary operation performs operation on + * source (the left argument) and target (the right argument) catalogues. + * + * @author Jean-François Simon + */ +abstract class AbstractOperation implements OperationInterface +{ + public const OBSOLETE_BATCH = 'obsolete'; + public const NEW_BATCH = 'new'; + public const ALL_BATCH = 'all'; + + protected $source; + protected $target; + protected $result; + + /** + * @var array|null The domains affected by this operation + */ + private $domains; + + /** + * This array stores 'all', 'new' and 'obsolete' messages for all valid domains. + * + * The data structure of this array is as follows: + * + * [ + * 'domain 1' => [ + * 'all' => [...], + * 'new' => [...], + * 'obsolete' => [...] + * ], + * 'domain 2' => [ + * 'all' => [...], + * 'new' => [...], + * 'obsolete' => [...] + * ], + * ... + * ] + * + * @var array The array that stores 'all', 'new' and 'obsolete' messages + */ + protected $messages; + + /** + * @throws LogicException + */ + public function __construct(MessageCatalogueInterface $source, MessageCatalogueInterface $target) + { + if ($source->getLocale() !== $target->getLocale()) { + throw new LogicException('Operated catalogues must belong to the same locale.'); + } + + $this->source = $source; + $this->target = $target; + $this->result = new MessageCatalogue($source->getLocale()); + $this->messages = []; + } + + public function getDomains(): array + { + if (null === $this->domains) { + $domains = []; + foreach ([$this->source, $this->target] as $catalogue) { + foreach ($catalogue->getDomains() as $domain) { + $domains[$domain] = $domain; + + if ($catalogue->all($domainIcu = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX)) { + $domains[$domainIcu] = $domainIcu; + } + } + } + + $this->domains = array_values($domains); + } + + return $this->domains; + } + + public function getMessages(string $domain): array + { + if (!\in_array($domain, $this->getDomains())) { + throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain)); + } + + if (!isset($this->messages[$domain][self::ALL_BATCH])) { + $this->processDomain($domain); + } + + return $this->messages[$domain][self::ALL_BATCH]; + } + + public function getNewMessages(string $domain): array + { + if (!\in_array($domain, $this->getDomains())) { + throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain)); + } + + if (!isset($this->messages[$domain][self::NEW_BATCH])) { + $this->processDomain($domain); + } + + return $this->messages[$domain][self::NEW_BATCH]; + } + + public function getObsoleteMessages(string $domain): array + { + if (!\in_array($domain, $this->getDomains())) { + throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain)); + } + + if (!isset($this->messages[$domain][self::OBSOLETE_BATCH])) { + $this->processDomain($domain); + } + + return $this->messages[$domain][self::OBSOLETE_BATCH]; + } + + public function getResult(): MessageCatalogueInterface + { + foreach ($this->getDomains() as $domain) { + if (!isset($this->messages[$domain])) { + $this->processDomain($domain); + } + } + + return $this->result; + } + + /** + * @param self::*_BATCH $batch + */ + public function moveMessagesToIntlDomainsIfPossible(string $batch = self::ALL_BATCH): void + { + // If MessageFormatter class does not exists, intl domains are not supported. + if (!class_exists(\MessageFormatter::class)) { + return; + } + + foreach ($this->getDomains() as $domain) { + $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX; + $messages = match ($batch) { + self::OBSOLETE_BATCH => $this->getObsoleteMessages($domain), + self::NEW_BATCH => $this->getNewMessages($domain), + self::ALL_BATCH => $this->getMessages($domain), + default => throw new \InvalidArgumentException(sprintf('$batch argument must be one of ["%s", "%s", "%s"].', self::ALL_BATCH, self::NEW_BATCH, self::OBSOLETE_BATCH)), + }; + + if (!$messages || (!$this->source->all($intlDomain) && $this->source->all($domain))) { + continue; + } + + $result = $this->getResult(); + $allIntlMessages = $result->all($intlDomain); + $currentMessages = array_diff_key($messages, $result->all($domain)); + $result->replace($currentMessages, $domain); + $result->replace($allIntlMessages + $messages, $intlDomain); + } + } + + /** + * Performs operation on source and target catalogues for the given domain and + * stores the results. + * + * @param string $domain The domain which the operation will be performed for + * + * @return void + */ + abstract protected function processDomain(string $domain); +} diff --git a/vendor/symfony/translation/Catalogue/MergeOperation.php b/vendor/symfony/translation/Catalogue/MergeOperation.php new file mode 100644 index 000000000..1b777a843 --- /dev/null +++ b/vendor/symfony/translation/Catalogue/MergeOperation.php @@ -0,0 +1,72 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Catalogue; + +use Symfony\Component\Translation\MessageCatalogueInterface; + +/** + * Merge operation between two catalogues as follows: + * all = source ∪ target = {x: x ∈ source ∨ x ∈ target} + * new = all ∖ source = {x: x ∈ target ∧ x ∉ source} + * obsolete = source ∖ all = {x: x ∈ source ∧ x ∉ source ∧ x ∉ target} = ∅ + * Basically, the result contains messages from both catalogues. + * + * @author Jean-François Simon + */ +class MergeOperation extends AbstractOperation +{ + /** + * @return void + */ + protected function processDomain(string $domain) + { + $this->messages[$domain] = [ + 'all' => [], + 'new' => [], + 'obsolete' => [], + ]; + $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX; + + foreach ($this->target->getCatalogueMetadata('', $domain) ?? [] as $key => $value) { + if (null === $this->result->getCatalogueMetadata($key, $domain)) { + $this->result->setCatalogueMetadata($key, $value, $domain); + } + } + + foreach ($this->target->getCatalogueMetadata('', $intlDomain) ?? [] as $key => $value) { + if (null === $this->result->getCatalogueMetadata($key, $intlDomain)) { + $this->result->setCatalogueMetadata($key, $value, $intlDomain); + } + } + + foreach ($this->source->all($domain) as $id => $message) { + $this->messages[$domain]['all'][$id] = $message; + $d = $this->source->defines($id, $intlDomain) ? $intlDomain : $domain; + $this->result->add([$id => $message], $d); + if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) { + $this->result->setMetadata($id, $keyMetadata, $d); + } + } + + foreach ($this->target->all($domain) as $id => $message) { + if (!$this->source->has($id, $domain)) { + $this->messages[$domain]['all'][$id] = $message; + $this->messages[$domain]['new'][$id] = $message; + $d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain; + $this->result->add([$id => $message], $d); + if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) { + $this->result->setMetadata($id, $keyMetadata, $d); + } + } + } + } +} diff --git a/vendor/symfony/translation/Catalogue/OperationInterface.php b/vendor/symfony/translation/Catalogue/OperationInterface.php new file mode 100644 index 000000000..1fe9534e8 --- /dev/null +++ b/vendor/symfony/translation/Catalogue/OperationInterface.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Catalogue; + +use Symfony\Component\Translation\MessageCatalogueInterface; + +/** + * Represents an operation on catalogue(s). + * + * An instance of this interface performs an operation on one or more catalogues and + * stores intermediate and final results of the operation. + * + * The first catalogue in its argument(s) is called the 'source catalogue' or 'source' and + * the following results are stored: + * + * Messages: also called 'all', are valid messages for the given domain after the operation is performed. + * + * New Messages: also called 'new' (new = all ∖ source = {x: x ∈ all ∧ x ∉ source}). + * + * Obsolete Messages: also called 'obsolete' (obsolete = source ∖ all = {x: x ∈ source ∧ x ∉ all}). + * + * Result: also called 'result', is the resulting catalogue for the given domain that holds the same messages as 'all'. + * + * @author Jean-François Simon + */ +interface OperationInterface +{ + /** + * Returns domains affected by operation. + */ + public function getDomains(): array; + + /** + * Returns all valid messages ('all') after operation. + */ + public function getMessages(string $domain): array; + + /** + * Returns new messages ('new') after operation. + */ + public function getNewMessages(string $domain): array; + + /** + * Returns obsolete messages ('obsolete') after operation. + */ + public function getObsoleteMessages(string $domain): array; + + /** + * Returns resulting catalogue ('result'). + */ + public function getResult(): MessageCatalogueInterface; +} diff --git a/vendor/symfony/translation/Catalogue/TargetOperation.php b/vendor/symfony/translation/Catalogue/TargetOperation.php new file mode 100644 index 000000000..2c0ec722e --- /dev/null +++ b/vendor/symfony/translation/Catalogue/TargetOperation.php @@ -0,0 +1,86 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Catalogue; + +use Symfony\Component\Translation\MessageCatalogueInterface; + +/** + * Target operation between two catalogues: + * intersection = source ∩ target = {x: x ∈ source ∧ x ∈ target} + * all = intersection ∪ (target ∖ intersection) = target + * new = all ∖ source = {x: x ∈ target ∧ x ∉ source} + * obsolete = source ∖ all = source ∖ target = {x: x ∈ source ∧ x ∉ target} + * Basically, the result contains messages from the target catalogue. + * + * @author Michael Lee + */ +class TargetOperation extends AbstractOperation +{ + /** + * @return void + */ + protected function processDomain(string $domain) + { + $this->messages[$domain] = [ + 'all' => [], + 'new' => [], + 'obsolete' => [], + ]; + $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX; + + foreach ($this->target->getCatalogueMetadata('', $domain) ?? [] as $key => $value) { + if (null === $this->result->getCatalogueMetadata($key, $domain)) { + $this->result->setCatalogueMetadata($key, $value, $domain); + } + } + + foreach ($this->target->getCatalogueMetadata('', $intlDomain) ?? [] as $key => $value) { + if (null === $this->result->getCatalogueMetadata($key, $intlDomain)) { + $this->result->setCatalogueMetadata($key, $value, $intlDomain); + } + } + + // For 'all' messages, the code can't be simplified as ``$this->messages[$domain]['all'] = $target->all($domain);``, + // because doing so will drop messages like {x: x ∈ source ∧ x ∉ target.all ∧ x ∈ target.fallback} + // + // For 'new' messages, the code can't be simplified as ``array_diff_assoc($this->target->all($domain), $this->source->all($domain));`` + // because doing so will not exclude messages like {x: x ∈ target ∧ x ∉ source.all ∧ x ∈ source.fallback} + // + // For 'obsolete' messages, the code can't be simplified as ``array_diff_assoc($this->source->all($domain), $this->target->all($domain))`` + // because doing so will not exclude messages like {x: x ∈ source ∧ x ∉ target.all ∧ x ∈ target.fallback} + + foreach ($this->source->all($domain) as $id => $message) { + if ($this->target->has($id, $domain)) { + $this->messages[$domain]['all'][$id] = $message; + $d = $this->source->defines($id, $intlDomain) ? $intlDomain : $domain; + $this->result->add([$id => $message], $d); + if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) { + $this->result->setMetadata($id, $keyMetadata, $d); + } + } else { + $this->messages[$domain]['obsolete'][$id] = $message; + } + } + + foreach ($this->target->all($domain) as $id => $message) { + if (!$this->source->has($id, $domain)) { + $this->messages[$domain]['all'][$id] = $message; + $this->messages[$domain]['new'][$id] = $message; + $d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain; + $this->result->add([$id => $message], $d); + if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) { + $this->result->setMetadata($id, $keyMetadata, $d); + } + } + } + } +} diff --git a/vendor/symfony/translation/CatalogueMetadataAwareInterface.php b/vendor/symfony/translation/CatalogueMetadataAwareInterface.php new file mode 100644 index 000000000..c845959f1 --- /dev/null +++ b/vendor/symfony/translation/CatalogueMetadataAwareInterface.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +/** + * This interface is used to get, set, and delete metadata about the Catalogue. + * + * @author Hugo Alliaume + */ +interface CatalogueMetadataAwareInterface +{ + /** + * Gets catalogue metadata for the given domain and key. + * + * Passing an empty domain will return an array with all catalogue metadata indexed by + * domain and then by key. Passing an empty key will return an array with all + * catalogue metadata for the given domain. + * + * @return mixed The value that was set or an array with the domains/keys or null + */ + public function getCatalogueMetadata(string $key = '', string $domain = 'messages'): mixed; + + /** + * Adds catalogue metadata to a message domain. + * + * @return void + */ + public function setCatalogueMetadata(string $key, mixed $value, string $domain = 'messages'); + + /** + * Deletes catalogue metadata for the given key and domain. + * + * Passing an empty domain will delete all catalogue metadata. Passing an empty key will + * delete all metadata for the given domain. + * + * @return void + */ + public function deleteCatalogueMetadata(string $key = '', string $domain = 'messages'); +} diff --git a/vendor/symfony/translation/Command/TranslationPullCommand.php b/vendor/symfony/translation/Command/TranslationPullCommand.php new file mode 100644 index 000000000..646b92c83 --- /dev/null +++ b/vendor/symfony/translation/Command/TranslationPullCommand.php @@ -0,0 +1,180 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Command; + +use Symfony\Component\Console\Attribute\AsCommand; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Completion\CompletionInput; +use Symfony\Component\Console\Completion\CompletionSuggestions; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\Translation\Catalogue\TargetOperation; +use Symfony\Component\Translation\MessageCatalogue; +use Symfony\Component\Translation\Provider\TranslationProviderCollection; +use Symfony\Component\Translation\Reader\TranslationReaderInterface; +use Symfony\Component\Translation\Writer\TranslationWriterInterface; + +/** + * @author Mathieu Santostefano + */ +#[AsCommand(name: 'translation:pull', description: 'Pull translations from a given provider.')] +final class TranslationPullCommand extends Command +{ + use TranslationTrait; + + private TranslationProviderCollection $providerCollection; + private TranslationWriterInterface $writer; + private TranslationReaderInterface $reader; + private string $defaultLocale; + private array $transPaths; + private array $enabledLocales; + + public function __construct(TranslationProviderCollection $providerCollection, TranslationWriterInterface $writer, TranslationReaderInterface $reader, string $defaultLocale, array $transPaths = [], array $enabledLocales = []) + { + $this->providerCollection = $providerCollection; + $this->writer = $writer; + $this->reader = $reader; + $this->defaultLocale = $defaultLocale; + $this->transPaths = $transPaths; + $this->enabledLocales = $enabledLocales; + + parent::__construct(); + } + + public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void + { + if ($input->mustSuggestArgumentValuesFor('provider')) { + $suggestions->suggestValues($this->providerCollection->keys()); + + return; + } + + if ($input->mustSuggestOptionValuesFor('domains')) { + $provider = $this->providerCollection->get($input->getArgument('provider')); + + if (method_exists($provider, 'getDomains')) { + $suggestions->suggestValues($provider->getDomains()); + } + + return; + } + + if ($input->mustSuggestOptionValuesFor('locales')) { + $suggestions->suggestValues($this->enabledLocales); + + return; + } + + if ($input->mustSuggestOptionValuesFor('format')) { + $suggestions->suggestValues(['php', 'xlf', 'xlf12', 'xlf20', 'po', 'mo', 'yml', 'yaml', 'ts', 'csv', 'json', 'ini', 'res']); + } + } + + protected function configure(): void + { + $keys = $this->providerCollection->keys(); + $defaultProvider = 1 === \count($keys) ? $keys[0] : null; + + $this + ->setDefinition([ + new InputArgument('provider', null !== $defaultProvider ? InputArgument::OPTIONAL : InputArgument::REQUIRED, 'The provider to pull translations from.', $defaultProvider), + new InputOption('force', null, InputOption::VALUE_NONE, 'Override existing translations with provider ones (it will delete not synchronized messages).'), + new InputOption('intl-icu', null, InputOption::VALUE_NONE, 'Associated to --force option, it will write messages in "%domain%+intl-icu.%locale%.xlf" files.'), + new InputOption('domains', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the domains to pull.'), + new InputOption('locales', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the locales to pull.'), + new InputOption('format', null, InputOption::VALUE_OPTIONAL, 'Override the default output format.', 'xlf12'), + ]) + ->setHelp(<<<'EOF' +The %command.name% command pulls translations from the given provider. Only +new translations are pulled, existing ones are not overwritten. + +You can overwrite existing translations (and remove the missing ones on local side) by using the --force flag: + + php %command.full_name% --force provider + +Full example: + + php %command.full_name% provider --force --domains=messages --domains=validators --locales=en + +This command pulls all translations associated with the messages and validators domains for the en locale. +Local translations for the specified domains and locale are deleted if they're not present on the provider and overwritten if it's the case. +Local translations for others domains and locales are ignored. +EOF + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output): int + { + $io = new SymfonyStyle($input, $output); + + $provider = $this->providerCollection->get($input->getArgument('provider')); + $force = $input->getOption('force'); + $intlIcu = $input->getOption('intl-icu'); + $locales = $input->getOption('locales') ?: $this->enabledLocales; + $domains = $input->getOption('domains'); + $format = $input->getOption('format'); + $xliffVersion = '1.2'; + + if ($intlIcu && !$force) { + $io->note('--intl-icu option only has an effect when used with --force. Here, it will be ignored.'); + } + + switch ($format) { + case 'xlf20': $xliffVersion = '2.0'; + // no break + case 'xlf12': $format = 'xlf'; + } + + $writeOptions = [ + 'path' => end($this->transPaths), + 'xliff_version' => $xliffVersion, + 'default_locale' => $this->defaultLocale, + ]; + + if (!$domains) { + $domains = $provider->getDomains(); + } + + $providerTranslations = $provider->read($domains, $locales); + + if ($force) { + foreach ($providerTranslations->getCatalogues() as $catalogue) { + $operation = new TargetOperation(new MessageCatalogue($catalogue->getLocale()), $catalogue); + if ($intlIcu) { + $operation->moveMessagesToIntlDomainsIfPossible(); + } + $this->writer->write($operation->getResult(), $format, $writeOptions); + } + + $io->success(sprintf('Local translations has been updated from "%s" (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains))); + + return 0; + } + + $localTranslations = $this->readLocalTranslations($locales, $domains, $this->transPaths); + + // Append pulled translations to local ones. + $localTranslations->addBag($providerTranslations->diff($localTranslations)); + + foreach ($localTranslations->getCatalogues() as $catalogue) { + $this->writer->write($catalogue, $format, $writeOptions); + } + + $io->success(sprintf('New translations from "%s" has been written locally (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains))); + + return 0; + } +} diff --git a/vendor/symfony/translation/Command/TranslationPushCommand.php b/vendor/symfony/translation/Command/TranslationPushCommand.php new file mode 100644 index 000000000..1d04adbc9 --- /dev/null +++ b/vendor/symfony/translation/Command/TranslationPushCommand.php @@ -0,0 +1,182 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Command; + +use Symfony\Component\Console\Attribute\AsCommand; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Completion\CompletionInput; +use Symfony\Component\Console\Completion\CompletionSuggestions; +use Symfony\Component\Console\Exception\InvalidArgumentException; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\Translation\Provider\FilteringProvider; +use Symfony\Component\Translation\Provider\TranslationProviderCollection; +use Symfony\Component\Translation\Reader\TranslationReaderInterface; +use Symfony\Component\Translation\TranslatorBag; + +/** + * @author Mathieu Santostefano + */ +#[AsCommand(name: 'translation:push', description: 'Push translations to a given provider.')] +final class TranslationPushCommand extends Command +{ + use TranslationTrait; + + private TranslationProviderCollection $providers; + private TranslationReaderInterface $reader; + private array $transPaths; + private array $enabledLocales; + + public function __construct(TranslationProviderCollection $providers, TranslationReaderInterface $reader, array $transPaths = [], array $enabledLocales = []) + { + $this->providers = $providers; + $this->reader = $reader; + $this->transPaths = $transPaths; + $this->enabledLocales = $enabledLocales; + + parent::__construct(); + } + + public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void + { + if ($input->mustSuggestArgumentValuesFor('provider')) { + $suggestions->suggestValues($this->providers->keys()); + + return; + } + + if ($input->mustSuggestOptionValuesFor('domains')) { + $provider = $this->providers->get($input->getArgument('provider')); + + if ($provider && method_exists($provider, 'getDomains')) { + $domains = $provider->getDomains(); + $suggestions->suggestValues($domains); + } + + return; + } + + if ($input->mustSuggestOptionValuesFor('locales')) { + $suggestions->suggestValues($this->enabledLocales); + } + } + + protected function configure(): void + { + $keys = $this->providers->keys(); + $defaultProvider = 1 === \count($keys) ? $keys[0] : null; + + $this + ->setDefinition([ + new InputArgument('provider', null !== $defaultProvider ? InputArgument::OPTIONAL : InputArgument::REQUIRED, 'The provider to push translations to.', $defaultProvider), + new InputOption('force', null, InputOption::VALUE_NONE, 'Override existing translations with local ones (it will delete not synchronized messages).'), + new InputOption('delete-missing', null, InputOption::VALUE_NONE, 'Delete translations available on provider but not locally.'), + new InputOption('domains', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the domains to push.'), + new InputOption('locales', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the locales to push.', $this->enabledLocales), + ]) + ->setHelp(<<<'EOF' +The %command.name% command pushes translations to the given provider. Only new +translations are pushed, existing ones are not overwritten. + +You can overwrite existing translations by using the --force flag: + + php %command.full_name% --force provider + +You can delete provider translations which are not present locally by using the --delete-missing flag: + + php %command.full_name% --delete-missing provider + +Full example: + + php %command.full_name% provider --force --delete-missing --domains=messages --domains=validators --locales=en + +This command pushes all translations associated with the messages and validators domains for the en locale. +Provider translations for the specified domains and locale are deleted if they're not present locally and overwritten if it's the case. +Provider translations for others domains and locales are ignored. +EOF + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output): int + { + $provider = $this->providers->get($input->getArgument('provider')); + + if (!$this->enabledLocales) { + throw new InvalidArgumentException(sprintf('You must define "framework.enabled_locales" or "framework.translator.providers.%s.locales" config key in order to work with translation providers.', parse_url($provider, \PHP_URL_SCHEME))); + } + + $io = new SymfonyStyle($input, $output); + $domains = $input->getOption('domains'); + $locales = $input->getOption('locales'); + $force = $input->getOption('force'); + $deleteMissing = $input->getOption('delete-missing'); + + if (!$domains && $provider instanceof FilteringProvider) { + $domains = $provider->getDomains(); + } + + // Reading local translations must be done after retrieving the domains from the provider + // in order to manage only translations from configured domains + $localTranslations = $this->readLocalTranslations($locales, $domains, $this->transPaths); + + if (!$domains) { + $domains = $this->getDomainsFromTranslatorBag($localTranslations); + } + + if (!$deleteMissing && $force) { + $provider->write($localTranslations); + + $io->success(sprintf('All local translations has been sent to "%s" (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains))); + + return 0; + } + + $providerTranslations = $provider->read($domains, $locales); + + if ($deleteMissing) { + $provider->delete($providerTranslations->diff($localTranslations)); + + $io->success(sprintf('Missing translations on "%s" has been deleted (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains))); + + // Read provider translations again, after missing translations deletion, + // to avoid push freshly deleted translations. + $providerTranslations = $provider->read($domains, $locales); + } + + $translationsToWrite = $localTranslations->diff($providerTranslations); + + if ($force) { + $translationsToWrite->addBag($localTranslations->intersect($providerTranslations)); + } + + $provider->write($translationsToWrite); + + $io->success(sprintf('%s local translations has been sent to "%s" (for "%s" locale(s), and "%s" domain(s)).', $force ? 'All' : 'New', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains))); + + return 0; + } + + private function getDomainsFromTranslatorBag(TranslatorBag $translatorBag): array + { + $domains = []; + + foreach ($translatorBag->getCatalogues() as $catalogue) { + $domains += $catalogue->getDomains(); + } + + return array_unique($domains); + } +} diff --git a/vendor/symfony/translation/Command/TranslationTrait.php b/vendor/symfony/translation/Command/TranslationTrait.php new file mode 100644 index 000000000..eafaffd3f --- /dev/null +++ b/vendor/symfony/translation/Command/TranslationTrait.php @@ -0,0 +1,77 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Command; + +use Symfony\Component\Translation\MessageCatalogue; +use Symfony\Component\Translation\MessageCatalogueInterface; +use Symfony\Component\Translation\TranslatorBag; + +/** + * @internal + */ +trait TranslationTrait +{ + private function readLocalTranslations(array $locales, array $domains, array $transPaths): TranslatorBag + { + $bag = new TranslatorBag(); + + foreach ($locales as $locale) { + $catalogue = new MessageCatalogue($locale); + foreach ($transPaths as $path) { + $this->reader->read($path, $catalogue); + } + + if ($domains) { + foreach ($domains as $domain) { + $bag->addCatalogue($this->filterCatalogue($catalogue, $domain)); + } + } else { + $bag->addCatalogue($catalogue); + } + } + + return $bag; + } + + private function filterCatalogue(MessageCatalogue $catalogue, string $domain): MessageCatalogue + { + $filteredCatalogue = new MessageCatalogue($catalogue->getLocale()); + + // extract intl-icu messages only + $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX; + if ($intlMessages = $catalogue->all($intlDomain)) { + $filteredCatalogue->add($intlMessages, $intlDomain); + } + + // extract all messages and subtract intl-icu messages + if ($messages = array_diff($catalogue->all($domain), $intlMessages)) { + $filteredCatalogue->add($messages, $domain); + } + foreach ($catalogue->getResources() as $resource) { + $filteredCatalogue->addResource($resource); + } + + if ($metadata = $catalogue->getMetadata('', $intlDomain)) { + foreach ($metadata as $k => $v) { + $filteredCatalogue->setMetadata($k, $v, $intlDomain); + } + } + + if ($metadata = $catalogue->getMetadata('', $domain)) { + foreach ($metadata as $k => $v) { + $filteredCatalogue->setMetadata($k, $v, $domain); + } + } + + return $filteredCatalogue; + } +} diff --git a/vendor/symfony/translation/Command/XliffLintCommand.php b/vendor/symfony/translation/Command/XliffLintCommand.php new file mode 100644 index 000000000..ba68635db --- /dev/null +++ b/vendor/symfony/translation/Command/XliffLintCommand.php @@ -0,0 +1,285 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Command; + +use Symfony\Component\Console\Attribute\AsCommand; +use Symfony\Component\Console\CI\GithubActionReporter; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Completion\CompletionInput; +use Symfony\Component\Console\Completion\CompletionSuggestions; +use Symfony\Component\Console\Exception\RuntimeException; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\Util\XliffUtils; + +/** + * Validates XLIFF files syntax and outputs encountered errors. + * + * @author Grégoire Pineau + * @author Robin Chalas + * @author Javier Eguiluz + */ +#[AsCommand(name: 'lint:xliff', description: 'Lint an XLIFF file and outputs encountered errors')] +class XliffLintCommand extends Command +{ + private string $format; + private bool $displayCorrectFiles; + private ?\Closure $directoryIteratorProvider; + private ?\Closure $isReadableProvider; + private bool $requireStrictFileNames; + + public function __construct(string $name = null, callable $directoryIteratorProvider = null, callable $isReadableProvider = null, bool $requireStrictFileNames = true) + { + parent::__construct($name); + + $this->directoryIteratorProvider = null === $directoryIteratorProvider ? null : $directoryIteratorProvider(...); + $this->isReadableProvider = null === $isReadableProvider ? null : $isReadableProvider(...); + $this->requireStrictFileNames = $requireStrictFileNames; + } + + /** + * @return void + */ + protected function configure() + { + $this + ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN') + ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format ("%s")', implode('", "', $this->getAvailableFormatOptions()))) + ->setHelp(<<%command.name% command lints an XLIFF file and outputs to STDOUT +the first encountered syntax error. + +You can validates XLIFF contents passed from STDIN: + + cat filename | php %command.full_name% - + +You can also validate the syntax of a file: + + php %command.full_name% filename + +Or of a whole directory: + + php %command.full_name% dirname + php %command.full_name% dirname --format=json + +EOF + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output): int + { + $io = new SymfonyStyle($input, $output); + $filenames = (array) $input->getArgument('filename'); + $this->format = $input->getOption('format') ?? (GithubActionReporter::isGithubActionEnvironment() ? 'github' : 'txt'); + $this->displayCorrectFiles = $output->isVerbose(); + + if (['-'] === $filenames) { + return $this->display($io, [$this->validate(file_get_contents('php://stdin'))]); + } + + if (!$filenames) { + throw new RuntimeException('Please provide a filename or pipe file content to STDIN.'); + } + + $filesInfo = []; + foreach ($filenames as $filename) { + if (!$this->isReadable($filename)) { + throw new RuntimeException(sprintf('File or directory "%s" is not readable.', $filename)); + } + + foreach ($this->getFiles($filename) as $file) { + $filesInfo[] = $this->validate(file_get_contents($file), $file); + } + } + + return $this->display($io, $filesInfo); + } + + private function validate(string $content, string $file = null): array + { + $errors = []; + + // Avoid: Warning DOMDocument::loadXML(): Empty string supplied as input + if ('' === trim($content)) { + return ['file' => $file, 'valid' => true]; + } + + $internal = libxml_use_internal_errors(true); + + $document = new \DOMDocument(); + $document->loadXML($content); + + if (null !== $targetLanguage = $this->getTargetLanguageFromFile($document)) { + $normalizedLocalePattern = sprintf('(%s|%s)', preg_quote($targetLanguage, '/'), preg_quote(str_replace('-', '_', $targetLanguage), '/')); + // strict file names require translation files to be named '____.locale.xlf' + // otherwise, both '____.locale.xlf' and 'locale.____.xlf' are allowed + // also, the regexp matching must be case-insensitive, as defined for 'target-language' values + // http://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html#target-language + $expectedFilenamePattern = $this->requireStrictFileNames ? sprintf('/^.*\.(?i:%s)\.(?:xlf|xliff)/', $normalizedLocalePattern) : sprintf('/^(?:.*\.(?i:%s)|(?i:%s)\..*)\.(?:xlf|xliff)/', $normalizedLocalePattern, $normalizedLocalePattern); + + if (0 === preg_match($expectedFilenamePattern, basename($file))) { + $errors[] = [ + 'line' => -1, + 'column' => -1, + 'message' => sprintf('There is a mismatch between the language included in the file name ("%s") and the "%s" value used in the "target-language" attribute of the file.', basename($file), $targetLanguage), + ]; + } + } + + foreach (XliffUtils::validateSchema($document) as $xmlError) { + $errors[] = [ + 'line' => $xmlError['line'], + 'column' => $xmlError['column'], + 'message' => $xmlError['message'], + ]; + } + + libxml_clear_errors(); + libxml_use_internal_errors($internal); + + return ['file' => $file, 'valid' => 0 === \count($errors), 'messages' => $errors]; + } + + private function display(SymfonyStyle $io, array $files): int + { + return match ($this->format) { + 'txt' => $this->displayTxt($io, $files), + 'json' => $this->displayJson($io, $files), + 'github' => $this->displayTxt($io, $files, true), + default => throw new InvalidArgumentException(sprintf('Supported formats are "%s".', implode('", "', $this->getAvailableFormatOptions()))), + }; + } + + private function displayTxt(SymfonyStyle $io, array $filesInfo, bool $errorAsGithubAnnotations = false): int + { + $countFiles = \count($filesInfo); + $erroredFiles = 0; + $githubReporter = $errorAsGithubAnnotations ? new GithubActionReporter($io) : null; + + foreach ($filesInfo as $info) { + if ($info['valid'] && $this->displayCorrectFiles) { + $io->comment('OK'.($info['file'] ? sprintf(' in %s', $info['file']) : '')); + } elseif (!$info['valid']) { + ++$erroredFiles; + $io->text(' ERROR '.($info['file'] ? sprintf(' in %s', $info['file']) : '')); + $io->listing(array_map(function ($error) use ($info, $githubReporter) { + // general document errors have a '-1' line number + $line = -1 === $error['line'] ? null : $error['line']; + + $githubReporter?->error($error['message'], $info['file'], $line, null !== $line ? $error['column'] : null); + + return null === $line ? $error['message'] : sprintf('Line %d, Column %d: %s', $line, $error['column'], $error['message']); + }, $info['messages'])); + } + } + + if (0 === $erroredFiles) { + $io->success(sprintf('All %d XLIFF files contain valid syntax.', $countFiles)); + } else { + $io->warning(sprintf('%d XLIFF files have valid syntax and %d contain errors.', $countFiles - $erroredFiles, $erroredFiles)); + } + + return min($erroredFiles, 1); + } + + private function displayJson(SymfonyStyle $io, array $filesInfo): int + { + $errors = 0; + + array_walk($filesInfo, function (&$v) use (&$errors) { + $v['file'] = (string) $v['file']; + if (!$v['valid']) { + ++$errors; + } + }); + + $io->writeln(json_encode($filesInfo, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES)); + + return min($errors, 1); + } + + /** + * @return iterable<\SplFileInfo> + */ + private function getFiles(string $fileOrDirectory): iterable + { + if (is_file($fileOrDirectory)) { + yield new \SplFileInfo($fileOrDirectory); + + return; + } + + foreach ($this->getDirectoryIterator($fileOrDirectory) as $file) { + if (!\in_array($file->getExtension(), ['xlf', 'xliff'])) { + continue; + } + + yield $file; + } + } + + /** + * @return iterable<\SplFileInfo> + */ + private function getDirectoryIterator(string $directory): iterable + { + $default = fn ($directory) => new \RecursiveIteratorIterator( + new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS), + \RecursiveIteratorIterator::LEAVES_ONLY + ); + + if (null !== $this->directoryIteratorProvider) { + return ($this->directoryIteratorProvider)($directory, $default); + } + + return $default($directory); + } + + private function isReadable(string $fileOrDirectory): bool + { + $default = fn ($fileOrDirectory) => is_readable($fileOrDirectory); + + if (null !== $this->isReadableProvider) { + return ($this->isReadableProvider)($fileOrDirectory, $default); + } + + return $default($fileOrDirectory); + } + + private function getTargetLanguageFromFile(\DOMDocument $xliffContents): ?string + { + foreach ($xliffContents->getElementsByTagName('file')[0]->attributes ?? [] as $attribute) { + if ('target-language' === $attribute->nodeName) { + return $attribute->nodeValue; + } + } + + return null; + } + + public function complete(CompletionInput $input, CompletionSuggestions $suggestions): void + { + if ($input->mustSuggestOptionValuesFor('format')) { + $suggestions->suggestValues($this->getAvailableFormatOptions()); + } + } + + private function getAvailableFormatOptions(): array + { + return ['txt', 'json', 'github']; + } +} diff --git a/vendor/symfony/translation/DataCollector/TranslationDataCollector.php b/vendor/symfony/translation/DataCollector/TranslationDataCollector.php new file mode 100644 index 000000000..cdbba8cf3 --- /dev/null +++ b/vendor/symfony/translation/DataCollector/TranslationDataCollector.php @@ -0,0 +1,148 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\DataCollector; + +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpKernel\DataCollector\DataCollector; +use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface; +use Symfony\Component\Translation\DataCollectorTranslator; +use Symfony\Component\VarDumper\Cloner\Data; + +/** + * @author Abdellatif Ait boudad + * + * @final + */ +class TranslationDataCollector extends DataCollector implements LateDataCollectorInterface +{ + private DataCollectorTranslator $translator; + + public function __construct(DataCollectorTranslator $translator) + { + $this->translator = $translator; + } + + public function lateCollect(): void + { + $messages = $this->sanitizeCollectedMessages($this->translator->getCollectedMessages()); + + $this->data += $this->computeCount($messages); + $this->data['messages'] = $messages; + + $this->data = $this->cloneVar($this->data); + } + + public function collect(Request $request, Response $response, \Throwable $exception = null): void + { + $this->data['locale'] = $this->translator->getLocale(); + $this->data['fallback_locales'] = $this->translator->getFallbackLocales(); + } + + public function reset(): void + { + $this->data = []; + } + + public function getMessages(): array|Data + { + return $this->data['messages'] ?? []; + } + + public function getCountMissings(): int + { + return $this->data[DataCollectorTranslator::MESSAGE_MISSING] ?? 0; + } + + public function getCountFallbacks(): int + { + return $this->data[DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK] ?? 0; + } + + public function getCountDefines(): int + { + return $this->data[DataCollectorTranslator::MESSAGE_DEFINED] ?? 0; + } + + public function getLocale() + { + return !empty($this->data['locale']) ? $this->data['locale'] : null; + } + + /** + * @internal + */ + public function getFallbackLocales() + { + return (isset($this->data['fallback_locales']) && \count($this->data['fallback_locales']) > 0) ? $this->data['fallback_locales'] : []; + } + + public function getName(): string + { + return 'translation'; + } + + private function sanitizeCollectedMessages(array $messages): array + { + $result = []; + foreach ($messages as $key => $message) { + $messageId = $message['locale'].$message['domain'].$message['id']; + + if (!isset($result[$messageId])) { + $message['count'] = 1; + $message['parameters'] = !empty($message['parameters']) ? [$message['parameters']] : []; + $messages[$key]['translation'] = $this->sanitizeString($message['translation']); + $result[$messageId] = $message; + } else { + if (!empty($message['parameters'])) { + $result[$messageId]['parameters'][] = $message['parameters']; + } + + ++$result[$messageId]['count']; + } + + unset($messages[$key]); + } + + return $result; + } + + private function computeCount(array $messages): array + { + $count = [ + DataCollectorTranslator::MESSAGE_DEFINED => 0, + DataCollectorTranslator::MESSAGE_MISSING => 0, + DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK => 0, + ]; + + foreach ($messages as $message) { + ++$count[$message['state']]; + } + + return $count; + } + + private function sanitizeString(string $string, int $length = 80): string + { + $string = trim(preg_replace('/\s+/', ' ', $string)); + + if (false !== $encoding = mb_detect_encoding($string, null, true)) { + if (mb_strlen($string, $encoding) > $length) { + return mb_substr($string, 0, $length - 3, $encoding).'...'; + } + } elseif (\strlen($string) > $length) { + return substr($string, 0, $length - 3).'...'; + } + + return $string; + } +} diff --git a/vendor/symfony/translation/DataCollectorTranslator.php b/vendor/symfony/translation/DataCollectorTranslator.php new file mode 100644 index 000000000..0e584daad --- /dev/null +++ b/vendor/symfony/translation/DataCollectorTranslator.php @@ -0,0 +1,146 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface; +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Contracts\Translation\LocaleAwareInterface; +use Symfony\Contracts\Translation\TranslatorInterface; + +/** + * @author Abdellatif Ait boudad + */ +class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInterface, LocaleAwareInterface, WarmableInterface +{ + public const MESSAGE_DEFINED = 0; + public const MESSAGE_MISSING = 1; + public const MESSAGE_EQUALS_FALLBACK = 2; + + private TranslatorInterface $translator; + private array $messages = []; + + /** + * @param TranslatorInterface&TranslatorBagInterface&LocaleAwareInterface $translator + */ + public function __construct(TranslatorInterface $translator) + { + if (!$translator instanceof TranslatorBagInterface || !$translator instanceof LocaleAwareInterface) { + throw new InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', get_debug_type($translator))); + } + + $this->translator = $translator; + } + + public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null): string + { + $trans = $this->translator->trans($id = (string) $id, $parameters, $domain, $locale); + $this->collectMessage($locale, $domain, $id, $trans, $parameters); + + return $trans; + } + + /** + * @return void + */ + public function setLocale(string $locale) + { + $this->translator->setLocale($locale); + } + + public function getLocale(): string + { + return $this->translator->getLocale(); + } + + public function getCatalogue(string $locale = null): MessageCatalogueInterface + { + return $this->translator->getCatalogue($locale); + } + + public function getCatalogues(): array + { + return $this->translator->getCatalogues(); + } + + /** + * @return string[] + */ + public function warmUp(string $cacheDir): array + { + if ($this->translator instanceof WarmableInterface) { + return (array) $this->translator->warmUp($cacheDir); + } + + return []; + } + + /** + * Gets the fallback locales. + */ + public function getFallbackLocales(): array + { + if ($this->translator instanceof Translator || method_exists($this->translator, 'getFallbackLocales')) { + return $this->translator->getFallbackLocales(); + } + + return []; + } + + /** + * Passes through all unknown calls onto the translator object. + */ + public function __call(string $method, array $args) + { + return $this->translator->{$method}(...$args); + } + + public function getCollectedMessages(): array + { + return $this->messages; + } + + private function collectMessage(?string $locale, ?string $domain, string $id, string $translation, ?array $parameters = []): void + { + $domain ??= 'messages'; + + $catalogue = $this->translator->getCatalogue($locale); + $locale = $catalogue->getLocale(); + $fallbackLocale = null; + if ($catalogue->defines($id, $domain)) { + $state = self::MESSAGE_DEFINED; + } elseif ($catalogue->has($id, $domain)) { + $state = self::MESSAGE_EQUALS_FALLBACK; + + $fallbackCatalogue = $catalogue->getFallbackCatalogue(); + while ($fallbackCatalogue) { + if ($fallbackCatalogue->defines($id, $domain)) { + $fallbackLocale = $fallbackCatalogue->getLocale(); + break; + } + $fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue(); + } + } else { + $state = self::MESSAGE_MISSING; + } + + $this->messages[] = [ + 'locale' => $locale, + 'fallbackLocale' => $fallbackLocale, + 'domain' => $domain, + 'id' => $id, + 'translation' => $translation, + 'parameters' => $parameters, + 'state' => $state, + 'transChoiceNumber' => isset($parameters['%count%']) && is_numeric($parameters['%count%']) ? $parameters['%count%'] : null, + ]; + } +} diff --git a/vendor/symfony/translation/DependencyInjection/TranslationDumperPass.php b/vendor/symfony/translation/DependencyInjection/TranslationDumperPass.php new file mode 100644 index 000000000..2ece6ac7b --- /dev/null +++ b/vendor/symfony/translation/DependencyInjection/TranslationDumperPass.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\DependencyInjection; + +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Reference; + +/** + * Adds tagged translation.formatter services to translation writer. + */ +class TranslationDumperPass implements CompilerPassInterface +{ + /** + * @return void + */ + public function process(ContainerBuilder $container) + { + if (!$container->hasDefinition('translation.writer')) { + return; + } + + $definition = $container->getDefinition('translation.writer'); + + foreach ($container->findTaggedServiceIds('translation.dumper', true) as $id => $attributes) { + $definition->addMethodCall('addDumper', [$attributes[0]['alias'], new Reference($id)]); + } + } +} diff --git a/vendor/symfony/translation/DependencyInjection/TranslationExtractorPass.php b/vendor/symfony/translation/DependencyInjection/TranslationExtractorPass.php new file mode 100644 index 000000000..1baf9341e --- /dev/null +++ b/vendor/symfony/translation/DependencyInjection/TranslationExtractorPass.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\DependencyInjection; + +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Exception\RuntimeException; +use Symfony\Component\DependencyInjection\Reference; + +/** + * Adds tagged translation.extractor services to translation extractor. + */ +class TranslationExtractorPass implements CompilerPassInterface +{ + /** + * @return void + */ + public function process(ContainerBuilder $container) + { + if (!$container->hasDefinition('translation.extractor')) { + return; + } + + $definition = $container->getDefinition('translation.extractor'); + + foreach ($container->findTaggedServiceIds('translation.extractor', true) as $id => $attributes) { + if (!isset($attributes[0]['alias'])) { + throw new RuntimeException(sprintf('The alias for the tag "translation.extractor" of service "%s" must be set.', $id)); + } + + $definition->addMethodCall('addExtractor', [$attributes[0]['alias'], new Reference($id)]); + } + } +} diff --git a/vendor/symfony/translation/DependencyInjection/TranslatorPass.php b/vendor/symfony/translation/DependencyInjection/TranslatorPass.php new file mode 100644 index 000000000..dd6ea3c83 --- /dev/null +++ b/vendor/symfony/translation/DependencyInjection/TranslatorPass.php @@ -0,0 +1,94 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\DependencyInjection; + +use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Reference; + +class TranslatorPass implements CompilerPassInterface +{ + /** + * @return void + */ + public function process(ContainerBuilder $container) + { + if (!$container->hasDefinition('translator.default')) { + return; + } + + $loaders = []; + $loaderRefs = []; + foreach ($container->findTaggedServiceIds('translation.loader', true) as $id => $attributes) { + $loaderRefs[$id] = new Reference($id); + $loaders[$id][] = $attributes[0]['alias']; + if (isset($attributes[0]['legacy-alias'])) { + $loaders[$id][] = $attributes[0]['legacy-alias']; + } + } + + if ($container->hasDefinition('translation.reader')) { + $definition = $container->getDefinition('translation.reader'); + foreach ($loaders as $id => $formats) { + foreach ($formats as $format) { + $definition->addMethodCall('addLoader', [$format, $loaderRefs[$id]]); + } + } + } + + $container + ->findDefinition('translator.default') + ->replaceArgument(0, ServiceLocatorTagPass::register($container, $loaderRefs)) + ->replaceArgument(3, $loaders) + ; + + if ($container->hasDefinition('validator') && $container->hasDefinition('translation.extractor.visitor.constraint')) { + $constraintVisitorDefinition = $container->getDefinition('translation.extractor.visitor.constraint'); + $constraintClassNames = []; + + foreach ($container->getDefinitions() as $definition) { + if (!$definition->hasTag('validator.constraint_validator')) { + continue; + } + // Resolve constraint validator FQCN even if defined as %foo.validator.class% parameter + $className = $container->getParameterBag()->resolveValue($definition->getClass()); + // Extraction of the constraint class name from the Constraint Validator FQCN + $constraintClassNames[] = str_replace('Validator', '', substr(strrchr($className, '\\'), 1)); + } + + $constraintVisitorDefinition->setArgument(0, $constraintClassNames); + } + + if (!$container->hasParameter('twig.default_path')) { + return; + } + + $paths = array_keys($container->getDefinition('twig.template_iterator')->getArgument(1)); + if ($container->hasDefinition('console.command.translation_debug')) { + $definition = $container->getDefinition('console.command.translation_debug'); + $definition->replaceArgument(4, $container->getParameter('twig.default_path')); + + if (\count($definition->getArguments()) > 6) { + $definition->replaceArgument(6, $paths); + } + } + if ($container->hasDefinition('console.command.translation_extract')) { + $definition = $container->getDefinition('console.command.translation_extract'); + $definition->replaceArgument(5, $container->getParameter('twig.default_path')); + + if (\count($definition->getArguments()) > 7) { + $definition->replaceArgument(7, $paths); + } + } + } +} diff --git a/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php b/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php new file mode 100644 index 000000000..f7f954eea --- /dev/null +++ b/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php @@ -0,0 +1,143 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\DependencyInjection; + +use Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Definition; +use Symfony\Component\DependencyInjection\Reference; +use Symfony\Component\DependencyInjection\ServiceLocator; +use Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver; + +/** + * @author Yonel Ceruto + */ +class TranslatorPathsPass extends AbstractRecursivePass +{ + private int $level = 0; + + /** + * @var array + */ + private array $paths = []; + + /** + * @var array + */ + private array $definitions = []; + + /** + * @var array> + */ + private array $controllers = []; + + /** + * @return void + */ + public function process(ContainerBuilder $container) + { + if (!$container->hasDefinition('translator')) { + return; + } + + foreach ($this->findControllerArguments($container) as $controller => $argument) { + $id = substr($controller, 0, strpos($controller, ':') ?: \strlen($controller)); + if ($container->hasDefinition($id)) { + [$locatorRef] = $argument->getValues(); + $this->controllers[(string) $locatorRef][$container->getDefinition($id)->getClass()] = true; + } + } + + try { + parent::process($container); + + $paths = []; + foreach ($this->paths as $class => $_) { + if (($r = $container->getReflectionClass($class)) && !$r->isInterface()) { + $paths[] = $r->getFileName(); + foreach ($r->getTraits() as $trait) { + $paths[] = $trait->getFileName(); + } + } + } + if ($paths) { + if ($container->hasDefinition('console.command.translation_debug')) { + $definition = $container->getDefinition('console.command.translation_debug'); + $definition->replaceArgument(6, array_merge($definition->getArgument(6), $paths)); + } + if ($container->hasDefinition('console.command.translation_extract')) { + $definition = $container->getDefinition('console.command.translation_extract'); + $definition->replaceArgument(7, array_merge($definition->getArgument(7), $paths)); + } + } + } finally { + $this->level = 0; + $this->paths = []; + $this->definitions = []; + } + } + + protected function processValue(mixed $value, bool $isRoot = false): mixed + { + if ($value instanceof Reference) { + if ('translator' === (string) $value) { + for ($i = $this->level - 1; $i >= 0; --$i) { + $class = $this->definitions[$i]->getClass(); + + if (ServiceLocator::class === $class) { + if (!isset($this->controllers[$this->currentId])) { + continue; + } + foreach ($this->controllers[$this->currentId] as $class => $_) { + $this->paths[$class] = true; + } + } else { + $this->paths[$class] = true; + } + + break; + } + } + + return $value; + } + + if ($value instanceof Definition) { + $this->definitions[$this->level++] = $value; + $value = parent::processValue($value, $isRoot); + unset($this->definitions[--$this->level]); + + return $value; + } + + return parent::processValue($value, $isRoot); + } + + private function findControllerArguments(ContainerBuilder $container): array + { + if (!$container->has('argument_resolver.service')) { + return []; + } + $resolverDef = $container->findDefinition('argument_resolver.service'); + + if (TraceableValueResolver::class === $resolverDef->getClass()) { + $resolverDef = $container->getDefinition($resolverDef->getArgument(0)); + } + + $argument = $resolverDef->getArgument(0); + if ($argument instanceof Reference) { + $argument = $container->getDefinition($argument); + } + + return $argument->getArgument(0); + } +} diff --git a/vendor/symfony/translation/Dumper/CsvFileDumper.php b/vendor/symfony/translation/Dumper/CsvFileDumper.php new file mode 100644 index 000000000..8f5475259 --- /dev/null +++ b/vendor/symfony/translation/Dumper/CsvFileDumper.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * CsvFileDumper generates a csv formatted string representation of a message catalogue. + * + * @author Stealth35 + */ +class CsvFileDumper extends FileDumper +{ + private string $delimiter = ';'; + private string $enclosure = '"'; + + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + $handle = fopen('php://memory', 'r+'); + + foreach ($messages->all($domain) as $source => $target) { + fputcsv($handle, [$source, $target], $this->delimiter, $this->enclosure); + } + + rewind($handle); + $output = stream_get_contents($handle); + fclose($handle); + + return $output; + } + + /** + * Sets the delimiter and escape character for CSV. + * + * @return void + */ + public function setCsvControl(string $delimiter = ';', string $enclosure = '"') + { + $this->delimiter = $delimiter; + $this->enclosure = $enclosure; + } + + protected function getExtension(): string + { + return 'csv'; + } +} diff --git a/vendor/symfony/translation/Dumper/DumperInterface.php b/vendor/symfony/translation/Dumper/DumperInterface.php new file mode 100644 index 000000000..6bf42931e --- /dev/null +++ b/vendor/symfony/translation/Dumper/DumperInterface.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * DumperInterface is the interface implemented by all translation dumpers. + * There is no common option. + * + * @author Michel Salib + */ +interface DumperInterface +{ + /** + * Dumps the message catalogue. + * + * @param array $options Options that are used by the dumper + * + * @return void + */ + public function dump(MessageCatalogue $messages, array $options = []); +} diff --git a/vendor/symfony/translation/Dumper/FileDumper.php b/vendor/symfony/translation/Dumper/FileDumper.php new file mode 100644 index 000000000..ed2c278aa --- /dev/null +++ b/vendor/symfony/translation/Dumper/FileDumper.php @@ -0,0 +1,110 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\Exception\RuntimeException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * FileDumper is an implementation of DumperInterface that dump a message catalogue to file(s). + * + * Options: + * - path (mandatory): the directory where the files should be saved + * + * @author Michel Salib + */ +abstract class FileDumper implements DumperInterface +{ + /** + * A template for the relative paths to files. + * + * @var string + */ + protected $relativePathTemplate = '%domain%.%locale%.%extension%'; + + /** + * Sets the template for the relative paths to files. + * + * @param string $relativePathTemplate A template for the relative paths to files + * + * @return void + */ + public function setRelativePathTemplate(string $relativePathTemplate) + { + $this->relativePathTemplate = $relativePathTemplate; + } + + /** + * @return void + */ + public function dump(MessageCatalogue $messages, array $options = []) + { + if (!\array_key_exists('path', $options)) { + throw new InvalidArgumentException('The file dumper needs a path option.'); + } + + // save a file for each domain + foreach ($messages->getDomains() as $domain) { + $fullpath = $options['path'].'/'.$this->getRelativePath($domain, $messages->getLocale()); + if (!file_exists($fullpath)) { + $directory = \dirname($fullpath); + if (!file_exists($directory) && !@mkdir($directory, 0777, true)) { + throw new RuntimeException(sprintf('Unable to create directory "%s".', $directory)); + } + } + + $intlDomain = $domain.MessageCatalogue::INTL_DOMAIN_SUFFIX; + $intlMessages = $messages->all($intlDomain); + + if ($intlMessages) { + $intlPath = $options['path'].'/'.$this->getRelativePath($intlDomain, $messages->getLocale()); + file_put_contents($intlPath, $this->formatCatalogue($messages, $intlDomain, $options)); + + $messages->replace([], $intlDomain); + + try { + if ($messages->all($domain)) { + file_put_contents($fullpath, $this->formatCatalogue($messages, $domain, $options)); + } + continue; + } finally { + $messages->replace($intlMessages, $intlDomain); + } + } + + file_put_contents($fullpath, $this->formatCatalogue($messages, $domain, $options)); + } + } + + /** + * Transforms a domain of a message catalogue to its string representation. + */ + abstract public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string; + + /** + * Gets the file extension of the dumper. + */ + abstract protected function getExtension(): string; + + /** + * Gets the relative file path using the template. + */ + private function getRelativePath(string $domain, string $locale): string + { + return strtr($this->relativePathTemplate, [ + '%domain%' => $domain, + '%locale%' => $locale, + '%extension%' => $this->getExtension(), + ]); + } +} diff --git a/vendor/symfony/translation/Dumper/IcuResFileDumper.php b/vendor/symfony/translation/Dumper/IcuResFileDumper.php new file mode 100644 index 000000000..72c1ec089 --- /dev/null +++ b/vendor/symfony/translation/Dumper/IcuResFileDumper.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * IcuResDumper generates an ICU ResourceBundle formatted string representation of a message catalogue. + * + * @author Stealth35 + */ +class IcuResFileDumper extends FileDumper +{ + protected $relativePathTemplate = '%domain%/%locale%.%extension%'; + + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + $data = $indexes = $resources = ''; + + foreach ($messages->all($domain) as $source => $target) { + $indexes .= pack('v', \strlen($data) + 28); + $data .= $source."\0"; + } + + $data .= $this->writePadding($data); + + $keyTop = $this->getPosition($data); + + foreach ($messages->all($domain) as $source => $target) { + $resources .= pack('V', $this->getPosition($data)); + + $data .= pack('V', \strlen($target)) + .mb_convert_encoding($target."\0", 'UTF-16LE', 'UTF-8') + .$this->writePadding($data) + ; + } + + $resOffset = $this->getPosition($data); + + $data .= pack('v', \count($messages->all($domain))) + .$indexes + .$this->writePadding($data) + .$resources + ; + + $bundleTop = $this->getPosition($data); + + $root = pack('V7', + $resOffset + (2 << 28), // Resource Offset + Resource Type + 6, // Index length + $keyTop, // Index keys top + $bundleTop, // Index resources top + $bundleTop, // Index bundle top + \count($messages->all($domain)), // Index max table length + 0 // Index attributes + ); + + $header = pack('vC2v4C12@32', + 32, // Header size + 0xDA, 0x27, // Magic number 1 and 2 + 20, 0, 0, 2, // Rest of the header, ..., Size of a char + 0x52, 0x65, 0x73, 0x42, // Data format identifier + 1, 2, 0, 0, // Data version + 1, 4, 0, 0 // Unicode version + ); + + return $header.$root.$data; + } + + private function writePadding(string $data): ?string + { + $padding = \strlen($data) % 4; + + return $padding ? str_repeat("\xAA", 4 - $padding) : null; + } + + private function getPosition(string $data): float|int + { + return (\strlen($data) + 28) / 4; + } + + protected function getExtension(): string + { + return 'res'; + } +} diff --git a/vendor/symfony/translation/Dumper/IniFileDumper.php b/vendor/symfony/translation/Dumper/IniFileDumper.php new file mode 100644 index 000000000..6cbdef606 --- /dev/null +++ b/vendor/symfony/translation/Dumper/IniFileDumper.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * IniFileDumper generates an ini formatted string representation of a message catalogue. + * + * @author Stealth35 + */ +class IniFileDumper extends FileDumper +{ + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + $output = ''; + + foreach ($messages->all($domain) as $source => $target) { + $escapeTarget = str_replace('"', '\"', $target); + $output .= $source.'="'.$escapeTarget."\"\n"; + } + + return $output; + } + + protected function getExtension(): string + { + return 'ini'; + } +} diff --git a/vendor/symfony/translation/Dumper/JsonFileDumper.php b/vendor/symfony/translation/Dumper/JsonFileDumper.php new file mode 100644 index 000000000..e5035397f --- /dev/null +++ b/vendor/symfony/translation/Dumper/JsonFileDumper.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * JsonFileDumper generates an json formatted string representation of a message catalogue. + * + * @author singles + */ +class JsonFileDumper extends FileDumper +{ + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + $flags = $options['json_encoding'] ?? \JSON_PRETTY_PRINT; + + return json_encode($messages->all($domain), $flags); + } + + protected function getExtension(): string + { + return 'json'; + } +} diff --git a/vendor/symfony/translation/Dumper/MoFileDumper.php b/vendor/symfony/translation/Dumper/MoFileDumper.php new file mode 100644 index 000000000..9ded5f4ef --- /dev/null +++ b/vendor/symfony/translation/Dumper/MoFileDumper.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\Loader\MoFileLoader; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * MoFileDumper generates a gettext formatted string representation of a message catalogue. + * + * @author Stealth35 + */ +class MoFileDumper extends FileDumper +{ + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + $sources = $targets = $sourceOffsets = $targetOffsets = ''; + $offsets = []; + $size = 0; + + foreach ($messages->all($domain) as $source => $target) { + $offsets[] = array_map('strlen', [$sources, $source, $targets, $target]); + $sources .= "\0".$source; + $targets .= "\0".$target; + ++$size; + } + + $header = [ + 'magicNumber' => MoFileLoader::MO_LITTLE_ENDIAN_MAGIC, + 'formatRevision' => 0, + 'count' => $size, + 'offsetId' => MoFileLoader::MO_HEADER_SIZE, + 'offsetTranslated' => MoFileLoader::MO_HEADER_SIZE + (8 * $size), + 'sizeHashes' => 0, + 'offsetHashes' => MoFileLoader::MO_HEADER_SIZE + (16 * $size), + ]; + + $sourcesSize = \strlen($sources); + $sourcesStart = $header['offsetHashes'] + 1; + + foreach ($offsets as $offset) { + $sourceOffsets .= $this->writeLong($offset[1]) + .$this->writeLong($offset[0] + $sourcesStart); + $targetOffsets .= $this->writeLong($offset[3]) + .$this->writeLong($offset[2] + $sourcesStart + $sourcesSize); + } + + $output = implode('', array_map($this->writeLong(...), $header)) + .$sourceOffsets + .$targetOffsets + .$sources + .$targets + ; + + return $output; + } + + protected function getExtension(): string + { + return 'mo'; + } + + private function writeLong(mixed $str): string + { + return pack('V*', $str); + } +} diff --git a/vendor/symfony/translation/Dumper/PhpFileDumper.php b/vendor/symfony/translation/Dumper/PhpFileDumper.php new file mode 100644 index 000000000..51e90665d --- /dev/null +++ b/vendor/symfony/translation/Dumper/PhpFileDumper.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * PhpFileDumper generates PHP files from a message catalogue. + * + * @author Michel Salib + */ +class PhpFileDumper extends FileDumper +{ + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + return "all($domain), true).";\n"; + } + + protected function getExtension(): string + { + return 'php'; + } +} diff --git a/vendor/symfony/translation/Dumper/PoFileDumper.php b/vendor/symfony/translation/Dumper/PoFileDumper.php new file mode 100644 index 000000000..a2d0deb78 --- /dev/null +++ b/vendor/symfony/translation/Dumper/PoFileDumper.php @@ -0,0 +1,131 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * PoFileDumper generates a gettext formatted string representation of a message catalogue. + * + * @author Stealth35 + */ +class PoFileDumper extends FileDumper +{ + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + $output = 'msgid ""'."\n"; + $output .= 'msgstr ""'."\n"; + $output .= '"Content-Type: text/plain; charset=UTF-8\n"'."\n"; + $output .= '"Content-Transfer-Encoding: 8bit\n"'."\n"; + $output .= '"Language: '.$messages->getLocale().'\n"'."\n"; + $output .= "\n"; + + $newLine = false; + foreach ($messages->all($domain) as $source => $target) { + if ($newLine) { + $output .= "\n"; + } else { + $newLine = true; + } + $metadata = $messages->getMetadata($source, $domain); + + if (isset($metadata['comments'])) { + $output .= $this->formatComments($metadata['comments']); + } + if (isset($metadata['flags'])) { + $output .= $this->formatComments(implode(',', (array) $metadata['flags']), ','); + } + if (isset($metadata['sources'])) { + $output .= $this->formatComments(implode(' ', (array) $metadata['sources']), ':'); + } + + $sourceRules = $this->getStandardRules($source); + $targetRules = $this->getStandardRules($target); + if (2 == \count($sourceRules) && [] !== $targetRules) { + $output .= sprintf('msgid "%s"'."\n", $this->escape($sourceRules[0])); + $output .= sprintf('msgid_plural "%s"'."\n", $this->escape($sourceRules[1])); + foreach ($targetRules as $i => $targetRule) { + $output .= sprintf('msgstr[%d] "%s"'."\n", $i, $this->escape($targetRule)); + } + } else { + $output .= sprintf('msgid "%s"'."\n", $this->escape($source)); + $output .= sprintf('msgstr "%s"'."\n", $this->escape($target)); + } + } + + return $output; + } + + private function getStandardRules(string $id): array + { + // Partly copied from TranslatorTrait::trans. + $parts = []; + if (preg_match('/^\|++$/', $id)) { + $parts = explode('|', $id); + } elseif (preg_match_all('/(?:\|\||[^\|])++/', $id, $matches)) { + $parts = $matches[0]; + } + + $intervalRegexp = <<<'EOF' +/^(?P + ({\s* + (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*) + \s*}) + + | + + (?P[\[\]]) + \s* + (?P-Inf|\-?\d+(\.\d+)?) + \s*,\s* + (?P\+?Inf|\-?\d+(\.\d+)?) + \s* + (?P[\[\]]) +)\s*(?P.*?)$/xs +EOF; + + $standardRules = []; + foreach ($parts as $part) { + $part = trim(str_replace('||', '|', $part)); + + if (preg_match($intervalRegexp, $part)) { + // Explicit rule is not a standard rule. + return []; + } else { + $standardRules[] = $part; + } + } + + return $standardRules; + } + + protected function getExtension(): string + { + return 'po'; + } + + private function escape(string $str): string + { + return addcslashes($str, "\0..\37\42\134"); + } + + private function formatComments(string|array $comments, string $prefix = ''): ?string + { + $output = null; + + foreach ((array) $comments as $comment) { + $output .= sprintf('#%s %s'."\n", $prefix, $comment); + } + + return $output; + } +} diff --git a/vendor/symfony/translation/Dumper/QtFileDumper.php b/vendor/symfony/translation/Dumper/QtFileDumper.php new file mode 100644 index 000000000..0373e9c10 --- /dev/null +++ b/vendor/symfony/translation/Dumper/QtFileDumper.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * QtFileDumper generates ts files from a message catalogue. + * + * @author Benjamin Eberlei + */ +class QtFileDumper extends FileDumper +{ + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + $dom = new \DOMDocument('1.0', 'utf-8'); + $dom->formatOutput = true; + $ts = $dom->appendChild($dom->createElement('TS')); + $context = $ts->appendChild($dom->createElement('context')); + $context->appendChild($dom->createElement('name', $domain)); + + foreach ($messages->all($domain) as $source => $target) { + $message = $context->appendChild($dom->createElement('message')); + $metadata = $messages->getMetadata($source, $domain); + if (isset($metadata['sources'])) { + foreach ((array) $metadata['sources'] as $location) { + $loc = explode(':', $location, 2); + $location = $message->appendChild($dom->createElement('location')); + $location->setAttribute('filename', $loc[0]); + if (isset($loc[1])) { + $location->setAttribute('line', $loc[1]); + } + } + } + $message->appendChild($dom->createElement('source', $source)); + $message->appendChild($dom->createElement('translation', $target)); + } + + return $dom->saveXML(); + } + + protected function getExtension(): string + { + return 'ts'; + } +} diff --git a/vendor/symfony/translation/Dumper/XliffFileDumper.php b/vendor/symfony/translation/Dumper/XliffFileDumper.php new file mode 100644 index 000000000..22f0227b9 --- /dev/null +++ b/vendor/symfony/translation/Dumper/XliffFileDumper.php @@ -0,0 +1,221 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * XliffFileDumper generates xliff files from a message catalogue. + * + * @author Michel Salib + */ +class XliffFileDumper extends FileDumper +{ + public function __construct( + private string $extension = 'xlf', + ) { + } + + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + $xliffVersion = '1.2'; + if (\array_key_exists('xliff_version', $options)) { + $xliffVersion = $options['xliff_version']; + } + + if (\array_key_exists('default_locale', $options)) { + $defaultLocale = $options['default_locale']; + } else { + $defaultLocale = \Locale::getDefault(); + } + + if ('1.2' === $xliffVersion) { + return $this->dumpXliff1($defaultLocale, $messages, $domain, $options); + } + if ('2.0' === $xliffVersion) { + return $this->dumpXliff2($defaultLocale, $messages, $domain); + } + + throw new InvalidArgumentException(sprintf('No support implemented for dumping XLIFF version "%s".', $xliffVersion)); + } + + protected function getExtension(): string + { + return $this->extension; + } + + private function dumpXliff1(string $defaultLocale, MessageCatalogue $messages, ?string $domain, array $options = []): string + { + $toolInfo = ['tool-id' => 'symfony', 'tool-name' => 'Symfony']; + if (\array_key_exists('tool_info', $options)) { + $toolInfo = array_merge($toolInfo, $options['tool_info']); + } + + $dom = new \DOMDocument('1.0', 'utf-8'); + $dom->formatOutput = true; + + $xliff = $dom->appendChild($dom->createElement('xliff')); + $xliff->setAttribute('version', '1.2'); + $xliff->setAttribute('xmlns', 'urn:oasis:names:tc:xliff:document:1.2'); + + $xliffFile = $xliff->appendChild($dom->createElement('file')); + $xliffFile->setAttribute('source-language', str_replace('_', '-', $defaultLocale)); + $xliffFile->setAttribute('target-language', str_replace('_', '-', $messages->getLocale())); + $xliffFile->setAttribute('datatype', 'plaintext'); + $xliffFile->setAttribute('original', 'file.ext'); + + $xliffHead = $xliffFile->appendChild($dom->createElement('header')); + $xliffTool = $xliffHead->appendChild($dom->createElement('tool')); + foreach ($toolInfo as $id => $value) { + $xliffTool->setAttribute($id, $value); + } + + if ($catalogueMetadata = $messages->getCatalogueMetadata('', $domain) ?? []) { + $xliffPropGroup = $xliffHead->appendChild($dom->createElement('prop-group')); + foreach ($catalogueMetadata as $key => $value) { + $xliffProp = $xliffPropGroup->appendChild($dom->createElement('prop')); + $xliffProp->setAttribute('prop-type', $key); + $xliffProp->appendChild($dom->createTextNode($value)); + } + } + + $xliffBody = $xliffFile->appendChild($dom->createElement('body')); + foreach ($messages->all($domain) as $source => $target) { + $translation = $dom->createElement('trans-unit'); + + $translation->setAttribute('id', strtr(substr(base64_encode(hash('sha256', $source, true)), 0, 7), '/+', '._')); + $translation->setAttribute('resname', $source); + + $s = $translation->appendChild($dom->createElement('source')); + $s->appendChild($dom->createTextNode($source)); + + // Does the target contain characters requiring a CDATA section? + $text = 1 === preg_match('/[&<>]/', $target) ? $dom->createCDATASection($target) : $dom->createTextNode($target); + + $targetElement = $dom->createElement('target'); + $metadata = $messages->getMetadata($source, $domain); + if ($this->hasMetadataArrayInfo('target-attributes', $metadata)) { + foreach ($metadata['target-attributes'] as $name => $value) { + $targetElement->setAttribute($name, $value); + } + } + $t = $translation->appendChild($targetElement); + $t->appendChild($text); + + if ($this->hasMetadataArrayInfo('notes', $metadata)) { + foreach ($metadata['notes'] as $note) { + if (!isset($note['content'])) { + continue; + } + + $n = $translation->appendChild($dom->createElement('note')); + $n->appendChild($dom->createTextNode($note['content'])); + + if (isset($note['priority'])) { + $n->setAttribute('priority', $note['priority']); + } + + if (isset($note['from'])) { + $n->setAttribute('from', $note['from']); + } + } + } + + $xliffBody->appendChild($translation); + } + + return $dom->saveXML(); + } + + private function dumpXliff2(string $defaultLocale, MessageCatalogue $messages, ?string $domain): string + { + $dom = new \DOMDocument('1.0', 'utf-8'); + $dom->formatOutput = true; + + $xliff = $dom->appendChild($dom->createElement('xliff')); + $xliff->setAttribute('xmlns', 'urn:oasis:names:tc:xliff:document:2.0'); + $xliff->setAttribute('version', '2.0'); + $xliff->setAttribute('srcLang', str_replace('_', '-', $defaultLocale)); + $xliff->setAttribute('trgLang', str_replace('_', '-', $messages->getLocale())); + + $xliffFile = $xliff->appendChild($dom->createElement('file')); + if (str_ends_with($domain, MessageCatalogue::INTL_DOMAIN_SUFFIX)) { + $xliffFile->setAttribute('id', substr($domain, 0, -\strlen(MessageCatalogue::INTL_DOMAIN_SUFFIX)).'.'.$messages->getLocale()); + } else { + $xliffFile->setAttribute('id', $domain.'.'.$messages->getLocale()); + } + + if ($catalogueMetadata = $messages->getCatalogueMetadata('', $domain) ?? []) { + $xliff->setAttribute('xmlns:m', 'urn:oasis:names:tc:xliff:metadata:2.0'); + $xliffMetadata = $xliffFile->appendChild($dom->createElement('m:metadata')); + foreach ($catalogueMetadata as $key => $value) { + $xliffMeta = $xliffMetadata->appendChild($dom->createElement('prop')); + $xliffMeta->setAttribute('type', $key); + $xliffMeta->appendChild($dom->createTextNode($value)); + } + } + + foreach ($messages->all($domain) as $source => $target) { + $translation = $dom->createElement('unit'); + $translation->setAttribute('id', strtr(substr(base64_encode(hash('sha256', $source, true)), 0, 7), '/+', '._')); + + if (\strlen($source) <= 80) { + $translation->setAttribute('name', $source); + } + + $metadata = $messages->getMetadata($source, $domain); + + // Add notes section + if ($this->hasMetadataArrayInfo('notes', $metadata)) { + $notesElement = $dom->createElement('notes'); + foreach ($metadata['notes'] as $note) { + $n = $dom->createElement('note'); + $n->appendChild($dom->createTextNode($note['content'] ?? '')); + unset($note['content']); + + foreach ($note as $name => $value) { + $n->setAttribute($name, $value); + } + $notesElement->appendChild($n); + } + $translation->appendChild($notesElement); + } + + $segment = $translation->appendChild($dom->createElement('segment')); + + $s = $segment->appendChild($dom->createElement('source')); + $s->appendChild($dom->createTextNode($source)); + + // Does the target contain characters requiring a CDATA section? + $text = 1 === preg_match('/[&<>]/', $target) ? $dom->createCDATASection($target) : $dom->createTextNode($target); + + $targetElement = $dom->createElement('target'); + if ($this->hasMetadataArrayInfo('target-attributes', $metadata)) { + foreach ($metadata['target-attributes'] as $name => $value) { + $targetElement->setAttribute($name, $value); + } + } + $t = $segment->appendChild($targetElement); + $t->appendChild($text); + + $xliffFile->appendChild($translation); + } + + return $dom->saveXML(); + } + + private function hasMetadataArrayInfo(string $key, array $metadata = null): bool + { + return is_iterable($metadata[$key] ?? null); + } +} diff --git a/vendor/symfony/translation/Dumper/YamlFileDumper.php b/vendor/symfony/translation/Dumper/YamlFileDumper.php new file mode 100644 index 000000000..d2670331e --- /dev/null +++ b/vendor/symfony/translation/Dumper/YamlFileDumper.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Dumper; + +use Symfony\Component\Translation\Exception\LogicException; +use Symfony\Component\Translation\MessageCatalogue; +use Symfony\Component\Translation\Util\ArrayConverter; +use Symfony\Component\Yaml\Yaml; + +/** + * YamlFileDumper generates yaml files from a message catalogue. + * + * @author Michel Salib + */ +class YamlFileDumper extends FileDumper +{ + private string $extension; + + public function __construct(string $extension = 'yml') + { + $this->extension = $extension; + } + + public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []): string + { + if (!class_exists(Yaml::class)) { + throw new LogicException('Dumping translations in the YAML format requires the Symfony Yaml component.'); + } + + $data = $messages->all($domain); + + if (isset($options['as_tree']) && $options['as_tree']) { + $data = ArrayConverter::expandToTree($data); + } + + if (isset($options['inline']) && ($inline = (int) $options['inline']) > 0) { + return Yaml::dump($data, $inline); + } + + return Yaml::dump($data); + } + + protected function getExtension(): string + { + return $this->extension; + } +} diff --git a/vendor/symfony/yaml/Exception/ExceptionInterface.php b/vendor/symfony/translation/Exception/ExceptionInterface.php old mode 100755 new mode 100644 similarity index 78% rename from vendor/symfony/yaml/Exception/ExceptionInterface.php rename to vendor/symfony/translation/Exception/ExceptionInterface.php index ad850eea1..8f9c54ef7 --- a/vendor/symfony/yaml/Exception/ExceptionInterface.php +++ b/vendor/symfony/translation/Exception/ExceptionInterface.php @@ -9,13 +9,13 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Yaml\Exception; +namespace Symfony\Component\Translation\Exception; /** * Exception interface for all exceptions thrown by the component. * * @author Fabien Potencier */ -interface ExceptionInterface +interface ExceptionInterface extends \Throwable { } diff --git a/vendor/symfony/translation/Exception/IncompleteDsnException.php b/vendor/symfony/translation/Exception/IncompleteDsnException.php new file mode 100644 index 000000000..cb0ce027e --- /dev/null +++ b/vendor/symfony/translation/Exception/IncompleteDsnException.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +class IncompleteDsnException extends InvalidArgumentException +{ + public function __construct(string $message, string $dsn = null, \Throwable $previous = null) + { + if ($dsn) { + $message = sprintf('Invalid "%s" provider DSN: ', $dsn).$message; + } + + parent::__construct($message, 0, $previous); + } +} diff --git a/vendor/symfony/translation/Exception/InvalidArgumentException.php b/vendor/symfony/translation/Exception/InvalidArgumentException.php new file mode 100644 index 000000000..90d06690f --- /dev/null +++ b/vendor/symfony/translation/Exception/InvalidArgumentException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +/** + * Base InvalidArgumentException for the Translation component. + * + * @author Abdellatif Ait boudad + */ +class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/translation/Exception/InvalidResourceException.php b/vendor/symfony/translation/Exception/InvalidResourceException.php new file mode 100644 index 000000000..cf079432c --- /dev/null +++ b/vendor/symfony/translation/Exception/InvalidResourceException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +/** + * Thrown when a resource cannot be loaded. + * + * @author Fabien Potencier + */ +class InvalidResourceException extends \InvalidArgumentException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/translation/Exception/LogicException.php b/vendor/symfony/translation/Exception/LogicException.php new file mode 100644 index 000000000..9019c7e7b --- /dev/null +++ b/vendor/symfony/translation/Exception/LogicException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +/** + * Base LogicException for Translation component. + * + * @author Abdellatif Ait boudad + */ +class LogicException extends \LogicException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/translation/Exception/MissingRequiredOptionException.php b/vendor/symfony/translation/Exception/MissingRequiredOptionException.php new file mode 100644 index 000000000..2b5f80806 --- /dev/null +++ b/vendor/symfony/translation/Exception/MissingRequiredOptionException.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +/** + * @author Oskar Stark + */ +class MissingRequiredOptionException extends IncompleteDsnException +{ + public function __construct(string $option, string $dsn = null, \Throwable $previous = null) + { + $message = sprintf('The option "%s" is required but missing.', $option); + + parent::__construct($message, $dsn, $previous); + } +} diff --git a/vendor/symfony/yaml/Exception/DumpException.php b/vendor/symfony/translation/Exception/NotFoundResourceException.php old mode 100755 new mode 100644 similarity index 61% rename from vendor/symfony/yaml/Exception/DumpException.php rename to vendor/symfony/translation/Exception/NotFoundResourceException.php index cce972f24..cff73ae30 --- a/vendor/symfony/yaml/Exception/DumpException.php +++ b/vendor/symfony/translation/Exception/NotFoundResourceException.php @@ -9,13 +9,13 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Yaml\Exception; +namespace Symfony\Component\Translation\Exception; /** - * Exception class thrown when an error occurs during dumping. + * Thrown when a resource does not exist. * * @author Fabien Potencier */ -class DumpException extends RuntimeException +class NotFoundResourceException extends \InvalidArgumentException implements ExceptionInterface { } diff --git a/vendor/symfony/translation/Exception/ProviderException.php b/vendor/symfony/translation/Exception/ProviderException.php new file mode 100644 index 000000000..65883f852 --- /dev/null +++ b/vendor/symfony/translation/Exception/ProviderException.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +use Symfony\Contracts\HttpClient\ResponseInterface; + +/** + * @author Fabien Potencier + */ +class ProviderException extends RuntimeException implements ProviderExceptionInterface +{ + private ResponseInterface $response; + private string $debug; + + public function __construct(string $message, ResponseInterface $response, int $code = 0, \Exception $previous = null) + { + $this->response = $response; + $this->debug = $response->getInfo('debug') ?? ''; + + parent::__construct($message, $code, $previous); + } + + public function getResponse(): ResponseInterface + { + return $this->response; + } + + public function getDebug(): string + { + return $this->debug; + } +} diff --git a/vendor/symfony/translation/Exception/ProviderExceptionInterface.php b/vendor/symfony/translation/Exception/ProviderExceptionInterface.php new file mode 100644 index 000000000..922e82726 --- /dev/null +++ b/vendor/symfony/translation/Exception/ProviderExceptionInterface.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +/** + * @author Fabien Potencier + */ +interface ProviderExceptionInterface extends ExceptionInterface +{ + /* + * Returns debug info coming from the Symfony\Contracts\HttpClient\ResponseInterface + */ + public function getDebug(): string; +} diff --git a/vendor/symfony/translation/Exception/RuntimeException.php b/vendor/symfony/translation/Exception/RuntimeException.php new file mode 100644 index 000000000..dcd794082 --- /dev/null +++ b/vendor/symfony/translation/Exception/RuntimeException.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +/** + * Base RuntimeException for the Translation component. + * + * @author Abdellatif Ait boudad + */ +class RuntimeException extends \RuntimeException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/translation/Exception/UnsupportedSchemeException.php b/vendor/symfony/translation/Exception/UnsupportedSchemeException.php new file mode 100644 index 000000000..f09488e14 --- /dev/null +++ b/vendor/symfony/translation/Exception/UnsupportedSchemeException.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Exception; + +use Symfony\Component\Translation\Bridge; +use Symfony\Component\Translation\Provider\Dsn; + +class UnsupportedSchemeException extends LogicException +{ + private const SCHEME_TO_PACKAGE_MAP = [ + 'crowdin' => [ + 'class' => Bridge\Crowdin\CrowdinProviderFactory::class, + 'package' => 'symfony/crowdin-translation-provider', + ], + 'loco' => [ + 'class' => Bridge\Loco\LocoProviderFactory::class, + 'package' => 'symfony/loco-translation-provider', + ], + 'lokalise' => [ + 'class' => Bridge\Lokalise\LokaliseProviderFactory::class, + 'package' => 'symfony/lokalise-translation-provider', + ], + ]; + + public function __construct(Dsn $dsn, string $name = null, array $supported = []) + { + $provider = $dsn->getScheme(); + if (false !== $pos = strpos($provider, '+')) { + $provider = substr($provider, 0, $pos); + } + $package = self::SCHEME_TO_PACKAGE_MAP[$provider] ?? null; + if ($package && !class_exists($package['class'])) { + parent::__construct(sprintf('Unable to synchronize translations via "%s" as the provider is not installed. Try running "composer require %s".', $provider, $package['package'])); + + return; + } + + $message = sprintf('The "%s" scheme is not supported', $dsn->getScheme()); + if ($name && $supported) { + $message .= sprintf('; supported schemes for translation provider "%s" are: "%s"', $name, implode('", "', $supported)); + } + + parent::__construct($message.'.'); + } +} diff --git a/vendor/symfony/translation/Extractor/AbstractFileExtractor.php b/vendor/symfony/translation/Extractor/AbstractFileExtractor.php new file mode 100644 index 000000000..4c088b94f --- /dev/null +++ b/vendor/symfony/translation/Extractor/AbstractFileExtractor.php @@ -0,0 +1,67 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; + +/** + * Base class used by classes that extract translation messages from files. + * + * @author Marcos D. Sánchez + */ +abstract class AbstractFileExtractor +{ + protected function extractFiles(string|iterable $resource): iterable + { + if (is_iterable($resource)) { + $files = []; + foreach ($resource as $file) { + if ($this->canBeExtracted($file)) { + $files[] = $this->toSplFileInfo($file); + } + } + } elseif (is_file($resource)) { + $files = $this->canBeExtracted($resource) ? [$this->toSplFileInfo($resource)] : []; + } else { + $files = $this->extractFromDirectory($resource); + } + + return $files; + } + + private function toSplFileInfo(string $file): \SplFileInfo + { + return new \SplFileInfo($file); + } + + /** + * @throws InvalidArgumentException + */ + protected function isFile(string $file): bool + { + if (!is_file($file)) { + throw new InvalidArgumentException(sprintf('The "%s" file does not exist.', $file)); + } + + return true; + } + + /** + * @return bool + */ + abstract protected function canBeExtracted(string $file); + + /** + * @return iterable + */ + abstract protected function extractFromDirectory(string|array $resource); +} diff --git a/vendor/symfony/translation/Extractor/ChainExtractor.php b/vendor/symfony/translation/Extractor/ChainExtractor.php new file mode 100644 index 000000000..d36f7f385 --- /dev/null +++ b/vendor/symfony/translation/Extractor/ChainExtractor.php @@ -0,0 +1,59 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * ChainExtractor extracts translation messages from template files. + * + * @author Michel Salib + */ +class ChainExtractor implements ExtractorInterface +{ + /** + * The extractors. + * + * @var ExtractorInterface[] + */ + private array $extractors = []; + + /** + * Adds a loader to the translation extractor. + * + * @return void + */ + public function addExtractor(string $format, ExtractorInterface $extractor) + { + $this->extractors[$format] = $extractor; + } + + /** + * @return void + */ + public function setPrefix(string $prefix) + { + foreach ($this->extractors as $extractor) { + $extractor->setPrefix($prefix); + } + } + + /** + * @return void + */ + public function extract(string|iterable $directory, MessageCatalogue $catalogue) + { + foreach ($this->extractors as $extractor) { + $extractor->extract($directory, $catalogue); + } + } +} diff --git a/vendor/symfony/translation/Extractor/ExtractorInterface.php b/vendor/symfony/translation/Extractor/ExtractorInterface.php new file mode 100644 index 000000000..642130af7 --- /dev/null +++ b/vendor/symfony/translation/Extractor/ExtractorInterface.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * Extracts translation messages from a directory or files to the catalogue. + * New found messages are injected to the catalogue using the prefix. + * + * @author Michel Salib + */ +interface ExtractorInterface +{ + /** + * Extracts translation messages from files, a file or a directory to the catalogue. + * + * @param string|iterable $resource Files, a file or a directory + * + * @return void + */ + public function extract(string|iterable $resource, MessageCatalogue $catalogue); + + /** + * Sets the prefix that should be used for new found messages. + * + * @return void + */ + public function setPrefix(string $prefix); +} diff --git a/vendor/symfony/translation/Extractor/PhpAstExtractor.php b/vendor/symfony/translation/Extractor/PhpAstExtractor.php new file mode 100644 index 000000000..4dd7f41b2 --- /dev/null +++ b/vendor/symfony/translation/Extractor/PhpAstExtractor.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor; + +use PhpParser\NodeTraverser; +use PhpParser\NodeVisitor; +use PhpParser\Parser; +use PhpParser\ParserFactory; +use Symfony\Component\Finder\Finder; +use Symfony\Component\Translation\Extractor\Visitor\AbstractVisitor; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * PhpAstExtractor extracts translation messages from a PHP AST. + * + * @author Mathieu Santostefano + */ +final class PhpAstExtractor extends AbstractFileExtractor implements ExtractorInterface +{ + private Parser $parser; + + public function __construct( + /** + * @param iterable $visitors + */ + private readonly iterable $visitors, + private string $prefix = '', + ) { + if (!class_exists(ParserFactory::class)) { + throw new \LogicException(sprintf('You cannot use "%s" as the "nikic/php-parser" package is not installed. Try running "composer require nikic/php-parser".', static::class)); + } + + $this->parser = (new ParserFactory())->create(ParserFactory::PREFER_PHP7); + } + + public function extract(iterable|string $resource, MessageCatalogue $catalogue): void + { + foreach ($this->extractFiles($resource) as $file) { + $traverser = new NodeTraverser(); + /** @var AbstractVisitor&NodeVisitor $visitor */ + foreach ($this->visitors as $visitor) { + $visitor->initialize($catalogue, $file, $this->prefix); + $traverser->addVisitor($visitor); + } + + $nodes = $this->parser->parse(file_get_contents($file)); + $traverser->traverse($nodes); + } + } + + public function setPrefix(string $prefix): void + { + $this->prefix = $prefix; + } + + protected function canBeExtracted(string $file): bool + { + return 'php' === pathinfo($file, \PATHINFO_EXTENSION) + && $this->isFile($file) + && preg_match('/\bt\(|->trans\(|TranslatableMessage|Symfony\\\\Component\\\\Validator\\\\Constraints/i', file_get_contents($file)); + } + + protected function extractFromDirectory(array|string $resource): iterable|Finder + { + if (!class_exists(Finder::class)) { + throw new \LogicException(sprintf('You cannot use "%s" as the "symfony/finder" package is not installed. Try running "composer require symfony/finder".', static::class)); + } + + return (new Finder())->files()->name('*.php')->in($resource); + } +} diff --git a/vendor/symfony/translation/Extractor/PhpExtractor.php b/vendor/symfony/translation/Extractor/PhpExtractor.php new file mode 100644 index 000000000..7ff27f7c8 --- /dev/null +++ b/vendor/symfony/translation/Extractor/PhpExtractor.php @@ -0,0 +1,333 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor; + +trigger_deprecation('symfony/translation', '6.2', '"%s" is deprecated, use "%s" instead.', PhpExtractor::class, PhpAstExtractor::class); + +use Symfony\Component\Finder\Finder; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * PhpExtractor extracts translation messages from a PHP template. + * + * @author Michel Salib + * + * @deprecated since Symfony 6.2, use the PhpAstExtractor instead + */ +class PhpExtractor extends AbstractFileExtractor implements ExtractorInterface +{ + public const MESSAGE_TOKEN = 300; + public const METHOD_ARGUMENTS_TOKEN = 1000; + public const DOMAIN_TOKEN = 1001; + + /** + * Prefix for new found message. + */ + private string $prefix = ''; + + /** + * The sequence that captures translation messages. + */ + protected $sequences = [ + [ + '->', + 'trans', + '(', + self::MESSAGE_TOKEN, + ',', + self::METHOD_ARGUMENTS_TOKEN, + ',', + self::DOMAIN_TOKEN, + ], + [ + '->', + 'trans', + '(', + self::MESSAGE_TOKEN, + ], + [ + 'new', + 'TranslatableMessage', + '(', + self::MESSAGE_TOKEN, + ',', + self::METHOD_ARGUMENTS_TOKEN, + ',', + self::DOMAIN_TOKEN, + ], + [ + 'new', + 'TranslatableMessage', + '(', + self::MESSAGE_TOKEN, + ], + [ + 'new', + '\\', + 'Symfony', + '\\', + 'Component', + '\\', + 'Translation', + '\\', + 'TranslatableMessage', + '(', + self::MESSAGE_TOKEN, + ',', + self::METHOD_ARGUMENTS_TOKEN, + ',', + self::DOMAIN_TOKEN, + ], + [ + 'new', + '\Symfony\Component\Translation\TranslatableMessage', + '(', + self::MESSAGE_TOKEN, + ',', + self::METHOD_ARGUMENTS_TOKEN, + ',', + self::DOMAIN_TOKEN, + ], + [ + 'new', + '\\', + 'Symfony', + '\\', + 'Component', + '\\', + 'Translation', + '\\', + 'TranslatableMessage', + '(', + self::MESSAGE_TOKEN, + ], + [ + 'new', + '\Symfony\Component\Translation\TranslatableMessage', + '(', + self::MESSAGE_TOKEN, + ], + [ + 't', + '(', + self::MESSAGE_TOKEN, + ',', + self::METHOD_ARGUMENTS_TOKEN, + ',', + self::DOMAIN_TOKEN, + ], + [ + 't', + '(', + self::MESSAGE_TOKEN, + ], + ]; + + /** + * @return void + */ + public function extract(string|iterable $resource, MessageCatalogue $catalog) + { + $files = $this->extractFiles($resource); + foreach ($files as $file) { + $this->parseTokens(token_get_all(file_get_contents($file)), $catalog, $file); + + gc_mem_caches(); + } + } + + /** + * @return void + */ + public function setPrefix(string $prefix) + { + $this->prefix = $prefix; + } + + /** + * Normalizes a token. + */ + protected function normalizeToken(mixed $token): ?string + { + if (isset($token[1]) && 'b"' !== $token) { + return $token[1]; + } + + return $token; + } + + /** + * Seeks to a non-whitespace token. + */ + private function seekToNextRelevantToken(\Iterator $tokenIterator): void + { + for (; $tokenIterator->valid(); $tokenIterator->next()) { + $t = $tokenIterator->current(); + if (\T_WHITESPACE !== $t[0]) { + break; + } + } + } + + private function skipMethodArgument(\Iterator $tokenIterator): void + { + $openBraces = 0; + + for (; $tokenIterator->valid(); $tokenIterator->next()) { + $t = $tokenIterator->current(); + + if ('[' === $t[0] || '(' === $t[0]) { + ++$openBraces; + } + + if (']' === $t[0] || ')' === $t[0]) { + --$openBraces; + } + + if ((0 === $openBraces && ',' === $t[0]) || (-1 === $openBraces && ')' === $t[0])) { + break; + } + } + } + + /** + * Extracts the message from the iterator while the tokens + * match allowed message tokens. + */ + private function getValue(\Iterator $tokenIterator): string + { + $message = ''; + $docToken = ''; + $docPart = ''; + + for (; $tokenIterator->valid(); $tokenIterator->next()) { + $t = $tokenIterator->current(); + if ('.' === $t) { + // Concatenate with next token + continue; + } + if (!isset($t[1])) { + break; + } + + switch ($t[0]) { + case \T_START_HEREDOC: + $docToken = $t[1]; + break; + case \T_ENCAPSED_AND_WHITESPACE: + case \T_CONSTANT_ENCAPSED_STRING: + if ('' === $docToken) { + $message .= PhpStringTokenParser::parse($t[1]); + } else { + $docPart = $t[1]; + } + break; + case \T_END_HEREDOC: + if ($indentation = strspn($t[1], ' ')) { + $docPartWithLineBreaks = $docPart; + $docPart = ''; + + foreach (preg_split('~(\r\n|\n|\r)~', $docPartWithLineBreaks, -1, \PREG_SPLIT_DELIM_CAPTURE) as $str) { + if (\in_array($str, ["\r\n", "\n", "\r"], true)) { + $docPart .= $str; + } else { + $docPart .= substr($str, $indentation); + } + } + } + + $message .= PhpStringTokenParser::parseDocString($docToken, $docPart); + $docToken = ''; + $docPart = ''; + break; + case \T_WHITESPACE: + break; + default: + break 2; + } + } + + return $message; + } + + /** + * Extracts trans message from PHP tokens. + * + * @return void + */ + protected function parseTokens(array $tokens, MessageCatalogue $catalog, string $filename) + { + $tokenIterator = new \ArrayIterator($tokens); + + for ($key = 0; $key < $tokenIterator->count(); ++$key) { + foreach ($this->sequences as $sequence) { + $message = ''; + $domain = 'messages'; + $tokenIterator->seek($key); + + foreach ($sequence as $sequenceKey => $item) { + $this->seekToNextRelevantToken($tokenIterator); + + if ($this->normalizeToken($tokenIterator->current()) === $item) { + $tokenIterator->next(); + continue; + } elseif (self::MESSAGE_TOKEN === $item) { + $message = $this->getValue($tokenIterator); + + if (\count($sequence) === ($sequenceKey + 1)) { + break; + } + } elseif (self::METHOD_ARGUMENTS_TOKEN === $item) { + $this->skipMethodArgument($tokenIterator); + } elseif (self::DOMAIN_TOKEN === $item) { + $domainToken = $this->getValue($tokenIterator); + if ('' !== $domainToken) { + $domain = $domainToken; + } + + break; + } else { + break; + } + } + + if ($message) { + $catalog->set($message, $this->prefix.$message, $domain); + $metadata = $catalog->getMetadata($message, $domain) ?? []; + $normalizedFilename = preg_replace('{[\\\\/]+}', '/', $filename); + $metadata['sources'][] = $normalizedFilename.':'.$tokens[$key][2]; + $catalog->setMetadata($message, $metadata, $domain); + break; + } + } + } + } + + /** + * @throws \InvalidArgumentException + */ + protected function canBeExtracted(string $file): bool + { + return $this->isFile($file) && 'php' === pathinfo($file, \PATHINFO_EXTENSION); + } + + protected function extractFromDirectory(string|array $directory): iterable + { + if (!class_exists(Finder::class)) { + throw new \LogicException(sprintf('You cannot use "%s" as the "symfony/finder" package is not installed. Try running "composer require symfony/finder".', static::class)); + } + + $finder = new Finder(); + + return $finder->files()->name('*.php')->in($directory); + } +} diff --git a/vendor/symfony/translation/Extractor/PhpStringTokenParser.php b/vendor/symfony/translation/Extractor/PhpStringTokenParser.php new file mode 100644 index 000000000..3b854ce73 --- /dev/null +++ b/vendor/symfony/translation/Extractor/PhpStringTokenParser.php @@ -0,0 +1,141 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor; + +trigger_deprecation('symfony/translation', '6.2', '"%s" is deprecated.', PhpStringTokenParser::class); + +/* + * The following is derived from code at http://github.com/nikic/PHP-Parser + * + * Copyright (c) 2011 by Nikita Popov + * + * Some rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * The names of the contributors may not be used to endorse or + * promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @deprecated since Symfony 6.2 + */ +class PhpStringTokenParser +{ + protected static $replacements = [ + '\\' => '\\', + '$' => '$', + 'n' => "\n", + 'r' => "\r", + 't' => "\t", + 'f' => "\f", + 'v' => "\v", + 'e' => "\x1B", + ]; + + /** + * Parses a string token. + * + * @param string $str String token content + */ + public static function parse(string $str): string + { + $bLength = 0; + if ('b' === $str[0]) { + $bLength = 1; + } + + if ('\'' === $str[$bLength]) { + return str_replace( + ['\\\\', '\\\''], + ['\\', '\''], + substr($str, $bLength + 1, -1) + ); + } else { + return self::parseEscapeSequences(substr($str, $bLength + 1, -1), '"'); + } + } + + /** + * Parses escape sequences in strings (all string types apart from single quoted). + * + * @param string $str String without quotes + * @param string|null $quote Quote type + */ + public static function parseEscapeSequences(string $str, string $quote = null): string + { + if (null !== $quote) { + $str = str_replace('\\'.$quote, $quote, $str); + } + + return preg_replace_callback( + '~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3})~', + [__CLASS__, 'parseCallback'], + $str + ); + } + + private static function parseCallback(array $matches): string + { + $str = $matches[1]; + + if (isset(self::$replacements[$str])) { + return self::$replacements[$str]; + } elseif ('x' === $str[0] || 'X' === $str[0]) { + return \chr(hexdec($str)); + } else { + return \chr(octdec($str)); + } + } + + /** + * Parses a constant doc string. + * + * @param string $startToken Doc string start token content (<< + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor\Visitor; + +use PhpParser\Node; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * @author Mathieu Santostefano + */ +abstract class AbstractVisitor +{ + private MessageCatalogue $catalogue; + private \SplFileInfo $file; + private string $messagePrefix; + + public function initialize(MessageCatalogue $catalogue, \SplFileInfo $file, string $messagePrefix): void + { + $this->catalogue = $catalogue; + $this->file = $file; + $this->messagePrefix = $messagePrefix; + } + + protected function addMessageToCatalogue(string $message, ?string $domain, int $line): void + { + $domain ??= 'messages'; + $this->catalogue->set($message, $this->messagePrefix.$message, $domain); + $metadata = $this->catalogue->getMetadata($message, $domain) ?? []; + $normalizedFilename = preg_replace('{[\\\\/]+}', '/', $this->file); + $metadata['sources'][] = $normalizedFilename.':'.$line; + $this->catalogue->setMetadata($message, $metadata, $domain); + } + + protected function getStringArguments(Node\Expr\CallLike|Node\Attribute|Node\Expr\New_ $node, int|string $index, bool $indexIsRegex = false): array + { + if (\is_string($index)) { + return $this->getStringNamedArguments($node, $index, $indexIsRegex); + } + + $args = $node instanceof Node\Expr\CallLike ? $node->getRawArgs() : $node->args; + + if (!($arg = $args[$index] ?? null) instanceof Node\Arg) { + return []; + } + + return (array) $this->getStringValue($arg->value); + } + + protected function hasNodeNamedArguments(Node\Expr\CallLike|Node\Attribute|Node\Expr\New_ $node): bool + { + $args = $node instanceof Node\Expr\CallLike ? $node->getRawArgs() : $node->args; + + foreach ($args as $arg) { + if ($arg instanceof Node\Arg && null !== $arg->name) { + return true; + } + } + + return false; + } + + protected function nodeFirstNamedArgumentIndex(Node\Expr\CallLike|Node\Attribute|Node\Expr\New_ $node): int + { + $args = $node instanceof Node\Expr\CallLike ? $node->getRawArgs() : $node->args; + + foreach ($args as $i => $arg) { + if ($arg instanceof Node\Arg && null !== $arg->name) { + return $i; + } + } + + return \PHP_INT_MAX; + } + + private function getStringNamedArguments(Node\Expr\CallLike|Node\Attribute $node, string $argumentName = null, bool $isArgumentNamePattern = false): array + { + $args = $node instanceof Node\Expr\CallLike ? $node->getArgs() : $node->args; + $argumentValues = []; + + foreach ($args as $arg) { + if (!$isArgumentNamePattern && $arg->name?->toString() === $argumentName) { + $argumentValues[] = $this->getStringValue($arg->value); + } elseif ($isArgumentNamePattern && preg_match($argumentName, $arg->name?->toString() ?? '') > 0) { + $argumentValues[] = $this->getStringValue($arg->value); + } + } + + return array_filter($argumentValues); + } + + private function getStringValue(Node $node): ?string + { + if ($node instanceof Node\Scalar\String_) { + return $node->value; + } + + if ($node instanceof Node\Expr\BinaryOp\Concat) { + if (null === $left = $this->getStringValue($node->left)) { + return null; + } + + if (null === $right = $this->getStringValue($node->right)) { + return null; + } + + return $left.$right; + } + + if ($node instanceof Node\Expr\Assign && $node->expr instanceof Node\Scalar\String_) { + return $node->expr->value; + } + + return null; + } +} diff --git a/vendor/symfony/translation/Extractor/Visitor/ConstraintVisitor.php b/vendor/symfony/translation/Extractor/Visitor/ConstraintVisitor.php new file mode 100644 index 000000000..33dc8437a --- /dev/null +++ b/vendor/symfony/translation/Extractor/Visitor/ConstraintVisitor.php @@ -0,0 +1,112 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor\Visitor; + +use PhpParser\Node; +use PhpParser\NodeVisitor; + +/** + * @author Mathieu Santostefano + * + * Code mostly comes from https://github.com/php-translation/extractor/blob/master/src/Visitor/Php/Symfony/Constraint.php + */ +final class ConstraintVisitor extends AbstractVisitor implements NodeVisitor +{ + public function __construct( + private readonly array $constraintClassNames = [] + ) { + } + + public function beforeTraverse(array $nodes): ?Node + { + return null; + } + + public function enterNode(Node $node): ?Node + { + if (!$node instanceof Node\Expr\New_ && !$node instanceof Node\Attribute) { + return null; + } + + $className = $node instanceof Node\Attribute ? $node->name : $node->class; + if (!$className instanceof Node\Name) { + return null; + } + + $parts = $className->parts; + $isConstraintClass = false; + + foreach ($parts as $part) { + if (\in_array($part, $this->constraintClassNames, true)) { + $isConstraintClass = true; + + break; + } + } + + if (!$isConstraintClass) { + return null; + } + + $arg = $node->args[0] ?? null; + if (!$arg instanceof Node\Arg) { + return null; + } + + if ($this->hasNodeNamedArguments($node)) { + $messages = $this->getStringArguments($node, '/message/i', true); + } else { + if (!$arg->value instanceof Node\Expr\Array_) { + // There is no way to guess which argument is a message to be translated. + return null; + } + + $messages = []; + $options = $arg->value; + + /** @var Node\Expr\ArrayItem $item */ + foreach ($options->items as $item) { + if (!$item->key instanceof Node\Scalar\String_) { + continue; + } + + if (false === stripos($item->key->value ?? '', 'message')) { + continue; + } + + if (!$item->value instanceof Node\Scalar\String_) { + continue; + } + + $messages[] = $item->value->value; + + break; + } + } + + foreach ($messages as $message) { + $this->addMessageToCatalogue($message, 'validators', $node->getStartLine()); + } + + return null; + } + + public function leaveNode(Node $node): ?Node + { + return null; + } + + public function afterTraverse(array $nodes): ?Node + { + return null; + } +} diff --git a/vendor/symfony/translation/Extractor/Visitor/TransMethodVisitor.php b/vendor/symfony/translation/Extractor/Visitor/TransMethodVisitor.php new file mode 100644 index 000000000..0b537baa2 --- /dev/null +++ b/vendor/symfony/translation/Extractor/Visitor/TransMethodVisitor.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor\Visitor; + +use PhpParser\Node; +use PhpParser\NodeVisitor; + +/** + * @author Mathieu Santostefano + */ +final class TransMethodVisitor extends AbstractVisitor implements NodeVisitor +{ + public function beforeTraverse(array $nodes): ?Node + { + return null; + } + + public function enterNode(Node $node): ?Node + { + if (!$node instanceof Node\Expr\MethodCall && !$node instanceof Node\Expr\FuncCall) { + return null; + } + + if (!\is_string($node->name) && !$node->name instanceof Node\Identifier && !$node->name instanceof Node\Name) { + return null; + } + + $name = (string) $node->name; + + if ('trans' === $name || 't' === $name) { + $firstNamedArgumentIndex = $this->nodeFirstNamedArgumentIndex($node); + + if (!$messages = $this->getStringArguments($node, 0 < $firstNamedArgumentIndex ? 0 : 'message')) { + return null; + } + + $domain = $this->getStringArguments($node, 2 < $firstNamedArgumentIndex ? 2 : 'domain')[0] ?? null; + + foreach ($messages as $message) { + $this->addMessageToCatalogue($message, $domain, $node->getStartLine()); + } + } + + return null; + } + + public function leaveNode(Node $node): ?Node + { + return null; + } + + public function afterTraverse(array $nodes): ?Node + { + return null; + } +} diff --git a/vendor/symfony/translation/Extractor/Visitor/TranslatableMessageVisitor.php b/vendor/symfony/translation/Extractor/Visitor/TranslatableMessageVisitor.php new file mode 100644 index 000000000..c1505a135 --- /dev/null +++ b/vendor/symfony/translation/Extractor/Visitor/TranslatableMessageVisitor.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Extractor\Visitor; + +use PhpParser\Node; +use PhpParser\NodeVisitor; + +/** + * @author Mathieu Santostefano + */ +final class TranslatableMessageVisitor extends AbstractVisitor implements NodeVisitor +{ + public function beforeTraverse(array $nodes): ?Node + { + return null; + } + + public function enterNode(Node $node): ?Node + { + if (!$node instanceof Node\Expr\New_) { + return null; + } + + if (!($className = $node->class) instanceof Node\Name) { + return null; + } + + if (!\in_array('TranslatableMessage', $className->parts, true)) { + return null; + } + + $firstNamedArgumentIndex = $this->nodeFirstNamedArgumentIndex($node); + + if (!$messages = $this->getStringArguments($node, 0 < $firstNamedArgumentIndex ? 0 : 'message')) { + return null; + } + + $domain = $this->getStringArguments($node, 2 < $firstNamedArgumentIndex ? 2 : 'domain')[0] ?? null; + + foreach ($messages as $message) { + $this->addMessageToCatalogue($message, $domain, $node->getStartLine()); + } + + return null; + } + + public function leaveNode(Node $node): ?Node + { + return null; + } + + public function afterTraverse(array $nodes): ?Node + { + return null; + } +} diff --git a/vendor/symfony/translation/Formatter/IntlFormatter.php b/vendor/symfony/translation/Formatter/IntlFormatter.php new file mode 100644 index 000000000..30873cc58 --- /dev/null +++ b/vendor/symfony/translation/Formatter/IntlFormatter.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Formatter; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\Exception\LogicException; + +/** + * @author Guilherme Blanco + * @author Abdellatif Ait boudad + */ +class IntlFormatter implements IntlFormatterInterface +{ + private $hasMessageFormatter; + private $cache = []; + + public function formatIntl(string $message, string $locale, array $parameters = []): string + { + // MessageFormatter constructor throws an exception if the message is empty + if ('' === $message) { + return ''; + } + + if (!$formatter = $this->cache[$locale][$message] ?? null) { + if (!$this->hasMessageFormatter ??= class_exists(\MessageFormatter::class)) { + throw new LogicException('Cannot parse message translation: please install the "intl" PHP extension or the "symfony/polyfill-intl-messageformatter" package.'); + } + try { + $this->cache[$locale][$message] = $formatter = new \MessageFormatter($locale, $message); + } catch (\IntlException $e) { + throw new InvalidArgumentException(sprintf('Invalid message format (error #%d): ', intl_get_error_code()).intl_get_error_message(), 0, $e); + } + } + + foreach ($parameters as $key => $value) { + if (\in_array($key[0] ?? null, ['%', '{'], true)) { + unset($parameters[$key]); + $parameters[trim($key, '%{ }')] = $value; + } + } + + if (false === $message = $formatter->format($parameters)) { + throw new InvalidArgumentException(sprintf('Unable to format message (error #%s): ', $formatter->getErrorCode()).$formatter->getErrorMessage()); + } + + return $message; + } +} diff --git a/vendor/symfony/translation/Formatter/IntlFormatterInterface.php b/vendor/symfony/translation/Formatter/IntlFormatterInterface.php new file mode 100644 index 000000000..02fc6acbd --- /dev/null +++ b/vendor/symfony/translation/Formatter/IntlFormatterInterface.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Formatter; + +/** + * Formats ICU message patterns. + * + * @author Nicolas Grekas + */ +interface IntlFormatterInterface +{ + /** + * Formats a localized message using rules defined by ICU MessageFormat. + * + * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html#details + */ + public function formatIntl(string $message, string $locale, array $parameters = []): string; +} diff --git a/vendor/symfony/translation/Formatter/MessageFormatter.php b/vendor/symfony/translation/Formatter/MessageFormatter.php new file mode 100644 index 000000000..29ad574ee --- /dev/null +++ b/vendor/symfony/translation/Formatter/MessageFormatter.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Formatter; + +use Symfony\Component\Translation\IdentityTranslator; +use Symfony\Contracts\Translation\TranslatorInterface; + +// Help opcache.preload discover always-needed symbols +class_exists(IntlFormatter::class); + +/** + * @author Abdellatif Ait boudad + */ +class MessageFormatter implements MessageFormatterInterface, IntlFormatterInterface +{ + private TranslatorInterface $translator; + private IntlFormatterInterface $intlFormatter; + + /** + * @param TranslatorInterface|null $translator An identity translator to use as selector for pluralization + */ + public function __construct(TranslatorInterface $translator = null, IntlFormatterInterface $intlFormatter = null) + { + $this->translator = $translator ?? new IdentityTranslator(); + $this->intlFormatter = $intlFormatter ?? new IntlFormatter(); + } + + public function format(string $message, string $locale, array $parameters = []): string + { + if ($this->translator instanceof TranslatorInterface) { + return $this->translator->trans($message, $parameters, null, $locale); + } + + return strtr($message, $parameters); + } + + public function formatIntl(string $message, string $locale, array $parameters = []): string + { + return $this->intlFormatter->formatIntl($message, $locale, $parameters); + } +} diff --git a/vendor/symfony/translation/Formatter/MessageFormatterInterface.php b/vendor/symfony/translation/Formatter/MessageFormatterInterface.php new file mode 100644 index 000000000..d5c41c190 --- /dev/null +++ b/vendor/symfony/translation/Formatter/MessageFormatterInterface.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Formatter; + +/** + * @author Guilherme Blanco + * @author Abdellatif Ait boudad + */ +interface MessageFormatterInterface +{ + /** + * Formats a localized message pattern with given arguments. + * + * @param string $message The message (may also be an object that can be cast to string) + * @param string $locale The message locale + * @param array $parameters An array of parameters for the message + */ + public function format(string $message, string $locale, array $parameters = []): string; +} diff --git a/vendor/symfony/translation/IdentityTranslator.php b/vendor/symfony/translation/IdentityTranslator.php new file mode 100644 index 000000000..46875edf2 --- /dev/null +++ b/vendor/symfony/translation/IdentityTranslator.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Contracts\Translation\LocaleAwareInterface; +use Symfony\Contracts\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorTrait; + +/** + * IdentityTranslator does not translate anything. + * + * @author Fabien Potencier + */ +class IdentityTranslator implements TranslatorInterface, LocaleAwareInterface +{ + use TranslatorTrait; +} diff --git a/vendor/symfony/translation/LICENSE b/vendor/symfony/translation/LICENSE new file mode 100644 index 000000000..0138f8f07 --- /dev/null +++ b/vendor/symfony/translation/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2004-present Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/symfony/translation/Loader/ArrayLoader.php b/vendor/symfony/translation/Loader/ArrayLoader.php new file mode 100644 index 000000000..e63a7d05b --- /dev/null +++ b/vendor/symfony/translation/Loader/ArrayLoader.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * ArrayLoader loads translations from a PHP array. + * + * @author Fabien Potencier + */ +class ArrayLoader implements LoaderInterface +{ + public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue + { + $resource = $this->flatten($resource); + $catalogue = new MessageCatalogue($locale); + $catalogue->add($resource, $domain); + + return $catalogue; + } + + /** + * Flattens an nested array of translations. + * + * The scheme used is: + * 'key' => ['key2' => ['key3' => 'value']] + * Becomes: + * 'key.key2.key3' => 'value' + */ + private function flatten(array $messages): array + { + $result = []; + foreach ($messages as $key => $value) { + if (\is_array($value)) { + foreach ($this->flatten($value) as $k => $v) { + if (null !== $v) { + $result[$key.'.'.$k] = $v; + } + } + } elseif (null !== $value) { + $result[$key] = $value; + } + } + + return $result; + } +} diff --git a/vendor/symfony/translation/Loader/CsvFileLoader.php b/vendor/symfony/translation/Loader/CsvFileLoader.php new file mode 100644 index 000000000..7f2f96be6 --- /dev/null +++ b/vendor/symfony/translation/Loader/CsvFileLoader.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Translation\Exception\NotFoundResourceException; + +/** + * CsvFileLoader loads translations from CSV files. + * + * @author Saša Stamenković + */ +class CsvFileLoader extends FileLoader +{ + private string $delimiter = ';'; + private string $enclosure = '"'; + private string $escape = '\\'; + + protected function loadResource(string $resource): array + { + $messages = []; + + try { + $file = new \SplFileObject($resource, 'rb'); + } catch (\RuntimeException $e) { + throw new NotFoundResourceException(sprintf('Error opening file "%s".', $resource), 0, $e); + } + + $file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY); + $file->setCsvControl($this->delimiter, $this->enclosure, $this->escape); + + foreach ($file as $data) { + if (false === $data) { + continue; + } + + if (!str_starts_with($data[0], '#') && isset($data[1]) && 2 === \count($data)) { + $messages[$data[0]] = $data[1]; + } + } + + return $messages; + } + + /** + * Sets the delimiter, enclosure, and escape character for CSV. + * + * @return void + */ + public function setCsvControl(string $delimiter = ';', string $enclosure = '"', string $escape = '\\') + { + $this->delimiter = $delimiter; + $this->enclosure = $enclosure; + $this->escape = $escape; + } +} diff --git a/vendor/symfony/translation/Loader/FileLoader.php b/vendor/symfony/translation/Loader/FileLoader.php new file mode 100644 index 000000000..877c3bbc7 --- /dev/null +++ b/vendor/symfony/translation/Loader/FileLoader.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Config\Resource\FileResource; +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * @author Abdellatif Ait boudad + */ +abstract class FileLoader extends ArrayLoader +{ + public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue + { + if (!stream_is_local($resource)) { + throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); + } + + if (!file_exists($resource)) { + throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); + } + + $messages = $this->loadResource($resource); + + // empty resource + $messages ??= []; + + // not an array + if (!\is_array($messages)) { + throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource)); + } + + $catalogue = parent::load($messages, $locale, $domain); + + if (class_exists(FileResource::class)) { + $catalogue->addResource(new FileResource($resource)); + } + + return $catalogue; + } + + /** + * @throws InvalidResourceException if stream content has an invalid format + */ + abstract protected function loadResource(string $resource): array; +} diff --git a/vendor/symfony/translation/Loader/IcuDatFileLoader.php b/vendor/symfony/translation/Loader/IcuDatFileLoader.php new file mode 100644 index 000000000..76e4e7f02 --- /dev/null +++ b/vendor/symfony/translation/Loader/IcuDatFileLoader.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Config\Resource\FileResource; +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * IcuResFileLoader loads translations from a resource bundle. + * + * @author stealth35 + */ +class IcuDatFileLoader extends IcuResFileLoader +{ + public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue + { + if (!stream_is_local($resource.'.dat')) { + throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); + } + + if (!file_exists($resource.'.dat')) { + throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); + } + + try { + $rb = new \ResourceBundle($locale, $resource); + } catch (\Exception) { + $rb = null; + } + + if (!$rb) { + throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource)); + } elseif (intl_is_failure($rb->getErrorCode())) { + throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode()); + } + + $messages = $this->flatten($rb); + $catalogue = new MessageCatalogue($locale); + $catalogue->add($messages, $domain); + + if (class_exists(FileResource::class)) { + $catalogue->addResource(new FileResource($resource.'.dat')); + } + + return $catalogue; + } +} diff --git a/vendor/symfony/translation/Loader/IcuResFileLoader.php b/vendor/symfony/translation/Loader/IcuResFileLoader.php new file mode 100644 index 000000000..94d55b861 --- /dev/null +++ b/vendor/symfony/translation/Loader/IcuResFileLoader.php @@ -0,0 +1,86 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Config\Resource\DirectoryResource; +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * IcuResFileLoader loads translations from a resource bundle. + * + * @author stealth35 + */ +class IcuResFileLoader implements LoaderInterface +{ + public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue + { + if (!stream_is_local($resource)) { + throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); + } + + if (!is_dir($resource)) { + throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); + } + + try { + $rb = new \ResourceBundle($locale, $resource); + } catch (\Exception) { + $rb = null; + } + + if (!$rb) { + throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource)); + } elseif (intl_is_failure($rb->getErrorCode())) { + throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode()); + } + + $messages = $this->flatten($rb); + $catalogue = new MessageCatalogue($locale); + $catalogue->add($messages, $domain); + + if (class_exists(DirectoryResource::class)) { + $catalogue->addResource(new DirectoryResource($resource)); + } + + return $catalogue; + } + + /** + * Flattens an ResourceBundle. + * + * The scheme used is: + * key { key2 { key3 { "value" } } } + * Becomes: + * 'key.key2.key3' => 'value' + * + * This function takes an array by reference and will modify it + * + * @param \ResourceBundle $rb The ResourceBundle that will be flattened + * @param array $messages Used internally for recursive calls + * @param string|null $path Current path being parsed, used internally for recursive calls + */ + protected function flatten(\ResourceBundle $rb, array &$messages = [], string $path = null): array + { + foreach ($rb as $key => $value) { + $nodePath = $path ? $path.'.'.$key : $key; + if ($value instanceof \ResourceBundle) { + $this->flatten($value, $messages, $nodePath); + } else { + $messages[$nodePath] = $value; + } + } + + return $messages; + } +} diff --git a/vendor/symfony/translation/Loader/IniFileLoader.php b/vendor/symfony/translation/Loader/IniFileLoader.php new file mode 100644 index 000000000..3126896c8 --- /dev/null +++ b/vendor/symfony/translation/Loader/IniFileLoader.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +/** + * IniFileLoader loads translations from an ini file. + * + * @author stealth35 + */ +class IniFileLoader extends FileLoader +{ + protected function loadResource(string $resource): array + { + return parse_ini_file($resource, true); + } +} diff --git a/vendor/symfony/translation/Loader/JsonFileLoader.php b/vendor/symfony/translation/Loader/JsonFileLoader.php new file mode 100644 index 000000000..385553ef6 --- /dev/null +++ b/vendor/symfony/translation/Loader/JsonFileLoader.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Translation\Exception\InvalidResourceException; + +/** + * JsonFileLoader loads translations from an json file. + * + * @author singles + */ +class JsonFileLoader extends FileLoader +{ + protected function loadResource(string $resource): array + { + $messages = []; + if ($data = file_get_contents($resource)) { + $messages = json_decode($data, true); + + if (0 < $errorCode = json_last_error()) { + throw new InvalidResourceException('Error parsing JSON: '.$this->getJSONErrorMessage($errorCode)); + } + } + + return $messages; + } + + /** + * Translates JSON_ERROR_* constant into meaningful message. + */ + private function getJSONErrorMessage(int $errorCode): string + { + return match ($errorCode) { + \JSON_ERROR_DEPTH => 'Maximum stack depth exceeded', + \JSON_ERROR_STATE_MISMATCH => 'Underflow or the modes mismatch', + \JSON_ERROR_CTRL_CHAR => 'Unexpected control character found', + \JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON', + \JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded', + default => 'Unknown error', + }; + } +} diff --git a/vendor/symfony/translation/Loader/LoaderInterface.php b/vendor/symfony/translation/Loader/LoaderInterface.php new file mode 100644 index 000000000..29d5560d1 --- /dev/null +++ b/vendor/symfony/translation/Loader/LoaderInterface.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * LoaderInterface is the interface implemented by all translation loaders. + * + * @author Fabien Potencier + */ +interface LoaderInterface +{ + /** + * Loads a locale. + * + * @throws NotFoundResourceException when the resource cannot be found + * @throws InvalidResourceException when the resource cannot be loaded + */ + public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue; +} diff --git a/vendor/symfony/translation/Loader/MoFileLoader.php b/vendor/symfony/translation/Loader/MoFileLoader.php new file mode 100644 index 000000000..8427c393e --- /dev/null +++ b/vendor/symfony/translation/Loader/MoFileLoader.php @@ -0,0 +1,138 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Translation\Exception\InvalidResourceException; + +/** + * @copyright Copyright (c) 2010, Union of RAD http://union-of-rad.org (http://lithify.me/) + */ +class MoFileLoader extends FileLoader +{ + /** + * Magic used for validating the format of an MO file as well as + * detecting if the machine used to create that file was little endian. + */ + public const MO_LITTLE_ENDIAN_MAGIC = 0x950412DE; + + /** + * Magic used for validating the format of an MO file as well as + * detecting if the machine used to create that file was big endian. + */ + public const MO_BIG_ENDIAN_MAGIC = 0xDE120495; + + /** + * The size of the header of an MO file in bytes. + */ + public const MO_HEADER_SIZE = 28; + + /** + * Parses machine object (MO) format, independent of the machine's endian it + * was created on. Both 32bit and 64bit systems are supported. + */ + protected function loadResource(string $resource): array + { + $stream = fopen($resource, 'r'); + + $stat = fstat($stream); + + if ($stat['size'] < self::MO_HEADER_SIZE) { + throw new InvalidResourceException('MO stream content has an invalid format.'); + } + $magic = unpack('V1', fread($stream, 4)); + $magic = hexdec(substr(dechex(current($magic)), -8)); + + if (self::MO_LITTLE_ENDIAN_MAGIC == $magic) { + $isBigEndian = false; + } elseif (self::MO_BIG_ENDIAN_MAGIC == $magic) { + $isBigEndian = true; + } else { + throw new InvalidResourceException('MO stream content has an invalid format.'); + } + + // formatRevision + $this->readLong($stream, $isBigEndian); + $count = $this->readLong($stream, $isBigEndian); + $offsetId = $this->readLong($stream, $isBigEndian); + $offsetTranslated = $this->readLong($stream, $isBigEndian); + // sizeHashes + $this->readLong($stream, $isBigEndian); + // offsetHashes + $this->readLong($stream, $isBigEndian); + + $messages = []; + + for ($i = 0; $i < $count; ++$i) { + $pluralId = null; + $translated = null; + + fseek($stream, $offsetId + $i * 8); + + $length = $this->readLong($stream, $isBigEndian); + $offset = $this->readLong($stream, $isBigEndian); + + if ($length < 1) { + continue; + } + + fseek($stream, $offset); + $singularId = fread($stream, $length); + + if (str_contains($singularId, "\000")) { + [$singularId, $pluralId] = explode("\000", $singularId); + } + + fseek($stream, $offsetTranslated + $i * 8); + $length = $this->readLong($stream, $isBigEndian); + $offset = $this->readLong($stream, $isBigEndian); + + if ($length < 1) { + continue; + } + + fseek($stream, $offset); + $translated = fread($stream, $length); + + if (str_contains($translated, "\000")) { + $translated = explode("\000", $translated); + } + + $ids = ['singular' => $singularId, 'plural' => $pluralId]; + $item = compact('ids', 'translated'); + + if (!empty($item['ids']['singular'])) { + $id = $item['ids']['singular']; + if (isset($item['ids']['plural'])) { + $id .= '|'.$item['ids']['plural']; + } + $messages[$id] = stripcslashes(implode('|', (array) $item['translated'])); + } + } + + fclose($stream); + + return array_filter($messages); + } + + /** + * Reads an unsigned long from stream respecting endianness. + * + * @param resource $stream + */ + private function readLong($stream, bool $isBigEndian): int + { + $result = unpack($isBigEndian ? 'N1' : 'V1', fread($stream, 4)); + $result = current($result); + + return (int) substr($result, -8); + } +} diff --git a/vendor/symfony/translation/Loader/PhpFileLoader.php b/vendor/symfony/translation/Loader/PhpFileLoader.php new file mode 100644 index 000000000..93f23cd95 --- /dev/null +++ b/vendor/symfony/translation/Loader/PhpFileLoader.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +/** + * PhpFileLoader loads translations from PHP files returning an array of translations. + * + * @author Fabien Potencier + */ +class PhpFileLoader extends FileLoader +{ + private static ?array $cache = []; + + protected function loadResource(string $resource): array + { + if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOL) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(\ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOL))) { + self::$cache = null; + } + + if (null === self::$cache) { + return require $resource; + } + + return self::$cache[$resource] ??= require $resource; + } +} diff --git a/vendor/symfony/translation/Loader/PoFileLoader.php b/vendor/symfony/translation/Loader/PoFileLoader.php new file mode 100644 index 000000000..620d97339 --- /dev/null +++ b/vendor/symfony/translation/Loader/PoFileLoader.php @@ -0,0 +1,147 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +/** + * @copyright Copyright (c) 2010, Union of RAD https://github.com/UnionOfRAD/lithium + * @copyright Copyright (c) 2012, Clemens Tolboom + */ +class PoFileLoader extends FileLoader +{ + /** + * Parses portable object (PO) format. + * + * From https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files + * we should be able to parse files having: + * + * white-space + * # translator-comments + * #. extracted-comments + * #: reference... + * #, flag... + * #| msgid previous-untranslated-string + * msgid untranslated-string + * msgstr translated-string + * + * extra or different lines are: + * + * #| msgctxt previous-context + * #| msgid previous-untranslated-string + * msgctxt context + * + * #| msgid previous-untranslated-string-singular + * #| msgid_plural previous-untranslated-string-plural + * msgid untranslated-string-singular + * msgid_plural untranslated-string-plural + * msgstr[0] translated-string-case-0 + * ... + * msgstr[N] translated-string-case-n + * + * The definition states: + * - white-space and comments are optional. + * - msgid "" that an empty singleline defines a header. + * + * This parser sacrifices some features of the reference implementation the + * differences to that implementation are as follows. + * - No support for comments spanning multiple lines. + * - Translator and extracted comments are treated as being the same type. + * - Message IDs are allowed to have other encodings as just US-ASCII. + * + * Items with an empty id are ignored. + */ + protected function loadResource(string $resource): array + { + $stream = fopen($resource, 'r'); + + $defaults = [ + 'ids' => [], + 'translated' => null, + ]; + + $messages = []; + $item = $defaults; + $flags = []; + + while ($line = fgets($stream)) { + $line = trim($line); + + if ('' === $line) { + // Whitespace indicated current item is done + if (!\in_array('fuzzy', $flags)) { + $this->addMessage($messages, $item); + } + $item = $defaults; + $flags = []; + } elseif (str_starts_with($line, '#,')) { + $flags = array_map('trim', explode(',', substr($line, 2))); + } elseif (str_starts_with($line, 'msgid "')) { + // We start a new msg so save previous + // TODO: this fails when comments or contexts are added + $this->addMessage($messages, $item); + $item = $defaults; + $item['ids']['singular'] = substr($line, 7, -1); + } elseif (str_starts_with($line, 'msgstr "')) { + $item['translated'] = substr($line, 8, -1); + } elseif ('"' === $line[0]) { + $continues = isset($item['translated']) ? 'translated' : 'ids'; + + if (\is_array($item[$continues])) { + end($item[$continues]); + $item[$continues][key($item[$continues])] .= substr($line, 1, -1); + } else { + $item[$continues] .= substr($line, 1, -1); + } + } elseif (str_starts_with($line, 'msgid_plural "')) { + $item['ids']['plural'] = substr($line, 14, -1); + } elseif (str_starts_with($line, 'msgstr[')) { + $size = strpos($line, ']'); + $item['translated'][(int) substr($line, 7, 1)] = substr($line, $size + 3, -1); + } + } + // save last item + if (!\in_array('fuzzy', $flags)) { + $this->addMessage($messages, $item); + } + fclose($stream); + + return $messages; + } + + /** + * Save a translation item to the messages. + * + * A .po file could contain by error missing plural indexes. We need to + * fix these before saving them. + */ + private function addMessage(array &$messages, array $item): void + { + if (!empty($item['ids']['singular'])) { + $id = stripcslashes($item['ids']['singular']); + if (isset($item['ids']['plural'])) { + $id .= '|'.stripcslashes($item['ids']['plural']); + } + + $translated = (array) $item['translated']; + // PO are by definition indexed so sort by index. + ksort($translated); + // Make sure every index is filled. + end($translated); + $count = key($translated); + // Fill missing spots with '-'. + $empties = array_fill(0, $count + 1, '-'); + $translated += $empties; + ksort($translated); + + $messages[$id] = stripcslashes(implode('|', $translated)); + } + } +} diff --git a/vendor/symfony/translation/Loader/QtFileLoader.php b/vendor/symfony/translation/Loader/QtFileLoader.php new file mode 100644 index 000000000..235f85ee9 --- /dev/null +++ b/vendor/symfony/translation/Loader/QtFileLoader.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Config\Resource\FileResource; +use Symfony\Component\Config\Util\XmlUtils; +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Translation\Exception\RuntimeException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * QtFileLoader loads translations from QT Translations XML files. + * + * @author Benjamin Eberlei + */ +class QtFileLoader implements LoaderInterface +{ + public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue + { + if (!class_exists(XmlUtils::class)) { + throw new RuntimeException('Loading translations from the QT format requires the Symfony Config component.'); + } + + if (!stream_is_local($resource)) { + throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); + } + + if (!file_exists($resource)) { + throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); + } + + try { + $dom = XmlUtils::loadFile($resource); + } catch (\InvalidArgumentException $e) { + throw new InvalidResourceException(sprintf('Unable to load "%s".', $resource), $e->getCode(), $e); + } + + $internalErrors = libxml_use_internal_errors(true); + libxml_clear_errors(); + + $xpath = new \DOMXPath($dom); + $nodes = $xpath->evaluate('//TS/context/name[text()="'.$domain.'"]'); + + $catalogue = new MessageCatalogue($locale); + if (1 == $nodes->length) { + $translations = $nodes->item(0)->nextSibling->parentNode->parentNode->getElementsByTagName('message'); + foreach ($translations as $translation) { + $translationValue = (string) $translation->getElementsByTagName('translation')->item(0)->nodeValue; + + if (!empty($translationValue)) { + $catalogue->set( + (string) $translation->getElementsByTagName('source')->item(0)->nodeValue, + $translationValue, + $domain + ); + } + } + + if (class_exists(FileResource::class)) { + $catalogue->addResource(new FileResource($resource)); + } + } + + libxml_use_internal_errors($internalErrors); + + return $catalogue; + } +} diff --git a/vendor/symfony/translation/Loader/XliffFileLoader.php b/vendor/symfony/translation/Loader/XliffFileLoader.php new file mode 100644 index 000000000..34cad36c4 --- /dev/null +++ b/vendor/symfony/translation/Loader/XliffFileLoader.php @@ -0,0 +1,233 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Config\Resource\FileResource; +use Symfony\Component\Config\Util\Exception\InvalidXmlException; +use Symfony\Component\Config\Util\Exception\XmlParsingException; +use Symfony\Component\Config\Util\XmlUtils; +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Translation\Exception\RuntimeException; +use Symfony\Component\Translation\MessageCatalogue; +use Symfony\Component\Translation\Util\XliffUtils; + +/** + * XliffFileLoader loads translations from XLIFF files. + * + * @author Fabien Potencier + */ +class XliffFileLoader implements LoaderInterface +{ + public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue + { + if (!class_exists(XmlUtils::class)) { + throw new RuntimeException('Loading translations from the Xliff format requires the Symfony Config component.'); + } + + if (!$this->isXmlString($resource)) { + if (!stream_is_local($resource)) { + throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource)); + } + + if (!file_exists($resource)) { + throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource)); + } + + if (!is_file($resource)) { + throw new InvalidResourceException(sprintf('This is neither a file nor an XLIFF string "%s".', $resource)); + } + } + + try { + if ($this->isXmlString($resource)) { + $dom = XmlUtils::parse($resource); + } else { + $dom = XmlUtils::loadFile($resource); + } + } catch (\InvalidArgumentException|XmlParsingException|InvalidXmlException $e) { + throw new InvalidResourceException(sprintf('Unable to load "%s": ', $resource).$e->getMessage(), $e->getCode(), $e); + } + + if ($errors = XliffUtils::validateSchema($dom)) { + throw new InvalidResourceException(sprintf('Invalid resource provided: "%s"; Errors: ', $resource).XliffUtils::getErrorsAsString($errors)); + } + + $catalogue = new MessageCatalogue($locale); + $this->extract($dom, $catalogue, $domain); + + if (is_file($resource) && class_exists(FileResource::class)) { + $catalogue->addResource(new FileResource($resource)); + } + + return $catalogue; + } + + private function extract(\DOMDocument $dom, MessageCatalogue $catalogue, string $domain): void + { + $xliffVersion = XliffUtils::getVersionNumber($dom); + + if ('1.2' === $xliffVersion) { + $this->extractXliff1($dom, $catalogue, $domain); + } + + if ('2.0' === $xliffVersion) { + $this->extractXliff2($dom, $catalogue, $domain); + } + } + + /** + * Extract messages and metadata from DOMDocument into a MessageCatalogue. + */ + private function extractXliff1(\DOMDocument $dom, MessageCatalogue $catalogue, string $domain): void + { + $xml = simplexml_import_dom($dom); + $encoding = $dom->encoding ? strtoupper($dom->encoding) : null; + + $namespace = 'urn:oasis:names:tc:xliff:document:1.2'; + $xml->registerXPathNamespace('xliff', $namespace); + + foreach ($xml->xpath('//xliff:file') as $file) { + $fileAttributes = $file->attributes(); + + $file->registerXPathNamespace('xliff', $namespace); + + foreach ($file->xpath('.//xliff:prop') as $prop) { + $catalogue->setCatalogueMetadata($prop->attributes()['prop-type'], (string) $prop, $domain); + } + + foreach ($file->xpath('.//xliff:trans-unit') as $translation) { + $attributes = $translation->attributes(); + + if (!(isset($attributes['resname']) || isset($translation->source))) { + continue; + } + + $source = isset($attributes['resname']) && $attributes['resname'] ? $attributes['resname'] : $translation->source; + // If the xlf file has another encoding specified, try to convert it because + // simple_xml will always return utf-8 encoded values + $target = $this->utf8ToCharset((string) ($translation->target ?? $translation->source), $encoding); + + $catalogue->set((string) $source, $target, $domain); + + $metadata = [ + 'source' => (string) $translation->source, + 'file' => [ + 'original' => (string) $fileAttributes['original'], + ], + ]; + if ($notes = $this->parseNotesMetadata($translation->note, $encoding)) { + $metadata['notes'] = $notes; + } + + if (isset($translation->target) && $translation->target->attributes()) { + $metadata['target-attributes'] = []; + foreach ($translation->target->attributes() as $key => $value) { + $metadata['target-attributes'][$key] = (string) $value; + } + } + + if (isset($attributes['id'])) { + $metadata['id'] = (string) $attributes['id']; + } + + $catalogue->setMetadata((string) $source, $metadata, $domain); + } + } + } + + private function extractXliff2(\DOMDocument $dom, MessageCatalogue $catalogue, string $domain): void + { + $xml = simplexml_import_dom($dom); + $encoding = $dom->encoding ? strtoupper($dom->encoding) : null; + + $xml->registerXPathNamespace('xliff', 'urn:oasis:names:tc:xliff:document:2.0'); + + foreach ($xml->xpath('//xliff:unit') as $unit) { + foreach ($unit->segment as $segment) { + $attributes = $unit->attributes(); + $source = $attributes['name'] ?? $segment->source; + + // If the xlf file has another encoding specified, try to convert it because + // simple_xml will always return utf-8 encoded values + $target = $this->utf8ToCharset((string) ($segment->target ?? $segment->source), $encoding); + + $catalogue->set((string) $source, $target, $domain); + + $metadata = []; + if (isset($segment->target) && $segment->target->attributes()) { + $metadata['target-attributes'] = []; + foreach ($segment->target->attributes() as $key => $value) { + $metadata['target-attributes'][$key] = (string) $value; + } + } + + if (isset($unit->notes)) { + $metadata['notes'] = []; + foreach ($unit->notes->note as $noteNode) { + $note = []; + foreach ($noteNode->attributes() as $key => $value) { + $note[$key] = (string) $value; + } + $note['content'] = (string) $noteNode; + $metadata['notes'][] = $note; + } + } + + $catalogue->setMetadata((string) $source, $metadata, $domain); + } + } + } + + /** + * Convert a UTF8 string to the specified encoding. + */ + private function utf8ToCharset(string $content, string $encoding = null): string + { + if ('UTF-8' !== $encoding && !empty($encoding)) { + return mb_convert_encoding($content, $encoding, 'UTF-8'); + } + + return $content; + } + + private function parseNotesMetadata(\SimpleXMLElement $noteElement = null, string $encoding = null): array + { + $notes = []; + + if (null === $noteElement) { + return $notes; + } + + /** @var \SimpleXMLElement $xmlNote */ + foreach ($noteElement as $xmlNote) { + $noteAttributes = $xmlNote->attributes(); + $note = ['content' => $this->utf8ToCharset((string) $xmlNote, $encoding)]; + if (isset($noteAttributes['priority'])) { + $note['priority'] = (int) $noteAttributes['priority']; + } + + if (isset($noteAttributes['from'])) { + $note['from'] = (string) $noteAttributes['from']; + } + + $notes[] = $note; + } + + return $notes; + } + + private function isXmlString(string $resource): bool + { + return str_starts_with($resource, ' + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Loader; + +use Symfony\Component\Translation\Exception\InvalidResourceException; +use Symfony\Component\Translation\Exception\LogicException; +use Symfony\Component\Yaml\Exception\ParseException; +use Symfony\Component\Yaml\Parser as YamlParser; +use Symfony\Component\Yaml\Yaml; + +/** + * YamlFileLoader loads translations from Yaml files. + * + * @author Fabien Potencier + */ +class YamlFileLoader extends FileLoader +{ + private $yamlParser; + + protected function loadResource(string $resource): array + { + if (null === $this->yamlParser) { + if (!class_exists(\Symfony\Component\Yaml\Parser::class)) { + throw new LogicException('Loading translations from the YAML format requires the Symfony Yaml component.'); + } + + $this->yamlParser = new YamlParser(); + } + + try { + $messages = $this->yamlParser->parseFile($resource, Yaml::PARSE_CONSTANT); + } catch (ParseException $e) { + throw new InvalidResourceException(sprintf('The file "%s" does not contain valid YAML: ', $resource).$e->getMessage(), 0, $e); + } + + if (null !== $messages && !\is_array($messages)) { + throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource)); + } + + return $messages ?: []; + } +} diff --git a/vendor/symfony/translation/LocaleSwitcher.php b/vendor/symfony/translation/LocaleSwitcher.php new file mode 100644 index 000000000..48ef4396f --- /dev/null +++ b/vendor/symfony/translation/LocaleSwitcher.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Component\Routing\RequestContext; +use Symfony\Contracts\Translation\LocaleAwareInterface; + +/** + * @author Kevin Bond + */ +class LocaleSwitcher implements LocaleAwareInterface +{ + private string $defaultLocale; + + /** + * @param LocaleAwareInterface[] $localeAwareServices + */ + public function __construct( + private string $locale, + private iterable $localeAwareServices, + private ?RequestContext $requestContext = null, + ) { + $this->defaultLocale = $locale; + } + + public function setLocale(string $locale): void + { + if (class_exists(\Locale::class)) { + \Locale::setDefault($locale); + } + $this->locale = $locale; + $this->requestContext?->setParameter('_locale', $locale); + + foreach ($this->localeAwareServices as $service) { + $service->setLocale($locale); + } + } + + public function getLocale(): string + { + return $this->locale; + } + + /** + * Switch to a new locale, execute a callback, then switch back to the original. + * + * @template T + * + * @param callable():T $callback + * + * @return T + */ + public function runWithLocale(string $locale, callable $callback): mixed + { + $original = $this->getLocale(); + $this->setLocale($locale); + + try { + return $callback(); + } finally { + $this->setLocale($original); + } + } + + public function reset(): void + { + $this->setLocale($this->defaultLocale); + } +} diff --git a/vendor/symfony/translation/LoggingTranslator.php b/vendor/symfony/translation/LoggingTranslator.php new file mode 100644 index 000000000..e107bf223 --- /dev/null +++ b/vendor/symfony/translation/LoggingTranslator.php @@ -0,0 +1,115 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Psr\Log\LoggerInterface; +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Contracts\Translation\LocaleAwareInterface; +use Symfony\Contracts\Translation\TranslatorInterface; + +/** + * @author Abdellatif Ait boudad + */ +class LoggingTranslator implements TranslatorInterface, TranslatorBagInterface, LocaleAwareInterface +{ + private TranslatorInterface $translator; + private LoggerInterface $logger; + + /** + * @param TranslatorInterface&TranslatorBagInterface&LocaleAwareInterface $translator The translator must implement TranslatorBagInterface + */ + public function __construct(TranslatorInterface $translator, LoggerInterface $logger) + { + if (!$translator instanceof TranslatorBagInterface || !$translator instanceof LocaleAwareInterface) { + throw new InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', get_debug_type($translator))); + } + + $this->translator = $translator; + $this->logger = $logger; + } + + public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null): string + { + $trans = $this->translator->trans($id = (string) $id, $parameters, $domain, $locale); + $this->log($id, $domain, $locale); + + return $trans; + } + + /** + * @return void + */ + public function setLocale(string $locale) + { + $prev = $this->translator->getLocale(); + $this->translator->setLocale($locale); + if ($prev === $locale) { + return; + } + + $this->logger->debug(sprintf('The locale of the translator has changed from "%s" to "%s".', $prev, $locale)); + } + + public function getLocale(): string + { + return $this->translator->getLocale(); + } + + public function getCatalogue(string $locale = null): MessageCatalogueInterface + { + return $this->translator->getCatalogue($locale); + } + + public function getCatalogues(): array + { + return $this->translator->getCatalogues(); + } + + /** + * Gets the fallback locales. + */ + public function getFallbackLocales(): array + { + if ($this->translator instanceof Translator || method_exists($this->translator, 'getFallbackLocales')) { + return $this->translator->getFallbackLocales(); + } + + return []; + } + + /** + * Passes through all unknown calls onto the translator object. + */ + public function __call(string $method, array $args) + { + return $this->translator->{$method}(...$args); + } + + /** + * Logs for missing translations. + */ + private function log(string $id, ?string $domain, ?string $locale): void + { + $domain ??= 'messages'; + + $catalogue = $this->translator->getCatalogue($locale); + if ($catalogue->defines($id, $domain)) { + return; + } + + if ($catalogue->has($id, $domain)) { + $this->logger->debug('Translation use fallback catalogue.', ['id' => $id, 'domain' => $domain, 'locale' => $catalogue->getLocale()]); + } else { + $this->logger->warning('Translation not found.', ['id' => $id, 'domain' => $domain, 'locale' => $catalogue->getLocale()]); + } + } +} diff --git a/vendor/symfony/translation/MessageCatalogue.php b/vendor/symfony/translation/MessageCatalogue.php new file mode 100644 index 000000000..379d947ce --- /dev/null +++ b/vendor/symfony/translation/MessageCatalogue.php @@ -0,0 +1,338 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Component\Config\Resource\ResourceInterface; +use Symfony\Component\Translation\Exception\LogicException; + +/** + * @author Fabien Potencier + */ +class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterface, CatalogueMetadataAwareInterface +{ + private array $messages = []; + private array $metadata = []; + private array $catalogueMetadata = []; + private array $resources = []; + private string $locale; + private ?MessageCatalogueInterface $fallbackCatalogue = null; + private ?self $parent = null; + + /** + * @param array $messages An array of messages classified by domain + */ + public function __construct(string $locale, array $messages = []) + { + $this->locale = $locale; + $this->messages = $messages; + } + + public function getLocale(): string + { + return $this->locale; + } + + public function getDomains(): array + { + $domains = []; + + foreach ($this->messages as $domain => $messages) { + if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) { + $domain = substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX)); + } + $domains[$domain] = $domain; + } + + return array_values($domains); + } + + public function all(string $domain = null): array + { + if (null !== $domain) { + // skip messages merge if intl-icu requested explicitly + if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) { + return $this->messages[$domain] ?? []; + } + + return ($this->messages[$domain.self::INTL_DOMAIN_SUFFIX] ?? []) + ($this->messages[$domain] ?? []); + } + + $allMessages = []; + + foreach ($this->messages as $domain => $messages) { + if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) { + $domain = substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX)); + $allMessages[$domain] = $messages + ($allMessages[$domain] ?? []); + } else { + $allMessages[$domain] = ($allMessages[$domain] ?? []) + $messages; + } + } + + return $allMessages; + } + + /** + * @return void + */ + public function set(string $id, string $translation, string $domain = 'messages') + { + $this->add([$id => $translation], $domain); + } + + public function has(string $id, string $domain = 'messages'): bool + { + if (isset($this->messages[$domain][$id]) || isset($this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id])) { + return true; + } + + if (null !== $this->fallbackCatalogue) { + return $this->fallbackCatalogue->has($id, $domain); + } + + return false; + } + + public function defines(string $id, string $domain = 'messages'): bool + { + return isset($this->messages[$domain][$id]) || isset($this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id]); + } + + public function get(string $id, string $domain = 'messages'): string + { + if (isset($this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id])) { + return $this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id]; + } + + if (isset($this->messages[$domain][$id])) { + return $this->messages[$domain][$id]; + } + + if (null !== $this->fallbackCatalogue) { + return $this->fallbackCatalogue->get($id, $domain); + } + + return $id; + } + + /** + * @return void + */ + public function replace(array $messages, string $domain = 'messages') + { + unset($this->messages[$domain], $this->messages[$domain.self::INTL_DOMAIN_SUFFIX]); + + $this->add($messages, $domain); + } + + /** + * @return void + */ + public function add(array $messages, string $domain = 'messages') + { + $altDomain = str_ends_with($domain, self::INTL_DOMAIN_SUFFIX) ? substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX)) : $domain.self::INTL_DOMAIN_SUFFIX; + foreach ($messages as $id => $message) { + unset($this->messages[$altDomain][$id]); + $this->messages[$domain][$id] = $message; + } + + if ([] === ($this->messages[$altDomain] ?? null)) { + unset($this->messages[$altDomain]); + } + } + + /** + * @return void + */ + public function addCatalogue(MessageCatalogueInterface $catalogue) + { + if ($catalogue->getLocale() !== $this->locale) { + throw new LogicException(sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s".', $catalogue->getLocale(), $this->locale)); + } + + foreach ($catalogue->all() as $domain => $messages) { + if ($intlMessages = $catalogue->all($domain.self::INTL_DOMAIN_SUFFIX)) { + $this->add($intlMessages, $domain.self::INTL_DOMAIN_SUFFIX); + $messages = array_diff_key($messages, $intlMessages); + } + $this->add($messages, $domain); + } + + foreach ($catalogue->getResources() as $resource) { + $this->addResource($resource); + } + + if ($catalogue instanceof MetadataAwareInterface) { + $metadata = $catalogue->getMetadata('', ''); + $this->addMetadata($metadata); + } + + if ($catalogue instanceof CatalogueMetadataAwareInterface) { + $catalogueMetadata = $catalogue->getCatalogueMetadata('', ''); + $this->addCatalogueMetadata($catalogueMetadata); + } + } + + /** + * @return void + */ + public function addFallbackCatalogue(MessageCatalogueInterface $catalogue) + { + // detect circular references + $c = $catalogue; + while ($c = $c->getFallbackCatalogue()) { + if ($c->getLocale() === $this->getLocale()) { + throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale())); + } + } + + $c = $this; + do { + if ($c->getLocale() === $catalogue->getLocale()) { + throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale())); + } + + foreach ($catalogue->getResources() as $resource) { + $c->addResource($resource); + } + } while ($c = $c->parent); + + $catalogue->parent = $this; + $this->fallbackCatalogue = $catalogue; + + foreach ($catalogue->getResources() as $resource) { + $this->addResource($resource); + } + } + + public function getFallbackCatalogue(): ?MessageCatalogueInterface + { + return $this->fallbackCatalogue; + } + + public function getResources(): array + { + return array_values($this->resources); + } + + /** + * @return void + */ + public function addResource(ResourceInterface $resource) + { + $this->resources[$resource->__toString()] = $resource; + } + + public function getMetadata(string $key = '', string $domain = 'messages'): mixed + { + if ('' == $domain) { + return $this->metadata; + } + + if (isset($this->metadata[$domain])) { + if ('' == $key) { + return $this->metadata[$domain]; + } + + if (isset($this->metadata[$domain][$key])) { + return $this->metadata[$domain][$key]; + } + } + + return null; + } + + /** + * @return void + */ + public function setMetadata(string $key, mixed $value, string $domain = 'messages') + { + $this->metadata[$domain][$key] = $value; + } + + /** + * @return void + */ + public function deleteMetadata(string $key = '', string $domain = 'messages') + { + if ('' == $domain) { + $this->metadata = []; + } elseif ('' == $key) { + unset($this->metadata[$domain]); + } else { + unset($this->metadata[$domain][$key]); + } + } + + public function getCatalogueMetadata(string $key = '', string $domain = 'messages'): mixed + { + if (!$domain) { + return $this->catalogueMetadata; + } + + if (isset($this->catalogueMetadata[$domain])) { + if (!$key) { + return $this->catalogueMetadata[$domain]; + } + + if (isset($this->catalogueMetadata[$domain][$key])) { + return $this->catalogueMetadata[$domain][$key]; + } + } + + return null; + } + + /** + * @return void + */ + public function setCatalogueMetadata(string $key, mixed $value, string $domain = 'messages') + { + $this->catalogueMetadata[$domain][$key] = $value; + } + + /** + * @return void + */ + public function deleteCatalogueMetadata(string $key = '', string $domain = 'messages') + { + if (!$domain) { + $this->catalogueMetadata = []; + } elseif (!$key) { + unset($this->catalogueMetadata[$domain]); + } else { + unset($this->catalogueMetadata[$domain][$key]); + } + } + + /** + * Adds current values with the new values. + * + * @param array $values Values to add + */ + private function addMetadata(array $values): void + { + foreach ($values as $domain => $keys) { + foreach ($keys as $key => $value) { + $this->setMetadata($key, $value, $domain); + } + } + } + + private function addCatalogueMetadata(array $values): void + { + foreach ($values as $domain => $keys) { + foreach ($keys as $key => $value) { + $this->setCatalogueMetadata($key, $value, $domain); + } + } + } +} diff --git a/vendor/symfony/translation/MessageCatalogueInterface.php b/vendor/symfony/translation/MessageCatalogueInterface.php new file mode 100644 index 000000000..ed819f155 --- /dev/null +++ b/vendor/symfony/translation/MessageCatalogueInterface.php @@ -0,0 +1,134 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Component\Config\Resource\ResourceInterface; + +/** + * MessageCatalogueInterface. + * + * @author Fabien Potencier + */ +interface MessageCatalogueInterface +{ + public const INTL_DOMAIN_SUFFIX = '+intl-icu'; + + /** + * Gets the catalogue locale. + */ + public function getLocale(): string; + + /** + * Gets the domains. + */ + public function getDomains(): array; + + /** + * Gets the messages within a given domain. + * + * If $domain is null, it returns all messages. + */ + public function all(string $domain = null): array; + + /** + * Sets a message translation. + * + * @param string $id The message id + * @param string $translation The messages translation + * @param string $domain The domain name + * + * @return void + */ + public function set(string $id, string $translation, string $domain = 'messages'); + + /** + * Checks if a message has a translation. + * + * @param string $id The message id + * @param string $domain The domain name + */ + public function has(string $id, string $domain = 'messages'): bool; + + /** + * Checks if a message has a translation (it does not take into account the fallback mechanism). + * + * @param string $id The message id + * @param string $domain The domain name + */ + public function defines(string $id, string $domain = 'messages'): bool; + + /** + * Gets a message translation. + * + * @param string $id The message id + * @param string $domain The domain name + */ + public function get(string $id, string $domain = 'messages'): string; + + /** + * Sets translations for a given domain. + * + * @param array $messages An array of translations + * @param string $domain The domain name + * + * @return void + */ + public function replace(array $messages, string $domain = 'messages'); + + /** + * Adds translations for a given domain. + * + * @param array $messages An array of translations + * @param string $domain The domain name + * + * @return void + */ + public function add(array $messages, string $domain = 'messages'); + + /** + * Merges translations from the given Catalogue into the current one. + * + * The two catalogues must have the same locale. + * + * @return void + */ + public function addCatalogue(self $catalogue); + + /** + * Merges translations from the given Catalogue into the current one + * only when the translation does not exist. + * + * This is used to provide default translations when they do not exist for the current locale. + * + * @return void + */ + public function addFallbackCatalogue(self $catalogue); + + /** + * Gets the fallback catalogue. + */ + public function getFallbackCatalogue(): ?self; + + /** + * Returns an array of resources loaded to build this collection. + * + * @return ResourceInterface[] + */ + public function getResources(): array; + + /** + * Adds a resource for this collection. + * + * @return void + */ + public function addResource(ResourceInterface $resource); +} diff --git a/vendor/symfony/translation/MetadataAwareInterface.php b/vendor/symfony/translation/MetadataAwareInterface.php new file mode 100644 index 000000000..39e5326c3 --- /dev/null +++ b/vendor/symfony/translation/MetadataAwareInterface.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +/** + * This interface is used to get, set, and delete metadata about the translation messages. + * + * @author Fabien Potencier + */ +interface MetadataAwareInterface +{ + /** + * Gets metadata for the given domain and key. + * + * Passing an empty domain will return an array with all metadata indexed by + * domain and then by key. Passing an empty key will return an array with all + * metadata for the given domain. + * + * @return mixed The value that was set or an array with the domains/keys or null + */ + public function getMetadata(string $key = '', string $domain = 'messages'): mixed; + + /** + * Adds metadata to a message domain. + * + * @return void + */ + public function setMetadata(string $key, mixed $value, string $domain = 'messages'); + + /** + * Deletes metadata for the given key and domain. + * + * Passing an empty domain will delete all metadata. Passing an empty key will + * delete all metadata for the given domain. + * + * @return void + */ + public function deleteMetadata(string $key = '', string $domain = 'messages'); +} diff --git a/vendor/symfony/translation/Provider/AbstractProviderFactory.php b/vendor/symfony/translation/Provider/AbstractProviderFactory.php new file mode 100644 index 000000000..f0c11d85d --- /dev/null +++ b/vendor/symfony/translation/Provider/AbstractProviderFactory.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\Exception\IncompleteDsnException; + +abstract class AbstractProviderFactory implements ProviderFactoryInterface +{ + public function supports(Dsn $dsn): bool + { + return \in_array($dsn->getScheme(), $this->getSupportedSchemes(), true); + } + + /** + * @return string[] + */ + abstract protected function getSupportedSchemes(): array; + + protected function getUser(Dsn $dsn): string + { + return $dsn->getUser() ?? throw new IncompleteDsnException('User is not set.', $dsn->getScheme().'://'.$dsn->getHost()); + } + + protected function getPassword(Dsn $dsn): string + { + return $dsn->getPassword() ?? throw new IncompleteDsnException('Password is not set.', $dsn->getOriginalDsn()); + } +} diff --git a/vendor/symfony/translation/Provider/Dsn.php b/vendor/symfony/translation/Provider/Dsn.php new file mode 100644 index 000000000..af75cb3ae --- /dev/null +++ b/vendor/symfony/translation/Provider/Dsn.php @@ -0,0 +1,110 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\Exception\MissingRequiredOptionException; + +/** + * @author Fabien Potencier + * @author Oskar Stark + */ +final class Dsn +{ + private ?string $scheme; + private ?string $host; + private ?string $user; + private ?string $password; + private ?int $port; + private ?string $path; + private array $options = []; + private string $originalDsn; + + public function __construct(#[\SensitiveParameter] string $dsn) + { + $this->originalDsn = $dsn; + + if (false === $parsedDsn = parse_url($dsn)) { + throw new InvalidArgumentException('The translation provider DSN is invalid.'); + } + + if (!isset($parsedDsn['scheme'])) { + throw new InvalidArgumentException('The translation provider DSN must contain a scheme.'); + } + $this->scheme = $parsedDsn['scheme']; + + if (!isset($parsedDsn['host'])) { + throw new InvalidArgumentException('The translation provider DSN must contain a host (use "default" by default).'); + } + $this->host = $parsedDsn['host']; + + $this->user = '' !== ($parsedDsn['user'] ?? '') ? urldecode($parsedDsn['user']) : null; + $this->password = '' !== ($parsedDsn['pass'] ?? '') ? urldecode($parsedDsn['pass']) : null; + $this->port = $parsedDsn['port'] ?? null; + $this->path = $parsedDsn['path'] ?? null; + parse_str($parsedDsn['query'] ?? '', $this->options); + } + + public function getScheme(): string + { + return $this->scheme; + } + + public function getHost(): string + { + return $this->host; + } + + public function getUser(): ?string + { + return $this->user; + } + + public function getPassword(): ?string + { + return $this->password; + } + + public function getPort(int $default = null): ?int + { + return $this->port ?? $default; + } + + public function getOption(string $key, mixed $default = null): mixed + { + return $this->options[$key] ?? $default; + } + + public function getRequiredOption(string $key): mixed + { + if (!\array_key_exists($key, $this->options) || '' === trim($this->options[$key])) { + throw new MissingRequiredOptionException($key); + } + + return $this->options[$key]; + } + + public function getOptions(): array + { + return $this->options; + } + + public function getPath(): ?string + { + return $this->path; + } + + public function getOriginalDsn(): string + { + return $this->originalDsn; + } +} diff --git a/vendor/symfony/translation/Provider/FilteringProvider.php b/vendor/symfony/translation/Provider/FilteringProvider.php new file mode 100644 index 000000000..d4465b9fd --- /dev/null +++ b/vendor/symfony/translation/Provider/FilteringProvider.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\TranslatorBag; +use Symfony\Component\Translation\TranslatorBagInterface; + +/** + * Filters domains and locales between the Translator config values and those specific to each provider. + * + * @author Mathieu Santostefano + */ +class FilteringProvider implements ProviderInterface +{ + private ProviderInterface $provider; + private array $locales; + private array $domains; + + public function __construct(ProviderInterface $provider, array $locales, array $domains = []) + { + $this->provider = $provider; + $this->locales = $locales; + $this->domains = $domains; + } + + public function __toString(): string + { + return (string) $this->provider; + } + + public function write(TranslatorBagInterface $translatorBag): void + { + $this->provider->write($translatorBag); + } + + public function read(array $domains, array $locales): TranslatorBag + { + $domains = !$this->domains ? $domains : array_intersect($this->domains, $domains); + $locales = array_intersect($this->locales, $locales); + + return $this->provider->read($domains, $locales); + } + + public function delete(TranslatorBagInterface $translatorBag): void + { + $this->provider->delete($translatorBag); + } + + public function getDomains(): array + { + return $this->domains; + } +} diff --git a/vendor/symfony/translation/Provider/NullProvider.php b/vendor/symfony/translation/Provider/NullProvider.php new file mode 100644 index 000000000..f00392ea0 --- /dev/null +++ b/vendor/symfony/translation/Provider/NullProvider.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\TranslatorBag; +use Symfony\Component\Translation\TranslatorBagInterface; + +/** + * @author Mathieu Santostefano + */ +class NullProvider implements ProviderInterface +{ + public function __toString(): string + { + return 'null'; + } + + public function write(TranslatorBagInterface $translatorBag, bool $override = false): void + { + } + + public function read(array $domains, array $locales): TranslatorBag + { + return new TranslatorBag(); + } + + public function delete(TranslatorBagInterface $translatorBag): void + { + } +} diff --git a/vendor/symfony/translation/Provider/NullProviderFactory.php b/vendor/symfony/translation/Provider/NullProviderFactory.php new file mode 100644 index 000000000..f350f1602 --- /dev/null +++ b/vendor/symfony/translation/Provider/NullProviderFactory.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\Exception\UnsupportedSchemeException; + +/** + * @author Mathieu Santostefano + */ +final class NullProviderFactory extends AbstractProviderFactory +{ + public function create(Dsn $dsn): ProviderInterface + { + if ('null' === $dsn->getScheme()) { + return new NullProvider(); + } + + throw new UnsupportedSchemeException($dsn, 'null', $this->getSupportedSchemes()); + } + + protected function getSupportedSchemes(): array + { + return ['null']; + } +} diff --git a/vendor/symfony/translation/Provider/ProviderFactoryInterface.php b/vendor/symfony/translation/Provider/ProviderFactoryInterface.php new file mode 100644 index 000000000..3fd4494b4 --- /dev/null +++ b/vendor/symfony/translation/Provider/ProviderFactoryInterface.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\Exception\IncompleteDsnException; +use Symfony\Component\Translation\Exception\UnsupportedSchemeException; + +interface ProviderFactoryInterface +{ + /** + * @throws UnsupportedSchemeException + * @throws IncompleteDsnException + */ + public function create(Dsn $dsn): ProviderInterface; + + public function supports(Dsn $dsn): bool; +} diff --git a/vendor/symfony/translation/Provider/ProviderInterface.php b/vendor/symfony/translation/Provider/ProviderInterface.php new file mode 100644 index 000000000..a32193f29 --- /dev/null +++ b/vendor/symfony/translation/Provider/ProviderInterface.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\TranslatorBag; +use Symfony\Component\Translation\TranslatorBagInterface; + +interface ProviderInterface +{ + public function __toString(): string; + + /** + * Translations available in the TranslatorBag only must be created. + * Translations available in both the TranslatorBag and on the provider + * must be overwritten. + * Translations available on the provider only must be kept. + */ + public function write(TranslatorBagInterface $translatorBag): void; + + public function read(array $domains, array $locales): TranslatorBag; + + public function delete(TranslatorBagInterface $translatorBag): void; +} diff --git a/vendor/symfony/translation/Provider/TranslationProviderCollection.php b/vendor/symfony/translation/Provider/TranslationProviderCollection.php new file mode 100644 index 000000000..61ac641cd --- /dev/null +++ b/vendor/symfony/translation/Provider/TranslationProviderCollection.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; + +/** + * @author Mathieu Santostefano + */ +final class TranslationProviderCollection +{ + /** + * @var array + */ + private $providers; + + /** + * @param array $providers + */ + public function __construct(iterable $providers) + { + $this->providers = \is_array($providers) ? $providers : iterator_to_array($providers); + } + + public function __toString(): string + { + return '['.implode(',', array_keys($this->providers)).']'; + } + + public function has(string $name): bool + { + return isset($this->providers[$name]); + } + + public function get(string $name): ProviderInterface + { + if (!$this->has($name)) { + throw new InvalidArgumentException(sprintf('Provider "%s" not found. Available: "%s".', $name, (string) $this)); + } + + return $this->providers[$name]; + } + + public function keys(): array + { + return array_keys($this->providers); + } +} diff --git a/vendor/symfony/translation/Provider/TranslationProviderCollectionFactory.php b/vendor/symfony/translation/Provider/TranslationProviderCollectionFactory.php new file mode 100644 index 000000000..6300c8750 --- /dev/null +++ b/vendor/symfony/translation/Provider/TranslationProviderCollectionFactory.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Provider; + +use Symfony\Component\Translation\Exception\UnsupportedSchemeException; + +/** + * @author Mathieu Santostefano + */ +class TranslationProviderCollectionFactory +{ + private iterable $factories; + private array $enabledLocales; + + /** + * @param iterable $factories + */ + public function __construct(iterable $factories, array $enabledLocales) + { + $this->factories = $factories; + $this->enabledLocales = $enabledLocales; + } + + public function fromConfig(array $config): TranslationProviderCollection + { + $providers = []; + foreach ($config as $name => $currentConfig) { + $providers[$name] = $this->fromDsnObject( + new Dsn($currentConfig['dsn']), + !$currentConfig['locales'] ? $this->enabledLocales : $currentConfig['locales'], + !$currentConfig['domains'] ? [] : $currentConfig['domains'] + ); + } + + return new TranslationProviderCollection($providers); + } + + public function fromDsnObject(Dsn $dsn, array $locales, array $domains = []): ProviderInterface + { + foreach ($this->factories as $factory) { + if ($factory->supports($dsn)) { + return new FilteringProvider($factory->create($dsn), $locales, $domains); + } + } + + throw new UnsupportedSchemeException($dsn); + } +} diff --git a/vendor/symfony/translation/PseudoLocalizationTranslator.php b/vendor/symfony/translation/PseudoLocalizationTranslator.php new file mode 100644 index 000000000..0207e9997 --- /dev/null +++ b/vendor/symfony/translation/PseudoLocalizationTranslator.php @@ -0,0 +1,365 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Contracts\Translation\TranslatorInterface; + +/** + * This translator should only be used in a development environment. + */ +final class PseudoLocalizationTranslator implements TranslatorInterface +{ + private const EXPANSION_CHARACTER = '~'; + + private TranslatorInterface $translator; + private bool $accents; + private float $expansionFactor; + private bool $brackets; + private bool $parseHTML; + + /** + * @var string[] + */ + private array $localizableHTMLAttributes; + + /** + * Available options: + * * accents: + * type: boolean + * default: true + * description: replace ASCII characters of the translated string with accented versions or similar characters + * example: if true, "foo" => "ƒöö". + * + * * expansion_factor: + * type: float + * default: 1 + * validation: it must be greater than or equal to 1 + * description: expand the translated string by the given factor with spaces and tildes + * example: if 2, "foo" => "~foo ~" + * + * * brackets: + * type: boolean + * default: true + * description: wrap the translated string with brackets + * example: if true, "foo" => "[foo]" + * + * * parse_html: + * type: boolean + * default: false + * description: parse the translated string as HTML - looking for HTML tags has a performance impact but allows to preserve them from alterations - it also allows to compute the visible translated string length which is useful to correctly expand ot when it contains HTML + * warning: unclosed tags are unsupported, they will be fixed (closed) by the parser - eg, "foo
bar" => "foo
bar
" + * + * * localizable_html_attributes: + * type: string[] + * default: [] + * description: the list of HTML attributes whose values can be altered - it is only useful when the "parse_html" option is set to true + * example: if ["title"], and with the "accents" option set to true, "Profile" => "Þŕöƒîļé" - if "title" was not in the "localizable_html_attributes" list, the title attribute data would be left unchanged. + */ + public function __construct(TranslatorInterface $translator, array $options = []) + { + $this->translator = $translator; + $this->accents = $options['accents'] ?? true; + + if (1.0 > ($this->expansionFactor = $options['expansion_factor'] ?? 1.0)) { + throw new \InvalidArgumentException('The expansion factor must be greater than or equal to 1.'); + } + + $this->brackets = $options['brackets'] ?? true; + + $this->parseHTML = $options['parse_html'] ?? false; + if ($this->parseHTML && !$this->accents && 1.0 === $this->expansionFactor) { + $this->parseHTML = false; + } + + $this->localizableHTMLAttributes = $options['localizable_html_attributes'] ?? []; + } + + public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null): string + { + $trans = ''; + $visibleText = ''; + + foreach ($this->getParts($this->translator->trans($id, $parameters, $domain, $locale)) as [$visible, $localizable, $text]) { + if ($visible) { + $visibleText .= $text; + } + + if (!$localizable) { + $trans .= $text; + + continue; + } + + $this->addAccents($trans, $text); + } + + $this->expand($trans, $visibleText); + + $this->addBrackets($trans); + + return $trans; + } + + public function getLocale(): string + { + return $this->translator->getLocale(); + } + + private function getParts(string $originalTrans): array + { + if (!$this->parseHTML) { + return [[true, true, $originalTrans]]; + } + + $html = mb_encode_numericentity($originalTrans, [0x80, 0xFFFF, 0, 0xFFFF], mb_detect_encoding($originalTrans, null, true) ?: 'UTF-8'); + + $useInternalErrors = libxml_use_internal_errors(true); + + $dom = new \DOMDocument(); + $dom->loadHTML(''.$html.''); + + libxml_clear_errors(); + libxml_use_internal_errors($useInternalErrors); + + return $this->parseNode($dom->childNodes->item(1)->childNodes->item(0)->childNodes->item(0)); + } + + private function parseNode(\DOMNode $node): array + { + $parts = []; + + foreach ($node->childNodes as $childNode) { + if (!$childNode instanceof \DOMElement) { + $parts[] = [true, true, $childNode->nodeValue]; + + continue; + } + + $parts[] = [false, false, '<'.$childNode->tagName]; + + /** @var \DOMAttr $attribute */ + foreach ($childNode->attributes as $attribute) { + $parts[] = [false, false, ' '.$attribute->nodeName.'="']; + + $localizableAttribute = \in_array($attribute->nodeName, $this->localizableHTMLAttributes, true); + foreach (preg_split('/(&(?:amp|quot|#039|lt|gt);+)/', htmlspecialchars($attribute->nodeValue, \ENT_QUOTES, 'UTF-8'), -1, \PREG_SPLIT_DELIM_CAPTURE) as $i => $match) { + if ('' === $match) { + continue; + } + + $parts[] = [false, $localizableAttribute && 0 === $i % 2, $match]; + } + + $parts[] = [false, false, '"']; + } + + $parts[] = [false, false, '>']; + + $parts = array_merge($parts, $this->parseNode($childNode, $parts)); + + $parts[] = [false, false, 'tagName.'>']; + } + + return $parts; + } + + private function addAccents(string &$trans, string $text): void + { + $trans .= $this->accents ? strtr($text, [ + ' ' => ' ', + '!' => '¡', + '"' => '″', + '#' => '♯', + '$' => '€', + '%' => '‰', + '&' => '⅋', + '\'' => '´', + '(' => '{', + ')' => '}', + '*' => '⁎', + '+' => '⁺', + ',' => '،', + '-' => '‐', + '.' => '·', + '/' => '⁄', + '0' => '⓪', + '1' => '①', + '2' => '②', + '3' => '③', + '4' => '④', + '5' => '⑤', + '6' => '⑥', + '7' => '⑦', + '8' => '⑧', + '9' => '⑨', + ':' => '∶', + ';' => '⁏', + '<' => '≤', + '=' => '≂', + '>' => '≥', + '?' => '¿', + '@' => '՞', + 'A' => 'Å', + 'B' => 'Ɓ', + 'C' => 'Ç', + 'D' => 'Ð', + 'E' => 'É', + 'F' => 'Ƒ', + 'G' => 'Ĝ', + 'H' => 'Ĥ', + 'I' => 'Î', + 'J' => 'Ĵ', + 'K' => 'Ķ', + 'L' => 'Ļ', + 'M' => 'Ṁ', + 'N' => 'Ñ', + 'O' => 'Ö', + 'P' => 'Þ', + 'Q' => 'Ǫ', + 'R' => 'Ŕ', + 'S' => 'Š', + 'T' => 'Ţ', + 'U' => 'Û', + 'V' => 'Ṽ', + 'W' => 'Ŵ', + 'X' => 'Ẋ', + 'Y' => 'Ý', + 'Z' => 'Ž', + '[' => '⁅', + '\\' => '∖', + ']' => '⁆', + '^' => '˄', + '_' => '‿', + '`' => '‵', + 'a' => 'å', + 'b' => 'ƀ', + 'c' => 'ç', + 'd' => 'ð', + 'e' => 'é', + 'f' => 'ƒ', + 'g' => 'ĝ', + 'h' => 'ĥ', + 'i' => 'î', + 'j' => 'ĵ', + 'k' => 'ķ', + 'l' => 'ļ', + 'm' => 'ɱ', + 'n' => 'ñ', + 'o' => 'ö', + 'p' => 'þ', + 'q' => 'ǫ', + 'r' => 'ŕ', + 's' => 'š', + 't' => 'ţ', + 'u' => 'û', + 'v' => 'ṽ', + 'w' => 'ŵ', + 'x' => 'ẋ', + 'y' => 'ý', + 'z' => 'ž', + '{' => '(', + '|' => '¦', + '}' => ')', + '~' => '˞', + ]) : $text; + } + + private function expand(string &$trans, string $visibleText): void + { + if (1.0 >= $this->expansionFactor) { + return; + } + + $visibleLength = $this->strlen($visibleText); + $missingLength = (int) ceil($visibleLength * $this->expansionFactor) - $visibleLength; + if ($this->brackets) { + $missingLength -= 2; + } + + if (0 >= $missingLength) { + return; + } + + $words = []; + $wordsCount = 0; + foreach (preg_split('/ +/', $visibleText, -1, \PREG_SPLIT_NO_EMPTY) as $word) { + $wordLength = $this->strlen($word); + + if ($wordLength >= $missingLength) { + continue; + } + + if (!isset($words[$wordLength])) { + $words[$wordLength] = 0; + } + + ++$words[$wordLength]; + ++$wordsCount; + } + + if (!$words) { + $trans .= 1 === $missingLength ? self::EXPANSION_CHARACTER : ' '.str_repeat(self::EXPANSION_CHARACTER, $missingLength - 1); + + return; + } + + arsort($words, \SORT_NUMERIC); + + $longestWordLength = max(array_keys($words)); + + while (true) { + $r = mt_rand(1, $wordsCount); + + foreach ($words as $length => $count) { + $r -= $count; + if ($r <= 0) { + break; + } + } + + $trans .= ' '.str_repeat(self::EXPANSION_CHARACTER, $length); + + $missingLength -= $length + 1; + + if (0 === $missingLength) { + return; + } + + while ($longestWordLength >= $missingLength) { + $wordsCount -= $words[$longestWordLength]; + unset($words[$longestWordLength]); + + if (!$words) { + $trans .= 1 === $missingLength ? self::EXPANSION_CHARACTER : ' '.str_repeat(self::EXPANSION_CHARACTER, $missingLength - 1); + + return; + } + + $longestWordLength = max(array_keys($words)); + } + } + } + + private function addBrackets(string &$trans): void + { + if (!$this->brackets) { + return; + } + + $trans = '['.$trans.']'; + } + + private function strlen(string $s): int + { + return false === ($encoding = mb_detect_encoding($s, null, true)) ? \strlen($s) : mb_strlen($s, $encoding); + } +} diff --git a/vendor/symfony/translation/README.md b/vendor/symfony/translation/README.md new file mode 100644 index 000000000..8c981a60e --- /dev/null +++ b/vendor/symfony/translation/README.md @@ -0,0 +1,46 @@ +Translation Component +===================== + +The Translation component provides tools to internationalize your application. + +Getting Started +--------------- + +``` +$ composer require symfony/translation +``` + +```php +use Symfony\Component\Translation\Translator; +use Symfony\Component\Translation\Loader\ArrayLoader; + +$translator = new Translator('fr_FR'); +$translator->addLoader('array', new ArrayLoader()); +$translator->addResource('array', [ + 'Hello World!' => 'Bonjour !', +], 'fr_FR'); + +echo $translator->trans('Hello World!'); // outputs « Bonjour ! » +``` + +Sponsor +------- + +The Translation component for Symfony 6.3 is [backed][1] by: + + * [Crowdin][2], a cloud-based localization management software helping teams to go global and stay agile. + +Help Symfony by [sponsoring][3] its development! + +Resources +--------- + + * [Documentation](https://symfony.com/doc/current/translation.html) + * [Contributing](https://symfony.com/doc/current/contributing/index.html) + * [Report issues](https://github.com/symfony/symfony/issues) and + [send Pull Requests](https://github.com/symfony/symfony/pulls) + in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[2]: https://crowdin.com +[3]: https://symfony.com/sponsor diff --git a/vendor/symfony/translation/Reader/TranslationReader.php b/vendor/symfony/translation/Reader/TranslationReader.php new file mode 100644 index 000000000..01408d4dc --- /dev/null +++ b/vendor/symfony/translation/Reader/TranslationReader.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Reader; + +use Symfony\Component\Finder\Finder; +use Symfony\Component\Translation\Loader\LoaderInterface; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * TranslationReader reads translation messages from translation files. + * + * @author Michel Salib + */ +class TranslationReader implements TranslationReaderInterface +{ + /** + * Loaders used for import. + * + * @var array + */ + private array $loaders = []; + + /** + * Adds a loader to the translation extractor. + * + * @param string $format The format of the loader + * + * @return void + */ + public function addLoader(string $format, LoaderInterface $loader) + { + $this->loaders[$format] = $loader; + } + + /** + * @return void + */ + public function read(string $directory, MessageCatalogue $catalogue) + { + if (!is_dir($directory)) { + return; + } + + foreach ($this->loaders as $format => $loader) { + // load any existing translation files + $finder = new Finder(); + $extension = $catalogue->getLocale().'.'.$format; + $files = $finder->files()->name('*.'.$extension)->in($directory); + foreach ($files as $file) { + $domain = substr($file->getFilename(), 0, -1 * \strlen($extension) - 1); + $catalogue->addCatalogue($loader->load($file->getPathname(), $catalogue->getLocale(), $domain)); + } + } + } +} diff --git a/vendor/symfony/translation/Reader/TranslationReaderInterface.php b/vendor/symfony/translation/Reader/TranslationReaderInterface.php new file mode 100644 index 000000000..ea74dc23f --- /dev/null +++ b/vendor/symfony/translation/Reader/TranslationReaderInterface.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Reader; + +use Symfony\Component\Translation\MessageCatalogue; + +/** + * TranslationReader reads translation messages from translation files. + * + * @author Tobias Nyholm + */ +interface TranslationReaderInterface +{ + /** + * Reads translation messages from a directory to the catalogue. + * + * @return void + */ + public function read(string $directory, MessageCatalogue $catalogue); +} diff --git a/vendor/symfony/translation/Resources/bin/translation-status.php b/vendor/symfony/translation/Resources/bin/translation-status.php new file mode 100644 index 000000000..8064190d8 --- /dev/null +++ b/vendor/symfony/translation/Resources/bin/translation-status.php @@ -0,0 +1,274 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if ('cli' !== \PHP_SAPI) { + throw new Exception('This script must be run from the command line.'); +} + +$usageInstructions = << false, + // NULL = analyze all locales + 'locale_to_analyze' => null, + // append --incomplete to only show incomplete languages + 'include_completed_languages' => true, + // the reference files all the other translations are compared to + 'original_files' => [ + 'src/Symfony/Component/Form/Resources/translations/validators.en.xlf', + 'src/Symfony/Component/Security/Core/Resources/translations/security.en.xlf', + 'src/Symfony/Component/Validator/Resources/translations/validators.en.xlf', + ], +]; + +$argc = $_SERVER['argc']; +$argv = $_SERVER['argv']; + +if ($argc > 4) { + echo str_replace('translation-status.php', $argv[0], $usageInstructions); + exit(1); +} + +foreach (array_slice($argv, 1) as $argumentOrOption) { + if ('--incomplete' === $argumentOrOption) { + $config['include_completed_languages'] = false; + continue; + } + + if (str_starts_with($argumentOrOption, '-')) { + $config['verbose_output'] = true; + } else { + $config['locale_to_analyze'] = $argumentOrOption; + } +} + +foreach ($config['original_files'] as $originalFilePath) { + if (!file_exists($originalFilePath)) { + echo sprintf('The following file does not exist. Make sure that you execute this command at the root dir of the Symfony code repository.%s %s', \PHP_EOL, $originalFilePath); + exit(1); + } +} + +$totalMissingTranslations = 0; +$totalTranslationMismatches = 0; + +foreach ($config['original_files'] as $originalFilePath) { + $translationFilePaths = findTranslationFiles($originalFilePath, $config['locale_to_analyze']); + $translationStatus = calculateTranslationStatus($originalFilePath, $translationFilePaths); + + $totalMissingTranslations += array_sum(array_map(fn ($translation) => count($translation['missingKeys']), array_values($translationStatus))); + $totalTranslationMismatches += array_sum(array_map(fn ($translation) => count($translation['mismatches']), array_values($translationStatus))); + + printTranslationStatus($originalFilePath, $translationStatus, $config['verbose_output'], $config['include_completed_languages']); +} + +exit($totalTranslationMismatches > 0 ? 1 : 0); + +function findTranslationFiles($originalFilePath, $localeToAnalyze): array +{ + $translations = []; + + $translationsDir = dirname($originalFilePath); + $originalFileName = basename($originalFilePath); + $translationFileNamePattern = str_replace('.en.', '.*.', $originalFileName); + + $translationFiles = glob($translationsDir.'/'.$translationFileNamePattern, \GLOB_NOSORT); + sort($translationFiles); + foreach ($translationFiles as $filePath) { + $locale = extractLocaleFromFilePath($filePath); + + if (null !== $localeToAnalyze && $locale !== $localeToAnalyze) { + continue; + } + + $translations[$locale] = $filePath; + } + + return $translations; +} + +function calculateTranslationStatus($originalFilePath, $translationFilePaths): array +{ + $translationStatus = []; + $allTranslationKeys = extractTranslationKeys($originalFilePath); + + foreach ($translationFilePaths as $locale => $translationPath) { + $translatedKeys = extractTranslationKeys($translationPath); + $missingKeys = array_diff_key($allTranslationKeys, $translatedKeys); + $mismatches = findTransUnitMismatches($allTranslationKeys, $translatedKeys); + + $translationStatus[$locale] = [ + 'total' => count($allTranslationKeys), + 'translated' => count($translatedKeys), + 'missingKeys' => $missingKeys, + 'mismatches' => $mismatches, + ]; + $translationStatus[$locale]['is_completed'] = isTranslationCompleted($translationStatus[$locale]); + } + + return $translationStatus; +} + +function isTranslationCompleted(array $translationStatus): bool +{ + return $translationStatus['total'] === $translationStatus['translated'] && 0 === count($translationStatus['mismatches']); +} + +function printTranslationStatus($originalFilePath, $translationStatus, $verboseOutput, $includeCompletedLanguages) +{ + printTitle($originalFilePath); + printTable($translationStatus, $verboseOutput, $includeCompletedLanguages); + echo \PHP_EOL.\PHP_EOL; +} + +function extractLocaleFromFilePath($filePath) +{ + $parts = explode('.', $filePath); + + return $parts[count($parts) - 2]; +} + +function extractTranslationKeys($filePath): array +{ + $translationKeys = []; + $contents = new \SimpleXMLElement(file_get_contents($filePath)); + + foreach ($contents->file->body->{'trans-unit'} as $translationKey) { + $translationId = (string) $translationKey['id']; + $translationKey = (string) $translationKey->source; + + $translationKeys[$translationId] = $translationKey; + } + + return $translationKeys; +} + +/** + * Check whether the trans-unit id and source match with the base translation. + */ +function findTransUnitMismatches(array $baseTranslationKeys, array $translatedKeys): array +{ + $mismatches = []; + + foreach ($baseTranslationKeys as $translationId => $translationKey) { + if (!isset($translatedKeys[$translationId])) { + continue; + } + if ($translatedKeys[$translationId] !== $translationKey) { + $mismatches[$translationId] = [ + 'found' => $translatedKeys[$translationId], + 'expected' => $translationKey, + ]; + } + } + + return $mismatches; +} + +function printTitle($title) +{ + echo $title.\PHP_EOL; + echo str_repeat('=', strlen($title)).\PHP_EOL.\PHP_EOL; +} + +function printTable($translations, $verboseOutput, bool $includeCompletedLanguages) +{ + if (0 === count($translations)) { + echo 'No translations found'; + + return; + } + $longestLocaleNameLength = max(array_map('strlen', array_keys($translations))); + + foreach ($translations as $locale => $translation) { + if (!$includeCompletedLanguages && $translation['is_completed']) { + continue; + } + + if ($translation['translated'] > $translation['total']) { + textColorRed(); + } elseif (count($translation['mismatches']) > 0) { + textColorRed(); + } elseif ($translation['is_completed']) { + textColorGreen(); + } + + echo sprintf( + '| Locale: %-'.$longestLocaleNameLength.'s | Translated: %2d/%2d | Mismatches: %d |', + $locale, + $translation['translated'], + $translation['total'], + count($translation['mismatches']) + ).\PHP_EOL; + + textColorNormal(); + + $shouldBeClosed = false; + if (true === $verboseOutput && count($translation['missingKeys']) > 0) { + echo '| Missing Translations:'.\PHP_EOL; + + foreach ($translation['missingKeys'] as $id => $content) { + echo sprintf('| (id=%s) %s', $id, $content).\PHP_EOL; + } + $shouldBeClosed = true; + } + if (true === $verboseOutput && count($translation['mismatches']) > 0) { + echo '| Mismatches between trans-unit id and source:'.\PHP_EOL; + + foreach ($translation['mismatches'] as $id => $content) { + echo sprintf('| (id=%s) Expected: %s', $id, $content['expected']).\PHP_EOL; + echo sprintf('| Found: %s', $content['found']).\PHP_EOL; + } + $shouldBeClosed = true; + } + if ($shouldBeClosed) { + echo str_repeat('-', 80).\PHP_EOL; + } + } +} + +function textColorGreen() +{ + echo "\033[32m"; +} + +function textColorRed() +{ + echo "\033[31m"; +} + +function textColorNormal() +{ + echo "\033[0m"; +} diff --git a/vendor/symfony/translation/Resources/data/parents.json b/vendor/symfony/translation/Resources/data/parents.json new file mode 100644 index 000000000..32a33cdaf --- /dev/null +++ b/vendor/symfony/translation/Resources/data/parents.json @@ -0,0 +1,141 @@ +{ + "az_Cyrl": "root", + "bs_Cyrl": "root", + "en_150": "en_001", + "en_AG": "en_001", + "en_AI": "en_001", + "en_AT": "en_150", + "en_AU": "en_001", + "en_BB": "en_001", + "en_BE": "en_150", + "en_BM": "en_001", + "en_BS": "en_001", + "en_BW": "en_001", + "en_BZ": "en_001", + "en_CC": "en_001", + "en_CH": "en_150", + "en_CK": "en_001", + "en_CM": "en_001", + "en_CX": "en_001", + "en_CY": "en_001", + "en_DE": "en_150", + "en_DG": "en_001", + "en_DK": "en_150", + "en_DM": "en_001", + "en_ER": "en_001", + "en_FI": "en_150", + "en_FJ": "en_001", + "en_FK": "en_001", + "en_FM": "en_001", + "en_GB": "en_001", + "en_GD": "en_001", + "en_GG": "en_001", + "en_GH": "en_001", + "en_GI": "en_001", + "en_GM": "en_001", + "en_GY": "en_001", + "en_HK": "en_001", + "en_IE": "en_001", + "en_IL": "en_001", + "en_IM": "en_001", + "en_IN": "en_001", + "en_IO": "en_001", + "en_JE": "en_001", + "en_JM": "en_001", + "en_KE": "en_001", + "en_KI": "en_001", + "en_KN": "en_001", + "en_KY": "en_001", + "en_LC": "en_001", + "en_LR": "en_001", + "en_LS": "en_001", + "en_MG": "en_001", + "en_MO": "en_001", + "en_MS": "en_001", + "en_MT": "en_001", + "en_MU": "en_001", + "en_MV": "en_001", + "en_MW": "en_001", + "en_MY": "en_001", + "en_NA": "en_001", + "en_NF": "en_001", + "en_NG": "en_001", + "en_NL": "en_150", + "en_NR": "en_001", + "en_NU": "en_001", + "en_NZ": "en_001", + "en_PG": "en_001", + "en_PK": "en_001", + "en_PN": "en_001", + "en_PW": "en_001", + "en_RW": "en_001", + "en_SB": "en_001", + "en_SC": "en_001", + "en_SD": "en_001", + "en_SE": "en_150", + "en_SG": "en_001", + "en_SH": "en_001", + "en_SI": "en_150", + "en_SL": "en_001", + "en_SS": "en_001", + "en_SX": "en_001", + "en_SZ": "en_001", + "en_TC": "en_001", + "en_TK": "en_001", + "en_TO": "en_001", + "en_TT": "en_001", + "en_TV": "en_001", + "en_TZ": "en_001", + "en_UG": "en_001", + "en_VC": "en_001", + "en_VG": "en_001", + "en_VU": "en_001", + "en_WS": "en_001", + "en_ZA": "en_001", + "en_ZM": "en_001", + "en_ZW": "en_001", + "es_AR": "es_419", + "es_BO": "es_419", + "es_BR": "es_419", + "es_BZ": "es_419", + "es_CL": "es_419", + "es_CO": "es_419", + "es_CR": "es_419", + "es_CU": "es_419", + "es_DO": "es_419", + "es_EC": "es_419", + "es_GT": "es_419", + "es_HN": "es_419", + "es_MX": "es_419", + "es_NI": "es_419", + "es_PA": "es_419", + "es_PE": "es_419", + "es_PR": "es_419", + "es_PY": "es_419", + "es_SV": "es_419", + "es_US": "es_419", + "es_UY": "es_419", + "es_VE": "es_419", + "ff_Adlm": "root", + "hi_Latn": "en_IN", + "ks_Deva": "root", + "nb": "no", + "nn": "no", + "pa_Arab": "root", + "pt_AO": "pt_PT", + "pt_CH": "pt_PT", + "pt_CV": "pt_PT", + "pt_GQ": "pt_PT", + "pt_GW": "pt_PT", + "pt_LU": "pt_PT", + "pt_MO": "pt_PT", + "pt_MZ": "pt_PT", + "pt_ST": "pt_PT", + "pt_TL": "pt_PT", + "sd_Deva": "root", + "sr_Latn": "root", + "uz_Arab": "root", + "uz_Cyrl": "root", + "zh_Hant": "root", + "zh_Hant_MO": "zh_Hant_HK" +} diff --git a/vendor/symfony/translation/Resources/functions.php b/vendor/symfony/translation/Resources/functions.php new file mode 100644 index 000000000..901d2f87e --- /dev/null +++ b/vendor/symfony/translation/Resources/functions.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +if (!\function_exists(t::class)) { + /** + * @author Nate Wiebe + */ + function t(string $message, array $parameters = [], string $domain = null): TranslatableMessage + { + return new TranslatableMessage($message, $parameters, $domain); + } +} diff --git a/vendor/symfony/translation/Resources/schemas/xliff-core-1.2-transitional.xsd b/vendor/symfony/translation/Resources/schemas/xliff-core-1.2-transitional.xsd new file mode 100644 index 000000000..1f38de72f --- /dev/null +++ b/vendor/symfony/translation/Resources/schemas/xliff-core-1.2-transitional.xsd @@ -0,0 +1,2261 @@ + + + + + + + + + + + + + + Values for the attribute 'context-type'. + + + + + Indicates a database content. + + + + + Indicates the content of an element within an XML document. + + + + + Indicates the name of an element within an XML document. + + + + + Indicates the line number from the sourcefile (see context-type="sourcefile") where the <source> is found. + + + + + Indicates a the number of parameters contained within the <source>. + + + + + Indicates notes pertaining to the parameters in the <source>. + + + + + Indicates the content of a record within a database. + + + + + Indicates the name of a record within a database. + + + + + Indicates the original source file in the case that multiple files are merged to form the original file from which the XLIFF file is created. This differs from the original <file> attribute in that this sourcefile is one of many that make up that file. + + + + + + + Values for the attribute 'count-type'. + + + + + Indicates the count units are items that are used X times in a certain context; example: this is a reusable text unit which is used 42 times in other texts. + + + + + Indicates the count units are translation units existing already in the same document. + + + + + Indicates a total count. + + + + + + + Values for the attribute 'ctype' when used other elements than <ph> or <x>. + + + + + Indicates a run of bolded text. + + + + + Indicates a run of text in italics. + + + + + Indicates a run of underlined text. + + + + + Indicates a run of hyper-text. + + + + + + + Values for the attribute 'ctype' when used with <ph> or <x>. + + + + + Indicates a inline image. + + + + + Indicates a page break. + + + + + Indicates a line break. + + + + + + + + + + + + Values for the attribute 'datatype'. + + + + + Indicates Active Server Page data. + + + + + Indicates C source file data. + + + + + Indicates Channel Definition Format (CDF) data. + + + + + Indicates ColdFusion data. + + + + + Indicates C++ source file data. + + + + + Indicates C-Sharp data. + + + + + Indicates strings from C, ASM, and driver files data. + + + + + Indicates comma-separated values data. + + + + + Indicates database data. + + + + + Indicates portions of document that follows data and contains metadata. + + + + + Indicates portions of document that precedes data and contains metadata. + + + + + Indicates data from standard UI file operations dialogs (e.g., Open, Save, Save As, Export, Import). + + + + + Indicates standard user input screen data. + + + + + Indicates HyperText Markup Language (HTML) data - document instance. + + + + + Indicates content within an HTML document’s <body> element. + + + + + Indicates Windows INI file data. + + + + + Indicates Interleaf data. + + + + + Indicates Java source file data (extension '.java'). + + + + + Indicates Java property resource bundle data. + + + + + Indicates Java list resource bundle data. + + + + + Indicates JavaScript source file data. + + + + + Indicates JScript source file data. + + + + + Indicates information relating to formatting. + + + + + Indicates LISP source file data. + + + + + Indicates information relating to margin formats. + + + + + Indicates a file containing menu. + + + + + Indicates numerically identified string table. + + + + + Indicates Maker Interchange Format (MIF) data. + + + + + Indicates that the datatype attribute value is a MIME Type value and is defined in the mime-type attribute. + + + + + Indicates GNU Machine Object data. + + + + + Indicates Message Librarian strings created by Novell's Message Librarian Tool. + + + + + Indicates information to be displayed at the bottom of each page of a document. + + + + + Indicates information to be displayed at the top of each page of a document. + + + + + Indicates a list of property values (e.g., settings within INI files or preferences dialog). + + + + + Indicates Pascal source file data. + + + + + Indicates Hypertext Preprocessor data. + + + + + Indicates plain text file (no formatting other than, possibly, wrapping). + + + + + Indicates GNU Portable Object file. + + + + + Indicates dynamically generated user defined document. e.g. Oracle Report, Crystal Report, etc. + + + + + Indicates Windows .NET binary resources. + + + + + Indicates Windows .NET Resources. + + + + + Indicates Rich Text Format (RTF) data. + + + + + Indicates Standard Generalized Markup Language (SGML) data - document instance. + + + + + Indicates Standard Generalized Markup Language (SGML) data - Document Type Definition (DTD). + + + + + Indicates Scalable Vector Graphic (SVG) data. + + + + + Indicates VisualBasic Script source file. + + + + + Indicates warning message. + + + + + Indicates Windows (Win32) resources (i.e. resources extracted from an RC script, a message file, or a compiled file). + + + + + Indicates Extensible HyperText Markup Language (XHTML) data - document instance. + + + + + Indicates Extensible Markup Language (XML) data - document instance. + + + + + Indicates Extensible Markup Language (XML) data - Document Type Definition (DTD). + + + + + Indicates Extensible Stylesheet Language (XSL) data. + + + + + Indicates XUL elements. + + + + + + + Values for the attribute 'mtype'. + + + + + Indicates the marked text is an abbreviation. + + + + + ISO-12620 2.1.8: A term resulting from the omission of any part of the full term while designating the same concept. + + + + + ISO-12620 2.1.8.1: An abbreviated form of a simple term resulting from the omission of some of its letters (e.g. 'adj.' for 'adjective'). + + + + + ISO-12620 2.1.8.4: An abbreviated form of a term made up of letters from the full form of a multiword term strung together into a sequence pronounced only syllabically (e.g. 'radar' for 'radio detecting and ranging'). + + + + + ISO-12620: A proper-name term, such as the name of an agency or other proper entity. + + + + + ISO-12620 2.1.18.1: A recurrent word combination characterized by cohesion in that the components of the collocation must co-occur within an utterance or series of utterances, even though they do not necessarily have to maintain immediate proximity to one another. + + + + + ISO-12620 2.1.5: A synonym for an international scientific term that is used in general discourse in a given language. + + + + + Indicates the marked text is a date and/or time. + + + + + ISO-12620 2.1.15: An expression used to represent a concept based on a statement that two mathematical expressions are, for instance, equal as identified by the equal sign (=), or assigned to one another by a similar sign. + + + + + ISO-12620 2.1.7: The complete representation of a term for which there is an abbreviated form. + + + + + ISO-12620 2.1.14: Figures, symbols or the like used to express a concept briefly, such as a mathematical or chemical formula. + + + + + ISO-12620 2.1.1: The concept designation that has been chosen to head a terminological record. + + + + + ISO-12620 2.1.8.3: An abbreviated form of a term consisting of some of the initial letters of the words making up a multiword term or the term elements making up a compound term when these letters are pronounced individually (e.g. 'BSE' for 'bovine spongiform encephalopathy'). + + + + + ISO-12620 2.1.4: A term that is part of an international scientific nomenclature as adopted by an appropriate scientific body. + + + + + ISO-12620 2.1.6: A term that has the same or nearly identical orthographic or phonemic form in many languages. + + + + + ISO-12620 2.1.16: An expression used to represent a concept based on mathematical or logical relations, such as statements of inequality, set relationships, Boolean operations, and the like. + + + + + ISO-12620 2.1.17: A unit to track object. + + + + + Indicates the marked text is a name. + + + + + ISO-12620 2.1.3: A term that represents the same or a very similar concept as another term in the same language, but for which interchangeability is limited to some contexts and inapplicable in others. + + + + + ISO-12620 2.1.17.2: A unique alphanumeric designation assigned to an object in a manufacturing system. + + + + + Indicates the marked text is a phrase. + + + + + ISO-12620 2.1.18: Any group of two or more words that form a unit, the meaning of which frequently cannot be deduced based on the combined sense of the words making up the phrase. + + + + + Indicates the marked text should not be translated. + + + + + ISO-12620 2.1.12: A form of a term resulting from an operation whereby non-Latin writing systems are converted to the Latin alphabet. + + + + + Indicates that the marked text represents a segment. + + + + + ISO-12620 2.1.18.2: A fixed, lexicalized phrase. + + + + + ISO-12620 2.1.8.2: A variant of a multiword term that includes fewer words than the full form of the term (e.g. 'Group of Twenty-four' for 'Intergovernmental Group of Twenty-four on International Monetary Affairs'). + + + + + ISO-12620 2.1.17.1: Stock keeping unit, an inventory item identified by a unique alphanumeric designation assigned to an object in an inventory control system. + + + + + ISO-12620 2.1.19: A fixed chunk of recurring text. + + + + + ISO-12620 2.1.13: A designation of a concept by letters, numerals, pictograms or any combination thereof. + + + + + ISO-12620 2.1.2: Any term that represents the same or a very similar concept as the main entry term in a term entry. + + + + + ISO-12620 2.1.18.3: Phraseological unit in a language that expresses the same semantic content as another phrase in that same language. + + + + + Indicates the marked text is a term. + + + + + ISO-12620 2.1.11: A form of a term resulting from an operation whereby the characters of one writing system are represented by characters from another writing system, taking into account the pronunciation of the characters converted. + + + + + ISO-12620 2.1.10: A form of a term resulting from an operation whereby the characters of an alphabetic writing system are represented by characters from another alphabetic writing system. + + + + + ISO-12620 2.1.8.5: An abbreviated form of a term resulting from the omission of one or more term elements or syllables (e.g. 'flu' for 'influenza'). + + + + + ISO-12620 2.1.9: One of the alternate forms of a term. + + + + + + + Values for the attribute 'restype'. + + + + + Indicates a Windows RC AUTO3STATE control. + + + + + Indicates a Windows RC AUTOCHECKBOX control. + + + + + Indicates a Windows RC AUTORADIOBUTTON control. + + + + + Indicates a Windows RC BEDIT control. + + + + + Indicates a bitmap, for example a BITMAP resource in Windows. + + + + + Indicates a button object, for example a BUTTON control Windows. + + + + + Indicates a caption, such as the caption of a dialog box. + + + + + Indicates the cell in a table, for example the content of the <td> element in HTML. + + + + + Indicates check box object, for example a CHECKBOX control in Windows. + + + + + Indicates a menu item with an associated checkbox. + + + + + Indicates a list box, but with a check-box for each item. + + + + + Indicates a color selection dialog. + + + + + Indicates a combination of edit box and listbox object, for example a COMBOBOX control in Windows. + + + + + Indicates an initialization entry of an extended combobox DLGINIT resource block. (code 0x1234). + + + + + Indicates an initialization entry of a combobox DLGINIT resource block (code 0x0403). + + + + + Indicates a UI base class element that cannot be represented by any other element. + + + + + Indicates a context menu. + + + + + Indicates a Windows RC CTEXT control. + + + + + Indicates a cursor, for example a CURSOR resource in Windows. + + + + + Indicates a date/time picker. + + + + + Indicates a Windows RC DEFPUSHBUTTON control. + + + + + Indicates a dialog box. + + + + + Indicates a Windows RC DLGINIT resource block. + + + + + Indicates an edit box object, for example an EDIT control in Windows. + + + + + Indicates a filename. + + + + + Indicates a file dialog. + + + + + Indicates a footnote. + + + + + Indicates a font name. + + + + + Indicates a footer. + + + + + Indicates a frame object. + + + + + Indicates a XUL grid element. + + + + + Indicates a groupbox object, for example a GROUPBOX control in Windows. + + + + + Indicates a header item. + + + + + Indicates a heading, such has the content of <h1>, <h2>, etc. in HTML. + + + + + Indicates a Windows RC HEDIT control. + + + + + Indicates a horizontal scrollbar. + + + + + Indicates an icon, for example an ICON resource in Windows. + + + + + Indicates a Windows RC IEDIT control. + + + + + Indicates keyword list, such as the content of the Keywords meta-data in HTML, or a K footnote in WinHelp RTF. + + + + + Indicates a label object. + + + + + Indicates a label that is also a HTML link (not necessarily a URL). + + + + + Indicates a list (a group of list-items, for example an <ol> or <ul> element in HTML). + + + + + Indicates a listbox object, for example an LISTBOX control in Windows. + + + + + Indicates an list item (an entry in a list). + + + + + Indicates a Windows RC LTEXT control. + + + + + Indicates a menu (a group of menu-items). + + + + + Indicates a toolbar containing one or more tope level menus. + + + + + Indicates a menu item (an entry in a menu). + + + + + Indicates a XUL menuseparator element. + + + + + Indicates a message, for example an entry in a MESSAGETABLE resource in Windows. + + + + + Indicates a calendar control. + + + + + Indicates an edit box beside a spin control. + + + + + Indicates a catch all for rectangular areas. + + + + + Indicates a standalone menu not necessarily associated with a menubar. + + + + + Indicates a pushbox object, for example a PUSHBOX control in Windows. + + + + + Indicates a Windows RC PUSHBUTTON control. + + + + + Indicates a radio button object. + + + + + Indicates a menuitem with associated radio button. + + + + + Indicates raw data resources for an application. + + + + + Indicates a row in a table. + + + + + Indicates a Windows RC RTEXT control. + + + + + Indicates a user navigable container used to show a portion of a document. + + + + + Indicates a generic divider object (e.g. menu group separator). + + + + + Windows accelerators, shortcuts in resource or property files. + + + + + Indicates a UI control to indicate process activity but not progress. + + + + + Indicates a splitter bar. + + + + + Indicates a Windows RC STATE3 control. + + + + + Indicates a window for providing feedback to the users, like 'read-only', etc. + + + + + Indicates a string, for example an entry in a STRINGTABLE resource in Windows. + + + + + Indicates a layers of controls with a tab to select layers. + + + + + Indicates a display and edits regular two-dimensional tables of cells. + + + + + Indicates a XUL textbox element. + + + + + Indicates a UI button that can be toggled to on or off state. + + + + + Indicates an array of controls, usually buttons. + + + + + Indicates a pop up tool tip text. + + + + + Indicates a bar with a pointer indicating a position within a certain range. + + + + + Indicates a control that displays a set of hierarchical data. + + + + + Indicates a URI (URN or URL). + + + + + Indicates a Windows RC USERBUTTON control. + + + + + Indicates a user-defined control like CONTROL control in Windows. + + + + + Indicates the text of a variable. + + + + + Indicates version information about a resource like VERSIONINFO in Windows. + + + + + Indicates a vertical scrollbar. + + + + + Indicates a graphical window. + + + + + + + Values for the attribute 'size-unit'. + + + + + Indicates a size in 8-bit bytes. + + + + + Indicates a size in Unicode characters. + + + + + Indicates a size in columns. Used for HTML text area. + + + + + Indicates a size in centimeters. + + + + + Indicates a size in dialog units, as defined in Windows resources. + + + + + Indicates a size in 'font-size' units (as defined in CSS). + + + + + Indicates a size in 'x-height' units (as defined in CSS). + + + + + Indicates a size in glyphs. A glyph is considered to be one or more combined Unicode characters that represent a single displayable text character. Sometimes referred to as a 'grapheme cluster' + + + + + Indicates a size in inches. + + + + + Indicates a size in millimeters. + + + + + Indicates a size in percentage. + + + + + Indicates a size in pixels. + + + + + Indicates a size in point. + + + + + Indicates a size in rows. Used for HTML text area. + + + + + + + Values for the attribute 'state'. + + + + + Indicates the terminating state. + + + + + Indicates only non-textual information needs adaptation. + + + + + Indicates both text and non-textual information needs adaptation. + + + + + Indicates only non-textual information needs review. + + + + + Indicates both text and non-textual information needs review. + + + + + Indicates that only the text of the item needs to be reviewed. + + + + + Indicates that the item needs to be translated. + + + + + Indicates that the item is new. For example, translation units that were not in a previous version of the document. + + + + + Indicates that changes are reviewed and approved. + + + + + Indicates that the item has been translated. + + + + + + + Values for the attribute 'state-qualifier'. + + + + + Indicates an exact match. An exact match occurs when a source text of a segment is exactly the same as the source text of a segment that was translated previously. + + + + + Indicates a fuzzy match. A fuzzy match occurs when a source text of a segment is very similar to the source text of a segment that was translated previously (e.g. when the difference is casing, a few changed words, white-space discripancy, etc.). + + + + + Indicates a match based on matching IDs (in addition to matching text). + + + + + Indicates a translation derived from a glossary. + + + + + Indicates a translation derived from existing translation. + + + + + Indicates a translation derived from machine translation. + + + + + Indicates a translation derived from a translation repository. + + + + + Indicates a translation derived from a translation memory. + + + + + Indicates the translation is suggested by machine translation. + + + + + Indicates that the item has been rejected because of incorrect grammar. + + + + + Indicates that the item has been rejected because it is incorrect. + + + + + Indicates that the item has been rejected because it is too long or too short. + + + + + Indicates that the item has been rejected because of incorrect spelling. + + + + + Indicates the translation is suggested by translation memory. + + + + + + + Values for the attribute 'unit'. + + + + + Refers to words. + + + + + Refers to pages. + + + + + Refers to <trans-unit> elements. + + + + + Refers to <bin-unit> elements. + + + + + Refers to glyphs. + + + + + Refers to <trans-unit> and/or <bin-unit> elements. + + + + + Refers to the occurrences of instances defined by the count-type value. + + + + + Refers to characters. + + + + + Refers to lines. + + + + + Refers to sentences. + + + + + Refers to paragraphs. + + + + + Refers to segments. + + + + + Refers to placeables (inline elements). + + + + + + + Values for the attribute 'priority'. + + + + + Highest priority. + + + + + High priority. + + + + + High priority, but not as important as 2. + + + + + High priority, but not as important as 3. + + + + + Medium priority, but more important than 6. + + + + + Medium priority, but less important than 5. + + + + + Low priority, but more important than 8. + + + + + Low priority, but more important than 9. + + + + + Low priority. + + + + + Lowest priority. + + + + + + + + + This value indicates that all properties can be reformatted. This value must be used alone. + + + + + This value indicates that no properties should be reformatted. This value must be used alone. + + + + + + + + + + + + + This value indicates that all information in the coord attribute can be modified. + + + + + This value indicates that the x information in the coord attribute can be modified. + + + + + This value indicates that the y information in the coord attribute can be modified. + + + + + This value indicates that the cx information in the coord attribute can be modified. + + + + + This value indicates that the cy information in the coord attribute can be modified. + + + + + This value indicates that all the information in the font attribute can be modified. + + + + + This value indicates that the name information in the font attribute can be modified. + + + + + This value indicates that the size information in the font attribute can be modified. + + + + + This value indicates that the weight information in the font attribute can be modified. + + + + + This value indicates that the information in the css-style attribute can be modified. + + + + + This value indicates that the information in the style attribute can be modified. + + + + + This value indicates that the information in the exstyle attribute can be modified. + + + + + + + + + + + + + Indicates that the context is informational in nature, specifying for example, how a term should be translated. Thus, should be displayed to anyone editing the XLIFF document. + + + + + Indicates that the context-group is used to specify where the term was found in the translatable source. Thus, it is not displayed. + + + + + Indicates that the context information should be used during translation memory lookups. Thus, it is not displayed. + + + + + + + + + Represents a translation proposal from a translation memory or other resource. + + + + + Represents a previous version of the target element. + + + + + Represents a rejected version of the target element. + + + + + Represents a translation to be used for reference purposes only, for example from a related product or a different language. + + + + + Represents a proposed translation that was used for the translation of the trans-unit, possibly modified. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Values for the attribute 'coord'. + + + + + + + + Version values: 1.0 and 1.1 are allowed for backward compatibility. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/symfony/translation/Resources/schemas/xliff-core-2.0.xsd b/vendor/symfony/translation/Resources/schemas/xliff-core-2.0.xsd new file mode 100644 index 000000000..963232f97 --- /dev/null +++ b/vendor/symfony/translation/Resources/schemas/xliff-core-2.0.xsd @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/symfony/translation/Resources/schemas/xml.xsd b/vendor/symfony/translation/Resources/schemas/xml.xsd new file mode 100644 index 000000000..a46162a7a --- /dev/null +++ b/vendor/symfony/translation/Resources/schemas/xml.xsd @@ -0,0 +1,309 @@ + + + + + + +
+

About the XML namespace

+ +
+

+ + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. +

+

+ See + http://www.w3.org/XML/1998/namespace.html and + + http://www.w3.org/TR/REC-xml for information + about this namespace. +

+ +

+ Note that local names in this namespace are intended to be + defined only by the World Wide Web Consortium or its subgroups. + The names currently defined in this namespace are listed below. + They should not be used with conflicting semantics by any Working + Group, specification, or document instance. +

+

+ See further below in this document for more information about how to refer to this schema document from your own + XSD schema documents and about the + namespace-versioning policy governing this schema document. +

+
+
+ +
+
+ + + + +
+ +

lang (as an attribute name)

+

+ + denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification.

+ +
+
+

Notes

+

+ Attempting to install the relevant ISO 2- and 3-letter + codes as the enumerated possible values is probably never + going to be a realistic possibility. +

+

+ + See BCP 47 at + http://www.rfc-editor.org/rfc/bcp/bcp47.txt + and the IANA language subtag registry at + + http://www.iana.org/assignments/language-subtag-registry + for further information. +

+

+ + The union allows for the 'un-declaration' of xml:lang with + the empty string. +

+
+
+
+ + + + + + + + + + +
+ + + + + +
+ +

space (as an attribute name)

+

+ denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification.

+ +
+
+
+ + + + + + + +
+ + + + +
+ +

base (as an attribute name)

+

+ denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification.

+ +

+ See http://www.w3.org/TR/xmlbase/ + for information about this attribute. +

+ +
+
+
+
+ + + + +
+ +

id (as an attribute name)

+

+ + denotes an attribute whose value + should be interpreted as if declared to be of type ID. + This name is reserved by virtue of its definition in the + xml:id specification.

+ +

+ See http://www.w3.org/TR/xml-id/ + for information about this attribute. +

+
+
+
+ +
+ + + + + + + + + + + +
+ +

Father (in any context at all)

+ +
+

+ denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: +

+
+

+ + In appreciation for his vision, leadership and + dedication the W3C XML Plenary on this 10th day of + February, 2000, reserves for Jon Bosak in perpetuity + the XML name "xml:Father". +

+
+
+
+
+
+ + + + +
+

About this schema document

+ +
+

+ This schema defines attributes and an attribute group suitable + for use by schemas wishing to allow xml:base, + xml:lang, xml:space or + xml:id attributes on elements they define. +

+ +

+ To enable this, such a schema must import this schema for + the XML namespace, e.g. as follows: +

+
+          <schema.. .>
+          .. .
+           <import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+     
+

+ or +

+
+
+           <import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
+     
+

+ Subsequently, qualified reference to any of the attributes or the + group defined below will have the desired effect, e.g. +

+
+          <type.. .>
+          .. .
+           <attributeGroup ref="xml:specialAttrs"/>
+     
+

+ will define a type which will schema-validate an instance element + with any of those attributes. +

+ +
+
+
+
+ + + +
+

Versioning policy for this schema document

+ +
+

+ In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + + http://www.w3.org/2009/01/xml.xsd. +

+

+ At the date of issue it can also be found at + + http://www.w3.org/2001/xml.xsd. +

+ +

+ The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML + Schema itself, or with the XML namespace itself. In other words, + if the XML Schema or XML namespaces change, the version of this + document at + http://www.w3.org/2001/xml.xsd + + will change accordingly; the version at + + http://www.w3.org/2009/01/xml.xsd + + will not change. +

+

+ + Previous dated (and unchanging) versions of this schema + document are at: +

+ +
+
+
+
+ +
diff --git a/vendor/symfony/translation/Test/ProviderFactoryTestCase.php b/vendor/symfony/translation/Test/ProviderFactoryTestCase.php new file mode 100644 index 000000000..a9c7c0ebf --- /dev/null +++ b/vendor/symfony/translation/Test/ProviderFactoryTestCase.php @@ -0,0 +1,155 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Test; + +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; +use Psr\Log\LoggerInterface; +use Symfony\Component\HttpClient\MockHttpClient; +use Symfony\Component\Translation\Dumper\XliffFileDumper; +use Symfony\Component\Translation\Exception\IncompleteDsnException; +use Symfony\Component\Translation\Exception\UnsupportedSchemeException; +use Symfony\Component\Translation\Loader\LoaderInterface; +use Symfony\Component\Translation\Provider\Dsn; +use Symfony\Component\Translation\Provider\ProviderFactoryInterface; +use Symfony\Component\Translation\TranslatorBagInterface; +use Symfony\Contracts\HttpClient\HttpClientInterface; + +/** + * A test case to ease testing a translation provider factory. + * + * @author Mathieu Santostefano + * + * @internal + */ +abstract class ProviderFactoryTestCase extends TestCase +{ + protected HttpClientInterface $client; + protected LoggerInterface|MockObject $logger; + protected string $defaultLocale; + protected LoaderInterface|MockObject $loader; + protected XliffFileDumper|MockObject $xliffFileDumper; + protected TranslatorBagInterface|MockObject $translatorBag; + + abstract public function createFactory(): ProviderFactoryInterface; + + /** + * @return iterable + */ + abstract public static function supportsProvider(): iterable; + + /** + * @return iterable + */ + abstract public static function createProvider(): iterable; + + /** + * @return iterable + */ + public static function unsupportedSchemeProvider(): iterable + { + return []; + } + + /** + * @return iterable + */ + public static function incompleteDsnProvider(): iterable + { + return []; + } + + /** + * @dataProvider supportsProvider + */ + public function testSupports(bool $expected, string $dsn) + { + $factory = $this->createFactory(); + + $this->assertSame($expected, $factory->supports(new Dsn($dsn))); + } + + /** + * @dataProvider createProvider + */ + public function testCreate(string $expected, string $dsn) + { + $factory = $this->createFactory(); + $provider = $factory->create(new Dsn($dsn)); + + $this->assertSame($expected, (string) $provider); + } + + /** + * @dataProvider unsupportedSchemeProvider + */ + public function testUnsupportedSchemeException(string $dsn, string $message = null) + { + $factory = $this->createFactory(); + + $dsn = new Dsn($dsn); + + $this->expectException(UnsupportedSchemeException::class); + if (null !== $message) { + $this->expectExceptionMessage($message); + } + + $factory->create($dsn); + } + + /** + * @dataProvider incompleteDsnProvider + */ + public function testIncompleteDsnException(string $dsn, string $message = null) + { + $factory = $this->createFactory(); + + $dsn = new Dsn($dsn); + + $this->expectException(IncompleteDsnException::class); + if (null !== $message) { + $this->expectExceptionMessage($message); + } + + $factory->create($dsn); + } + + protected function getClient(): HttpClientInterface + { + return $this->client ??= new MockHttpClient(); + } + + protected function getLogger(): LoggerInterface + { + return $this->logger ??= $this->createMock(LoggerInterface::class); + } + + protected function getDefaultLocale(): string + { + return $this->defaultLocale ??= 'en'; + } + + protected function getLoader(): LoaderInterface + { + return $this->loader ??= $this->createMock(LoaderInterface::class); + } + + protected function getXliffFileDumper(): XliffFileDumper + { + return $this->xliffFileDumper ??= $this->createMock(XliffFileDumper::class); + } + + protected function getTranslatorBag(): TranslatorBagInterface + { + return $this->translatorBag ??= $this->createMock(TranslatorBagInterface::class); + } +} diff --git a/vendor/symfony/translation/Test/ProviderTestCase.php b/vendor/symfony/translation/Test/ProviderTestCase.php new file mode 100644 index 000000000..2d16f2bfc --- /dev/null +++ b/vendor/symfony/translation/Test/ProviderTestCase.php @@ -0,0 +1,84 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Test; + +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; +use Psr\Log\LoggerInterface; +use Symfony\Component\HttpClient\MockHttpClient; +use Symfony\Component\Translation\Dumper\XliffFileDumper; +use Symfony\Component\Translation\Loader\LoaderInterface; +use Symfony\Component\Translation\Provider\ProviderInterface; +use Symfony\Component\Translation\TranslatorBagInterface; +use Symfony\Contracts\HttpClient\HttpClientInterface; + +/** + * A test case to ease testing a translation provider. + * + * @author Mathieu Santostefano + * + * @internal + */ +abstract class ProviderTestCase extends TestCase +{ + protected HttpClientInterface $client; + protected LoggerInterface|MockObject $logger; + protected string $defaultLocale; + protected LoaderInterface|MockObject $loader; + protected XliffFileDumper|MockObject $xliffFileDumper; + protected TranslatorBagInterface|MockObject $translatorBag; + + abstract public static function createProvider(HttpClientInterface $client, LoaderInterface $loader, LoggerInterface $logger, string $defaultLocale, string $endpoint): ProviderInterface; + + /** + * @return iterable + */ + abstract public static function toStringProvider(): iterable; + + /** + * @dataProvider toStringProvider + */ + public function testToString(ProviderInterface $provider, string $expected) + { + $this->assertSame($expected, (string) $provider); + } + + protected function getClient(): MockHttpClient + { + return $this->client ??= new MockHttpClient(); + } + + protected function getLoader(): LoaderInterface + { + return $this->loader ??= $this->createMock(LoaderInterface::class); + } + + protected function getLogger(): LoggerInterface + { + return $this->logger ??= $this->createMock(LoggerInterface::class); + } + + protected function getDefaultLocale(): string + { + return $this->defaultLocale ??= 'en'; + } + + protected function getXliffFileDumper(): XliffFileDumper + { + return $this->xliffFileDumper ??= $this->createMock(XliffFileDumper::class); + } + + protected function getTranslatorBag(): TranslatorBagInterface + { + return $this->translatorBag ??= $this->createMock(TranslatorBagInterface::class); + } +} diff --git a/vendor/symfony/translation/TranslatableMessage.php b/vendor/symfony/translation/TranslatableMessage.php new file mode 100644 index 000000000..91d4c1941 --- /dev/null +++ b/vendor/symfony/translation/TranslatableMessage.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Contracts\Translation\TranslatableInterface; +use Symfony\Contracts\Translation\TranslatorInterface; + +/** + * @author Nate Wiebe + */ +class TranslatableMessage implements TranslatableInterface +{ + private string $message; + private array $parameters; + private ?string $domain; + + public function __construct(string $message, array $parameters = [], string $domain = null) + { + $this->message = $message; + $this->parameters = $parameters; + $this->domain = $domain; + } + + public function __toString(): string + { + return $this->getMessage(); + } + + public function getMessage(): string + { + return $this->message; + } + + public function getParameters(): array + { + return $this->parameters; + } + + public function getDomain(): ?string + { + return $this->domain; + } + + public function trans(TranslatorInterface $translator, string $locale = null): string + { + return $translator->trans($this->getMessage(), array_map( + static fn ($parameter) => $parameter instanceof TranslatableInterface ? $parameter->trans($translator, $locale) : $parameter, + $this->getParameters() + ), $this->getDomain(), $locale); + } +} diff --git a/vendor/symfony/translation/Translator.php b/vendor/symfony/translation/Translator.php new file mode 100644 index 000000000..132138e92 --- /dev/null +++ b/vendor/symfony/translation/Translator.php @@ -0,0 +1,472 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Component\Config\ConfigCacheFactory; +use Symfony\Component\Config\ConfigCacheFactoryInterface; +use Symfony\Component\Config\ConfigCacheInterface; +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\Exception\NotFoundResourceException; +use Symfony\Component\Translation\Exception\RuntimeException; +use Symfony\Component\Translation\Formatter\IntlFormatterInterface; +use Symfony\Component\Translation\Formatter\MessageFormatter; +use Symfony\Component\Translation\Formatter\MessageFormatterInterface; +use Symfony\Component\Translation\Loader\LoaderInterface; +use Symfony\Contracts\Translation\LocaleAwareInterface; +use Symfony\Contracts\Translation\TranslatableInterface; +use Symfony\Contracts\Translation\TranslatorInterface; + +// Help opcache.preload discover always-needed symbols +class_exists(MessageCatalogue::class); + +/** + * @author Fabien Potencier + */ +class Translator implements TranslatorInterface, TranslatorBagInterface, LocaleAwareInterface +{ + /** + * @var MessageCatalogueInterface[] + */ + protected $catalogues = []; + + private string $locale; + + /** + * @var string[] + */ + private array $fallbackLocales = []; + + /** + * @var LoaderInterface[] + */ + private array $loaders = []; + + private array $resources = []; + + private MessageFormatterInterface $formatter; + + private ?string $cacheDir; + + private bool $debug; + + private array $cacheVary; + + private ?ConfigCacheFactoryInterface $configCacheFactory; + + private array $parentLocales; + + private bool $hasIntlFormatter; + + /** + * @throws InvalidArgumentException If a locale contains invalid characters + */ + public function __construct(string $locale, MessageFormatterInterface $formatter = null, string $cacheDir = null, bool $debug = false, array $cacheVary = []) + { + $this->setLocale($locale); + + $this->formatter = $formatter ??= new MessageFormatter(); + $this->cacheDir = $cacheDir; + $this->debug = $debug; + $this->cacheVary = $cacheVary; + $this->hasIntlFormatter = $formatter instanceof IntlFormatterInterface; + } + + /** + * @return void + */ + public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory) + { + $this->configCacheFactory = $configCacheFactory; + } + + /** + * Adds a Loader. + * + * @param string $format The name of the loader (@see addResource()) + * + * @return void + */ + public function addLoader(string $format, LoaderInterface $loader) + { + $this->loaders[$format] = $loader; + } + + /** + * Adds a Resource. + * + * @param string $format The name of the loader (@see addLoader()) + * @param mixed $resource The resource name + * + * @return void + * + * @throws InvalidArgumentException If the locale contains invalid characters + */ + public function addResource(string $format, mixed $resource, string $locale, string $domain = null) + { + $domain ??= 'messages'; + + $this->assertValidLocale($locale); + $locale ?: $locale = class_exists(\Locale::class) ? \Locale::getDefault() : 'en'; + + $this->resources[$locale][] = [$format, $resource, $domain]; + + if (\in_array($locale, $this->fallbackLocales)) { + $this->catalogues = []; + } else { + unset($this->catalogues[$locale]); + } + } + + /** + * @return void + */ + public function setLocale(string $locale) + { + $this->assertValidLocale($locale); + $this->locale = $locale; + } + + public function getLocale(): string + { + return $this->locale ?: (class_exists(\Locale::class) ? \Locale::getDefault() : 'en'); + } + + /** + * Sets the fallback locales. + * + * @param string[] $locales + * + * @return void + * + * @throws InvalidArgumentException If a locale contains invalid characters + */ + public function setFallbackLocales(array $locales) + { + // needed as the fallback locales are linked to the already loaded catalogues + $this->catalogues = []; + + foreach ($locales as $locale) { + $this->assertValidLocale($locale); + } + + $this->fallbackLocales = $this->cacheVary['fallback_locales'] = $locales; + } + + /** + * Gets the fallback locales. + * + * @internal + */ + public function getFallbackLocales(): array + { + return $this->fallbackLocales; + } + + public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null): string + { + if (null === $id || '' === $id) { + return ''; + } + + $domain ??= 'messages'; + + $catalogue = $this->getCatalogue($locale); + $locale = $catalogue->getLocale(); + while (!$catalogue->defines($id, $domain)) { + if ($cat = $catalogue->getFallbackCatalogue()) { + $catalogue = $cat; + $locale = $catalogue->getLocale(); + } else { + break; + } + } + + $parameters = array_map(fn ($parameter) => $parameter instanceof TranslatableInterface ? $parameter->trans($this, $locale) : $parameter, $parameters); + + $len = \strlen(MessageCatalogue::INTL_DOMAIN_SUFFIX); + if ($this->hasIntlFormatter + && ($catalogue->defines($id, $domain.MessageCatalogue::INTL_DOMAIN_SUFFIX) + || (\strlen($domain) > $len && 0 === substr_compare($domain, MessageCatalogue::INTL_DOMAIN_SUFFIX, -$len, $len))) + ) { + return $this->formatter->formatIntl($catalogue->get($id, $domain), $locale, $parameters); + } + + return $this->formatter->format($catalogue->get($id, $domain), $locale, $parameters); + } + + public function getCatalogue(string $locale = null): MessageCatalogueInterface + { + if (!$locale) { + $locale = $this->getLocale(); + } else { + $this->assertValidLocale($locale); + } + + if (!isset($this->catalogues[$locale])) { + $this->loadCatalogue($locale); + } + + return $this->catalogues[$locale]; + } + + public function getCatalogues(): array + { + return array_values($this->catalogues); + } + + /** + * Gets the loaders. + * + * @return LoaderInterface[] + */ + protected function getLoaders(): array + { + return $this->loaders; + } + + /** + * @return void + */ + protected function loadCatalogue(string $locale) + { + if (null === $this->cacheDir) { + $this->initializeCatalogue($locale); + } else { + $this->initializeCacheCatalogue($locale); + } + } + + /** + * @return void + */ + protected function initializeCatalogue(string $locale) + { + $this->assertValidLocale($locale); + + try { + $this->doLoadCatalogue($locale); + } catch (NotFoundResourceException $e) { + if (!$this->computeFallbackLocales($locale)) { + throw $e; + } + } + $this->loadFallbackCatalogues($locale); + } + + private function initializeCacheCatalogue(string $locale): void + { + if (isset($this->catalogues[$locale])) { + /* Catalogue already initialized. */ + return; + } + + $this->assertValidLocale($locale); + $cache = $this->getConfigCacheFactory()->cache($this->getCatalogueCachePath($locale), + function (ConfigCacheInterface $cache) use ($locale) { + $this->dumpCatalogue($locale, $cache); + } + ); + + if (isset($this->catalogues[$locale])) { + /* Catalogue has been initialized as it was written out to cache. */ + return; + } + + /* Read catalogue from cache. */ + $this->catalogues[$locale] = include $cache->getPath(); + } + + private function dumpCatalogue(string $locale, ConfigCacheInterface $cache): void + { + $this->initializeCatalogue($locale); + $fallbackContent = $this->getFallbackContent($this->catalogues[$locale]); + + $content = sprintf(<<getAllMessages($this->catalogues[$locale]), true), + $fallbackContent + ); + + $cache->write($content, $this->catalogues[$locale]->getResources()); + } + + private function getFallbackContent(MessageCatalogue $catalogue): string + { + $fallbackContent = ''; + $current = ''; + $replacementPattern = '/[^a-z0-9_]/i'; + $fallbackCatalogue = $catalogue->getFallbackCatalogue(); + while ($fallbackCatalogue) { + $fallback = $fallbackCatalogue->getLocale(); + $fallbackSuffix = ucfirst(preg_replace($replacementPattern, '_', $fallback)); + $currentSuffix = ucfirst(preg_replace($replacementPattern, '_', $current)); + + $fallbackContent .= sprintf(<<<'EOF' +$catalogue%s = new MessageCatalogue('%s', %s); +$catalogue%s->addFallbackCatalogue($catalogue%s); + +EOF + , + $fallbackSuffix, + $fallback, + var_export($this->getAllMessages($fallbackCatalogue), true), + $currentSuffix, + $fallbackSuffix + ); + $current = $fallbackCatalogue->getLocale(); + $fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue(); + } + + return $fallbackContent; + } + + private function getCatalogueCachePath(string $locale): string + { + return $this->cacheDir.'/catalogue.'.$locale.'.'.strtr(substr(base64_encode(hash('sha256', serialize($this->cacheVary), true)), 0, 7), '/', '_').'.php'; + } + + /** + * @internal + */ + protected function doLoadCatalogue(string $locale): void + { + $this->catalogues[$locale] = new MessageCatalogue($locale); + + if (isset($this->resources[$locale])) { + foreach ($this->resources[$locale] as $resource) { + if (!isset($this->loaders[$resource[0]])) { + if (\is_string($resource[1])) { + throw new RuntimeException(sprintf('No loader is registered for the "%s" format when loading the "%s" resource.', $resource[0], $resource[1])); + } + + throw new RuntimeException(sprintf('No loader is registered for the "%s" format.', $resource[0])); + } + $this->catalogues[$locale]->addCatalogue($this->loaders[$resource[0]]->load($resource[1], $locale, $resource[2])); + } + } + } + + private function loadFallbackCatalogues(string $locale): void + { + $current = $this->catalogues[$locale]; + + foreach ($this->computeFallbackLocales($locale) as $fallback) { + if (!isset($this->catalogues[$fallback])) { + $this->initializeCatalogue($fallback); + } + + $fallbackCatalogue = new MessageCatalogue($fallback, $this->getAllMessages($this->catalogues[$fallback])); + foreach ($this->catalogues[$fallback]->getResources() as $resource) { + $fallbackCatalogue->addResource($resource); + } + $current->addFallbackCatalogue($fallbackCatalogue); + $current = $fallbackCatalogue; + } + } + + /** + * @return array + */ + protected function computeFallbackLocales(string $locale) + { + $this->parentLocales ??= json_decode(file_get_contents(__DIR__.'/Resources/data/parents.json'), true); + + $originLocale = $locale; + $locales = []; + + while ($locale) { + $parent = $this->parentLocales[$locale] ?? null; + + if ($parent) { + $locale = 'root' !== $parent ? $parent : null; + } elseif (\function_exists('locale_parse')) { + $localeSubTags = locale_parse($locale); + $locale = null; + if (1 < \count($localeSubTags)) { + array_pop($localeSubTags); + $locale = locale_compose($localeSubTags) ?: null; + } + } elseif ($i = strrpos($locale, '_') ?: strrpos($locale, '-')) { + $locale = substr($locale, 0, $i); + } else { + $locale = null; + } + + if (null !== $locale) { + $locales[] = $locale; + } + } + + foreach ($this->fallbackLocales as $fallback) { + if ($fallback === $originLocale) { + continue; + } + + $locales[] = $fallback; + } + + return array_unique($locales); + } + + /** + * Asserts that the locale is valid, throws an Exception if not. + * + * @return void + * + * @throws InvalidArgumentException If the locale contains invalid characters + */ + protected function assertValidLocale(string $locale) + { + if (!preg_match('/^[a-z0-9@_\\.\\-]*$/i', $locale)) { + throw new InvalidArgumentException(sprintf('Invalid "%s" locale.', $locale)); + } + } + + /** + * Provides the ConfigCache factory implementation, falling back to a + * default implementation if necessary. + */ + private function getConfigCacheFactory(): ConfigCacheFactoryInterface + { + $this->configCacheFactory ??= new ConfigCacheFactory($this->debug); + + return $this->configCacheFactory; + } + + private function getAllMessages(MessageCatalogueInterface $catalogue): array + { + $allMessages = []; + + foreach ($catalogue->all() as $domain => $messages) { + if ($intlMessages = $catalogue->all($domain.MessageCatalogue::INTL_DOMAIN_SUFFIX)) { + $allMessages[$domain.MessageCatalogue::INTL_DOMAIN_SUFFIX] = $intlMessages; + $messages = array_diff_key($messages, $intlMessages); + } + if ($messages) { + $allMessages[$domain] = $messages; + } + } + + return $allMessages; + } +} diff --git a/vendor/symfony/translation/TranslatorBag.php b/vendor/symfony/translation/TranslatorBag.php new file mode 100644 index 000000000..84275ee14 --- /dev/null +++ b/vendor/symfony/translation/TranslatorBag.php @@ -0,0 +1,102 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Component\Translation\Catalogue\AbstractOperation; +use Symfony\Component\Translation\Catalogue\TargetOperation; + +final class TranslatorBag implements TranslatorBagInterface +{ + /** @var MessageCatalogue[] */ + private array $catalogues = []; + + public function addCatalogue(MessageCatalogue $catalogue): void + { + if (null !== $existingCatalogue = $this->getCatalogue($catalogue->getLocale())) { + $catalogue->addCatalogue($existingCatalogue); + } + + $this->catalogues[$catalogue->getLocale()] = $catalogue; + } + + public function addBag(TranslatorBagInterface $bag): void + { + foreach ($bag->getCatalogues() as $catalogue) { + $this->addCatalogue($catalogue); + } + } + + public function getCatalogue(string $locale = null): MessageCatalogueInterface + { + if (null === $locale || !isset($this->catalogues[$locale])) { + $this->catalogues[$locale] = new MessageCatalogue($locale); + } + + return $this->catalogues[$locale]; + } + + public function getCatalogues(): array + { + return array_values($this->catalogues); + } + + public function diff(TranslatorBagInterface $diffBag): self + { + $diff = new self(); + + foreach ($this->catalogues as $locale => $catalogue) { + if (null === $diffCatalogue = $diffBag->getCatalogue($locale)) { + $diff->addCatalogue($catalogue); + + continue; + } + + $operation = new TargetOperation($diffCatalogue, $catalogue); + $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::NEW_BATCH); + $newCatalogue = new MessageCatalogue($locale); + + foreach ($catalogue->getDomains() as $domain) { + $newCatalogue->add($operation->getNewMessages($domain), $domain); + } + + $diff->addCatalogue($newCatalogue); + } + + return $diff; + } + + public function intersect(TranslatorBagInterface $intersectBag): self + { + $diff = new self(); + + foreach ($this->catalogues as $locale => $catalogue) { + if (null === $intersectCatalogue = $intersectBag->getCatalogue($locale)) { + continue; + } + + $operation = new TargetOperation($catalogue, $intersectCatalogue); + $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::OBSOLETE_BATCH); + $obsoleteCatalogue = new MessageCatalogue($locale); + + foreach ($operation->getDomains() as $domain) { + $obsoleteCatalogue->add( + array_diff($operation->getMessages($domain), $operation->getNewMessages($domain)), + $domain + ); + } + + $diff->addCatalogue($obsoleteCatalogue); + } + + return $diff; + } +} diff --git a/vendor/symfony/translation/TranslatorBagInterface.php b/vendor/symfony/translation/TranslatorBagInterface.php new file mode 100644 index 000000000..a787acf12 --- /dev/null +++ b/vendor/symfony/translation/TranslatorBagInterface.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; + +/** + * @author Abdellatif Ait boudad + */ +interface TranslatorBagInterface +{ + /** + * Gets the catalogue by locale. + * + * @param string|null $locale The locale or null to use the default + * + * @throws InvalidArgumentException If the locale contains invalid characters + */ + public function getCatalogue(string $locale = null): MessageCatalogueInterface; + + /** + * Returns all catalogues of the instance. + * + * @return MessageCatalogueInterface[] + */ + public function getCatalogues(): array; +} diff --git a/vendor/symfony/translation/Util/ArrayConverter.php b/vendor/symfony/translation/Util/ArrayConverter.php new file mode 100644 index 000000000..8938e54f8 --- /dev/null +++ b/vendor/symfony/translation/Util/ArrayConverter.php @@ -0,0 +1,97 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Util; + +/** + * ArrayConverter generates tree like structure from a message catalogue. + * e.g. this + * 'foo.bar1' => 'test1', + * 'foo.bar2' => 'test2' + * converts to follows: + * foo: + * bar1: test1 + * bar2: test2. + * + * @author Gennady Telegin + */ +class ArrayConverter +{ + /** + * Converts linear messages array to tree-like array. + * For example this array('foo.bar' => 'value') will be converted to ['foo' => ['bar' => 'value']]. + * + * @param array $messages Linear messages array + */ + public static function expandToTree(array $messages): array + { + $tree = []; + + foreach ($messages as $id => $value) { + $referenceToElement = &self::getElementByPath($tree, explode('.', $id)); + + $referenceToElement = $value; + + unset($referenceToElement); + } + + return $tree; + } + + private static function &getElementByPath(array &$tree, array $parts): mixed + { + $elem = &$tree; + $parentOfElem = null; + + foreach ($parts as $i => $part) { + if (isset($elem[$part]) && \is_string($elem[$part])) { + /* Process next case: + * 'foo': 'test1', + * 'foo.bar': 'test2' + * + * $tree['foo'] was string before we found array {bar: test2}. + * Treat new element as string too, e.g. add $tree['foo.bar'] = 'test2'; + */ + $elem = &$elem[implode('.', \array_slice($parts, $i))]; + break; + } + $parentOfElem = &$elem; + $elem = &$elem[$part]; + } + + if ($elem && \is_array($elem) && $parentOfElem) { + /* Process next case: + * 'foo.bar': 'test1' + * 'foo': 'test2' + * + * $tree['foo'] was array = {bar: 'test1'} before we found string constant `foo`. + * Cancel treating $tree['foo'] as array and cancel back it expansion, + * e.g. make it $tree['foo.bar'] = 'test1' again. + */ + self::cancelExpand($parentOfElem, $part, $elem); + } + + return $elem; + } + + private static function cancelExpand(array &$tree, string $prefix, array $node): void + { + $prefix .= '.'; + + foreach ($node as $id => $value) { + if (\is_string($value)) { + $tree[$prefix.$id] = $value; + } else { + self::cancelExpand($tree, $prefix.$id, $value); + } + } + } +} diff --git a/vendor/symfony/translation/Util/XliffUtils.php b/vendor/symfony/translation/Util/XliffUtils.php new file mode 100644 index 000000000..335c34beb --- /dev/null +++ b/vendor/symfony/translation/Util/XliffUtils.php @@ -0,0 +1,191 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Util; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\Exception\InvalidResourceException; + +/** + * Provides some utility methods for XLIFF translation files, such as validating + * their contents according to the XSD schema. + * + * @author Fabien Potencier + */ +class XliffUtils +{ + /** + * Gets xliff file version based on the root "version" attribute. + * + * Defaults to 1.2 for backwards compatibility. + * + * @throws InvalidArgumentException + */ + public static function getVersionNumber(\DOMDocument $dom): string + { + /** @var \DOMNode $xliff */ + foreach ($dom->getElementsByTagName('xliff') as $xliff) { + $version = $xliff->attributes->getNamedItem('version'); + if ($version) { + return $version->nodeValue; + } + + $namespace = $xliff->attributes->getNamedItem('xmlns'); + if ($namespace) { + if (0 !== substr_compare('urn:oasis:names:tc:xliff:document:', $namespace->nodeValue, 0, 34)) { + throw new InvalidArgumentException(sprintf('Not a valid XLIFF namespace "%s".', $namespace)); + } + + return substr($namespace, 34); + } + } + + // Falls back to v1.2 + return '1.2'; + } + + /** + * Validates and parses the given file into a DOMDocument. + * + * @throws InvalidResourceException + */ + public static function validateSchema(\DOMDocument $dom): array + { + $xliffVersion = static::getVersionNumber($dom); + $internalErrors = libxml_use_internal_errors(true); + if ($shouldEnable = self::shouldEnableEntityLoader()) { + $disableEntities = libxml_disable_entity_loader(false); + } + try { + $isValid = @$dom->schemaValidateSource(self::getSchema($xliffVersion)); + if (!$isValid) { + return self::getXmlErrors($internalErrors); + } + } finally { + if ($shouldEnable) { + libxml_disable_entity_loader($disableEntities); + } + } + + $dom->normalizeDocument(); + + libxml_clear_errors(); + libxml_use_internal_errors($internalErrors); + + return []; + } + + private static function shouldEnableEntityLoader(): bool + { + static $dom, $schema; + if (null === $dom) { + $dom = new \DOMDocument(); + $dom->loadXML(''); + + $tmpfile = tempnam(sys_get_temp_dir(), 'symfony'); + register_shutdown_function(static function () use ($tmpfile) { + @unlink($tmpfile); + }); + $schema = ' + + +'; + file_put_contents($tmpfile, ' + + + +'); + } + + return !@$dom->schemaValidateSource($schema); + } + + public static function getErrorsAsString(array $xmlErrors): string + { + $errorsAsString = ''; + + foreach ($xmlErrors as $error) { + $errorsAsString .= sprintf("[%s %s] %s (in %s - line %d, column %d)\n", + \LIBXML_ERR_WARNING === $error['level'] ? 'WARNING' : 'ERROR', + $error['code'], + $error['message'], + $error['file'], + $error['line'], + $error['column'] + ); + } + + return $errorsAsString; + } + + private static function getSchema(string $xliffVersion): string + { + if ('1.2' === $xliffVersion) { + $schemaSource = file_get_contents(__DIR__.'/../Resources/schemas/xliff-core-1.2-transitional.xsd'); + $xmlUri = 'http://www.w3.org/2001/xml.xsd'; + } elseif ('2.0' === $xliffVersion) { + $schemaSource = file_get_contents(__DIR__.'/../Resources/schemas/xliff-core-2.0.xsd'); + $xmlUri = 'informativeCopiesOf3rdPartySchemas/w3c/xml.xsd'; + } else { + throw new InvalidArgumentException(sprintf('No support implemented for loading XLIFF version "%s".', $xliffVersion)); + } + + return self::fixXmlLocation($schemaSource, $xmlUri); + } + + /** + * Internally changes the URI of a dependent xsd to be loaded locally. + */ + private static function fixXmlLocation(string $schemaSource, string $xmlUri): string + { + $newPath = str_replace('\\', '/', __DIR__).'/../Resources/schemas/xml.xsd'; + $parts = explode('/', $newPath); + $locationstart = 'file:///'; + if (0 === stripos($newPath, 'phar://')) { + $tmpfile = tempnam(sys_get_temp_dir(), 'symfony'); + if ($tmpfile) { + copy($newPath, $tmpfile); + $parts = explode('/', str_replace('\\', '/', $tmpfile)); + } else { + array_shift($parts); + $locationstart = 'phar:///'; + } + } + + $drive = '\\' === \DIRECTORY_SEPARATOR ? array_shift($parts).'/' : ''; + $newPath = $locationstart.$drive.implode('/', array_map('rawurlencode', $parts)); + + return str_replace($xmlUri, $newPath, $schemaSource); + } + + /** + * Returns the XML errors of the internal XML parser. + */ + private static function getXmlErrors(bool $internalErrors): array + { + $errors = []; + foreach (libxml_get_errors() as $error) { + $errors[] = [ + 'level' => \LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR', + 'code' => $error->code, + 'message' => trim($error->message), + 'file' => $error->file ?: 'n/a', + 'line' => $error->line, + 'column' => $error->column, + ]; + } + + libxml_clear_errors(); + libxml_use_internal_errors($internalErrors); + + return $errors; + } +} diff --git a/vendor/symfony/translation/Writer/TranslationWriter.php b/vendor/symfony/translation/Writer/TranslationWriter.php new file mode 100644 index 000000000..61e03cb0e --- /dev/null +++ b/vendor/symfony/translation/Writer/TranslationWriter.php @@ -0,0 +1,75 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Writer; + +use Symfony\Component\Translation\Dumper\DumperInterface; +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\Exception\RuntimeException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * TranslationWriter writes translation messages. + * + * @author Michel Salib + */ +class TranslationWriter implements TranslationWriterInterface +{ + /** + * @var array + */ + private array $dumpers = []; + + /** + * Adds a dumper to the writer. + * + * @return void + */ + public function addDumper(string $format, DumperInterface $dumper) + { + $this->dumpers[$format] = $dumper; + } + + /** + * Obtains the list of supported formats. + */ + public function getFormats(): array + { + return array_keys($this->dumpers); + } + + /** + * Writes translation from the catalogue according to the selected format. + * + * @param string $format The format to use to dump the messages + * @param array $options Options that are passed to the dumper + * + * @return void + * + * @throws InvalidArgumentException + */ + public function write(MessageCatalogue $catalogue, string $format, array $options = []) + { + if (!isset($this->dumpers[$format])) { + throw new InvalidArgumentException(sprintf('There is no dumper associated with format "%s".', $format)); + } + + // get the right dumper + $dumper = $this->dumpers[$format]; + + if (isset($options['path']) && !is_dir($options['path']) && !@mkdir($options['path'], 0777, true) && !is_dir($options['path'])) { + throw new RuntimeException(sprintf('Translation Writer was not able to create directory "%s".', $options['path'])); + } + + // save + $dumper->dump($catalogue, $options); + } +} diff --git a/vendor/symfony/translation/Writer/TranslationWriterInterface.php b/vendor/symfony/translation/Writer/TranslationWriterInterface.php new file mode 100644 index 000000000..5ebb9794a --- /dev/null +++ b/vendor/symfony/translation/Writer/TranslationWriterInterface.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation\Writer; + +use Symfony\Component\Translation\Exception\InvalidArgumentException; +use Symfony\Component\Translation\MessageCatalogue; + +/** + * TranslationWriter writes translation messages. + * + * @author Michel Salib + */ +interface TranslationWriterInterface +{ + /** + * Writes translation from the catalogue according to the selected format. + * + * @param string $format The format to use to dump the messages + * @param array $options Options that are passed to the dumper + * + * @return void + * + * @throws InvalidArgumentException + */ + public function write(MessageCatalogue $catalogue, string $format, array $options = []); +} diff --git a/vendor/symfony/translation/composer.json b/vendor/symfony/translation/composer.json new file mode 100644 index 000000000..ee8e415dd --- /dev/null +++ b/vendor/symfony/translation/composer.json @@ -0,0 +1,60 @@ +{ + "name": "symfony/translation", + "type": "library", + "description": "Provides tools to internationalize your application", + "keywords": [], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.13", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4", + "symfony/console": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "autoload": { + "files": [ "Resources/functions.php" ], + "psr-4": { "Symfony\\Component\\Translation\\": "" }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "minimum-stability": "dev" +} diff --git a/vendor/symfony/var-exporter/CHANGELOG.md b/vendor/symfony/var-exporter/CHANGELOG.md index 3406c30ef..1b21a0bbd 100644 --- a/vendor/symfony/var-exporter/CHANGELOG.md +++ b/vendor/symfony/var-exporter/CHANGELOG.md @@ -1,6 +1,14 @@ CHANGELOG ========= +6.2 +--- + + * Add support for lazy ghost objects and virtual proxies + * Add `Hydrator::hydrate()` + * Preserve PHP references also when using `Hydrator::hydrate()` or `Instantiator::instantiate()` + * Add support for hydrating from native (array) casts + 5.1.0 ----- diff --git a/vendor/symfony/var-exporter/Exception/LogicException.php b/vendor/symfony/var-exporter/Exception/LogicException.php new file mode 100644 index 000000000..619d0559a --- /dev/null +++ b/vendor/symfony/var-exporter/Exception/LogicException.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter\Exception; + +class LogicException extends \LogicException implements ExceptionInterface +{ +} diff --git a/vendor/symfony/var-exporter/Hydrator.php b/vendor/symfony/var-exporter/Hydrator.php new file mode 100644 index 000000000..5f456fb3c --- /dev/null +++ b/vendor/symfony/var-exporter/Hydrator.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter; + +use Symfony\Component\VarExporter\Internal\Hydrator as InternalHydrator; + +/** + * Utility class to hydrate the properties of an object. + * + * @author Nicolas Grekas + */ +final class Hydrator +{ + /** + * Sets the properties of an object, including private and protected ones. + * + * For example: + * + * // Sets the public or protected $object->propertyName property + * Hydrator::hydrate($object, ['propertyName' => $propertyValue]); + * + * // Sets a private property defined on its parent Bar class: + * Hydrator::hydrate($object, ["\0Bar\0privateBarProperty" => $propertyValue]); + * + * // Alternative way to set the private $object->privateBarProperty property + * Hydrator::hydrate($object, [], [ + * Bar::class => ['privateBarProperty' => $propertyValue], + * ]); + * + * Instances of ArrayObject, ArrayIterator and SplObjectStorage can be hydrated + * by using the special "\0" property name to define their internal value: + * + * // Hydrates an SplObjectStorage where $info1 is attached to $obj1, etc. + * Hydrator::hydrate($object, ["\0" => [$obj1, $info1, $obj2, $info2...]]); + * + * // Hydrates an ArrayObject populated with $inputArray + * Hydrator::hydrate($object, ["\0" => [$inputArray]]); + * + * @template T of object + * + * @param T $instance The object to hydrate + * @param array $properties The properties to set on the instance + * @param array> $scopedProperties The properties to set on the instance, + * keyed by their declaring class + * + * @return T + */ + public static function hydrate(object $instance, array $properties = [], array $scopedProperties = []): object + { + if ($properties) { + $class = $instance::class; + $propertyScopes = InternalHydrator::$propertyScopes[$class] ??= InternalHydrator::getPropertyScopes($class); + + foreach ($properties as $name => &$value) { + [$scope, $name, $readonlyScope] = $propertyScopes[$name] ?? [$class, $name, $class]; + $scopedProperties[$readonlyScope ?? $scope][$name] = &$value; + } + unset($value); + } + + foreach ($scopedProperties as $scope => $properties) { + if ($properties) { + (InternalHydrator::$simpleHydrators[$scope] ??= InternalHydrator::getSimpleHydrator($scope))($properties, $instance); + } + } + + return $instance; + } +} diff --git a/vendor/symfony/var-exporter/Instantiator.php b/vendor/symfony/var-exporter/Instantiator.php index 38fce27b6..10200c00b 100644 --- a/vendor/symfony/var-exporter/Instantiator.php +++ b/vendor/symfony/var-exporter/Instantiator.php @@ -13,7 +13,6 @@ namespace Symfony\Component\VarExporter; use Symfony\Component\VarExporter\Exception\ExceptionInterface; use Symfony\Component\VarExporter\Exception\NotInstantiableTypeException; -use Symfony\Component\VarExporter\Internal\Hydrator; use Symfony\Component\VarExporter\Internal\Registry; /** @@ -26,67 +25,35 @@ final class Instantiator /** * Creates an object and sets its properties without calling its constructor nor any other methods. * - * For example: + * @see Hydrator::hydrate() for examples * - * // creates an empty instance of Foo - * Instantiator::instantiate(Foo::class); + * @template T of object * - * // creates a Foo instance and sets one of its properties - * Instantiator::instantiate(Foo::class, ['propertyName' => $propertyValue]); + * @param class-string $class The class of the instance to create + * @param array $properties The properties to set on the instance + * @param array> $scopedProperties The properties to set on the instance, + * keyed by their declaring class * - * // creates a Foo instance and sets a private property defined on its parent Bar class - * Instantiator::instantiate(Foo::class, [], [ - * Bar::class => ['privateBarProperty' => $propertyValue], - * ]); - * - * Instances of ArrayObject, ArrayIterator and SplObjectStorage can be created - * by using the special "\0" property name to define their internal value: - * - * // creates an SplObjectStorage where $info1 is attached to $obj1, etc. - * Instantiator::instantiate(SplObjectStorage::class, ["\0" => [$obj1, $info1, $obj2, $info2...]]); - * - * // creates an ArrayObject populated with $inputArray - * Instantiator::instantiate(ArrayObject::class, ["\0" => [$inputArray]]); - * - * @param string $class The class of the instance to create - * @param array $properties The properties to set on the instance - * @param array $privateProperties The private properties to set on the instance, - * keyed by their declaring class + * @return T * * @throws ExceptionInterface When the instance cannot be created */ - public static function instantiate(string $class, array $properties = [], array $privateProperties = []): object + public static function instantiate(string $class, array $properties = [], array $scopedProperties = []): object { - $reflector = Registry::$reflectors[$class] ?? Registry::getClassReflector($class); + $reflector = Registry::$reflectors[$class] ??= Registry::getClassReflector($class); if (Registry::$cloneable[$class]) { - $wrappedInstance = [clone Registry::$prototypes[$class]]; + $instance = clone Registry::$prototypes[$class]; } elseif (Registry::$instantiableWithoutConstructor[$class]) { - $wrappedInstance = [$reflector->newInstanceWithoutConstructor()]; + $instance = $reflector->newInstanceWithoutConstructor(); } elseif (null === Registry::$prototypes[$class]) { throw new NotInstantiableTypeException($class); } elseif ($reflector->implementsInterface('Serializable') && !method_exists($class, '__unserialize')) { - $wrappedInstance = [unserialize('C:'.\strlen($class).':"'.$class.'":0:{}')]; + $instance = unserialize('C:'.\strlen($class).':"'.$class.'":0:{}'); } else { - $wrappedInstance = [unserialize('O:'.\strlen($class).':"'.$class.'":0:{}')]; + $instance = unserialize('O:'.\strlen($class).':"'.$class.'":0:{}'); } - if ($properties) { - $privateProperties[$class] = isset($privateProperties[$class]) ? $properties + $privateProperties[$class] : $properties; - } - - foreach ($privateProperties as $class => $properties) { - if (!$properties) { - continue; - } - foreach ($properties as $name => $value) { - // because they're also used for "unserialization", hydrators - // deal with array of instances, so we need to wrap values - $properties[$name] = [$value]; - } - (Hydrator::$hydrators[$class] ?? Hydrator::getHydrator($class))($properties, $wrappedInstance); - } - - return $wrappedInstance[0]; + return $properties || $scopedProperties ? Hydrator::hydrate($instance, $properties, $scopedProperties) : $instance; } } diff --git a/vendor/symfony/var-exporter/Internal/Exporter.php b/vendor/symfony/var-exporter/Internal/Exporter.php index 6ee3ee7f4..e7ee44b09 100644 --- a/vendor/symfony/var-exporter/Internal/Exporter.php +++ b/vendor/symfony/var-exporter/Internal/Exporter.php @@ -31,9 +31,11 @@ class Exporter * @param int &$objectsCount * @param bool &$valuesAreStatic * + * @return array + * * @throws NotInstantiableTypeException When a value cannot be serialized */ - public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount, &$valuesAreStatic): array + public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount, &$valuesAreStatic) { $refs = $values; foreach ($values as $k => $value) { @@ -71,22 +73,31 @@ class Exporter goto handle_value; } - $class = \get_class($value); - $reflector = Registry::$reflectors[$class] ?? Registry::getClassReflector($class); + $class = $value::class; + $reflector = Registry::$reflectors[$class] ??= Registry::getClassReflector($class); + $properties = []; if ($reflector->hasMethod('__serialize')) { if (!$reflector->getMethod('__serialize')->isPublic()) { throw new \Error(sprintf('Call to %s method "%s::__serialize()".', $reflector->getMethod('__serialize')->isProtected() ? 'protected' : 'private', $class)); } - if (!\is_array($properties = $value->__serialize())) { + if (!\is_array($serializeProperties = $value->__serialize())) { throw new \TypeError($class.'::__serialize() must return an array'); } + if ($reflector->hasMethod('__unserialize')) { + $properties = $serializeProperties; + } else { + foreach ($serializeProperties as $n => $v) { + $c = \PHP_VERSION_ID >= 80100 && $reflector->hasProperty($n) && ($p = $reflector->getProperty($n))->isReadOnly() ? $p->class : 'stdClass'; + $properties[$c][$n] = $v; + } + } + goto prepare_value; } - $properties = []; $sleep = null; $proto = Registry::$prototypes[$class]; @@ -133,7 +144,7 @@ class Exporter $i = 0; $n = (string) $name; if ('' === $n || "\0" !== $n[0]) { - $c = \PHP_VERSION_ID >= 80100 && $reflector->hasProperty($n) && ($p = $reflector->getProperty($n))->isReadOnly() ? $p->class : 'stdClass'; + $c = $reflector->hasProperty($n) && ($p = $reflector->getProperty($n))->isReadOnly() ? $p->class : 'stdClass'; } elseif ('*' === $n[1]) { $n = substr($n, 3); $c = $reflector->getProperty($n)->class; @@ -189,7 +200,7 @@ class Exporter return $values; } - public static function export($value, string $indent = '') + public static function export($value, $indent = '') { switch (true) { case \is_int($value) || \is_float($value): return var_export($value, true); @@ -228,7 +239,7 @@ class Exporter return substr($m[1], 0, -2); } - if ('n".\'' === substr($m[1], -4)) { + if (str_ends_with($m[1], 'n".\'')) { return substr_replace($m[1], "\n".$subIndent.".'".$m[2], -2); } @@ -366,7 +377,7 @@ class Exporter self::export($value->wakeups, $subIndent), ]; - return '\\'.\get_class($value)."::hydrate(\n".$subIndent.implode(",\n".$subIndent, $code)."\n".$indent.')'; + return '\\'.$value::class."::hydrate(\n".$subIndent.implode(",\n".$subIndent, $code)."\n".$indent.')'; } /** @@ -376,7 +387,7 @@ class Exporter private static function getArrayObjectProperties($value, $proto): array { $reflector = $value instanceof \ArrayIterator ? 'ArrayIterator' : 'ArrayObject'; - $reflector = Registry::$reflectors[$reflector] ?? Registry::getClassReflector($reflector); + $reflector = Registry::$reflectors[$reflector] ??= Registry::getClassReflector($reflector); $properties = [ $arrayValue = (array) $value, diff --git a/vendor/symfony/var-exporter/Internal/Hydrator.php b/vendor/symfony/var-exporter/Internal/Hydrator.php index 5ed6bdc94..f665f6ee1 100644 --- a/vendor/symfony/var-exporter/Internal/Hydrator.php +++ b/vendor/symfony/var-exporter/Internal/Hydrator.php @@ -21,6 +21,8 @@ use Symfony\Component\VarExporter\Exception\ClassNotFoundException; class Hydrator { public static $hydrators = []; + public static $simpleHydrators = []; + public static $propertyScopes = []; public $registry; public $values; @@ -40,7 +42,7 @@ class Hydrator public static function hydrate($objects, $values, $properties, $value, $wakeups) { foreach ($properties as $class => $vars) { - (self::$hydrators[$class] ?? self::getHydrator($class))($vars, $objects); + (self::$hydrators[$class] ??= self::getHydrator($class))($vars, $objects); } foreach ($wakeups as $k => $v) { if (\is_array($v)) { @@ -55,26 +57,28 @@ class Hydrator public static function getHydrator($class) { + $baseHydrator = self::$hydrators['stdClass'] ??= static function ($properties, $objects) { + foreach ($properties as $name => $values) { + foreach ($values as $i => $v) { + $objects[$i]->$name = $v; + } + } + }; + switch ($class) { case 'stdClass': - return self::$hydrators[$class] = static function ($properties, $objects) { - foreach ($properties as $name => $values) { - foreach ($values as $i => $v) { - $objects[$i]->$name = $v; - } - } - }; + return $baseHydrator; case 'ErrorException': - return self::$hydrators[$class] = (self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'))->bindTo(null, new class() extends \ErrorException { + return $baseHydrator->bindTo(null, new class() extends \ErrorException { }); case 'TypeError': - return self::$hydrators[$class] = (self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'))->bindTo(null, new class() extends \Error { + return $baseHydrator->bindTo(null, new class() extends \Error { }); case 'SplObjectStorage': - return self::$hydrators[$class] = static function ($properties, $objects) { + return static function ($properties, $objects) { foreach ($properties as $name => $values) { if ("\0" === $name) { foreach ($values as $i => $v) { @@ -99,9 +103,9 @@ class Hydrator switch ($class) { case 'ArrayIterator': case 'ArrayObject': - $constructor = \Closure::fromCallable([$classReflector->getConstructor(), 'invokeArgs']); + $constructor = $classReflector->getConstructor()->invokeArgs(...); - return self::$hydrators[$class] = static function ($properties, $objects) use ($constructor) { + return static function ($properties, $objects) use ($constructor) { foreach ($properties as $name => $values) { if ("\0" !== $name) { foreach ($values as $i => $v) { @@ -116,26 +120,25 @@ class Hydrator } if (!$classReflector->isInternal()) { - return self::$hydrators[$class] = (self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'))->bindTo(null, $class); + return $baseHydrator->bindTo(null, $class); } if ($classReflector->name !== $class) { - return self::$hydrators[$classReflector->name] ?? self::getHydrator($classReflector->name); + return self::$hydrators[$classReflector->name] ??= self::getHydrator($classReflector->name); } $propertySetters = []; foreach ($classReflector->getProperties() as $propertyReflector) { if (!$propertyReflector->isStatic()) { - $propertyReflector->setAccessible(true); - $propertySetters[$propertyReflector->name] = \Closure::fromCallable([$propertyReflector, 'setValue']); + $propertySetters[$propertyReflector->name] = $propertyReflector->setValue(...); } } if (!$propertySetters) { - return self::$hydrators[$class] = self::$hydrators['stdClass'] ?? self::getHydrator('stdClass'); + return $baseHydrator; } - return self::$hydrators[$class] = static function ($properties, $objects) use ($propertySetters) { + return static function ($properties, $objects) use ($propertySetters) { foreach ($properties as $name => $values) { if ($setValue = $propertySetters[$name] ?? null) { foreach ($values as $i => $v) { @@ -149,4 +152,148 @@ class Hydrator } }; } + + public static function getSimpleHydrator($class) + { + $baseHydrator = self::$simpleHydrators['stdClass'] ??= (function ($properties, $object) { + $readonly = (array) $this; + + foreach ($properties as $name => &$value) { + $object->$name = $value; + + if (!($readonly[$name] ?? false)) { + $object->$name = &$value; + } + } + })->bindTo(new \stdClass()); + + switch ($class) { + case 'stdClass': + return $baseHydrator; + + case 'ErrorException': + return $baseHydrator->bindTo(new \stdClass(), new class() extends \ErrorException { + }); + + case 'TypeError': + return $baseHydrator->bindTo(new \stdClass(), new class() extends \Error { + }); + + case 'SplObjectStorage': + return static function ($properties, $object) { + foreach ($properties as $name => &$value) { + if ("\0" !== $name) { + $object->$name = $value; + $object->$name = &$value; + continue; + } + for ($i = 0; $i < \count($value); ++$i) { + $object->attach($value[$i], $value[++$i]); + } + } + }; + } + + if (!class_exists($class) && !interface_exists($class, false) && !trait_exists($class, false)) { + throw new ClassNotFoundException($class); + } + $classReflector = new \ReflectionClass($class); + + switch ($class) { + case 'ArrayIterator': + case 'ArrayObject': + $constructor = $classReflector->getConstructor()->invokeArgs(...); + + return static function ($properties, $object) use ($constructor) { + foreach ($properties as $name => &$value) { + if ("\0" === $name) { + $constructor($object, $value); + } else { + $object->$name = $value; + $object->$name = &$value; + } + } + }; + } + + if (!$classReflector->isInternal()) { + $readonly = new \stdClass(); + foreach ($classReflector->getProperties(\ReflectionProperty::IS_READONLY) as $propertyReflector) { + if ($class === $propertyReflector->class) { + $readonly->{$propertyReflector->name} = true; + } + } + + return $baseHydrator->bindTo($readonly, $class); + } + + if ($classReflector->name !== $class) { + return self::$simpleHydrators[$classReflector->name] ??= self::getSimpleHydrator($classReflector->name); + } + + $propertySetters = []; + foreach ($classReflector->getProperties() as $propertyReflector) { + if (!$propertyReflector->isStatic()) { + $propertySetters[$propertyReflector->name] = $propertyReflector->setValue(...); + } + } + + if (!$propertySetters) { + return $baseHydrator; + } + + return static function ($properties, $object) use ($propertySetters) { + foreach ($properties as $name => &$value) { + if ($setValue = $propertySetters[$name] ?? null) { + $setValue($object, $value); + } else { + $object->$name = $value; + $object->$name = &$value; + } + } + }; + } + + /** + * @return array + */ + public static function getPropertyScopes($class) + { + $propertyScopes = []; + $r = new \ReflectionClass($class); + + foreach ($r->getProperties() as $property) { + $flags = $property->getModifiers(); + + if (\ReflectionProperty::IS_STATIC & $flags) { + continue; + } + $name = $property->name; + + if (\ReflectionProperty::IS_PRIVATE & $flags) { + $propertyScopes["\0$class\0$name"] = $propertyScopes[$name] = [$class, $name, $flags & \ReflectionProperty::IS_READONLY ? $class : null]; + continue; + } + $propertyScopes[$name] = [$class, $name, $flags & \ReflectionProperty::IS_READONLY ? $property->class : null]; + + if (\ReflectionProperty::IS_PROTECTED & $flags) { + $propertyScopes["\0*\0$name"] = $propertyScopes[$name]; + } + } + + while ($r = $r->getParentClass()) { + $class = $r->name; + + foreach ($r->getProperties(\ReflectionProperty::IS_PRIVATE) as $property) { + if (!$property->isStatic()) { + $name = $property->name; + $readonlyScope = $property->isReadOnly() ? $class : null; + $propertyScopes["\0$class\0$name"] = [$class, $name, $readonlyScope]; + $propertyScopes[$name] ??= [$class, $name, $readonlyScope]; + } + } + } + + return $propertyScopes; + } } diff --git a/vendor/symfony/var-exporter/Internal/LazyObjectRegistry.php b/vendor/symfony/var-exporter/Internal/LazyObjectRegistry.php new file mode 100644 index 000000000..d9d992557 --- /dev/null +++ b/vendor/symfony/var-exporter/Internal/LazyObjectRegistry.php @@ -0,0 +1,146 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter\Internal; + +/** + * Stores the state of lazy objects and caches related reflection information. + * + * As a micro-optimization, this class uses no type declarations. + * + * @internal + */ +class LazyObjectRegistry +{ + /** + * @var array + */ + public static $classReflectors = []; + + /** + * @var array> + */ + public static $defaultProperties = []; + + /** + * @var array> + */ + public static $classResetters = []; + + /** + * @var array + */ + public static $classAccessors = []; + + /** + * @var array + */ + public static $parentMethods = []; + + public static ?\Closure $noInitializerState = null; + + public static function getClassResetters($class) + { + $classProperties = []; + + if ((self::$classReflectors[$class] ??= new \ReflectionClass($class))->isInternal()) { + $propertyScopes = []; + } else { + $propertyScopes = Hydrator::$propertyScopes[$class] ??= Hydrator::getPropertyScopes($class); + } + + foreach ($propertyScopes as $key => [$scope, $name, $readonlyScope]) { + $propertyScopes[$k = "\0$scope\0$name"] ?? $propertyScopes[$k = "\0*\0$name"] ?? $k = $name; + + if ($k === $key && "\0$class\0lazyObjectState" !== $k) { + $classProperties[$readonlyScope ?? $scope][$name] = $key; + } + } + + $resetters = []; + foreach ($classProperties as $scope => $properties) { + $resetters[] = \Closure::bind(static function ($instance, $skippedProperties, $onlyProperties = null) use ($properties) { + foreach ($properties as $name => $key) { + if (!\array_key_exists($key, $skippedProperties) && (null === $onlyProperties || \array_key_exists($key, $onlyProperties))) { + unset($instance->$name); + } + } + }, null, $scope); + } + + $resetters[] = static function ($instance, $skippedProperties, $onlyProperties = null) { + foreach ((array) $instance as $name => $value) { + if ("\0" !== ($name[0] ?? '') && !\array_key_exists($name, $skippedProperties) && (null === $onlyProperties || \array_key_exists($name, $onlyProperties))) { + unset($instance->$name); + } + } + }; + + return $resetters; + } + + public static function getClassAccessors($class) + { + return \Closure::bind(static fn () => [ + 'get' => static function &($instance, $name, $readonly) { + if (!$readonly) { + return $instance->$name; + } + $value = $instance->$name; + + return $value; + }, + 'set' => static function ($instance, $name, $value) { + $instance->$name = $value; + }, + 'isset' => static fn ($instance, $name) => isset($instance->$name), + 'unset' => static function ($instance, $name) { + unset($instance->$name); + }, + ], null, \Closure::class === $class ? null : $class)(); + } + + public static function getParentMethods($class) + { + $parent = get_parent_class($class); + $methods = []; + + foreach (['set', 'isset', 'unset', 'clone', 'serialize', 'unserialize', 'sleep', 'wakeup', 'destruct', 'get'] as $method) { + if (!$parent || !method_exists($parent, '__'.$method)) { + $methods[$method] = false; + } else { + $m = new \ReflectionMethod($parent, '__'.$method); + $methods[$method] = !$m->isAbstract() && !$m->isPrivate(); + } + } + + $methods['get'] = $methods['get'] ? ($m->returnsReference() ? 2 : 1) : 0; + + return $methods; + } + + public static function getScope($propertyScopes, $class, $property, $readonlyScope = null) + { + if (null === $readonlyScope && !isset($propertyScopes[$k = "\0$class\0$property"]) && !isset($propertyScopes[$k = "\0*\0$property"])) { + return null; + } + $frame = debug_backtrace(\DEBUG_BACKTRACE_PROVIDE_OBJECT | \DEBUG_BACKTRACE_IGNORE_ARGS, 3)[2]; + + if (\ReflectionProperty::class === $scope = $frame['class'] ?? \Closure::class) { + $scope = $frame['object']->class; + } + if (null === $readonlyScope && '*' === $k[1] && ($class === $scope || (is_subclass_of($class, $scope) && !isset($propertyScopes["\0$scope\0$property"])))) { + return null; + } + + return $scope; + } +} diff --git a/vendor/symfony/var-exporter/Internal/LazyObjectState.php b/vendor/symfony/var-exporter/Internal/LazyObjectState.php new file mode 100644 index 000000000..2f649dd1c --- /dev/null +++ b/vendor/symfony/var-exporter/Internal/LazyObjectState.php @@ -0,0 +1,130 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter\Internal; + +use Symfony\Component\VarExporter\Hydrator as PublicHydrator; + +/** + * Keeps the state of lazy objects. + * + * As a micro-optimization, this class uses no type declarations. + * + * @internal + */ +class LazyObjectState +{ + public const STATUS_UNINITIALIZED_FULL = 1; + public const STATUS_UNINITIALIZED_PARTIAL = 2; + public const STATUS_INITIALIZED_FULL = 3; + public const STATUS_INITIALIZED_PARTIAL = 4; + + /** + * @var array + */ + public readonly array $skippedProperties; + + /** + * @var self::STATUS_* + */ + public int $status = 0; + + public object $realInstance; + + public function __construct(public readonly \Closure|array $initializer, $skippedProperties = []) + { + $this->skippedProperties = $skippedProperties; + $this->status = \is_array($initializer) ? self::STATUS_UNINITIALIZED_PARTIAL : self::STATUS_UNINITIALIZED_FULL; + } + + public function initialize($instance, $propertyName, $propertyScope) + { + if (self::STATUS_INITIALIZED_FULL === $this->status) { + return self::STATUS_INITIALIZED_FULL; + } + + if (\is_array($this->initializer)) { + $class = $instance::class; + $propertyScope ??= $class; + $propertyScopes = Hydrator::$propertyScopes[$class]; + $propertyScopes[$k = "\0$propertyScope\0$propertyName"] ?? $propertyScopes[$k = "\0*\0$propertyName"] ?? $k = $propertyName; + + if ($initializer = $this->initializer[$k] ?? null) { + $value = $initializer(...[$instance, $propertyName, $propertyScope, LazyObjectRegistry::$defaultProperties[$class][$k] ?? null]); + $accessor = LazyObjectRegistry::$classAccessors[$propertyScope] ??= LazyObjectRegistry::getClassAccessors($propertyScope); + $accessor['set']($instance, $propertyName, $value); + + return $this->status = self::STATUS_INITIALIZED_PARTIAL; + } + + $status = self::STATUS_UNINITIALIZED_PARTIAL; + + if ($initializer = $this->initializer["\0"] ?? null) { + if (!\is_array($values = $initializer($instance, LazyObjectRegistry::$defaultProperties[$class]))) { + throw new \TypeError(sprintf('The lazy-initializer defined for instance of "%s" must return an array, got "%s".', $class, get_debug_type($values))); + } + $properties = (array) $instance; + foreach ($values as $key => $value) { + if ($k === $key) { + $status = self::STATUS_INITIALIZED_PARTIAL; + } + if (!\array_key_exists($key, $properties) && [$scope, $name, $readonlyScope] = $propertyScopes[$key] ?? null) { + $scope = $readonlyScope ?? ('*' !== $scope ? $scope : $class); + $accessor = LazyObjectRegistry::$classAccessors[$scope] ??= LazyObjectRegistry::getClassAccessors($scope); + $accessor['set']($instance, $name, $value); + } + } + } + + return $status; + } + + $this->status = self::STATUS_INITIALIZED_FULL; + + try { + if ($defaultProperties = array_diff_key(LazyObjectRegistry::$defaultProperties[$instance::class], $this->skippedProperties)) { + PublicHydrator::hydrate($instance, $defaultProperties); + } + + ($this->initializer)($instance); + } catch (\Throwable $e) { + $this->status = self::STATUS_UNINITIALIZED_FULL; + $this->reset($instance); + + throw $e; + } + + return self::STATUS_INITIALIZED_FULL; + } + + public function reset($instance): void + { + $class = $instance::class; + $propertyScopes = Hydrator::$propertyScopes[$class] ??= Hydrator::getPropertyScopes($class); + $skippedProperties = $this->skippedProperties; + $properties = (array) $instance; + $onlyProperties = \is_array($this->initializer) ? $this->initializer : null; + + foreach ($propertyScopes as $key => [$scope, $name, $readonlyScope]) { + $propertyScopes[$k = "\0$scope\0$name"] ?? $propertyScopes[$k = "\0*\0$name"] ?? $k = $name; + + if ($k === $key && (null !== $readonlyScope || !\array_key_exists($k, $properties))) { + $skippedProperties[$k] = true; + } + } + + foreach (LazyObjectRegistry::$classResetters[$class] as $reset) { + $reset($instance, $skippedProperties, $onlyProperties); + } + + $this->status = self::STATUS_INITIALIZED_FULL === $this->status ? self::STATUS_UNINITIALIZED_FULL : self::STATUS_UNINITIALIZED_PARTIAL; + } +} diff --git a/vendor/symfony/var-exporter/Internal/LazyObjectTrait.php b/vendor/symfony/var-exporter/Internal/LazyObjectTrait.php new file mode 100644 index 000000000..cccdf6cff --- /dev/null +++ b/vendor/symfony/var-exporter/Internal/LazyObjectTrait.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter\Internal; + +if (\PHP_VERSION_ID >= 80300) { + /** + * @internal + */ + trait LazyObjectTrait + { + private readonly LazyObjectState $lazyObjectState; + } +} else { + /** + * @internal + */ + trait LazyObjectTrait + { + private LazyObjectState $lazyObjectState; + } +} diff --git a/vendor/symfony/var-exporter/Internal/Registry.php b/vendor/symfony/var-exporter/Internal/Registry.php index a9fb06146..09d2de2a0 100644 --- a/vendor/symfony/var-exporter/Internal/Registry.php +++ b/vendor/symfony/var-exporter/Internal/Registry.php @@ -58,9 +58,9 @@ class Registry public static function f($class) { - $reflector = self::$reflectors[$class] ?? self::getClassReflector($class, true, false); + $reflector = self::$reflectors[$class] ??= self::getClassReflector($class, true, false); - return self::$factories[$class] = \Closure::fromCallable([$reflector, 'newInstanceWithoutConstructor']); + return self::$factories[$class] = [$reflector, 'newInstanceWithoutConstructor'](...); } public static function getClassReflector($class, $instantiableWithoutConstructor = false, $cloneable = null) @@ -75,17 +75,17 @@ class Registry } elseif (!$isClass || $reflector->isAbstract()) { throw new NotInstantiableTypeException($class); } elseif ($reflector->name !== $class) { - $reflector = self::$reflectors[$name = $reflector->name] ?? self::getClassReflector($name, false, $cloneable); + $reflector = self::$reflectors[$name = $reflector->name] ??= self::getClassReflector($name, false, $cloneable); self::$cloneable[$class] = self::$cloneable[$name]; self::$instantiableWithoutConstructor[$class] = self::$instantiableWithoutConstructor[$name]; self::$prototypes[$class] = self::$prototypes[$name]; - return self::$reflectors[$class] = $reflector; + return $reflector; } else { try { $proto = $reflector->newInstanceWithoutConstructor(); $instantiableWithoutConstructor = true; - } catch (\ReflectionException $e) { + } catch (\ReflectionException) { $proto = $reflector->implementsInterface('Serializable') && !method_exists($class, '__unserialize') ? 'C:' : 'O:'; if ('C:' === $proto && !$reflector->getMethod('unserialize')->isInternal()) { $proto = null; @@ -132,15 +132,13 @@ class Registry new \ReflectionProperty(\Error::class, 'trace'), new \ReflectionProperty(\Exception::class, 'trace'), ]; - $setTrace[0]->setAccessible(true); - $setTrace[1]->setAccessible(true); - $setTrace[0] = \Closure::fromCallable([$setTrace[0], 'setValue']); - $setTrace[1] = \Closure::fromCallable([$setTrace[1], 'setValue']); + $setTrace[0] = $setTrace[0]->setValue(...); + $setTrace[1] = $setTrace[1]->setValue(...); } $setTrace[$proto instanceof \Exception]($proto, []); } - return self::$reflectors[$class] = $reflector; + return $reflector; } } diff --git a/vendor/symfony/var-exporter/LICENSE b/vendor/symfony/var-exporter/LICENSE index 99757d517..7536caeae 100644 --- a/vendor/symfony/var-exporter/LICENSE +++ b/vendor/symfony/var-exporter/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2023 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/var-exporter/LazyGhostTrait.php b/vendor/symfony/var-exporter/LazyGhostTrait.php new file mode 100644 index 000000000..13e33f59c --- /dev/null +++ b/vendor/symfony/var-exporter/LazyGhostTrait.php @@ -0,0 +1,391 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter; + +use Symfony\Component\VarExporter\Internal\Hydrator; +use Symfony\Component\VarExporter\Internal\LazyObjectRegistry as Registry; +use Symfony\Component\VarExporter\Internal\LazyObjectState; +use Symfony\Component\VarExporter\Internal\LazyObjectTrait; + +trait LazyGhostTrait +{ + use LazyObjectTrait; + + /** + * Creates a lazy-loading ghost instance. + * + * When the initializer is a closure, it should initialize all properties at + * once and is given the instance to initialize as argument. + * + * When the initializer is an array of closures, it should be indexed by + * properties and closures should accept 4 arguments: the instance to + * initialize, the property to initialize, its write-scope, and its default + * value. Each closure should return the value of the corresponding property. + * The special "\0" key can be used to define a closure that returns all + * properties at once when full-initialization is needed; it takes the + * instance and its default properties as arguments. + * + * Properties should be indexed by their array-cast name, see + * https://php.net/manual/language.types.array#language.types.array.casting + * + * @param (\Closure(static):void + * |array + * |array{"\0": \Closure(static, array):array}) $initializer + * @param array|null $skippedProperties An array indexed by the properties to skip, aka the ones + * that the initializer doesn't set when its a closure + * @param static|null $instance + */ + public static function createLazyGhost(\Closure|array $initializer, array $skippedProperties = null, object $instance = null): static + { + $onlyProperties = null === $skippedProperties && \is_array($initializer) ? $initializer : null; + + if (self::class !== $class = $instance ? $instance::class : static::class) { + $skippedProperties["\0".self::class."\0lazyObjectState"] = true; + } elseif (\defined($class.'::LAZY_OBJECT_PROPERTY_SCOPES')) { + Hydrator::$propertyScopes[$class] ??= $class::LAZY_OBJECT_PROPERTY_SCOPES; + } + + $instance ??= (Registry::$classReflectors[$class] ??= new \ReflectionClass($class))->newInstanceWithoutConstructor(); + Registry::$defaultProperties[$class] ??= (array) $instance; + $instance->lazyObjectState = new LazyObjectState($initializer, $skippedProperties ??= []); + + foreach (Registry::$classResetters[$class] ??= Registry::getClassResetters($class) as $reset) { + $reset($instance, $skippedProperties, $onlyProperties); + } + + return $instance; + } + + /** + * Returns whether the object is initialized. + * + * @param $partial Whether partially initialized objects should be considered as initialized + */ + public function isLazyObjectInitialized(bool $partial = false): bool + { + if (!$state = $this->lazyObjectState ?? null) { + return true; + } + + if (!\is_array($state->initializer)) { + return LazyObjectState::STATUS_INITIALIZED_FULL === $state->status; + } + + $class = $this::class; + $properties = (array) $this; + + if ($partial) { + return (bool) array_intersect_key($state->initializer, $properties); + } + + $propertyScopes = Hydrator::$propertyScopes[$class] ??= Hydrator::getPropertyScopes($class); + foreach ($state->initializer as $key => $initializer) { + if (!\array_key_exists($key, $properties) && isset($propertyScopes[$key])) { + return false; + } + } + + return true; + } + + /** + * Forces initialization of a lazy object and returns it. + */ + public function initializeLazyObject(): static + { + if (!$state = $this->lazyObjectState ?? null) { + return $this; + } + + if (!\is_array($state->initializer)) { + if (LazyObjectState::STATUS_UNINITIALIZED_FULL === $state->status) { + $state->initialize($this, '', null); + } + + return $this; + } + + $values = isset($state->initializer["\0"]) ? null : []; + + $class = $this::class; + $properties = (array) $this; + $propertyScopes = Hydrator::$propertyScopes[$class] ??= Hydrator::getPropertyScopes($class); + foreach ($state->initializer as $key => $initializer) { + if (\array_key_exists($key, $properties) || ![$scope, $name, $readonlyScope] = $propertyScopes[$key] ?? null) { + continue; + } + $scope = $readonlyScope ?? ('*' !== $scope ? $scope : $class); + + if (null === $values) { + if (!\is_array($values = ($state->initializer["\0"])($this, Registry::$defaultProperties[$class]))) { + throw new \TypeError(sprintf('The lazy-initializer defined for instance of "%s" must return an array, got "%s".', $class, get_debug_type($values))); + } + + if (\array_key_exists($key, $properties = (array) $this)) { + continue; + } + } + + if (\array_key_exists($key, $values)) { + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + $accessor['set']($this, $name, $properties[$key] = $values[$key]); + } else { + $state->initialize($this, $name, $scope); + $properties = (array) $this; + } + } + + return $this; + } + + /** + * @return bool Returns false when the object cannot be reset, ie when it's not a lazy object + */ + public function resetLazyObject(): bool + { + if (!$state = $this->lazyObjectState ?? null) { + return false; + } + + if (LazyObjectState::STATUS_UNINITIALIZED_FULL !== $state->status) { + $state->reset($this); + } + + return true; + } + + public function &__get($name): mixed + { + $propertyScopes = Hydrator::$propertyScopes[$this::class] ??= Hydrator::getPropertyScopes($this::class); + $scope = null; + + if ([$class, , $readonlyScope] = $propertyScopes[$name] ?? null) { + $scope = Registry::getScope($propertyScopes, $class, $name); + $state = $this->lazyObjectState ?? null; + + if ($state && (null === $scope || isset($propertyScopes["\0$scope\0$name"])) + && LazyObjectState::STATUS_UNINITIALIZED_PARTIAL !== $state->initialize($this, $name, $readonlyScope ?? $scope) + ) { + goto get_in_scope; + } + } + + if ($parent = (Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['get']) { + if (2 === $parent) { + return parent::__get($name); + } + $value = parent::__get($name); + + return $value; + } + + if (null === $class) { + $frame = debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]; + trigger_error(sprintf('Undefined property: %s::$%s in %s on line %s', $this::class, $name, $frame['file'], $frame['line']), \E_USER_NOTICE); + } + + get_in_scope: + + try { + if (null === $scope) { + if (null === $readonlyScope) { + return $this->$name; + } + $value = $this->$name; + + return $value; + } + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + + return $accessor['get']($this, $name, null !== $readonlyScope); + } catch (\Error $e) { + if (\Error::class !== $e::class || !str_starts_with($e->getMessage(), 'Cannot access uninitialized non-nullable property')) { + throw $e; + } + + try { + if (null === $scope) { + $this->$name = []; + + return $this->$name; + } + + $accessor['set']($this, $name, []); + + return $accessor['get']($this, $name, null !== $readonlyScope); + } catch (\Error) { + throw $e; + } + } + } + + public function __set($name, $value): void + { + $propertyScopes = Hydrator::$propertyScopes[$this::class] ??= Hydrator::getPropertyScopes($this::class); + $scope = null; + + if ([$class, , $readonlyScope] = $propertyScopes[$name] ?? null) { + $scope = Registry::getScope($propertyScopes, $class, $name, $readonlyScope); + $state = $this->lazyObjectState ?? null; + + if ($state && ($readonlyScope === $scope || isset($propertyScopes["\0$scope\0$name"]))) { + if (LazyObjectState::STATUS_UNINITIALIZED_FULL === $state->status) { + $state->initialize($this, $name, $readonlyScope ?? $scope); + } + goto set_in_scope; + } + } + + if ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['set']) { + parent::__set($name, $value); + + return; + } + + set_in_scope: + + if (null === $scope) { + $this->$name = $value; + } else { + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + $accessor['set']($this, $name, $value); + } + } + + public function __isset($name): bool + { + $propertyScopes = Hydrator::$propertyScopes[$this::class] ??= Hydrator::getPropertyScopes($this::class); + $scope = null; + + if ([$class, , $readonlyScope] = $propertyScopes[$name] ?? null) { + $scope = Registry::getScope($propertyScopes, $class, $name); + $state = $this->lazyObjectState ?? null; + + if ($state && (null === $scope || isset($propertyScopes["\0$scope\0$name"])) + && LazyObjectState::STATUS_UNINITIALIZED_PARTIAL !== $state->initialize($this, $name, $readonlyScope ?? $scope) + ) { + goto isset_in_scope; + } + } + + if ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['isset']) { + return parent::__isset($name); + } + + isset_in_scope: + + if (null === $scope) { + return isset($this->$name); + } + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + + return $accessor['isset']($this, $name); + } + + public function __unset($name): void + { + $propertyScopes = Hydrator::$propertyScopes[$this::class] ??= Hydrator::getPropertyScopes($this::class); + $scope = null; + + if ([$class, , $readonlyScope] = $propertyScopes[$name] ?? null) { + $scope = Registry::getScope($propertyScopes, $class, $name, $readonlyScope); + $state = $this->lazyObjectState ?? null; + + if ($state && ($readonlyScope === $scope || isset($propertyScopes["\0$scope\0$name"]))) { + if (LazyObjectState::STATUS_UNINITIALIZED_FULL === $state->status) { + $state->initialize($this, $name, $readonlyScope ?? $scope); + } + goto unset_in_scope; + } + } + + if ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['unset']) { + parent::__unset($name); + + return; + } + + unset_in_scope: + + if (null === $scope) { + unset($this->$name); + } else { + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + $accessor['unset']($this, $name); + } + } + + public function __clone(): void + { + if ($state = $this->lazyObjectState ?? null) { + $this->lazyObjectState = clone $state; + } + + if ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['clone']) { + parent::__clone(); + } + } + + public function __serialize(): array + { + $class = self::class; + + if ((Registry::$parentMethods[$class] ??= Registry::getParentMethods($class))['serialize']) { + $properties = parent::__serialize(); + } else { + $this->initializeLazyObject(); + $properties = (array) $this; + } + unset($properties["\0$class\0lazyObjectState"]); + + if (Registry::$parentMethods[$class]['serialize'] || !Registry::$parentMethods[$class]['sleep']) { + return $properties; + } + + $scope = get_parent_class($class); + $data = []; + + foreach (parent::__sleep() as $name) { + $value = $properties[$k = $name] ?? $properties[$k = "\0*\0$name"] ?? $properties[$k = "\0$scope\0$name"] ?? $k = null; + + if (null === $k) { + trigger_error(sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $name), \E_USER_NOTICE); + } else { + $data[$k] = $value; + } + } + + return $data; + } + + public function __destruct() + { + $state = $this->lazyObjectState ?? null; + + if ($state && \in_array($state->status, [LazyObjectState::STATUS_UNINITIALIZED_FULL, LazyObjectState::STATUS_UNINITIALIZED_PARTIAL], true)) { + return; + } + + if ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['destruct']) { + parent::__destruct(); + } + } + + private function setLazyObjectAsInitialized(bool $initialized): void + { + $state = $this->lazyObjectState ?? null; + + if ($state && !\is_array($state->initializer)) { + $state->status = $initialized ? LazyObjectState::STATUS_INITIALIZED_FULL : LazyObjectState::STATUS_UNINITIALIZED_FULL; + } + } +} diff --git a/vendor/symfony/var-exporter/LazyObjectInterface.php b/vendor/symfony/var-exporter/LazyObjectInterface.php new file mode 100644 index 000000000..367088459 --- /dev/null +++ b/vendor/symfony/var-exporter/LazyObjectInterface.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter; + +interface LazyObjectInterface +{ + /** + * Returns whether the object is initialized. + * + * @param $partial Whether partially initialized objects should be considered as initialized + */ + public function isLazyObjectInitialized(bool $partial = false): bool; + + /** + * Forces initialization of a lazy object and returns it. + */ + public function initializeLazyObject(): object; + + /** + * @return bool Returns false when the object cannot be reset, ie when it's not a lazy object + */ + public function resetLazyObject(): bool; +} diff --git a/vendor/symfony/var-exporter/LazyProxyTrait.php b/vendor/symfony/var-exporter/LazyProxyTrait.php new file mode 100644 index 000000000..153c38208 --- /dev/null +++ b/vendor/symfony/var-exporter/LazyProxyTrait.php @@ -0,0 +1,347 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter; + +use Symfony\Component\VarExporter\Hydrator as PublicHydrator; +use Symfony\Component\VarExporter\Internal\Hydrator; +use Symfony\Component\VarExporter\Internal\LazyObjectRegistry as Registry; +use Symfony\Component\VarExporter\Internal\LazyObjectState; +use Symfony\Component\VarExporter\Internal\LazyObjectTrait; + +trait LazyProxyTrait +{ + use LazyObjectTrait; + + /** + * Creates a lazy-loading virtual proxy. + * + * @param \Closure():object $initializer Returns the proxied object + * @param static|null $instance + */ + public static function createLazyProxy(\Closure $initializer, object $instance = null): static + { + if (self::class !== $class = $instance ? $instance::class : static::class) { + $skippedProperties = ["\0".self::class."\0lazyObjectState" => true]; + } elseif (\defined($class.'::LAZY_OBJECT_PROPERTY_SCOPES')) { + Hydrator::$propertyScopes[$class] ??= $class::LAZY_OBJECT_PROPERTY_SCOPES; + } + + $instance ??= (Registry::$classReflectors[$class] ??= new \ReflectionClass($class))->newInstanceWithoutConstructor(); + $instance->lazyObjectState = new LazyObjectState($initializer); + + foreach (Registry::$classResetters[$class] ??= Registry::getClassResetters($class) as $reset) { + $reset($instance, $skippedProperties ??= []); + } + + return $instance; + } + + /** + * Returns whether the object is initialized. + * + * @param $partial Whether partially initialized objects should be considered as initialized + */ + public function isLazyObjectInitialized(bool $partial = false): bool + { + return !isset($this->lazyObjectState) || isset($this->lazyObjectState->realInstance) || Registry::$noInitializerState === $this->lazyObjectState->initializer; + } + + /** + * Forces initialization of a lazy object and returns it. + */ + public function initializeLazyObject(): parent + { + if ($state = $this->lazyObjectState ?? null) { + return $state->realInstance ??= ($state->initializer)(); + } + + return $this; + } + + /** + * @return bool Returns false when the object cannot be reset, ie when it's not a lazy object + */ + public function resetLazyObject(): bool + { + if (!isset($this->lazyObjectState) || Registry::$noInitializerState === $this->lazyObjectState->initializer) { + return false; + } + + unset($this->lazyObjectState->realInstance); + + return true; + } + + public function &__get($name): mixed + { + $propertyScopes = Hydrator::$propertyScopes[$this::class] ??= Hydrator::getPropertyScopes($this::class); + $scope = null; + $instance = $this; + + if ([$class, , $readonlyScope] = $propertyScopes[$name] ?? null) { + $scope = Registry::getScope($propertyScopes, $class, $name); + + if (null === $scope || isset($propertyScopes["\0$scope\0$name"])) { + if ($state = $this->lazyObjectState ?? null) { + $instance = $state->realInstance ??= ($state->initializer)(); + } + $parent = 2; + goto get_in_scope; + } + } + $parent = (Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['get']; + + if ($state = $this->lazyObjectState ?? null) { + $instance = $state->realInstance ??= ($state->initializer)(); + } else { + if (2 === $parent) { + return parent::__get($name); + } + $value = parent::__get($name); + + return $value; + } + + if (!$parent && null === $class && !\array_key_exists($name, (array) $instance)) { + $frame = debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0]; + trigger_error(sprintf('Undefined property: %s::$%s in %s on line %s', $instance::class, $name, $frame['file'], $frame['line']), \E_USER_NOTICE); + } + + get_in_scope: + + try { + if (null === $scope) { + if (null === $readonlyScope && 1 !== $parent) { + return $instance->$name; + } + $value = $instance->$name; + + return $value; + } + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + + return $accessor['get']($instance, $name, null !== $readonlyScope || 1 === $parent); + } catch (\Error $e) { + if (\Error::class !== $e::class || !str_starts_with($e->getMessage(), 'Cannot access uninitialized non-nullable property')) { + throw $e; + } + + try { + if (null === $scope) { + $instance->$name = []; + + return $instance->$name; + } + + $accessor['set']($instance, $name, []); + + return $accessor['get']($instance, $name, null !== $readonlyScope || 1 === $parent); + } catch (\Error) { + throw $e; + } + } + } + + public function __set($name, $value): void + { + $propertyScopes = Hydrator::$propertyScopes[$this::class] ??= Hydrator::getPropertyScopes($this::class); + $scope = null; + $instance = $this; + + if ([$class, , $readonlyScope] = $propertyScopes[$name] ?? null) { + $scope = Registry::getScope($propertyScopes, $class, $name, $readonlyScope); + + if ($readonlyScope === $scope || isset($propertyScopes["\0$scope\0$name"])) { + if ($state = $this->lazyObjectState ?? null) { + $instance = $state->realInstance ??= ($state->initializer)(); + } + goto set_in_scope; + } + } + + if ($state = $this->lazyObjectState ?? null) { + $instance = $state->realInstance ??= ($state->initializer)(); + } elseif ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['set']) { + parent::__set($name, $value); + + return; + } + + set_in_scope: + + if (null === $scope) { + $instance->$name = $value; + } else { + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + $accessor['set']($instance, $name, $value); + } + } + + public function __isset($name): bool + { + $propertyScopes = Hydrator::$propertyScopes[$this::class] ??= Hydrator::getPropertyScopes($this::class); + $scope = null; + $instance = $this; + + if ([$class] = $propertyScopes[$name] ?? null) { + $scope = Registry::getScope($propertyScopes, $class, $name); + + if (null === $scope || isset($propertyScopes["\0$scope\0$name"])) { + if ($state = $this->lazyObjectState ?? null) { + $instance = $state->realInstance ??= ($state->initializer)(); + } + goto isset_in_scope; + } + } + + if ($state = $this->lazyObjectState ?? null) { + $instance = $state->realInstance ??= ($state->initializer)(); + } elseif ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['isset']) { + return parent::__isset($name); + } + + isset_in_scope: + + if (null === $scope) { + return isset($instance->$name); + } + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + + return $accessor['isset']($instance, $name); + } + + public function __unset($name): void + { + $propertyScopes = Hydrator::$propertyScopes[$this::class] ??= Hydrator::getPropertyScopes($this::class); + $scope = null; + $instance = $this; + + if ([$class, , $readonlyScope] = $propertyScopes[$name] ?? null) { + $scope = Registry::getScope($propertyScopes, $class, $name, $readonlyScope); + + if ($readonlyScope === $scope || isset($propertyScopes["\0$scope\0$name"])) { + if ($state = $this->lazyObjectState ?? null) { + $instance = $state->realInstance ??= ($state->initializer)(); + } + goto unset_in_scope; + } + } + + if ($state = $this->lazyObjectState ?? null) { + $instance = $state->realInstance ??= ($state->initializer)(); + } elseif ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['unset']) { + parent::__unset($name); + + return; + } + + unset_in_scope: + + if (null === $scope) { + unset($instance->$name); + } else { + $accessor = Registry::$classAccessors[$scope] ??= Registry::getClassAccessors($scope); + $accessor['unset']($instance, $name); + } + } + + public function __clone(): void + { + if (!isset($this->lazyObjectState)) { + if ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['clone']) { + parent::__clone(); + } + + return; + } + + $this->lazyObjectState = clone $this->lazyObjectState; + + if (isset($this->lazyObjectState->realInstance)) { + $this->lazyObjectState->realInstance = clone $this->lazyObjectState->realInstance; + } + } + + public function __serialize(): array + { + $class = self::class; + $state = $this->lazyObjectState ?? null; + + if (!$state && (Registry::$parentMethods[$class] ??= Registry::getParentMethods($class))['serialize']) { + $properties = parent::__serialize(); + } else { + $properties = (array) $this; + + if ($state) { + unset($properties["\0$class\0lazyObjectState"]); + $properties["\0$class\0lazyObjectReal"] = $state->realInstance ??= ($state->initializer)(); + } + } + + if ($state || Registry::$parentMethods[$class]['serialize'] || !Registry::$parentMethods[$class]['sleep']) { + return $properties; + } + + $scope = get_parent_class($class); + $data = []; + + foreach (parent::__sleep() as $name) { + $value = $properties[$k = $name] ?? $properties[$k = "\0*\0$name"] ?? $properties[$k = "\0$scope\0$name"] ?? $k = null; + + if (null === $k) { + trigger_error(sprintf('serialize(): "%s" returned as member variable from __sleep() but does not exist', $name), \E_USER_NOTICE); + } else { + $data[$k] = $value; + } + } + + return $data; + } + + public function __unserialize(array $data): void + { + $class = self::class; + + if ($instance = $data["\0$class\0lazyObjectReal"] ?? null) { + unset($data["\0$class\0lazyObjectReal"]); + + foreach (Registry::$classResetters[$class] ??= Registry::getClassResetters($class) as $reset) { + $reset($this, $data); + } + + if ($data) { + PublicHydrator::hydrate($this, $data); + } + $this->lazyObjectState = new LazyObjectState(Registry::$noInitializerState ??= static fn () => throw new \LogicException('Lazy proxy has no initializer.')); + $this->lazyObjectState->realInstance = $instance; + } elseif ((Registry::$parentMethods[$class] ??= Registry::getParentMethods($class))['unserialize']) { + parent::__unserialize($data); + } else { + PublicHydrator::hydrate($this, $data); + + if (Registry::$parentMethods[$class]['wakeup']) { + parent::__wakeup(); + } + } + } + + public function __destruct() + { + if (isset($this->lazyObjectState)) { + return; + } + + if ((Registry::$parentMethods[self::class] ??= Registry::getParentMethods(self::class))['destruct']) { + parent::__destruct(); + } + } +} diff --git a/vendor/symfony/var-exporter/ProxyHelper.php b/vendor/symfony/var-exporter/ProxyHelper.php new file mode 100644 index 000000000..2e150cb5c --- /dev/null +++ b/vendor/symfony/var-exporter/ProxyHelper.php @@ -0,0 +1,365 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\VarExporter; + +use Symfony\Component\VarExporter\Exception\LogicException; +use Symfony\Component\VarExporter\Internal\Hydrator; +use Symfony\Component\VarExporter\Internal\LazyObjectRegistry; + +/** + * @author Nicolas Grekas + */ +final class ProxyHelper +{ + /** + * Helps generate lazy-loading ghost objects. + * + * @throws LogicException When the class is incompatible with ghost objects + */ + public static function generateLazyGhost(\ReflectionClass $class): string + { + if (\PHP_VERSION_ID >= 80200 && \PHP_VERSION_ID < 80300 && $class->isReadOnly()) { + throw new LogicException(sprintf('Cannot generate lazy ghost: class "%s" is readonly.', $class->name)); + } + if ($class->isFinal()) { + throw new LogicException(sprintf('Cannot generate lazy ghost: class "%s" is final.', $class->name)); + } + if ($class->isInterface() || $class->isAbstract()) { + throw new LogicException(sprintf('Cannot generate lazy ghost: "%s" is not a concrete class.', $class->name)); + } + if (\stdClass::class !== $class->name && $class->isInternal()) { + throw new LogicException(sprintf('Cannot generate lazy ghost: class "%s" is internal.', $class->name)); + } + if ($class->hasMethod('__get') && 'mixed' !== (self::exportType($class->getMethod('__get')) ?? 'mixed')) { + throw new LogicException(sprintf('Cannot generate lazy ghost: return type of method "%s::__get()" should be "mixed".', $class->name)); + } + + static $traitMethods; + $traitMethods ??= (new \ReflectionClass(LazyGhostTrait::class))->getMethods(); + + foreach ($traitMethods as $method) { + if ($class->hasMethod($method->name) && $class->getMethod($method->name)->isFinal()) { + throw new LogicException(sprintf('Cannot generate lazy ghost: method "%s::%s()" is final.', $class->name, $method->name)); + } + } + + $parent = $class; + while ($parent = $parent->getParentClass()) { + if (\stdClass::class !== $parent->name && $parent->isInternal()) { + throw new LogicException(sprintf('Cannot generate lazy ghost: class "%s" extends "%s" which is internal.', $class->name, $parent->name)); + } + } + $propertyScopes = self::exportPropertyScopes($class->name); + + return <<name} implements \Symfony\Component\VarExporter\LazyObjectInterface + { + use \Symfony\Component\VarExporter\LazyGhostTrait; + + private const LAZY_OBJECT_PROPERTY_SCOPES = {$propertyScopes}; + } + + // Help opcache.preload discover always-needed symbols + class_exists(\Symfony\Component\VarExporter\Internal\Hydrator::class); + class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectRegistry::class); + class_exists(\Symfony\Component\VarExporter\Internal\LazyObjectState::class); + + EOPHP; + } + + /** + * Helps generate lazy-loading virtual proxies. + * + * @param \ReflectionClass[] $interfaces + * + * @throws LogicException When the class is incompatible with virtual proxies + */ + public static function generateLazyProxy(?\ReflectionClass $class, array $interfaces = []): string + { + if (!class_exists($class?->name ?? \stdClass::class, false)) { + throw new LogicException(sprintf('Cannot generate lazy proxy: "%s" is not a class.', $class->name)); + } + if ($class?->isFinal()) { + throw new LogicException(sprintf('Cannot generate lazy proxy: class "%s" is final.', $class->name)); + } + if (\PHP_VERSION_ID >= 80200 && \PHP_VERSION_ID < 80300 && $class?->isReadOnly()) { + throw new LogicException(sprintf('Cannot generate lazy proxy: class "%s" is readonly.', $class->name)); + } + + $methodReflectors = [$class?->getMethods(\ReflectionMethod::IS_PUBLIC | \ReflectionMethod::IS_PROTECTED) ?? []]; + foreach ($interfaces as $interface) { + if (!$interface->isInterface()) { + throw new LogicException(sprintf('Cannot generate lazy proxy: "%s" is not an interface.', $interface->name)); + } + $methodReflectors[] = $interface->getMethods(); + } + $methodReflectors = array_merge(...$methodReflectors); + + $extendsInternalClass = false; + if ($parent = $class) { + do { + $extendsInternalClass = \stdClass::class !== $parent->name && $parent->isInternal(); + } while (!$extendsInternalClass && $parent = $parent->getParentClass()); + } + $methodsHaveToBeProxied = $extendsInternalClass; + $methods = []; + + foreach ($methodReflectors as $method) { + if ('__get' !== strtolower($method->name) || 'mixed' === ($type = self::exportType($method) ?? 'mixed')) { + continue; + } + $methodsHaveToBeProxied = true; + $trait = new \ReflectionMethod(LazyProxyTrait::class, '__get'); + $body = \array_slice(file($trait->getFileName()), $trait->getStartLine() - 1, $trait->getEndLine() - $trait->getStartLine()); + $body[0] = str_replace('): mixed', '): '.$type, $body[0]); + $methods['__get'] = strtr(implode('', $body).' }', [ + 'Hydrator' => '\\'.Hydrator::class, + 'Registry' => '\\'.LazyObjectRegistry::class, + ]); + break; + } + + foreach ($methodReflectors as $method) { + if (($method->isStatic() && !$method->isAbstract()) || isset($methods[$lcName = strtolower($method->name)])) { + continue; + } + if ($method->isFinal()) { + if ($extendsInternalClass || $methodsHaveToBeProxied || method_exists(LazyProxyTrait::class, $method->name)) { + throw new LogicException(sprintf('Cannot generate lazy proxy: method "%s::%s()" is final.', $class->name, $method->name)); + } + continue; + } + if (method_exists(LazyProxyTrait::class, $method->name) || ($method->isProtected() && !$method->isAbstract())) { + continue; + } + + $signature = self::exportSignature($method, true, $args); + $parentCall = $method->isAbstract() ? "throw new \BadMethodCallException('Cannot forward abstract method \"{$method->class}::{$method->name}()\".')" : "parent::{$method->name}({$args})"; + + if ($method->isStatic()) { + $body = " $parentCall;"; + } elseif (str_ends_with($signature, '): never') || str_ends_with($signature, '): void')) { + $body = <<lazyObjectState)) { + (\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args}); + } else { + {$parentCall}; + } + EOPHP; + } else { + if (!$methodsHaveToBeProxied && !$method->isAbstract()) { + // Skip proxying methods that might return $this + foreach (preg_split('/[()|&]++/', self::exportType($method) ?? 'static') as $type) { + if (\in_array($type = ltrim($type, '?'), ['static', 'object'], true)) { + continue 2; + } + foreach ([$class, ...$interfaces] as $r) { + if ($r && is_a($r->name, $type, true)) { + continue 3; + } + } + } + } + + $body = <<lazyObjectState)) { + return (\$this->lazyObjectState->realInstance ??= (\$this->lazyObjectState->initializer)())->{$method->name}({$args}); + } + + return {$parentCall}; + EOPHP; + } + $methods[$lcName] = " {$signature}\n {\n{$body}\n }"; + } + + $types = $interfaces = array_unique(array_column($interfaces, 'name')); + $interfaces[] = LazyObjectInterface::class; + $interfaces = implode(', \\', $interfaces); + $parent = $class ? ' extends \\'.$class->name : ''; + array_unshift($types, $class ? 'parent' : ''); + $type = ltrim(implode('&\\', $types), '&'); + + if (!$class) { + $trait = new \ReflectionMethod(LazyProxyTrait::class, 'initializeLazyObject'); + $body = \array_slice(file($trait->getFileName()), $trait->getStartLine() - 1, $trait->getEndLine() - $trait->getStartLine()); + $body[0] = str_replace('): parent', '): '.$type, $body[0]); + $methods = ['initializeLazyObject' => implode('', $body).' }'] + $methods; + } + $body = $methods ? "\n".implode("\n\n", $methods)."\n" : ''; + $propertyScopes = $class ? self::exportPropertyScopes($class->name) : '[]'; + + return <<getParameters() as $param) { + $parameters[] = ($param->getAttributes(\SensitiveParameter::class) ? '#[\SensitiveParameter] ' : '') + .($withParameterTypes && $param->hasType() ? self::exportType($param).' ' : '') + .($param->isPassedByReference() ? '&' : '') + .($param->isVariadic() ? '...' : '').'$'.$param->name + .($param->isOptional() && !$param->isVariadic() ? ' = '.self::exportDefault($param) : ''); + $hasByRef = $hasByRef || $param->isPassedByReference(); + $args .= ($param->isVariadic() ? '...$' : '$').$param->name.', '; + } + + if (!$param || !$hasByRef) { + $args = '...\func_get_args()'; + } elseif ($param->isVariadic()) { + $args = substr($args, 0, -2); + } else { + $args .= sprintf('...\array_slice(\func_get_args(), %d)', \count($parameters)); + } + + $signature = 'function '.($function->returnsReference() ? '&' : '') + .($function->isClosure() ? '' : $function->name).'('.implode(', ', $parameters).')'; + + if ($function instanceof \ReflectionMethod) { + $signature = ($function->isPublic() ? 'public ' : ($function->isProtected() ? 'protected ' : 'private ')) + .($function->isStatic() ? 'static ' : '').$signature; + } + if ($function->hasReturnType()) { + $signature .= ': '.self::exportType($function); + } + + static $getPrototype; + $getPrototype ??= (new \ReflectionMethod(\ReflectionMethod::class, 'getPrototype'))->invoke(...); + + while ($function) { + if ($function->hasTentativeReturnType()) { + return '#[\ReturnTypeWillChange] '.$signature; + } + + try { + $function = $function instanceof \ReflectionMethod && $function->isAbstract() ? false : $getPrototype($function); + } catch (\ReflectionException) { + break; + } + } + + return $signature; + } + + public static function exportType(\ReflectionFunctionAbstract|\ReflectionProperty|\ReflectionParameter $owner, bool $noBuiltin = false, \ReflectionType $type = null): ?string + { + if (!$type ??= $owner instanceof \ReflectionFunctionAbstract ? $owner->getReturnType() : $owner->getType()) { + return null; + } + $class = null; + $types = []; + if ($type instanceof \ReflectionUnionType) { + $reflectionTypes = $type->getTypes(); + $glue = '|'; + } elseif ($type instanceof \ReflectionIntersectionType) { + $reflectionTypes = $type->getTypes(); + $glue = '&'; + } else { + $reflectionTypes = [$type]; + $glue = null; + } + + foreach ($reflectionTypes as $type) { + if ($type instanceof \ReflectionIntersectionType) { + if ('' !== $name = '('.self::exportType($owner, $noBuiltin, $type).')') { + $types[] = $name; + } + continue; + } + $name = $type->getName(); + + if ($noBuiltin && $type->isBuiltin()) { + continue; + } + if (\in_array($name, ['parent', 'self'], true) && $class ??= $owner->getDeclaringClass()) { + $name = 'parent' === $name ? ($class->getParentClass() ?: null)?->name ?? 'parent' : $class->name; + } + + $types[] = ($noBuiltin || $type->isBuiltin() || 'static' === $name ? '' : '\\').$name; + } + + if (!$types) { + return ''; + } + if (null === $glue) { + return (!$noBuiltin && $type->allowsNull() && 'mixed' !== $name ? '?' : '').$types[0]; + } + sort($types); + + return implode($glue, $types); + } + + private static function exportPropertyScopes(string $parent): string + { + $propertyScopes = Hydrator::$propertyScopes[$parent] ??= Hydrator::getPropertyScopes($parent); + uksort($propertyScopes, 'strnatcmp'); + $propertyScopes = VarExporter::export($propertyScopes); + $propertyScopes = str_replace(VarExporter::export($parent), 'parent::class', $propertyScopes); + $propertyScopes = preg_replace("/(?|(,)\n( ) |\n |,\n (\]))/", '$1$2', $propertyScopes); + $propertyScopes = str_replace("\n", "\n ", $propertyScopes); + + return $propertyScopes; + } + + private static function exportDefault(\ReflectionParameter $param): string + { + $default = rtrim(substr(explode('$'.$param->name.' = ', (string) $param, 2)[1] ?? '', 0, -2)); + + if (\in_array($default, ['', 'NULL'], true)) { + return 'null'; + } + if (str_ends_with($default, "...'") && preg_match("/^'(?:[^'\\\\]*+(?:\\\\.)*+)*+'$/", $default)) { + return VarExporter::export($param->getDefaultValue()); + } + + $regexp = "/(\"(?:[^\"\\\\]*+(?:\\\\.)*+)*+\"|'(?:[^'\\\\]*+(?:\\\\.)*+)*+')/"; + $parts = preg_split($regexp, $default, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY); + + $regexp = '/([\[\( ]|^)([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z0-9_\x7f-\xff]++)*+)(?!: )/'; + $callback = (false !== strpbrk($default, "\\:('") && $class = $param->getDeclaringClass()) + ? fn ($m) => $m[1].match ($m[2]) { + 'new', 'false', 'true', 'null' => $m[2], + 'NULL' => 'null', + 'self' => '\\'.$class->name, + 'namespace\\parent', + 'parent' => ($parent = $class->getParentClass()) ? '\\'.$parent->name : 'parent', + default => '\\'.$m[2], + } + : fn ($m) => $m[1].match ($m[2]) { + 'new', 'false', 'true', 'null', 'self', 'parent' => $m[2], + 'NULL' => 'null', + default => '\\'.$m[2], + }; + + return implode('', array_map(fn ($part) => match ($part[0]) { + '"' => $part, // for internal classes only + "'" => false !== strpbrk($part, "\\\0\r\n") ? '"'.substr(str_replace(['$', "\0", "\r", "\n"], ['\$', '\0', '\r', '\n'], $part), 1, -1).'"' : $part, + default => preg_replace_callback($regexp, $callback, $part), + }, $parts)); + } +} diff --git a/vendor/symfony/var-exporter/README.md b/vendor/symfony/var-exporter/README.md index a34e4c23d..7c7a58e29 100644 --- a/vendor/symfony/var-exporter/README.md +++ b/vendor/symfony/var-exporter/README.md @@ -1,15 +1,22 @@ VarExporter Component ===================== -The VarExporter component allows exporting any serializable PHP data structure to -plain PHP code. While doing so, it preserves all the semantics associated with -the serialization mechanism of PHP (`__wakeup`, `__sleep`, `Serializable`, -`__serialize`, `__unserialize`). +The VarExporter component provides various tools to deal with the internal state +of objects: -It also provides an instantiator that allows creating and populating objects -without calling their constructor nor any other methods. +- `VarExporter::export()` allows exporting any serializable PHP data structure to + plain PHP code. While doing so, it preserves all the semantics associated with + the serialization mechanism of PHP (`__wakeup`, `__sleep`, `Serializable`, + `__serialize`, `__unserialize`.) +- `Instantiator::instantiate()` creates an object and sets its properties without + calling its constructor nor any other methods. +- `Hydrator::hydrate()` can set the properties of an existing object. +- `Lazy*Trait` can make a class behave as a lazy-loading ghost or virtual proxy. -The reason to use this component *vs* `serialize()` or +VarExporter::export() +--------------------- + +The reason to use `VarExporter::export()` *vs* `serialize()` or [igbinary](https://github.com/igbinary/igbinary) is performance: thanks to OPcache, the resulting code is significantly faster and more memory efficient than using `unserialize()` or `igbinary_unserialize()`. @@ -20,14 +27,118 @@ It also provides a few improvements over `var_export()`/`serialize()`: * the output is PSR-2 compatible; * the output can be re-indented without messing up with `\r` or `\n` in the data - * missing classes throw a `ClassNotFoundException` instead of being unserialized to - `PHP_Incomplete_Class` objects; + * missing classes throw a `ClassNotFoundException` instead of being unserialized + to `PHP_Incomplete_Class` objects; * references involving `SplObjectStorage`, `ArrayObject` or `ArrayIterator` instances are preserved; * `Reflection*`, `IteratorIterator` and `RecursiveIteratorIterator` classes throw an exception when being serialized (their unserialized version is broken anyway, see https://bugs.php.net/76737). +Instantiator and Hydrator +------------------------- + +`Instantiator::instantiate($class)` creates an object of the given class without +calling its constructor nor any other methods. + +`Hydrator::hydrate()` sets the properties of an existing object, including +private and protected ones. For example: + +```php +// Sets the public or protected $object->propertyName property +Hydrator::hydrate($object, ['propertyName' => $propertyValue]); + +// Sets a private property defined on its parent Bar class: +Hydrator::hydrate($object, ["\0Bar\0privateBarProperty" => $propertyValue]); + +// Alternative way to set the private $object->privateBarProperty property +Hydrator::hydrate($object, [], [ + Bar::class => ['privateBarProperty' => $propertyValue], +]); +``` + +`Lazy*Trait` +------------ + +The component provides two lazy-loading patterns: ghost objects and virtual +proxies (see https://martinfowler.com/eaaCatalog/lazyLoad.html for reference.) + +Ghost objects work only with concrete and non-internal classes. In the generic +case, they are not compatible with using factories in their initializer. + +Virtual proxies work with concrete, abstract or internal classes. They provide an +API that looks like the actual objects and forward calls to them. They can cause +identity problems because proxies might not be seen as equivalents to the actual +objects they proxy. + +Because of this identity problem, ghost objects should be preferred when +possible. Exceptions thrown by the `ProxyHelper` class can help decide when it +can be used or not. + +Ghost objects and virtual proxies both provide implementations for the +`LazyObjectInterface` which allows resetting them to their initial state or to +forcibly initialize them when needed. Note that resetting a ghost object skips +its read-only properties. You should use a virtual proxy to reset read-only +properties. + +### `LazyGhostTrait` + +By using `LazyGhostTrait` either directly in your classes or by using +`ProxyHelper::generateLazyGhost()`, you can make their instances lazy-loadable. +This works by creating these instances empty and by computing their state only +when accessing a property. + +```php +class FooLazyGhost extends Foo +{ + use LazyGhostTrait; +} + +$foo = FooLazyGhost::createLazyGhost(initializer: function (Foo $instance): void { + // [...] Use whatever heavy logic you need here + // to compute the $dependencies of the $instance + $instance->__construct(...$dependencies); + // [...] Call setters, etc. if needed +}); + +// $foo is now a lazy-loading ghost object. The initializer will +// be called only when and if a *property* is accessed. +``` + +You can also partially initialize the objects on a property-by-property basis by +adding two arguments to the initializer: + +```php +$initializer = function (Foo $instance, string $propertyName, ?string $propertyScope): mixed { + if (Foo::class === $propertyScope && 'bar' === $propertyName) { + return 123; + } + // [...] Add more logic for the other properties +}; +``` + +### `LazyProxyTrait` + +Alternatively, `LazyProxyTrait` can be used to create virtual proxies: + +```php +$proxyCode = ProxyHelper::generateLazyProxy(new ReflectionClass(Foo::class)); +// $proxyCode contains the reference to LazyProxyTrait +// and should be dumped into a file in production envs +eval('class FooLazyProxy'.$proxyCode); + +$foo = FooLazyProxy::createLazyProxy(initializer: function (): Foo { + // [...] Use whatever heavy logic you need here + // to compute the $dependencies of the $instance + $instance = new Foo(...$dependencies); + // [...] Call setters, etc. if needed + + return $instance; +}); +// $foo is now a lazy-loading virtual proxy object. The initializer will +// be called only when and if a *method* is called. +``` + Resources --------- diff --git a/vendor/symfony/var-exporter/VarExporter.php b/vendor/symfony/var-exporter/VarExporter.php index 3e2a4cc03..c12eb4f95 100644 --- a/vendor/symfony/var-exporter/VarExporter.php +++ b/vendor/symfony/var-exporter/VarExporter.php @@ -32,8 +32,8 @@ final class VarExporter /** * Exports a serializable PHP value to PHP code. * - * @param bool &$isStaticValue Set to true after execution if the provided value is static, false otherwise - * @param bool &$classes Classes found in the value are added to this list as both keys and values + * @param bool &$isStaticValue Set to true after execution if the provided value is static, false otherwise + * @param array &$foundClasses Classes found in the value are added to this list as both keys and values * * @throws ExceptionInterface When the provided value cannot be serialized */ diff --git a/vendor/symfony/var-exporter/composer.json b/vendor/symfony/var-exporter/composer.json index 3bf21a64e..83140ee7d 100644 --- a/vendor/symfony/var-exporter/composer.json +++ b/vendor/symfony/var-exporter/composer.json @@ -2,7 +2,7 @@ "name": "symfony/var-exporter", "type": "library", "description": "Allows exporting any serializable PHP data structure to plain PHP code", - "keywords": ["export", "serialize", "instantiate", "hydrate", "construct", "clone"], + "keywords": ["export", "serialize", "instantiate", "hydrate", "construct", "clone", "lazy-loading", "proxy"], "homepage": "https://symfony.com", "license": "MIT", "authors": [ @@ -16,7 +16,7 @@ } ], "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, "require-dev": { "symfony/var-dumper": "^5.4|^6.0" diff --git a/vendor/symfony/yaml/.gitignore b/vendor/symfony/yaml/.gitignore deleted file mode 100755 index c49a5d8df..000000000 --- a/vendor/symfony/yaml/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -vendor/ -composer.lock -phpunit.xml diff --git a/vendor/symfony/yaml/CHANGELOG.md b/vendor/symfony/yaml/CHANGELOG.md deleted file mode 100755 index f55b57047..000000000 --- a/vendor/symfony/yaml/CHANGELOG.md +++ /dev/null @@ -1,28 +0,0 @@ -CHANGELOG -========= - -2.8.0 ------ - - * Deprecated usage of a colon in an unquoted mapping value - * Deprecated usage of @, \`, | and > at the beginning of an unquoted string - * When surrounding strings with double-quotes, you must now escape `\` characters. Not - escaping those characters (when surrounded by double-quotes) is deprecated. - - Before: - - ```yml - class: "Foo\Var" - ``` - - After: - - ```yml - class: "Foo\\Var" - ``` - -2.1.0 ------ - - * Yaml::parse() does not evaluate loaded files as PHP files by default - anymore (call Yaml::enablePhpParsing() to get back the old behavior) diff --git a/vendor/symfony/yaml/Dumper.php b/vendor/symfony/yaml/Dumper.php deleted file mode 100755 index 8b523d16e..000000000 --- a/vendor/symfony/yaml/Dumper.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -/** - * Dumper dumps PHP variables to YAML strings. - * - * @author Fabien Potencier - */ -class Dumper -{ - /** - * The amount of spaces to use for indentation of nested nodes. - * - * @var int - */ - protected $indentation = 4; - - /** - * Sets the indentation. - * - * @param int $num The amount of spaces to use for indentation of nested nodes - */ - public function setIndentation($num) - { - if ($num < 1) { - throw new \InvalidArgumentException('The indentation must be greater than zero.'); - } - - $this->indentation = (int) $num; - } - - /** - * Dumps a PHP value to YAML. - * - * @param mixed $input The PHP value - * @param int $inline The level where you switch to inline YAML - * @param int $indent The level of indentation (used internally) - * @param bool $exceptionOnInvalidType True if an exception must be thrown on invalid types (a PHP resource or object), false otherwise - * @param bool $objectSupport True if object support is enabled, false otherwise - * - * @return string The YAML representation of the PHP value - */ - public function dump($input, $inline = 0, $indent = 0, $exceptionOnInvalidType = false, $objectSupport = false) - { - $output = ''; - $prefix = $indent ? str_repeat(' ', $indent) : ''; - - if ($inline <= 0 || !\is_array($input) || empty($input)) { - $output .= $prefix.Inline::dump($input, $exceptionOnInvalidType, $objectSupport); - } else { - $isAHash = Inline::isHash($input); - - foreach ($input as $key => $value) { - $willBeInlined = $inline - 1 <= 0 || !\is_array($value) || empty($value); - - $output .= sprintf('%s%s%s%s', - $prefix, - $isAHash ? Inline::dump($key, $exceptionOnInvalidType, $objectSupport).':' : '-', - $willBeInlined ? ' ' : "\n", - $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation, $exceptionOnInvalidType, $objectSupport) - ).($willBeInlined ? "\n" : ''); - } - } - - return $output; - } -} diff --git a/vendor/symfony/yaml/Escaper.php b/vendor/symfony/yaml/Escaper.php deleted file mode 100755 index 2b1321f64..000000000 --- a/vendor/symfony/yaml/Escaper.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -/** - * Escaper encapsulates escaping rules for single and double-quoted - * YAML strings. - * - * @author Matthew Lewinski - * - * @internal - */ -class Escaper -{ - // Characters that would cause a dumped string to require double quoting. - const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9"; - - // Mapping arrays for escaping a double quoted string. The backslash is - // first to ensure proper escaping because str_replace operates iteratively - // on the input arrays. This ordering of the characters avoids the use of strtr, - // which performs more slowly. - private static $escapees = array('\\', '\\\\', '\\"', '"', - "\x00", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", - "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", - "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", - "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", - "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9", - ); - private static $escaped = array('\\\\', '\\"', '\\\\', '\\"', - '\\0', '\\x01', '\\x02', '\\x03', '\\x04', '\\x05', '\\x06', '\\a', - '\\b', '\\t', '\\n', '\\v', '\\f', '\\r', '\\x0e', '\\x0f', - '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17', - '\\x18', '\\x19', '\\x1a', '\\e', '\\x1c', '\\x1d', '\\x1e', '\\x1f', - '\\N', '\\_', '\\L', '\\P', - ); - - /** - * Determines if a PHP value would require double quoting in YAML. - * - * @param string $value A PHP value - * - * @return bool True if the value would require double quotes - */ - public static function requiresDoubleQuoting($value) - { - return 0 < preg_match('/'.self::REGEX_CHARACTER_TO_ESCAPE.'/u', $value); - } - - /** - * Escapes and surrounds a PHP value with double quotes. - * - * @param string $value A PHP value - * - * @return string The quoted, escaped string - */ - public static function escapeWithDoubleQuotes($value) - { - return sprintf('"%s"', str_replace(self::$escapees, self::$escaped, $value)); - } - - /** - * Determines if a PHP value would require single quoting in YAML. - * - * @param string $value A PHP value - * - * @return bool True if the value would require single quotes - */ - public static function requiresSingleQuoting($value) - { - // Determines if a PHP value is entirely composed of a value that would - // require single quoting in YAML. - if (\in_array(strtolower($value), array('null', '~', 'true', 'false', 'y', 'n', 'yes', 'no', 'on', 'off'))) { - return true; - } - - // Determines if the PHP value contains any single characters that would - // cause it to require single quoting in YAML. - return 0 < preg_match('/[ \s \' " \: \{ \} \[ \] , & \* \# \?] | \A[ \- ? | < > = ! % @ ` ]/x', $value); - } - - /** - * Escapes and surrounds a PHP value with single quotes. - * - * @param string $value A PHP value - * - * @return string The quoted, escaped string - */ - public static function escapeWithSingleQuotes($value) - { - return sprintf("'%s'", str_replace('\'', '\'\'', $value)); - } -} diff --git a/vendor/symfony/yaml/Exception/ParseException.php b/vendor/symfony/yaml/Exception/ParseException.php deleted file mode 100755 index 60802b6d7..000000000 --- a/vendor/symfony/yaml/Exception/ParseException.php +++ /dev/null @@ -1,144 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Exception; - -/** - * Exception class thrown when an error occurs during parsing. - * - * @author Fabien Potencier - */ -class ParseException extends RuntimeException -{ - private $parsedFile; - private $parsedLine; - private $snippet; - private $rawMessage; - - /** - * @param string $message The error message - * @param int $parsedLine The line where the error occurred - * @param string|null $snippet The snippet of code near the problem - * @param string|null $parsedFile The file name where the error occurred - * @param \Exception|null $previous The previous exception - */ - public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, \Exception $previous = null) - { - $this->parsedFile = $parsedFile; - $this->parsedLine = $parsedLine; - $this->snippet = $snippet; - $this->rawMessage = $message; - - $this->updateRepr(); - - parent::__construct($this->message, 0, $previous); - } - - /** - * Gets the snippet of code near the error. - * - * @return string The snippet of code - */ - public function getSnippet() - { - return $this->snippet; - } - - /** - * Sets the snippet of code near the error. - * - * @param string $snippet The code snippet - */ - public function setSnippet($snippet) - { - $this->snippet = $snippet; - - $this->updateRepr(); - } - - /** - * Gets the filename where the error occurred. - * - * This method returns null if a string is parsed. - * - * @return string The filename - */ - public function getParsedFile() - { - return $this->parsedFile; - } - - /** - * Sets the filename where the error occurred. - * - * @param string $parsedFile The filename - */ - public function setParsedFile($parsedFile) - { - $this->parsedFile = $parsedFile; - - $this->updateRepr(); - } - - /** - * Gets the line where the error occurred. - * - * @return int The file line - */ - public function getParsedLine() - { - return $this->parsedLine; - } - - /** - * Sets the line where the error occurred. - * - * @param int $parsedLine The file line - */ - public function setParsedLine($parsedLine) - { - $this->parsedLine = $parsedLine; - - $this->updateRepr(); - } - - private function updateRepr() - { - $this->message = $this->rawMessage; - - $dot = false; - if ('.' === substr($this->message, -1)) { - $this->message = substr($this->message, 0, -1); - $dot = true; - } - - if (null !== $this->parsedFile) { - if (\PHP_VERSION_ID >= 50400) { - $jsonOptions = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE; - } else { - $jsonOptions = 0; - } - $this->message .= sprintf(' in %s', json_encode($this->parsedFile, $jsonOptions)); - } - - if ($this->parsedLine >= 0) { - $this->message .= sprintf(' at line %d', $this->parsedLine); - } - - if ($this->snippet) { - $this->message .= sprintf(' (near "%s")', $this->snippet); - } - - if ($dot) { - $this->message .= '.'; - } - } -} diff --git a/vendor/symfony/yaml/Inline.php b/vendor/symfony/yaml/Inline.php deleted file mode 100755 index 639ff4a79..000000000 --- a/vendor/symfony/yaml/Inline.php +++ /dev/null @@ -1,609 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -use Symfony\Component\Yaml\Exception\DumpException; -use Symfony\Component\Yaml\Exception\ParseException; - -/** - * Inline implements a YAML parser/dumper for the YAML inline syntax. - * - * @author Fabien Potencier - */ -class Inline -{ - const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*+(?:\\\\.[^"\\\\]*+)*+)"|\'([^\']*+(?:\'\'[^\']*+)*+)\')'; - - private static $exceptionOnInvalidType = false; - private static $objectSupport = false; - private static $objectForMap = false; - - /** - * Converts a YAML string to a PHP value. - * - * @param string $value A YAML string - * @param bool $exceptionOnInvalidType True if an exception must be thrown on invalid types (a PHP resource or object), false otherwise - * @param bool $objectSupport True if object support is enabled, false otherwise - * @param bool $objectForMap True if maps should return a stdClass instead of array() - * @param array $references Mapping of variable names to values - * - * @return mixed A PHP value - * - * @throws ParseException - */ - public static function parse($value, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false, $references = array()) - { - self::$exceptionOnInvalidType = $exceptionOnInvalidType; - self::$objectSupport = $objectSupport; - self::$objectForMap = $objectForMap; - - $value = trim($value); - - if ('' === $value) { - return ''; - } - - if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) { - $mbEncoding = mb_internal_encoding(); - mb_internal_encoding('ASCII'); - } - - $i = 0; - switch ($value[0]) { - case '[': - $result = self::parseSequence($value, $i, $references); - ++$i; - break; - case '{': - $result = self::parseMapping($value, $i, $references); - ++$i; - break; - default: - $result = self::parseScalar($value, null, array('"', "'"), $i, true, $references); - } - - // some comments are allowed at the end - if (preg_replace('/\s+#.*$/A', '', substr($value, $i))) { - throw new ParseException(sprintf('Unexpected characters near "%s".', substr($value, $i))); - } - - if (isset($mbEncoding)) { - mb_internal_encoding($mbEncoding); - } - - return $result; - } - - /** - * Dumps a given PHP variable to a YAML string. - * - * @param mixed $value The PHP variable to convert - * @param bool $exceptionOnInvalidType True if an exception must be thrown on invalid types (a PHP resource or object), false otherwise - * @param bool $objectSupport True if object support is enabled, false otherwise - * - * @return string The YAML string representing the PHP value - * - * @throws DumpException When trying to dump PHP resource - */ - public static function dump($value, $exceptionOnInvalidType = false, $objectSupport = false) - { - switch (true) { - case \is_resource($value): - if ($exceptionOnInvalidType) { - throw new DumpException(sprintf('Unable to dump PHP resources in a YAML file ("%s").', get_resource_type($value))); - } - - return 'null'; - case \is_object($value): - if ($objectSupport) { - return '!php/object:'.serialize($value); - } - - if ($exceptionOnInvalidType) { - throw new DumpException('Object support when dumping a YAML file has been disabled.'); - } - - return 'null'; - case \is_array($value): - return self::dumpArray($value, $exceptionOnInvalidType, $objectSupport); - case null === $value: - return 'null'; - case true === $value: - return 'true'; - case false === $value: - return 'false'; - case ctype_digit($value): - return \is_string($value) ? "'$value'" : (int) $value; - case is_numeric($value): - $locale = setlocale(LC_NUMERIC, 0); - if (false !== $locale) { - setlocale(LC_NUMERIC, 'C'); - } - if (\is_float($value)) { - $repr = (string) $value; - if (is_infinite($value)) { - $repr = str_ireplace('INF', '.Inf', $repr); - } elseif (floor($value) == $value && $repr == $value) { - // Preserve float data type since storing a whole number will result in integer value. - $repr = '!!float '.$repr; - } - } else { - $repr = \is_string($value) ? "'$value'" : (string) $value; - } - if (false !== $locale) { - setlocale(LC_NUMERIC, $locale); - } - - return $repr; - case '' == $value: - return "''"; - case Escaper::requiresDoubleQuoting($value): - return Escaper::escapeWithDoubleQuotes($value); - case Escaper::requiresSingleQuoting($value): - case Parser::preg_match(self::getHexRegex(), $value): - case Parser::preg_match(self::getTimestampRegex(), $value): - return Escaper::escapeWithSingleQuotes($value); - default: - return $value; - } - } - - /** - * Check if given array is hash or just normal indexed array. - * - * @internal - * - * @param array $value The PHP array to check - * - * @return bool true if value is hash array, false otherwise - */ - public static function isHash(array $value) - { - $expectedKey = 0; - - foreach ($value as $key => $val) { - if ($key !== $expectedKey++) { - return true; - } - } - - return false; - } - - /** - * Dumps a PHP array to a YAML string. - * - * @param array $value The PHP array to dump - * @param bool $exceptionOnInvalidType True if an exception must be thrown on invalid types (a PHP resource or object), false otherwise - * @param bool $objectSupport True if object support is enabled, false otherwise - * - * @return string The YAML string representing the PHP array - */ - private static function dumpArray($value, $exceptionOnInvalidType, $objectSupport) - { - // array - if ($value && !self::isHash($value)) { - $output = array(); - foreach ($value as $val) { - $output[] = self::dump($val, $exceptionOnInvalidType, $objectSupport); - } - - return sprintf('[%s]', implode(', ', $output)); - } - - // hash - $output = array(); - foreach ($value as $key => $val) { - $output[] = sprintf('%s: %s', self::dump($key, $exceptionOnInvalidType, $objectSupport), self::dump($val, $exceptionOnInvalidType, $objectSupport)); - } - - return sprintf('{ %s }', implode(', ', $output)); - } - - /** - * Parses a YAML scalar. - * - * @param string $scalar - * @param string[] $delimiters - * @param string[] $stringDelimiters - * @param int &$i - * @param bool $evaluate - * @param array $references - * - * @return string - * - * @throws ParseException When malformed inline YAML string is parsed - * - * @internal - */ - public static function parseScalar($scalar, $delimiters = null, $stringDelimiters = array('"', "'"), &$i = 0, $evaluate = true, $references = array()) - { - if (\in_array($scalar[$i], $stringDelimiters)) { - // quoted scalar - $output = self::parseQuotedScalar($scalar, $i); - - if (null !== $delimiters) { - $tmp = ltrim(substr($scalar, $i), ' '); - if ('' === $tmp) { - throw new ParseException(sprintf('Unexpected end of line, expected one of "%s".', implode('', $delimiters))); - } - if (!\in_array($tmp[0], $delimiters)) { - throw new ParseException(sprintf('Unexpected characters (%s).', substr($scalar, $i))); - } - } - } else { - // "normal" string - if (!$delimiters) { - $output = substr($scalar, $i); - $i += \strlen($output); - - // remove comments - if (Parser::preg_match('/[ \t]+#/', $output, $match, PREG_OFFSET_CAPTURE)) { - $output = substr($output, 0, $match[0][1]); - } - } elseif (Parser::preg_match('/^(.+?)('.implode('|', $delimiters).')/', substr($scalar, $i), $match)) { - $output = $match[1]; - $i += \strlen($output); - } else { - throw new ParseException(sprintf('Malformed inline YAML string: %s.', $scalar)); - } - - // a non-quoted string cannot start with @ or ` (reserved) nor with a scalar indicator (| or >) - if ($output && ('@' === $output[0] || '`' === $output[0] || '|' === $output[0] || '>' === $output[0])) { - @trigger_error(sprintf('Not quoting the scalar "%s" starting with "%s" is deprecated since Symfony 2.8 and will throw a ParseException in 3.0.', $output, $output[0]), E_USER_DEPRECATED); - - // to be thrown in 3.0 - // throw new ParseException(sprintf('The reserved indicator "%s" cannot start a plain scalar; you need to quote the scalar.', $output[0])); - } - - if ($evaluate) { - $output = self::evaluateScalar($output, $references); - } - } - - return $output; - } - - /** - * Parses a YAML quoted scalar. - * - * @param string $scalar - * @param int &$i - * - * @return string - * - * @throws ParseException When malformed inline YAML string is parsed - */ - private static function parseQuotedScalar($scalar, &$i) - { - if (!Parser::preg_match('/'.self::REGEX_QUOTED_STRING.'/Au', substr($scalar, $i), $match)) { - throw new ParseException(sprintf('Malformed inline YAML string: %s.', substr($scalar, $i))); - } - - $output = substr($match[0], 1, \strlen($match[0]) - 2); - - $unescaper = new Unescaper(); - if ('"' == $scalar[$i]) { - $output = $unescaper->unescapeDoubleQuotedString($output); - } else { - $output = $unescaper->unescapeSingleQuotedString($output); - } - - $i += \strlen($match[0]); - - return $output; - } - - /** - * Parses a YAML sequence. - * - * @param string $sequence - * @param int &$i - * @param array $references - * - * @return array - * - * @throws ParseException When malformed inline YAML string is parsed - */ - private static function parseSequence($sequence, &$i = 0, $references = array()) - { - $output = array(); - $len = \strlen($sequence); - ++$i; - - // [foo, bar, ...] - while ($i < $len) { - switch ($sequence[$i]) { - case '[': - // nested sequence - $output[] = self::parseSequence($sequence, $i, $references); - break; - case '{': - // nested mapping - $output[] = self::parseMapping($sequence, $i, $references); - break; - case ']': - return $output; - case ',': - case ' ': - break; - default: - $isQuoted = \in_array($sequence[$i], array('"', "'")); - $value = self::parseScalar($sequence, array(',', ']'), array('"', "'"), $i, true, $references); - - // the value can be an array if a reference has been resolved to an array var - if (!\is_array($value) && !$isQuoted && false !== strpos($value, ': ')) { - // embedded mapping? - try { - $pos = 0; - $value = self::parseMapping('{'.$value.'}', $pos, $references); - } catch (\InvalidArgumentException $e) { - // no, it's not - } - } - - $output[] = $value; - - --$i; - } - - ++$i; - } - - throw new ParseException(sprintf('Malformed inline YAML string: %s.', $sequence)); - } - - /** - * Parses a YAML mapping. - * - * @param string $mapping - * @param int &$i - * @param array $references - * - * @return array|\stdClass - * - * @throws ParseException When malformed inline YAML string is parsed - */ - private static function parseMapping($mapping, &$i = 0, $references = array()) - { - $output = array(); - $len = \strlen($mapping); - ++$i; - $allowOverwrite = false; - - // {foo: bar, bar:foo, ...} - while ($i < $len) { - switch ($mapping[$i]) { - case ' ': - case ',': - ++$i; - continue 2; - case '}': - if (self::$objectForMap) { - return (object) $output; - } - - return $output; - } - - // key - $key = self::parseScalar($mapping, array(':', ' '), array('"', "'"), $i, false); - - if ('<<' === $key) { - $allowOverwrite = true; - } - - // value - $done = false; - - while ($i < $len) { - switch ($mapping[$i]) { - case '[': - // nested sequence - $value = self::parseSequence($mapping, $i, $references); - // Spec: Keys MUST be unique; first one wins. - // Parser cannot abort this mapping earlier, since lines - // are processed sequentially. - // But overwriting is allowed when a merge node is used in current block. - if ('<<' === $key) { - foreach ($value as $parsedValue) { - $output += $parsedValue; - } - } elseif ($allowOverwrite || !isset($output[$key])) { - $output[$key] = $value; - } - $done = true; - break; - case '{': - // nested mapping - $value = self::parseMapping($mapping, $i, $references); - // Spec: Keys MUST be unique; first one wins. - // Parser cannot abort this mapping earlier, since lines - // are processed sequentially. - // But overwriting is allowed when a merge node is used in current block. - if ('<<' === $key) { - $output += $value; - } elseif ($allowOverwrite || !isset($output[$key])) { - $output[$key] = $value; - } - $done = true; - break; - case ':': - case ' ': - break; - default: - $value = self::parseScalar($mapping, array(',', '}'), array('"', "'"), $i, true, $references); - // Spec: Keys MUST be unique; first one wins. - // Parser cannot abort this mapping earlier, since lines - // are processed sequentially. - // But overwriting is allowed when a merge node is used in current block. - if ('<<' === $key) { - $output += $value; - } elseif ($allowOverwrite || !isset($output[$key])) { - $output[$key] = $value; - } - $done = true; - --$i; - } - - ++$i; - - if ($done) { - continue 2; - } - } - } - - throw new ParseException(sprintf('Malformed inline YAML string: %s.', $mapping)); - } - - /** - * Evaluates scalars and replaces magic values. - * - * @param string $scalar - * @param array $references - * - * @return mixed The evaluated YAML string - * - * @throws ParseException when object parsing support was disabled and the parser detected a PHP object or when a reference could not be resolved - */ - private static function evaluateScalar($scalar, $references = array()) - { - $scalar = trim($scalar); - $scalarLower = strtolower($scalar); - - if (0 === strpos($scalar, '*')) { - if (false !== $pos = strpos($scalar, '#')) { - $value = substr($scalar, 1, $pos - 2); - } else { - $value = substr($scalar, 1); - } - - // an unquoted * - if (false === $value || '' === $value) { - throw new ParseException('A reference must contain at least one character.'); - } - - if (!array_key_exists($value, $references)) { - throw new ParseException(sprintf('Reference "%s" does not exist.', $value)); - } - - return $references[$value]; - } - - switch (true) { - case 'null' === $scalarLower: - case '' === $scalar: - case '~' === $scalar: - return; - case 'true' === $scalarLower: - return true; - case 'false' === $scalarLower: - return false; - // Optimise for returning strings. - case '+' === $scalar[0] || '-' === $scalar[0] || '.' === $scalar[0] || '!' === $scalar[0] || is_numeric($scalar[0]): - switch (true) { - case 0 === strpos($scalar, '!str'): - return (string) substr($scalar, 5); - case 0 === strpos($scalar, '! '): - return (int) self::parseScalar(substr($scalar, 2)); - case 0 === strpos($scalar, '!php/object:'): - if (self::$objectSupport) { - return unserialize(substr($scalar, 12)); - } - - if (self::$exceptionOnInvalidType) { - throw new ParseException('Object support when parsing a YAML file has been disabled.'); - } - - return; - case 0 === strpos($scalar, '!!php/object:'): - if (self::$objectSupport) { - return unserialize(substr($scalar, 13)); - } - - if (self::$exceptionOnInvalidType) { - throw new ParseException('Object support when parsing a YAML file has been disabled.'); - } - - return; - case 0 === strpos($scalar, '!!float '): - return (float) substr($scalar, 8); - case ctype_digit($scalar): - $raw = $scalar; - $cast = (int) $scalar; - - return '0' == $scalar[0] ? octdec($scalar) : (((string) $raw == (string) $cast) ? $cast : $raw); - case '-' === $scalar[0] && ctype_digit(substr($scalar, 1)): - $raw = $scalar; - $cast = (int) $scalar; - - return '0' == $scalar[1] ? octdec($scalar) : (((string) $raw === (string) $cast) ? $cast : $raw); - case is_numeric($scalar): - case Parser::preg_match(self::getHexRegex(), $scalar): - return '0x' === $scalar[0].$scalar[1] ? hexdec($scalar) : (float) $scalar; - case '.inf' === $scalarLower: - case '.nan' === $scalarLower: - return -log(0); - case '-.inf' === $scalarLower: - return log(0); - case Parser::preg_match('/^(-|\+)?[0-9,]+(\.[0-9]+)?$/', $scalar): - return (float) str_replace(',', '', $scalar); - case Parser::preg_match(self::getTimestampRegex(), $scalar): - $timeZone = date_default_timezone_get(); - date_default_timezone_set('UTC'); - $time = strtotime($scalar); - date_default_timezone_set($timeZone); - - return $time; - } - // no break - default: - return (string) $scalar; - } - } - - /** - * Gets a regex that matches a YAML date. - * - * @return string The regular expression - * - * @see http://www.yaml.org/spec/1.2/spec.html#id2761573 - */ - private static function getTimestampRegex() - { - return <<[0-9][0-9][0-9][0-9]) - -(?P[0-9][0-9]?) - -(?P[0-9][0-9]?) - (?:(?:[Tt]|[ \t]+) - (?P[0-9][0-9]?) - :(?P[0-9][0-9]) - :(?P[0-9][0-9]) - (?:\.(?P[0-9]*))? - (?:[ \t]*(?PZ|(?P[-+])(?P[0-9][0-9]?) - (?::(?P[0-9][0-9]))?))?)? - $~x -EOF; - } - - /** - * Gets a regex that matches a YAML number in hexadecimal notation. - * - * @return string - */ - private static function getHexRegex() - { - return '~^0x[0-9a-f]++$~i'; - } -} diff --git a/vendor/symfony/yaml/Parser.php b/vendor/symfony/yaml/Parser.php deleted file mode 100755 index cb0d8f16b..000000000 --- a/vendor/symfony/yaml/Parser.php +++ /dev/null @@ -1,852 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -use Symfony\Component\Yaml\Exception\ParseException; - -/** - * Parser parses YAML strings to convert them to PHP arrays. - * - * @author Fabien Potencier - */ -class Parser -{ - const BLOCK_SCALAR_HEADER_PATTERN = '(?P\||>)(?P\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P +#.*)?'; - // BC - wrongly named - const FOLDED_SCALAR_PATTERN = self::BLOCK_SCALAR_HEADER_PATTERN; - - private $offset = 0; - private $totalNumberOfLines; - private $lines = array(); - private $currentLineNb = -1; - private $currentLine = ''; - private $refs = array(); - private $skippedLineNumbers = array(); - private $locallySkippedLineNumbers = array(); - - /** - * @param int $offset The offset of YAML document (used for line numbers in error messages) - * @param int|null $totalNumberOfLines The overall number of lines being parsed - * @param int[] $skippedLineNumbers Number of comment lines that have been skipped by the parser - */ - public function __construct($offset = 0, $totalNumberOfLines = null, array $skippedLineNumbers = array()) - { - $this->offset = $offset; - $this->totalNumberOfLines = $totalNumberOfLines; - $this->skippedLineNumbers = $skippedLineNumbers; - } - - /** - * Parses a YAML string to a PHP value. - * - * @param string $value A YAML string - * @param bool $exceptionOnInvalidType True if an exception must be thrown on invalid types (a PHP resource or object), false otherwise - * @param bool $objectSupport True if object support is enabled, false otherwise - * @param bool $objectForMap True if maps should return a stdClass instead of array() - * - * @return mixed A PHP value - * - * @throws ParseException If the YAML is not valid - */ - public function parse($value, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false) - { - if (false === preg_match('//u', $value)) { - throw new ParseException('The YAML value does not appear to be valid UTF-8.'); - } - - $this->refs = array(); - - $mbEncoding = null; - $e = null; - $data = null; - - if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) { - $mbEncoding = mb_internal_encoding(); - mb_internal_encoding('UTF-8'); - } - - try { - $data = $this->doParse($value, $exceptionOnInvalidType, $objectSupport, $objectForMap); - } catch (\Exception $e) { - } catch (\Throwable $e) { - } - - if (null !== $mbEncoding) { - mb_internal_encoding($mbEncoding); - } - - $this->lines = array(); - $this->currentLine = ''; - $this->refs = array(); - $this->skippedLineNumbers = array(); - $this->locallySkippedLineNumbers = array(); - - if (null !== $e) { - throw $e; - } - - return $data; - } - - private function doParse($value, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false) - { - $this->currentLineNb = -1; - $this->currentLine = ''; - $value = $this->cleanup($value); - $this->lines = explode("\n", $value); - $this->locallySkippedLineNumbers = array(); - - if (null === $this->totalNumberOfLines) { - $this->totalNumberOfLines = \count($this->lines); - } - - $data = array(); - $context = null; - $allowOverwrite = false; - - while ($this->moveToNextLine()) { - if ($this->isCurrentLineEmpty()) { - continue; - } - - // tab? - if ("\t" === $this->currentLine[0]) { - throw new ParseException('A YAML file cannot contain tabs as indentation.', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - - $isRef = $mergeNode = false; - if (self::preg_match('#^\-((?P\s+)(?P.+))?$#u', rtrim($this->currentLine), $values)) { - if ($context && 'mapping' == $context) { - throw new ParseException('You cannot define a sequence item when in a mapping', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - $context = 'sequence'; - - if (isset($values['value']) && self::preg_match('#^&(?P[^ ]+) *(?P.*)#u', $values['value'], $matches)) { - $isRef = $matches['ref']; - $values['value'] = $matches['value']; - } - - // array - if (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#')) { - $data[] = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true), $exceptionOnInvalidType, $objectSupport, $objectForMap); - } else { - if (isset($values['leadspaces']) - && self::preg_match('#^(?P'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P.+))?$#u', rtrim($values['value']), $matches) - ) { - // this is a compact notation element, add to next block and parse - $block = $values['value']; - if ($this->isNextLineIndented()) { - $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + \strlen($values['leadspaces']) + 1); - } - - $data[] = $this->parseBlock($this->getRealCurrentLineNb(), $block, $exceptionOnInvalidType, $objectSupport, $objectForMap); - } else { - $data[] = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport, $objectForMap, $context); - } - } - if ($isRef) { - $this->refs[$isRef] = end($data); - } - } elseif ( - self::preg_match('#^(?P'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\[\{].*?) *\:(\s+(?P.+))?$#u', rtrim($this->currentLine), $values) - && (false === strpos($values['key'], ' #') || \in_array($values['key'][0], array('"', "'"))) - ) { - if ($context && 'sequence' == $context) { - throw new ParseException('You cannot define a mapping item when in a sequence', $this->currentLineNb + 1, $this->currentLine); - } - $context = 'mapping'; - - // force correct settings - Inline::parse(null, $exceptionOnInvalidType, $objectSupport, $objectForMap, $this->refs); - try { - $key = Inline::parseScalar($values['key']); - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - - // Convert float keys to strings, to avoid being converted to integers by PHP - if (\is_float($key)) { - $key = (string) $key; - } - - if ('<<' === $key && (!isset($values['value']) || !self::preg_match('#^&(?P[^ ]+)#u', $values['value'], $refMatches))) { - $mergeNode = true; - $allowOverwrite = true; - if (isset($values['value']) && 0 === strpos($values['value'], '*')) { - $refName = substr($values['value'], 1); - if (!array_key_exists($refName, $this->refs)) { - throw new ParseException(sprintf('Reference "%s" does not exist.', $refName), $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - - $refValue = $this->refs[$refName]; - - if (!\is_array($refValue)) { - throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - - $data += $refValue; // array union - } else { - if (isset($values['value']) && '' !== $values['value']) { - $value = $values['value']; - } else { - $value = $this->getNextEmbedBlock(); - } - $parsed = $this->parseBlock($this->getRealCurrentLineNb() + 1, $value, $exceptionOnInvalidType, $objectSupport, $objectForMap); - - if (!\is_array($parsed)) { - throw new ParseException('YAML merge keys used with a scalar value instead of an array.', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - - if (isset($parsed[0])) { - // If the value associated with the merge key is a sequence, then this sequence is expected to contain mapping nodes - // and each of these nodes is merged in turn according to its order in the sequence. Keys in mapping nodes earlier - // in the sequence override keys specified in later mapping nodes. - foreach ($parsed as $parsedItem) { - if (!\is_array($parsedItem)) { - throw new ParseException('Merge items must be arrays.', $this->getRealCurrentLineNb() + 1, $parsedItem); - } - - $data += $parsedItem; // array union - } - } else { - // If the value associated with the key is a single mapping node, each of its key/value pairs is inserted into the - // current mapping, unless the key already exists in it. - $data += $parsed; // array union - } - } - } elseif ('<<' !== $key && isset($values['value']) && self::preg_match('#^&(?P[^ ]+) *(?P.*)#u', $values['value'], $matches)) { - $isRef = $matches['ref']; - $values['value'] = $matches['value']; - } - - if ($mergeNode) { - // Merge keys - } elseif (!isset($values['value']) || '' == trim($values['value'], ' ') || 0 === strpos(ltrim($values['value'], ' '), '#') || '<<' === $key) { - // hash - // if next line is less indented or equal, then it means that the current value is null - if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) { - // Spec: Keys MUST be unique; first one wins. - // But overwriting is allowed when a merge node is used in current block. - if ($allowOverwrite || !isset($data[$key])) { - $data[$key] = null; - } - } else { - $value = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(), $exceptionOnInvalidType, $objectSupport, $objectForMap); - - if ('<<' === $key) { - $this->refs[$refMatches['ref']] = $value; - $data += $value; - } elseif ($allowOverwrite || !isset($data[$key])) { - // Spec: Keys MUST be unique; first one wins. - // But overwriting is allowed when a merge node is used in current block. - $data[$key] = $value; - } - } - } else { - $value = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport, $objectForMap, $context); - // Spec: Keys MUST be unique; first one wins. - // But overwriting is allowed when a merge node is used in current block. - if ($allowOverwrite || !isset($data[$key])) { - $data[$key] = $value; - } - } - if ($isRef) { - $this->refs[$isRef] = $data[$key]; - } - } else { - // multiple documents are not supported - if ('---' === $this->currentLine) { - throw new ParseException('Multiple documents are not supported.', $this->currentLineNb + 1, $this->currentLine); - } - - // 1-liner optionally followed by newline(s) - if (\is_string($value) && $this->lines[0] === trim($value)) { - try { - $value = Inline::parse($this->lines[0], $exceptionOnInvalidType, $objectSupport, $objectForMap, $this->refs); - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - - return $value; - } - - throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - } - - if ($objectForMap && !\is_object($data) && 'mapping' === $context) { - $object = new \stdClass(); - - foreach ($data as $key => $value) { - $object->$key = $value; - } - - $data = $object; - } - - return empty($data) ? null : $data; - } - - private function parseBlock($offset, $yaml, $exceptionOnInvalidType, $objectSupport, $objectForMap) - { - $skippedLineNumbers = $this->skippedLineNumbers; - - foreach ($this->locallySkippedLineNumbers as $lineNumber) { - if ($lineNumber < $offset) { - continue; - } - - $skippedLineNumbers[] = $lineNumber; - } - - $parser = new self($offset, $this->totalNumberOfLines, $skippedLineNumbers); - $parser->refs = &$this->refs; - - return $parser->doParse($yaml, $exceptionOnInvalidType, $objectSupport, $objectForMap); - } - - /** - * Returns the current line number (takes the offset into account). - * - * @return int The current line number - */ - private function getRealCurrentLineNb() - { - $realCurrentLineNumber = $this->currentLineNb + $this->offset; - - foreach ($this->skippedLineNumbers as $skippedLineNumber) { - if ($skippedLineNumber > $realCurrentLineNumber) { - break; - } - - ++$realCurrentLineNumber; - } - - return $realCurrentLineNumber; - } - - /** - * Returns the current line indentation. - * - * @return int The current line indentation - */ - private function getCurrentLineIndentation() - { - return \strlen($this->currentLine) - \strlen(ltrim($this->currentLine, ' ')); - } - - /** - * Returns the next embed block of YAML. - * - * @param int $indentation The indent level at which the block is to be read, or null for default - * @param bool $inSequence True if the enclosing data structure is a sequence - * - * @return string A YAML string - * - * @throws ParseException When indentation problem are detected - */ - private function getNextEmbedBlock($indentation = null, $inSequence = false) - { - $oldLineIndentation = $this->getCurrentLineIndentation(); - $blockScalarIndentations = array(); - - if ($this->isBlockScalarHeader()) { - $blockScalarIndentations[] = $this->getCurrentLineIndentation(); - } - - if (!$this->moveToNextLine()) { - return; - } - - if (null === $indentation) { - $newIndent = $this->getCurrentLineIndentation(); - - $unindentedEmbedBlock = $this->isStringUnIndentedCollectionItem(); - - if (!$this->isCurrentLineEmpty() && 0 === $newIndent && !$unindentedEmbedBlock) { - throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - } else { - $newIndent = $indentation; - } - - $data = array(); - if ($this->getCurrentLineIndentation() >= $newIndent) { - $data[] = substr($this->currentLine, $newIndent); - } else { - $this->moveToPreviousLine(); - - return; - } - - if ($inSequence && $oldLineIndentation === $newIndent && isset($data[0][0]) && '-' === $data[0][0]) { - // the previous line contained a dash but no item content, this line is a sequence item with the same indentation - // and therefore no nested list or mapping - $this->moveToPreviousLine(); - - return; - } - - $isItUnindentedCollection = $this->isStringUnIndentedCollectionItem(); - - if (empty($blockScalarIndentations) && $this->isBlockScalarHeader()) { - $blockScalarIndentations[] = $this->getCurrentLineIndentation(); - } - - $previousLineIndentation = $this->getCurrentLineIndentation(); - - while ($this->moveToNextLine()) { - $indent = $this->getCurrentLineIndentation(); - - // terminate all block scalars that are more indented than the current line - if (!empty($blockScalarIndentations) && $indent < $previousLineIndentation && '' !== trim($this->currentLine)) { - foreach ($blockScalarIndentations as $key => $blockScalarIndentation) { - if ($blockScalarIndentation >= $this->getCurrentLineIndentation()) { - unset($blockScalarIndentations[$key]); - } - } - } - - if (empty($blockScalarIndentations) && !$this->isCurrentLineComment() && $this->isBlockScalarHeader()) { - $blockScalarIndentations[] = $this->getCurrentLineIndentation(); - } - - $previousLineIndentation = $indent; - - if ($isItUnindentedCollection && !$this->isCurrentLineEmpty() && !$this->isStringUnIndentedCollectionItem() && $newIndent === $indent) { - $this->moveToPreviousLine(); - break; - } - - if ($this->isCurrentLineBlank()) { - $data[] = substr($this->currentLine, $newIndent); - continue; - } - - // we ignore "comment" lines only when we are not inside a scalar block - if (empty($blockScalarIndentations) && $this->isCurrentLineComment()) { - // remember ignored comment lines (they are used later in nested - // parser calls to determine real line numbers) - // - // CAUTION: beware to not populate the global property here as it - // will otherwise influence the getRealCurrentLineNb() call here - // for consecutive comment lines and subsequent embedded blocks - $this->locallySkippedLineNumbers[] = $this->getRealCurrentLineNb(); - - continue; - } - - if ($indent >= $newIndent) { - $data[] = substr($this->currentLine, $newIndent); - } elseif (0 == $indent) { - $this->moveToPreviousLine(); - - break; - } else { - throw new ParseException('Indentation problem.', $this->getRealCurrentLineNb() + 1, $this->currentLine); - } - } - - return implode("\n", $data); - } - - /** - * Moves the parser to the next line. - * - * @return bool - */ - private function moveToNextLine() - { - if ($this->currentLineNb >= \count($this->lines) - 1) { - return false; - } - - $this->currentLine = $this->lines[++$this->currentLineNb]; - - return true; - } - - /** - * Moves the parser to the previous line. - * - * @return bool - */ - private function moveToPreviousLine() - { - if ($this->currentLineNb < 1) { - return false; - } - - $this->currentLine = $this->lines[--$this->currentLineNb]; - - return true; - } - - /** - * Parses a YAML value. - * - * @param string $value A YAML value - * @param bool $exceptionOnInvalidType True if an exception must be thrown on invalid types false otherwise - * @param bool $objectSupport True if object support is enabled, false otherwise - * @param bool $objectForMap True if maps should return a stdClass instead of array() - * @param string $context The parser context (either sequence or mapping) - * - * @return mixed A PHP value - * - * @throws ParseException When reference does not exist - */ - private function parseValue($value, $exceptionOnInvalidType, $objectSupport, $objectForMap, $context) - { - if (0 === strpos($value, '*')) { - if (false !== $pos = strpos($value, '#')) { - $value = substr($value, 1, $pos - 2); - } else { - $value = substr($value, 1); - } - - if (!array_key_exists($value, $this->refs)) { - throw new ParseException(sprintf('Reference "%s" does not exist.', $value), $this->currentLineNb + 1, $this->currentLine); - } - - return $this->refs[$value]; - } - - if (self::preg_match('/^'.self::BLOCK_SCALAR_HEADER_PATTERN.'$/', $value, $matches)) { - $modifiers = isset($matches['modifiers']) ? $matches['modifiers'] : ''; - - return $this->parseBlockScalar($matches['separator'], preg_replace('#\d+#', '', $modifiers), (int) abs($modifiers)); - } - - try { - $parsedValue = Inline::parse($value, $exceptionOnInvalidType, $objectSupport, $objectForMap, $this->refs); - - if ('mapping' === $context && '"' !== $value[0] && "'" !== $value[0] && '[' !== $value[0] && '{' !== $value[0] && '!' !== $value[0] && false !== strpos($parsedValue, ': ')) { - @trigger_error(sprintf('Using a colon in the unquoted mapping value "%s" in line %d is deprecated since Symfony 2.8 and will throw a ParseException in 3.0.', $value, $this->getRealCurrentLineNb() + 1), E_USER_DEPRECATED); - - // to be thrown in 3.0 - // throw new ParseException('A colon cannot be used in an unquoted mapping value.'); - } - - return $parsedValue; - } catch (ParseException $e) { - $e->setParsedLine($this->getRealCurrentLineNb() + 1); - $e->setSnippet($this->currentLine); - - throw $e; - } - } - - /** - * Parses a block scalar. - * - * @param string $style The style indicator that was used to begin this block scalar (| or >) - * @param string $chomping The chomping indicator that was used to begin this block scalar (+ or -) - * @param int $indentation The indentation indicator that was used to begin this block scalar - * - * @return string The text value - */ - private function parseBlockScalar($style, $chomping = '', $indentation = 0) - { - $notEOF = $this->moveToNextLine(); - if (!$notEOF) { - return ''; - } - - $isCurrentLineBlank = $this->isCurrentLineBlank(); - $blockLines = array(); - - // leading blank lines are consumed before determining indentation - while ($notEOF && $isCurrentLineBlank) { - // newline only if not EOF - if ($notEOF = $this->moveToNextLine()) { - $blockLines[] = ''; - $isCurrentLineBlank = $this->isCurrentLineBlank(); - } - } - - // determine indentation if not specified - if (0 === $indentation) { - if (self::preg_match('/^ +/', $this->currentLine, $matches)) { - $indentation = \strlen($matches[0]); - } - } - - if ($indentation > 0) { - $pattern = sprintf('/^ {%d}(.*)$/', $indentation); - - while ( - $notEOF && ( - $isCurrentLineBlank || - self::preg_match($pattern, $this->currentLine, $matches) - ) - ) { - if ($isCurrentLineBlank && \strlen($this->currentLine) > $indentation) { - $blockLines[] = substr($this->currentLine, $indentation); - } elseif ($isCurrentLineBlank) { - $blockLines[] = ''; - } else { - $blockLines[] = $matches[1]; - } - - // newline only if not EOF - if ($notEOF = $this->moveToNextLine()) { - $isCurrentLineBlank = $this->isCurrentLineBlank(); - } - } - } elseif ($notEOF) { - $blockLines[] = ''; - } - - if ($notEOF) { - $blockLines[] = ''; - $this->moveToPreviousLine(); - } elseif (!$notEOF && !$this->isCurrentLineLastLineInDocument()) { - $blockLines[] = ''; - } - - // folded style - if ('>' === $style) { - $text = ''; - $previousLineIndented = false; - $previousLineBlank = false; - - for ($i = 0, $blockLinesCount = \count($blockLines); $i < $blockLinesCount; ++$i) { - if ('' === $blockLines[$i]) { - $text .= "\n"; - $previousLineIndented = false; - $previousLineBlank = true; - } elseif (' ' === $blockLines[$i][0]) { - $text .= "\n".$blockLines[$i]; - $previousLineIndented = true; - $previousLineBlank = false; - } elseif ($previousLineIndented) { - $text .= "\n".$blockLines[$i]; - $previousLineIndented = false; - $previousLineBlank = false; - } elseif ($previousLineBlank || 0 === $i) { - $text .= $blockLines[$i]; - $previousLineIndented = false; - $previousLineBlank = false; - } else { - $text .= ' '.$blockLines[$i]; - $previousLineIndented = false; - $previousLineBlank = false; - } - } - } else { - $text = implode("\n", $blockLines); - } - - // deal with trailing newlines - if ('' === $chomping) { - $text = preg_replace('/\n+$/', "\n", $text); - } elseif ('-' === $chomping) { - $text = preg_replace('/\n+$/', '', $text); - } - - return $text; - } - - /** - * Returns true if the next line is indented. - * - * @return bool Returns true if the next line is indented, false otherwise - */ - private function isNextLineIndented() - { - $currentIndentation = $this->getCurrentLineIndentation(); - $EOF = !$this->moveToNextLine(); - - while (!$EOF && $this->isCurrentLineEmpty()) { - $EOF = !$this->moveToNextLine(); - } - - if ($EOF) { - return false; - } - - $ret = $this->getCurrentLineIndentation() > $currentIndentation; - - $this->moveToPreviousLine(); - - return $ret; - } - - /** - * Returns true if the current line is blank or if it is a comment line. - * - * @return bool Returns true if the current line is empty or if it is a comment line, false otherwise - */ - private function isCurrentLineEmpty() - { - return $this->isCurrentLineBlank() || $this->isCurrentLineComment(); - } - - /** - * Returns true if the current line is blank. - * - * @return bool Returns true if the current line is blank, false otherwise - */ - private function isCurrentLineBlank() - { - return '' == trim($this->currentLine, ' '); - } - - /** - * Returns true if the current line is a comment line. - * - * @return bool Returns true if the current line is a comment line, false otherwise - */ - private function isCurrentLineComment() - { - //checking explicitly the first char of the trim is faster than loops or strpos - $ltrimmedLine = ltrim($this->currentLine, ' '); - - return '' !== $ltrimmedLine && '#' === $ltrimmedLine[0]; - } - - private function isCurrentLineLastLineInDocument() - { - return ($this->offset + $this->currentLineNb) >= ($this->totalNumberOfLines - 1); - } - - /** - * Cleanups a YAML string to be parsed. - * - * @param string $value The input YAML string - * - * @return string A cleaned up YAML string - */ - private function cleanup($value) - { - $value = str_replace(array("\r\n", "\r"), "\n", $value); - - // strip YAML header - $count = 0; - $value = preg_replace('#^\%YAML[: ][\d\.]+.*\n#u', '', $value, -1, $count); - $this->offset += $count; - - // remove leading comments - $trimmedValue = preg_replace('#^(\#.*?\n)+#s', '', $value, -1, $count); - if (1 == $count) { - // items have been removed, update the offset - $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n"); - $value = $trimmedValue; - } - - // remove start of the document marker (---) - $trimmedValue = preg_replace('#^\-\-\-.*?\n#s', '', $value, -1, $count); - if (1 == $count) { - // items have been removed, update the offset - $this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n"); - $value = $trimmedValue; - - // remove end of the document marker (...) - $value = preg_replace('#\.\.\.\s*$#', '', $value); - } - - return $value; - } - - /** - * Returns true if the next line starts unindented collection. - * - * @return bool Returns true if the next line starts unindented collection, false otherwise - */ - private function isNextLineUnIndentedCollection() - { - $currentIndentation = $this->getCurrentLineIndentation(); - $notEOF = $this->moveToNextLine(); - - while ($notEOF && $this->isCurrentLineEmpty()) { - $notEOF = $this->moveToNextLine(); - } - - if (false === $notEOF) { - return false; - } - - $ret = $this->getCurrentLineIndentation() === $currentIndentation && $this->isStringUnIndentedCollectionItem(); - - $this->moveToPreviousLine(); - - return $ret; - } - - /** - * Returns true if the string is un-indented collection item. - * - * @return bool Returns true if the string is un-indented collection item, false otherwise - */ - private function isStringUnIndentedCollectionItem() - { - return '-' === rtrim($this->currentLine) || 0 === strpos($this->currentLine, '- '); - } - - /** - * Tests whether or not the current line is the header of a block scalar. - * - * @return bool - */ - private function isBlockScalarHeader() - { - return (bool) self::preg_match('~'.self::BLOCK_SCALAR_HEADER_PATTERN.'$~', $this->currentLine); - } - - /** - * A local wrapper for `preg_match` which will throw a ParseException if there - * is an internal error in the PCRE engine. - * - * This avoids us needing to check for "false" every time PCRE is used - * in the YAML engine - * - * @throws ParseException on a PCRE internal error - * - * @see preg_last_error() - * - * @internal - */ - public static function preg_match($pattern, $subject, &$matches = null, $flags = 0, $offset = 0) - { - if (false === $ret = preg_match($pattern, $subject, $matches, $flags, $offset)) { - switch (preg_last_error()) { - case PREG_INTERNAL_ERROR: - $error = 'Internal PCRE error.'; - break; - case PREG_BACKTRACK_LIMIT_ERROR: - $error = 'pcre.backtrack_limit reached.'; - break; - case PREG_RECURSION_LIMIT_ERROR: - $error = 'pcre.recursion_limit reached.'; - break; - case PREG_BAD_UTF8_ERROR: - $error = 'Malformed UTF-8 data.'; - break; - case PREG_BAD_UTF8_OFFSET_ERROR: - $error = 'Offset doesn\'t correspond to the begin of a valid UTF-8 code point.'; - break; - default: - $error = 'Error.'; - } - - throw new ParseException($error); - } - - return $ret; - } -} diff --git a/vendor/symfony/yaml/README.md b/vendor/symfony/yaml/README.md deleted file mode 100755 index 0d324881c..000000000 --- a/vendor/symfony/yaml/README.md +++ /dev/null @@ -1,13 +0,0 @@ -Yaml Component -============== - -The Yaml component loads and dumps YAML files. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/yaml/index.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/symfony/yaml/Tests/DumperTest.php b/vendor/symfony/yaml/Tests/DumperTest.php deleted file mode 100755 index 6bac6dac1..000000000 --- a/vendor/symfony/yaml/Tests/DumperTest.php +++ /dev/null @@ -1,257 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Tests; - -use PHPUnit\Framework\TestCase; -use Symfony\Component\Yaml\Dumper; -use Symfony\Component\Yaml\Parser; - -class DumperTest extends TestCase -{ - protected $parser; - protected $dumper; - protected $path; - - protected $array = array( - '' => 'bar', - 'foo' => '#bar', - 'foo\'bar' => array(), - 'bar' => array(1, 'foo'), - 'foobar' => array( - 'foo' => 'bar', - 'bar' => array(1, 'foo'), - 'foobar' => array( - 'foo' => 'bar', - 'bar' => array(1, 'foo'), - ), - ), - ); - - protected function setUp() - { - $this->parser = new Parser(); - $this->dumper = new Dumper(); - $this->path = __DIR__.'/Fixtures'; - } - - protected function tearDown() - { - $this->parser = null; - $this->dumper = null; - $this->path = null; - $this->array = null; - } - - public function testSetIndentation() - { - $this->dumper->setIndentation(7); - - $expected = <<<'EOF' -'': bar -foo: '#bar' -'foo''bar': { } -bar: - - 1 - - foo -foobar: - foo: bar - bar: - - 1 - - foo - foobar: - foo: bar - bar: - - 1 - - foo - -EOF; - $this->assertEquals($expected, $this->dumper->dump($this->array, 4, 0)); - } - - public function testSpecifications() - { - $files = $this->parser->parse(file_get_contents($this->path.'/index.yml')); - foreach ($files as $file) { - $yamls = file_get_contents($this->path.'/'.$file.'.yml'); - - // split YAMLs documents - foreach (preg_split('/^---( %YAML\:1\.0)?/m', $yamls) as $yaml) { - if (!$yaml) { - continue; - } - - $test = $this->parser->parse($yaml); - if (isset($test['dump_skip']) && $test['dump_skip']) { - continue; - } elseif (isset($test['todo']) && $test['todo']) { - // TODO - } else { - eval('$expected = '.trim($test['php']).';'); - $this->assertSame($expected, $this->parser->parse($this->dumper->dump($expected, 10)), $test['test']); - } - } - } - } - - public function testInlineLevel() - { - $expected = <<<'EOF' -{ '': bar, foo: '#bar', 'foo''bar': { }, bar: [1, foo], foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } } } -EOF; - $this->assertEquals($expected, $this->dumper->dump($this->array, -10), '->dump() takes an inline level argument'); - $this->assertEquals($expected, $this->dumper->dump($this->array, 0), '->dump() takes an inline level argument'); - - $expected = <<<'EOF' -'': bar -foo: '#bar' -'foo''bar': { } -bar: [1, foo] -foobar: { foo: bar, bar: [1, foo], foobar: { foo: bar, bar: [1, foo] } } - -EOF; - $this->assertEquals($expected, $this->dumper->dump($this->array, 1), '->dump() takes an inline level argument'); - - $expected = <<<'EOF' -'': bar -foo: '#bar' -'foo''bar': { } -bar: - - 1 - - foo -foobar: - foo: bar - bar: [1, foo] - foobar: { foo: bar, bar: [1, foo] } - -EOF; - $this->assertEquals($expected, $this->dumper->dump($this->array, 2), '->dump() takes an inline level argument'); - - $expected = <<<'EOF' -'': bar -foo: '#bar' -'foo''bar': { } -bar: - - 1 - - foo -foobar: - foo: bar - bar: - - 1 - - foo - foobar: - foo: bar - bar: [1, foo] - -EOF; - $this->assertEquals($expected, $this->dumper->dump($this->array, 3), '->dump() takes an inline level argument'); - - $expected = <<<'EOF' -'': bar -foo: '#bar' -'foo''bar': { } -bar: - - 1 - - foo -foobar: - foo: bar - bar: - - 1 - - foo - foobar: - foo: bar - bar: - - 1 - - foo - -EOF; - $this->assertEquals($expected, $this->dumper->dump($this->array, 4), '->dump() takes an inline level argument'); - $this->assertEquals($expected, $this->dumper->dump($this->array, 10), '->dump() takes an inline level argument'); - } - - public function testObjectSupportEnabled() - { - $dump = $this->dumper->dump(array('foo' => new A(), 'bar' => 1), 0, 0, false, true); - - $this->assertEquals('{ foo: !php/object:O:30:"Symfony\Component\Yaml\Tests\A":1:{s:1:"a";s:3:"foo";}, bar: 1 }', $dump, '->dump() is able to dump objects'); - } - - public function testObjectSupportDisabledButNoExceptions() - { - $dump = $this->dumper->dump(array('foo' => new A(), 'bar' => 1)); - - $this->assertEquals('{ foo: null, bar: 1 }', $dump, '->dump() does not dump objects when disabled'); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\DumpException - */ - public function testObjectSupportDisabledWithExceptions() - { - $this->dumper->dump(array('foo' => new A(), 'bar' => 1), 0, 0, true, false); - } - - /** - * @dataProvider getEscapeSequences - */ - public function testEscapedEscapeSequencesInQuotedScalar($input, $expected) - { - $this->assertEquals($expected, $this->dumper->dump($input)); - } - - public function getEscapeSequences() - { - return array( - 'empty string' => array('', "''"), - 'null' => array("\x0", '"\\0"'), - 'bell' => array("\x7", '"\\a"'), - 'backspace' => array("\x8", '"\\b"'), - 'horizontal-tab' => array("\t", '"\\t"'), - 'line-feed' => array("\n", '"\\n"'), - 'vertical-tab' => array("\v", '"\\v"'), - 'form-feed' => array("\xC", '"\\f"'), - 'carriage-return' => array("\r", '"\\r"'), - 'escape' => array("\x1B", '"\\e"'), - 'space' => array(' ', "' '"), - 'double-quote' => array('"', "'\"'"), - 'slash' => array('/', '/'), - 'backslash' => array('\\', '\\'), - 'next-line' => array("\xC2\x85", '"\\N"'), - 'non-breaking-space' => array("\xc2\xa0", '"\\_"'), - 'line-separator' => array("\xE2\x80\xA8", '"\\L"'), - 'paragraph-separator' => array("\xE2\x80\xA9", '"\\P"'), - 'colon' => array(':', "':'"), - ); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage The indentation must be greater than zero - */ - public function testZeroIndentationThrowsException() - { - $this->dumper->setIndentation(0); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage The indentation must be greater than zero - */ - public function testNegativeIndentationThrowsException() - { - $this->dumper->setIndentation(-4); - } -} - -class A -{ - public $a = 'foo'; -} diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsAnchorAlias.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsAnchorAlias.yml deleted file mode 100755 index 5f9c94275..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsAnchorAlias.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- %YAML:1.0 -test: Simple Alias Example -brief: > - If you need to refer to the same item of data twice, - you can give that item an alias. The alias is a plain - string, starting with an ampersand. The item may then - be referred to by the alias throughout your document - by using an asterisk before the name of the alias. - This is called an anchor. -yaml: | - - &showell Steve - - Clark - - Brian - - Oren - - *showell -php: | - array('Steve', 'Clark', 'Brian', 'Oren', 'Steve') - ---- -test: Alias of a Mapping -brief: > - An alias can be used on any item of data, including - sequences, mappings, and other complex data types. -yaml: | - - &hello - Meat: pork - Starch: potato - - banana - - *hello -php: | - array(array('Meat'=>'pork', 'Starch'=>'potato'), 'banana', array('Meat'=>'pork', 'Starch'=>'potato')) diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsBasicTests.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsBasicTests.yml deleted file mode 100755 index dfd93021d..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsBasicTests.yml +++ /dev/null @@ -1,202 +0,0 @@ ---- %YAML:1.0 -test: Simple Sequence -brief: | - You can specify a list in YAML by placing each - member of the list on a new line with an opening - dash. These lists are called sequences. -yaml: | - - apple - - banana - - carrot -php: | - array('apple', 'banana', 'carrot') ---- -test: Sequence With Item Being Null In The Middle -brief: | - You can specify a list in YAML by placing each - member of the list on a new line with an opening - dash. These lists are called sequences. -yaml: | - - apple - - - - carrot -php: | - array('apple', null, 'carrot') ---- -test: Sequence With Last Item Being Null -brief: | - You can specify a list in YAML by placing each - member of the list on a new line with an opening - dash. These lists are called sequences. -yaml: | - - apple - - banana - - -php: | - array('apple', 'banana', null) ---- -test: Nested Sequences -brief: | - You can include a sequence within another - sequence by giving the sequence an empty - dash, followed by an indented list. -yaml: | - - - - foo - - bar - - baz -php: | - array(array('foo', 'bar', 'baz')) ---- -test: Mixed Sequences -brief: | - Sequences can contain any YAML data, - including strings and other sequences. -yaml: | - - apple - - - - foo - - bar - - x123 - - banana - - carrot -php: | - array('apple', array('foo', 'bar', 'x123'), 'banana', 'carrot') ---- -test: Deeply Nested Sequences -brief: | - Sequences can be nested even deeper, with each - level of indentation representing a level of - depth. -yaml: | - - - - - - uno - - dos -php: | - array(array(array('uno', 'dos'))) ---- -test: Simple Mapping -brief: | - You can add a keyed list (also known as a dictionary or - hash) to your document by placing each member of the - list on a new line, with a colon separating the key - from its value. In YAML, this type of list is called - a mapping. -yaml: | - foo: whatever - bar: stuff -php: | - array('foo' => 'whatever', 'bar' => 'stuff') ---- -test: Sequence in a Mapping -brief: | - A value in a mapping can be a sequence. -yaml: | - foo: whatever - bar: - - uno - - dos -php: | - array('foo' => 'whatever', 'bar' => array('uno', 'dos')) ---- -test: Nested Mappings -brief: | - A value in a mapping can be another mapping. -yaml: | - foo: whatever - bar: - fruit: apple - name: steve - sport: baseball -php: | - array( - 'foo' => 'whatever', - 'bar' => array( - 'fruit' => 'apple', - 'name' => 'steve', - 'sport' => 'baseball' - ) - ) ---- -test: Mixed Mapping -brief: | - A mapping can contain any assortment - of mappings and sequences as values. -yaml: | - foo: whatever - bar: - - - fruit: apple - name: steve - sport: baseball - - more - - - python: rocks - perl: papers - ruby: scissorses -php: | - array( - 'foo' => 'whatever', - 'bar' => array( - array( - 'fruit' => 'apple', - 'name' => 'steve', - 'sport' => 'baseball' - ), - 'more', - array( - 'python' => 'rocks', - 'perl' => 'papers', - 'ruby' => 'scissorses' - ) - ) - ) ---- -test: Mapping-in-Sequence Shortcut -todo: true -brief: | - If you are adding a mapping to a sequence, you - can place the mapping on the same line as the - dash as a shortcut. -yaml: | - - work on YAML.py: - - work on Store -php: | - array(array('work on YAML.py' => array('work on Store'))) ---- -test: Sequence-in-Mapping Shortcut -todo: true -brief: | - The dash in a sequence counts as indentation, so - you can add a sequence inside of a mapping without - needing spaces as indentation. -yaml: | - allow: - - 'localhost' - - '%.sourceforge.net' - - '%.freepan.org' -php: | - array('allow' => array('localhost', '%.sourceforge.net', '%.freepan.org')) ---- -todo: true -test: Merge key -brief: | - A merge key ('<<') can be used in a mapping to insert other mappings. If - the value associated with the merge key is a mapping, each of its key/value - pairs is inserted into the current mapping. -yaml: | - mapping: - name: Joe - job: Accountant - <<: - age: 38 -php: | - array( - 'mapping' => - array( - 'name' => 'Joe', - 'job' => 'Accountant', - 'age' => 38 - ) - ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsBlockMapping.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsBlockMapping.yml deleted file mode 100755 index f7ca469b4..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsBlockMapping.yml +++ /dev/null @@ -1,51 +0,0 @@ ---- -test: One Element Mapping -brief: | - A mapping with one key/value pair -yaml: | - foo: bar -php: | - array('foo' => 'bar') ---- -test: Multi Element Mapping -brief: | - More than one key/value pair -yaml: | - red: baron - white: walls - blue: berries -php: | - array( - 'red' => 'baron', - 'white' => 'walls', - 'blue' => 'berries', - ) ---- -test: Values aligned -brief: | - Often times human editors of documents will align the values even - though YAML emitters generally don't. -yaml: | - red: baron - white: walls - blue: berries -php: | - array( - 'red' => 'baron', - 'white' => 'walls', - 'blue' => 'berries', - ) ---- -test: Colons aligned -brief: | - Spaces can come before the ': ' key/value separator. -yaml: | - red : baron - white : walls - blue : berries -php: | - array( - 'red' => 'baron', - 'white' => 'walls', - 'blue' => 'berries', - ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsDocumentSeparator.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsDocumentSeparator.yml deleted file mode 100755 index d98810256..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsDocumentSeparator.yml +++ /dev/null @@ -1,85 +0,0 @@ ---- %YAML:1.0 -test: Trailing Document Separator -todo: true -brief: > - You can separate YAML documents - with a string of three dashes. -yaml: | - - foo: 1 - bar: 2 - --- - more: stuff -python: | - [ - [ { 'foo': 1, 'bar': 2 } ], - { 'more': 'stuff' } - ] -ruby: | - [ { 'foo' => 1, 'bar' => 2 } ] - ---- -test: Leading Document Separator -todo: true -brief: > - You can explicitly give an opening - document separator to your YAML stream. -yaml: | - --- - - foo: 1 - bar: 2 - --- - more: stuff -python: | - [ - [ {'foo': 1, 'bar': 2}], - {'more': 'stuff'} - ] -ruby: | - [ { 'foo' => 1, 'bar' => 2 } ] - ---- -test: YAML Header -todo: true -brief: > - The opening separator can contain directives - to the YAML parser, such as the version - number. -yaml: | - --- %YAML:1.0 - foo: 1 - bar: 2 -php: | - array('foo' => 1, 'bar' => 2) -documents: 1 - ---- -test: Red Herring Document Separator -brief: > - Separators included in blocks or strings - are treated as blocks or strings, as the - document separator should have no indentation - preceding it. -yaml: | - foo: | - --- -php: | - array('foo' => "---\n") - ---- -test: Multiple Document Separators in Block -brief: > - This technique allows you to embed other YAML - documents within literal blocks. -yaml: | - foo: | - --- - foo: bar - --- - yo: baz - bar: | - fooness -php: | - array( - 'foo' => "---\nfoo: bar\n---\nyo: baz\n", - 'bar' => "fooness\n" - ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsErrorTests.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsErrorTests.yml deleted file mode 100755 index e8506fcb6..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsErrorTests.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -test: Missing value for hash item -todo: true -brief: | - Third item in this hash doesn't have a value -yaml: | - okay: value - also okay: ~ - causes error because no value specified - last key: value okay here too -python-error: causes error because no value specified - ---- -test: Not indenting enough -brief: | - There was a bug in PyYaml where it was off by one - in the indentation check. It was allowing the YAML - below. -# This is actually valid YAML now. Someone should tell showell. -yaml: | - foo: - firstline: 1 - secondline: 2 -php: | - array('foo' => null, 'firstline' => 1, 'secondline' => 2) diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsFlowCollections.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsFlowCollections.yml deleted file mode 100755 index 03090e4ab..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsFlowCollections.yml +++ /dev/null @@ -1,60 +0,0 @@ ---- -test: Simple Inline Array -brief: > - Sequences can be contained on a - single line, using the inline syntax. - Separate each entry with commas and - enclose in square brackets. -yaml: | - seq: [ a, b, c ] -php: | - array('seq' => array('a', 'b', 'c')) ---- -test: Simple Inline Hash -brief: > - Mapping can also be contained on - a single line, using the inline - syntax. Each key-value pair is - separated by a colon, with a comma - between each entry in the mapping. - Enclose with curly braces. -yaml: | - hash: { name: Steve, foo: bar } -php: | - array('hash' => array('name' => 'Steve', 'foo' => 'bar')) ---- -test: Multi-line Inline Collections -todo: true -brief: > - Both inline sequences and inline mappings - can span multiple lines, provided that you - indent the additional lines. -yaml: | - languages: [ Ruby, - Perl, - Python ] - websites: { YAML: yaml.org, - Ruby: ruby-lang.org, - Python: python.org, - Perl: use.perl.org } -php: | - array( - 'languages' => array('Ruby', 'Perl', 'Python'), - 'websites' => array( - 'YAML' => 'yaml.org', - 'Ruby' => 'ruby-lang.org', - 'Python' => 'python.org', - 'Perl' => 'use.perl.org' - ) - ) ---- -test: Commas in Values (not in the spec!) -todo: true -brief: > - List items in collections are delimited by commas, but - there must be a space after each comma. This allows you - to add numbers without quoting. -yaml: | - attendances: [ 45,123, 70,000, 17,222 ] -php: | - array('attendances' => array(45123, 70000, 17222)) diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsFoldedScalars.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsFoldedScalars.yml deleted file mode 100755 index a14735a55..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsFoldedScalars.yml +++ /dev/null @@ -1,176 +0,0 @@ ---- %YAML:1.0 -test: Single ending newline -brief: > - A pipe character, followed by an indented - block of text is treated as a literal - block, in which newlines are preserved - throughout the block, including the final - newline. -yaml: | - --- - this: | - Foo - Bar -php: | - array('this' => "Foo\nBar\n") ---- -test: The '+' indicator -brief: > - The '+' indicator says to keep newlines at the end of text - blocks. -yaml: | - normal: | - extra new lines not kept - - preserving: |+ - extra new lines are kept - - - dummy: value -php: | - array( - 'normal' => "extra new lines not kept\n", - 'preserving' => "extra new lines are kept\n\n\n", - 'dummy' => 'value' - ) ---- -test: Three trailing newlines in literals -brief: > - To give you more control over how space - is preserved in text blocks, YAML has - the keep '+' and chomp '-' indicators. - The keep indicator will preserve all - ending newlines, while the chomp indicator - will strip all ending newlines. -yaml: | - clipped: | - This has one newline. - - - - same as "clipped" above: "This has one newline.\n" - - stripped: |- - This has no newline. - - - - same as "stripped" above: "This has no newline." - - kept: |+ - This has four newlines. - - - - same as "kept" above: "This has four newlines.\n\n\n\n" -php: | - array( - 'clipped' => "This has one newline.\n", - 'same as "clipped" above' => "This has one newline.\n", - 'stripped' => 'This has no newline.', - 'same as "stripped" above' => 'This has no newline.', - 'kept' => "This has four newlines.\n\n\n\n", - 'same as "kept" above' => "This has four newlines.\n\n\n\n" - ) ---- -test: Extra trailing newlines with spaces -todo: true -brief: > - Normally, only a single newline is kept - from the end of a literal block, unless the - keep '+' character is used in combination - with the pipe. The following example - will preserve all ending whitespace - since the last line of both literal blocks - contains spaces which extend past the indentation - level. -yaml: | - --- - this: | - Foo - - - kept: |+ - Foo - - -php: | - array('this' => "Foo\n\n \n", - 'kept' => "Foo\n\n \n" ) - ---- -test: Folded Block in a Sequence -brief: > - A greater-then character, followed by an indented - block of text is treated as a folded block, in - which lines of text separated by a single newline - are concatenated as a single line. -yaml: | - --- - - apple - - banana - - > - can't you see - the beauty of yaml? - hmm - - dog -php: | - array( - 'apple', - 'banana', - "can't you see the beauty of yaml? hmm\n", - 'dog' - ) ---- -test: Folded Block as a Mapping Value -brief: > - Both literal and folded blocks can be - used in collections, as values in a - sequence or a mapping. -yaml: | - --- - quote: > - Mark McGwire's - year was crippled - by a knee injury. - source: espn -php: | - array( - 'quote' => "Mark McGwire's year was crippled by a knee injury.\n", - 'source' => 'espn' - ) ---- -test: Three trailing newlines in folded blocks -brief: > - The keep and chomp indicators can also - be applied to folded blocks. -yaml: | - clipped: > - This has one newline. - - - - same as "clipped" above: "This has one newline.\n" - - stripped: >- - This has no newline. - - - - same as "stripped" above: "This has no newline." - - kept: >+ - This has four newlines. - - - - same as "kept" above: "This has four newlines.\n\n\n\n" -php: | - array( - 'clipped' => "This has one newline.\n", - 'same as "clipped" above' => "This has one newline.\n", - 'stripped' => 'This has no newline.', - 'same as "stripped" above' => 'This has no newline.', - 'kept' => "This has four newlines.\n\n\n\n", - 'same as "kept" above' => "This has four newlines.\n\n\n\n" - ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsNullsAndEmpties.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsNullsAndEmpties.yml deleted file mode 100755 index 9a5300f2e..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsNullsAndEmpties.yml +++ /dev/null @@ -1,45 +0,0 @@ ---- %YAML:1.0 -test: Empty Sequence -brief: > - You can represent the empty sequence - with an empty inline sequence. -yaml: | - empty: [] -php: | - array('empty' => array()) ---- -test: Empty Mapping -brief: > - You can represent the empty mapping - with an empty inline mapping. -yaml: | - empty: {} -php: | - array('empty' => array()) ---- -test: Empty Sequence as Entire Document -yaml: | - [] -php: | - array() ---- -test: Empty Mapping as Entire Document -yaml: | - {} -php: | - array() ---- -test: Null as Document -yaml: | - ~ -php: | - null ---- -test: Empty String -brief: > - You can represent an empty string - with a pair of quotes. -yaml: | - '' -php: | - '' diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml deleted file mode 100755 index ec1c4c3a1..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsSpecificationExamples.yml +++ /dev/null @@ -1,1697 +0,0 @@ ---- %YAML:1.0 -test: Sequence of scalars -spec: 2.1 -yaml: | - - Mark McGwire - - Sammy Sosa - - Ken Griffey -php: | - array('Mark McGwire', 'Sammy Sosa', 'Ken Griffey') ---- -test: Mapping of scalars to scalars -spec: 2.2 -yaml: | - hr: 65 - avg: 0.278 - rbi: 147 -php: | - array('hr' => 65, 'avg' => 0.278, 'rbi' => 147) ---- -test: Mapping of scalars to sequences -spec: 2.3 -yaml: | - american: - - Boston Red Sox - - Detroit Tigers - - New York Yankees - national: - - New York Mets - - Chicago Cubs - - Atlanta Braves -php: | - array('american' => - array( 'Boston Red Sox', 'Detroit Tigers', - 'New York Yankees' ), - 'national' => - array( 'New York Mets', 'Chicago Cubs', - 'Atlanta Braves' ) - ) ---- -test: Sequence of mappings -spec: 2.4 -yaml: | - - - name: Mark McGwire - hr: 65 - avg: 0.278 - - - name: Sammy Sosa - hr: 63 - avg: 0.288 -php: | - array( - array('name' => 'Mark McGwire', 'hr' => 65, 'avg' => 0.278), - array('name' => 'Sammy Sosa', 'hr' => 63, 'avg' => 0.288) - ) ---- -test: Legacy A5 -todo: true -spec: legacy_A5 -yaml: | - ? - - New York Yankees - - Atlanta Braves - : - - 2001-07-02 - - 2001-08-12 - - 2001-08-14 - ? - - Detroit Tigers - - Chicago Cubs - : - - 2001-07-23 -perl-busted: > - YAML.pm will be able to emulate this behavior soon. In this regard - it may be somewhat more correct than Python's native behaviour which - can only use tuples as mapping keys. PyYAML will also need to figure - out some clever way to roundtrip structured keys. -python: | - [ - { - ('New York Yankees', 'Atlanta Braves'): - [yaml.timestamp('2001-07-02'), - yaml.timestamp('2001-08-12'), - yaml.timestamp('2001-08-14')], - ('Detroit Tigers', 'Chicago Cubs'): - [yaml.timestamp('2001-07-23')] - } - ] -ruby: | - { - [ 'New York Yankees', 'Atlanta Braves' ] => - [ Date.new( 2001, 7, 2 ), Date.new( 2001, 8, 12 ), Date.new( 2001, 8, 14 ) ], - [ 'Detroit Tigers', 'Chicago Cubs' ] => - [ Date.new( 2001, 7, 23 ) ] - } -syck: | - struct test_node seq1[] = { - { T_STR, 0, "New York Yankees" }, - { T_STR, 0, "Atlanta Braves" }, - end_node - }; - struct test_node seq2[] = { - { T_STR, 0, "2001-07-02" }, - { T_STR, 0, "2001-08-12" }, - { T_STR, 0, "2001-08-14" }, - end_node - }; - struct test_node seq3[] = { - { T_STR, 0, "Detroit Tigers" }, - { T_STR, 0, "Chicago Cubs" }, - end_node - }; - struct test_node seq4[] = { - { T_STR, 0, "2001-07-23" }, - end_node - }; - struct test_node map[] = { - { T_SEQ, 0, 0, seq1 }, - { T_SEQ, 0, 0, seq2 }, - { T_SEQ, 0, 0, seq3 }, - { T_SEQ, 0, 0, seq4 }, - end_node - }; - struct test_node stream[] = { - { T_MAP, 0, 0, map }, - end_node - }; - ---- -test: Sequence of sequences -spec: 2.5 -yaml: | - - [ name , hr , avg ] - - [ Mark McGwire , 65 , 0.278 ] - - [ Sammy Sosa , 63 , 0.288 ] -php: | - array( - array( 'name', 'hr', 'avg' ), - array( 'Mark McGwire', 65, 0.278 ), - array( 'Sammy Sosa', 63, 0.288 ) - ) ---- -test: Mapping of mappings -todo: true -spec: 2.6 -yaml: | - Mark McGwire: {hr: 65, avg: 0.278} - Sammy Sosa: { - hr: 63, - avg: 0.288 - } -php: | - array( - 'Mark McGwire' => - array( 'hr' => 65, 'avg' => 0.278 ), - 'Sammy Sosa' => - array( 'hr' => 63, 'avg' => 0.288 ) - ) ---- -test: Two documents in a stream each with a leading comment -todo: true -spec: 2.7 -yaml: | - # Ranking of 1998 home runs - --- - - Mark McGwire - - Sammy Sosa - - Ken Griffey - - # Team ranking - --- - - Chicago Cubs - - St Louis Cardinals -ruby: | - y = YAML::Stream.new - y.add( [ 'Mark McGwire', 'Sammy Sosa', 'Ken Griffey' ] ) - y.add( [ 'Chicago Cubs', 'St Louis Cardinals' ] ) -documents: 2 - ---- -test: Play by play feed from a game -todo: true -spec: 2.8 -yaml: | - --- - time: 20:03:20 - player: Sammy Sosa - action: strike (miss) - ... - --- - time: 20:03:47 - player: Sammy Sosa - action: grand slam - ... -perl: | - [ 'Mark McGwire', 'Sammy Sosa', 'Ken Griffey' ] -documents: 2 - ---- -test: Single document with two comments -spec: 2.9 -yaml: | - hr: # 1998 hr ranking - - Mark McGwire - - Sammy Sosa - rbi: - # 1998 rbi ranking - - Sammy Sosa - - Ken Griffey -php: | - array( - 'hr' => array( 'Mark McGwire', 'Sammy Sosa' ), - 'rbi' => array( 'Sammy Sosa', 'Ken Griffey' ) - ) ---- -test: Node for Sammy Sosa appears twice in this document -spec: 2.10 -yaml: | - --- - hr: - - Mark McGwire - # Following node labeled SS - - &SS Sammy Sosa - rbi: - - *SS # Subsequent occurrence - - Ken Griffey -php: | - array( - 'hr' => - array('Mark McGwire', 'Sammy Sosa'), - 'rbi' => - array('Sammy Sosa', 'Ken Griffey') - ) ---- -test: Mapping between sequences -todo: true -spec: 2.11 -yaml: | - ? # PLAY SCHEDULE - - Detroit Tigers - - Chicago Cubs - : - - 2001-07-23 - - ? [ New York Yankees, - Atlanta Braves ] - : [ 2001-07-02, 2001-08-12, - 2001-08-14 ] -ruby: | - { - [ 'Detroit Tigers', 'Chicago Cubs' ] => [ Date.new( 2001, 7, 23 ) ], - [ 'New York Yankees', 'Atlanta Braves' ] => [ Date.new( 2001, 7, 2 ), Date.new( 2001, 8, 12 ), Date.new( 2001, 8, 14 ) ] - } -syck: | - struct test_node seq1[] = { - { T_STR, 0, "New York Yankees" }, - { T_STR, 0, "Atlanta Braves" }, - end_node - }; - struct test_node seq2[] = { - { T_STR, 0, "2001-07-02" }, - { T_STR, 0, "2001-08-12" }, - { T_STR, 0, "2001-08-14" }, - end_node - }; - struct test_node seq3[] = { - { T_STR, 0, "Detroit Tigers" }, - { T_STR, 0, "Chicago Cubs" }, - end_node - }; - struct test_node seq4[] = { - { T_STR, 0, "2001-07-23" }, - end_node - }; - struct test_node map[] = { - { T_SEQ, 0, 0, seq3 }, - { T_SEQ, 0, 0, seq4 }, - { T_SEQ, 0, 0, seq1 }, - { T_SEQ, 0, 0, seq2 }, - end_node - }; - struct test_node stream[] = { - { T_MAP, 0, 0, map }, - end_node - }; - ---- -test: Sequence key shortcut -spec: 2.12 -yaml: | - --- - # products purchased - - item : Super Hoop - quantity: 1 - - item : Basketball - quantity: 4 - - item : Big Shoes - quantity: 1 -php: | - array ( - array ( - 'item' => 'Super Hoop', - 'quantity' => 1, - ), - array ( - 'item' => 'Basketball', - 'quantity' => 4, - ), - array ( - 'item' => 'Big Shoes', - 'quantity' => 1, - ) - ) -perl: | - [ - { item => 'Super Hoop', quantity => 1 }, - { item => 'Basketball', quantity => 4 }, - { item => 'Big Shoes', quantity => 1 } - ] - -ruby: | - [ - { 'item' => 'Super Hoop', 'quantity' => 1 }, - { 'item' => 'Basketball', 'quantity' => 4 }, - { 'item' => 'Big Shoes', 'quantity' => 1 } - ] -python: | - [ - { 'item': 'Super Hoop', 'quantity': 1 }, - { 'item': 'Basketball', 'quantity': 4 }, - { 'item': 'Big Shoes', 'quantity': 1 } - ] -syck: | - struct test_node map1[] = { - { T_STR, 0, "item" }, - { T_STR, 0, "Super Hoop" }, - { T_STR, 0, "quantity" }, - { T_STR, 0, "1" }, - end_node - }; - struct test_node map2[] = { - { T_STR, 0, "item" }, - { T_STR, 0, "Basketball" }, - { T_STR, 0, "quantity" }, - { T_STR, 0, "4" }, - end_node - }; - struct test_node map3[] = { - { T_STR, 0, "item" }, - { T_STR, 0, "Big Shoes" }, - { T_STR, 0, "quantity" }, - { T_STR, 0, "1" }, - end_node - }; - struct test_node seq[] = { - { T_MAP, 0, 0, map1 }, - { T_MAP, 0, 0, map2 }, - { T_MAP, 0, 0, map3 }, - end_node - }; - struct test_node stream[] = { - { T_SEQ, 0, 0, seq }, - end_node - }; - - ---- -test: Literal perserves newlines -todo: true -spec: 2.13 -yaml: | - # ASCII Art - --- | - \//||\/|| - // || ||_ -perl: | - "\\//||\\/||\n// || ||_\n" -ruby: | - "\\//||\\/||\n// || ||_\n" -python: | - [ - flushLeft( - """ - \//||\/|| - // || ||_ - """ - ) - ] -syck: | - struct test_node stream[] = { - { T_STR, 0, "\\//||\\/||\n// || ||_\n" }, - end_node - }; - ---- -test: Folded treats newlines as a space -todo: true -spec: 2.14 -yaml: | - --- - Mark McGwire's - year was crippled - by a knee injury. -perl: | - "Mark McGwire's year was crippled by a knee injury." -ruby: | - "Mark McGwire's year was crippled by a knee injury." -python: | - [ "Mark McGwire's year was crippled by a knee injury." ] -syck: | - struct test_node stream[] = { - { T_STR, 0, "Mark McGwire's year was crippled by a knee injury." }, - end_node - }; - ---- -test: Newlines preserved for indented and blank lines -todo: true -spec: 2.15 -yaml: | - --- > - Sammy Sosa completed another - fine season with great stats. - - 63 Home Runs - 0.288 Batting Average - - What a year! -perl: | - "Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n" -ruby: | - "Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n" -python: | - [ - flushLeft( - """ - Sammy Sosa completed another fine season with great stats. - - 63 Home Runs - 0.288 Batting Average - - What a year! - """ - ) - ] -syck: | - struct test_node stream[] = { - { T_STR, 0, "Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n" }, - end_node - }; - - ---- -test: Indentation determines scope -spec: 2.16 -yaml: | - name: Mark McGwire - accomplishment: > - Mark set a major league - home run record in 1998. - stats: | - 65 Home Runs - 0.278 Batting Average -php: | - array( - 'name' => 'Mark McGwire', - 'accomplishment' => "Mark set a major league home run record in 1998.\n", - 'stats' => "65 Home Runs\n0.278 Batting Average\n" - ) ---- -test: Quoted scalars -todo: true -spec: 2.17 -yaml: | - unicode: "Sosa did fine.\u263A" - control: "\b1998\t1999\t2000\n" - hexesc: "\x0D\x0A is \r\n" - - single: '"Howdy!" he cried.' - quoted: ' # not a ''comment''.' - tie-fighter: '|\-*-/|' -ruby: | - { - "tie-fighter" => "|\\-*-/|", - "control"=>"\0101998\t1999\t2000\n", - "unicode"=>"Sosa did fine." + ["263A".hex ].pack('U*'), - "quoted"=>" # not a 'comment'.", - "single"=>"\"Howdy!\" he cried.", - "hexesc"=>"\r\n is \r\n" - } ---- -test: Multiline flow scalars -todo: true -spec: 2.18 -yaml: | - plain: - This unquoted scalar - spans many lines. - - quoted: "So does this - quoted scalar.\n" -ruby: | - { - 'plain' => 'This unquoted scalar spans many lines.', - 'quoted' => "So does this quoted scalar.\n" - } ---- -test: Integers -spec: 2.19 -yaml: | - canonical: 12345 - decimal: +12,345 - octal: 014 - hexadecimal: 0xC -php: | - array( - 'canonical' => 12345, - 'decimal' => 12345.0, - 'octal' => 014, - 'hexadecimal' => 0xC - ) ---- -# FIX: spec shows parens around -inf and NaN -test: Floating point -spec: 2.20 -yaml: | - canonical: 1.23015e+3 - exponential: 12.3015e+02 - fixed: 1,230.15 - negative infinity: -.inf - not a number: .NaN - float as whole number: !!float 1 -php: | - array( - 'canonical' => 1230.15, - 'exponential' => 1230.15, - 'fixed' => 1230.15, - 'negative infinity' => log(0), - 'not a number' => -log(0), - 'float as whole number' => (float) 1 - ) ---- -test: Miscellaneous -spec: 2.21 -yaml: | - null: ~ - true: true - false: false - string: '12345' -php: | - array( - '' => null, - 1 => true, - 0 => false, - 'string' => '12345' - ) ---- -test: Timestamps -todo: true -spec: 2.22 -yaml: | - canonical: 2001-12-15T02:59:43.1Z - iso8601: 2001-12-14t21:59:43.10-05:00 - spaced: 2001-12-14 21:59:43.10 -05:00 - date: 2002-12-14 # Time is noon UTC -php: | - array( - 'canonical' => YAML::mktime( 2001, 12, 15, 2, 59, 43, 0.10 ), - 'iso8601' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ), - 'spaced' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ), - 'date' => Date.new( 2002, 12, 14 ) - ) ---- -test: legacy Timestamps test -todo: true -spec: legacy D4 -yaml: | - canonical: 2001-12-15T02:59:43.00Z - iso8601: 2001-02-28t21:59:43.00-05:00 - spaced: 2001-12-14 21:59:43.00 -05:00 - date: 2002-12-14 -php: | - array( - 'canonical' => Time::utc( 2001, 12, 15, 2, 59, 43, 0 ), - 'iso8601' => YAML::mktime( 2001, 2, 28, 21, 59, 43, 0, "-05:00" ), - 'spaced' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0, "-05:00" ), - 'date' => Date.new( 2002, 12, 14 ) - ) ---- -test: Various explicit families -todo: true -spec: 2.23 -yaml: | - not-date: !str 2002-04-28 - picture: !binary | - R0lGODlhDAAMAIQAAP//9/X - 17unp5WZmZgAAAOfn515eXv - Pz7Y6OjuDg4J+fn5OTk6enp - 56enmleECcgggoBADs= - - application specific tag: !!something | - The semantics of the tag - above may be different for - different documents. - -ruby-setup: | - YAML.add_private_type( "something" ) do |type, val| - "SOMETHING: #{val}" - end -ruby: | - { - 'not-date' => '2002-04-28', - 'picture' => "GIF89a\f\000\f\000\204\000\000\377\377\367\365\365\356\351\351\345fff\000\000\000\347\347\347^^^\363\363\355\216\216\216\340\340\340\237\237\237\223\223\223\247\247\247\236\236\236i^\020' \202\n\001\000;", - 'application specific tag' => "SOMETHING: The semantics of the tag\nabove may be different for\ndifferent documents.\n" - } ---- -test: Application specific family -todo: true -spec: 2.24 -yaml: | - # Establish a tag prefix - --- !clarkevans.com,2002/graph/^shape - # Use the prefix: shorthand for - # !clarkevans.com,2002/graph/circle - - !^circle - center: &ORIGIN {x: 73, 'y': 129} - radius: 7 - - !^line # !clarkevans.com,2002/graph/line - start: *ORIGIN - finish: { x: 89, 'y': 102 } - - !^label - start: *ORIGIN - color: 0xFFEEBB - value: Pretty vector drawing. -ruby-setup: | - YAML.add_domain_type( "clarkevans.com,2002", 'graph/shape' ) { |type, val| - if Array === val - val << "Shape Container" - val - else - raise YAML::Error, "Invalid graph of class #{ val.class }: " + val.inspect - end - } - one_shape_proc = Proc.new { |type, val| - scheme, domain, type = type.split( /:/, 3 ) - if val.is_a? ::Hash - val['TYPE'] = "Shape: #{type}" - val - else - raise YAML::Error, "Invalid graph of class #{ val.class }: " + val.inspect - end - } - YAML.add_domain_type( "clarkevans.com,2002", 'graph/circle', &one_shape_proc ) - YAML.add_domain_type( "clarkevans.com,2002", 'graph/line', &one_shape_proc ) - YAML.add_domain_type( "clarkevans.com,2002", 'graph/label', &one_shape_proc ) -ruby: | - [ - { - "radius" => 7, - "center"=> - { - "x" => 73, - "y" => 129 - }, - "TYPE" => "Shape: graph/circle" - }, { - "finish" => - { - "x" => 89, - "y" => 102 - }, - "TYPE" => "Shape: graph/line", - "start" => - { - "x" => 73, - "y" => 129 - } - }, { - "TYPE" => "Shape: graph/label", - "value" => "Pretty vector drawing.", - "start" => - { - "x" => 73, - "y" => 129 - }, - "color" => 16772795 - }, - "Shape Container" - ] -# --- -# test: Unordered set -# spec: 2.25 -# yaml: | -# # sets are represented as a -# # mapping where each key is -# # associated with the empty string -# --- !set -# ? Mark McGwire -# ? Sammy Sosa -# ? Ken Griff ---- -test: Ordered mappings -todo: true -spec: 2.26 -yaml: | - # ordered maps are represented as - # a sequence of mappings, with - # each mapping having one key - --- !omap - - Mark McGwire: 65 - - Sammy Sosa: 63 - - Ken Griffy: 58 -ruby: | - YAML::Omap[ - 'Mark McGwire', 65, - 'Sammy Sosa', 63, - 'Ken Griffy', 58 - ] ---- -test: Invoice -dump_skip: true -spec: 2.27 -yaml: | - --- !clarkevans.com,2002/^invoice - invoice: 34843 - date : 2001-01-23 - bill-to: &id001 - given : Chris - family : Dumars - address: - lines: | - 458 Walkman Dr. - Suite #292 - city : Royal Oak - state : MI - postal : 48046 - ship-to: *id001 - product: - - - sku : BL394D - quantity : 4 - description : Basketball - price : 450.00 - - - sku : BL4438H - quantity : 1 - description : Super Hoop - price : 2392.00 - tax : 251.42 - total: 4443.52 - comments: > - Late afternoon is best. - Backup contact is Nancy - Billsmer @ 338-4338. -php: | - array( - 'invoice' => 34843, 'date' => gmmktime(0, 0, 0, 1, 23, 2001), - 'bill-to' => - array( 'given' => 'Chris', 'family' => 'Dumars', 'address' => array( 'lines' => "458 Walkman Dr.\nSuite #292\n", 'city' => 'Royal Oak', 'state' => 'MI', 'postal' => 48046 ) ) - , 'ship-to' => - array( 'given' => 'Chris', 'family' => 'Dumars', 'address' => array( 'lines' => "458 Walkman Dr.\nSuite #292\n", 'city' => 'Royal Oak', 'state' => 'MI', 'postal' => 48046 ) ) - , 'product' => - array( - array( 'sku' => 'BL394D', 'quantity' => 4, 'description' => 'Basketball', 'price' => 450.00 ), - array( 'sku' => 'BL4438H', 'quantity' => 1, 'description' => 'Super Hoop', 'price' => 2392.00 ) - ), - 'tax' => 251.42, 'total' => 4443.52, - 'comments' => "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.\n" - ) ---- -test: Log file -todo: true -spec: 2.28 -yaml: | - --- - Time: 2001-11-23 15:01:42 -05:00 - User: ed - Warning: > - This is an error message - for the log file - --- - Time: 2001-11-23 15:02:31 -05:00 - User: ed - Warning: > - A slightly different error - message. - --- - Date: 2001-11-23 15:03:17 -05:00 - User: ed - Fatal: > - Unknown variable "bar" - Stack: - - file: TopClass.py - line: 23 - code: | - x = MoreObject("345\n") - - file: MoreClass.py - line: 58 - code: |- - foo = bar -ruby: | - y = YAML::Stream.new - y.add( { 'Time' => YAML::mktime( 2001, 11, 23, 15, 01, 42, 00, "-05:00" ), - 'User' => 'ed', 'Warning' => "This is an error message for the log file\n" } ) - y.add( { 'Time' => YAML::mktime( 2001, 11, 23, 15, 02, 31, 00, "-05:00" ), - 'User' => 'ed', 'Warning' => "A slightly different error message.\n" } ) - y.add( { 'Date' => YAML::mktime( 2001, 11, 23, 15, 03, 17, 00, "-05:00" ), - 'User' => 'ed', 'Fatal' => "Unknown variable \"bar\"\n", - 'Stack' => [ - { 'file' => 'TopClass.py', 'line' => 23, 'code' => "x = MoreObject(\"345\\n\")\n" }, - { 'file' => 'MoreClass.py', 'line' => 58, 'code' => "foo = bar" } ] } ) -documents: 3 - ---- -test: Throwaway comments -yaml: | - ### These are four throwaway comment ### - - ### lines (the second line is empty). ### - this: | # Comments may trail lines. - contains three lines of text. - The third one starts with a - # character. This isn't a comment. - - # These are three throwaway comment - # lines (the first line is empty). -php: | - array( - 'this' => "contains three lines of text.\nThe third one starts with a\n# character. This isn't a comment.\n" - ) ---- -test: Document with a single value -todo: true -yaml: | - --- > - This YAML stream contains a single text value. - The next stream is a log file - a sequence of - log entries. Adding an entry to the log is a - simple matter of appending it at the end. -ruby: | - "This YAML stream contains a single text value. The next stream is a log file - a sequence of log entries. Adding an entry to the log is a simple matter of appending it at the end.\n" ---- -test: Document stream -todo: true -yaml: | - --- - at: 2001-08-12 09:25:00.00 Z - type: GET - HTTP: '1.0' - url: '/index.html' - --- - at: 2001-08-12 09:25:10.00 Z - type: GET - HTTP: '1.0' - url: '/toc.html' -ruby: | - y = YAML::Stream.new - y.add( { - 'at' => Time::utc( 2001, 8, 12, 9, 25, 00 ), - 'type' => 'GET', - 'HTTP' => '1.0', - 'url' => '/index.html' - } ) - y.add( { - 'at' => Time::utc( 2001, 8, 12, 9, 25, 10 ), - 'type' => 'GET', - 'HTTP' => '1.0', - 'url' => '/toc.html' - } ) -documents: 2 - ---- -test: Top level mapping -yaml: | - # This stream is an example of a top-level mapping. - invoice : 34843 - date : 2001-01-23 - total : 4443.52 -php: | - array( - 'invoice' => 34843, - 'date' => gmmktime(0, 0, 0, 1, 23, 2001), - 'total' => 4443.52 - ) ---- -test: Single-line documents -todo: true -yaml: | - # The following is a sequence of three documents. - # The first contains an empty mapping, the second - # an empty sequence, and the last an empty string. - --- {} - --- [ ] - --- '' -ruby: | - y = YAML::Stream.new - y.add( {} ) - y.add( [] ) - y.add( '' ) -documents: 3 - ---- -test: Document with pause -todo: true -yaml: | - # A communication channel based on a YAML stream. - --- - sent at: 2002-06-06 11:46:25.10 Z - payload: Whatever - # Receiver can process this as soon as the following is sent: - ... - # Even if the next message is sent long after: - --- - sent at: 2002-06-06 12:05:53.47 Z - payload: Whatever - ... -ruby: | - y = YAML::Stream.new - y.add( - { 'sent at' => YAML::mktime( 2002, 6, 6, 11, 46, 25, 0.10 ), - 'payload' => 'Whatever' } - ) - y.add( - { "payload" => "Whatever", "sent at" => YAML::mktime( 2002, 6, 6, 12, 5, 53, 0.47 ) } - ) -documents: 2 - ---- -test: Explicit typing -yaml: | - integer: 12 - also int: ! "12" - string: !str 12 -php: | - array( 'integer' => 12, 'also int' => 12, 'string' => '12' ) ---- -test: Private types -todo: true -yaml: | - # Both examples below make use of the 'x-private:ball' - # type family URI, but with different semantics. - --- - pool: !!ball - number: 8 - color: black - --- - bearing: !!ball - material: steel -ruby: | - y = YAML::Stream.new - y.add( { 'pool' => - YAML::PrivateType.new( 'ball', - { 'number' => 8, 'color' => 'black' } ) } - ) - y.add( { 'bearing' => - YAML::PrivateType.new( 'ball', - { 'material' => 'steel' } ) } - ) -documents: 2 - ---- -test: Type family under yaml.org -yaml: | - # The URI is 'tag:yaml.org,2002:str' - - !str a Unicode string -php: | - array( 'a Unicode string' ) ---- -test: Type family under perl.yaml.org -todo: true -yaml: | - # The URI is 'tag:perl.yaml.org,2002:Text::Tabs' - - !perl/Text::Tabs {} -ruby: | - [ YAML::DomainType.new( 'perl.yaml.org,2002', 'Text::Tabs', {} ) ] ---- -test: Type family under clarkevans.com -todo: true -yaml: | - # The URI is 'tag:clarkevans.com,2003-02:timesheet' - - !clarkevans.com,2003-02/timesheet {} -ruby: | - [ YAML::DomainType.new( 'clarkevans.com,2003-02', 'timesheet', {} ) ] ---- -test: URI Escaping -todo: true -yaml: | - same: - - !domain.tld,2002/type\x30 value - - !domain.tld,2002/type0 value - different: # As far as the YAML parser is concerned - - !domain.tld,2002/type%30 value - - !domain.tld,2002/type0 value -ruby-setup: | - YAML.add_domain_type( "domain.tld,2002", "type0" ) { |type, val| - "ONE: #{val}" - } - YAML.add_domain_type( "domain.tld,2002", "type%30" ) { |type, val| - "TWO: #{val}" - } -ruby: | - { 'same' => [ 'ONE: value', 'ONE: value' ], 'different' => [ 'TWO: value', 'ONE: value' ] } ---- -test: URI Prefixing -todo: true -yaml: | - # 'tag:domain.tld,2002:invoice' is some type family. - invoice: !domain.tld,2002/^invoice - # 'seq' is shorthand for 'tag:yaml.org,2002:seq'. - # This does not effect '^customer' below - # because it is does not specify a prefix. - customers: !seq - # '^customer' is shorthand for the full - # notation 'tag:domain.tld,2002:customer'. - - !^customer - given : Chris - family : Dumars -ruby-setup: | - YAML.add_domain_type( "domain.tld,2002", /(invoice|customer)/ ) { |type, val| - if val.is_a? ::Hash - scheme, domain, type = type.split( /:/, 3 ) - val['type'] = "domain #{type}" - val - else - raise YAML::Error, "Not a Hash in domain.tld/invoice: " + val.inspect - end - } -ruby: | - { "invoice"=> { "customers"=> [ { "given"=>"Chris", "type"=>"domain customer", "family"=>"Dumars" } ], "type"=>"domain invoice" } } - ---- -test: Overriding anchors -yaml: | - anchor : &A001 This scalar has an anchor. - override : &A001 > - The alias node below is a - repeated use of this value. - alias : *A001 -php: | - array( 'anchor' => 'This scalar has an anchor.', - 'override' => "The alias node below is a repeated use of this value.\n", - 'alias' => "The alias node below is a repeated use of this value.\n" ) ---- -test: Flow and block formatting -todo: true -yaml: | - empty: [] - flow: [ one, two, three # May span lines, - , four, # indentation is - five ] # mostly ignored. - block: - - First item in top sequence - - - - Subordinate sequence entry - - > - A folded sequence entry - - Sixth item in top sequence -ruby: | - { 'empty' => [], 'flow' => [ 'one', 'two', 'three', 'four', 'five' ], - 'block' => [ 'First item in top sequence', [ 'Subordinate sequence entry' ], - "A folded sequence entry\n", 'Sixth item in top sequence' ] } ---- -test: Complete mapping test -todo: true -yaml: | - empty: {} - flow: { one: 1, two: 2 } - spanning: { one: 1, - two: 2 } - block: - first : First entry - second: - key: Subordinate mapping - third: - - Subordinate sequence - - { } - - Previous mapping is empty. - - A key: value pair in a sequence. - A second: key:value pair. - - The previous entry is equal to the following one. - - - A key: value pair in a sequence. - A second: key:value pair. - !float 12 : This key is a float. - ? > - ? - : This key had to be protected. - "\a" : This key had to be escaped. - ? > - This is a - multi-line - folded key - : Whose value is - also multi-line. - ? this also works as a key - : with a value at the next line. - ? - - This key - - is a sequence - : - - With a sequence value. - ? - This: key - is a: mapping - : - with a: mapping value. -ruby: | - { 'empty' => {}, 'flow' => { 'one' => 1, 'two' => 2 }, - 'spanning' => { 'one' => 1, 'two' => 2 }, - 'block' => { 'first' => 'First entry', 'second' => - { 'key' => 'Subordinate mapping' }, 'third' => - [ 'Subordinate sequence', {}, 'Previous mapping is empty.', - { 'A key' => 'value pair in a sequence.', 'A second' => 'key:value pair.' }, - 'The previous entry is equal to the following one.', - { 'A key' => 'value pair in a sequence.', 'A second' => 'key:value pair.' } ], - 12.0 => 'This key is a float.', "?\n" => 'This key had to be protected.', - "\a" => 'This key had to be escaped.', - "This is a multi-line folded key\n" => "Whose value is also multi-line.", - 'this also works as a key' => 'with a value at the next line.', - [ 'This key', 'is a sequence' ] => [ 'With a sequence value.' ] } } - # Couldn't recreate map exactly, so we'll do a detailed check to be sure it's entact - obj_y['block'].keys.each { |k| - if Hash === k - v = obj_y['block'][k] - if k['This'] == 'key' and k['is a'] == 'mapping' and v['with a'] == 'mapping value.' - obj_r['block'][k] = v - end - end - } ---- -test: Literal explicit indentation -yaml: | - # Explicit indentation must - # be given in all the three - # following cases. - leading spaces: |2 - This value starts with four spaces. - - leading line break: |2 - - This value starts with a line break. - - leading comment indicator: |2 - # first line starts with a - # character. - - # Explicit indentation may - # also be given when it is - # not required. - redundant: |2 - This value is indented 2 spaces. -php: | - array( - 'leading spaces' => " This value starts with four spaces.\n", - 'leading line break' => "\nThis value starts with a line break.\n", - 'leading comment indicator' => "# first line starts with a\n# character.\n", - 'redundant' => "This value is indented 2 spaces.\n" - ) ---- -test: Chomping and keep modifiers -yaml: | - clipped: | - This has one newline. - - same as "clipped" above: "This has one newline.\n" - - stripped: |- - This has no newline. - - same as "stripped" above: "This has no newline." - - kept: |+ - This has two newlines. - - same as "kept" above: "This has two newlines.\n\n" -php: | - array( - 'clipped' => "This has one newline.\n", - 'same as "clipped" above' => "This has one newline.\n", - 'stripped' => 'This has no newline.', - 'same as "stripped" above' => 'This has no newline.', - 'kept' => "This has two newlines.\n\n", - 'same as "kept" above' => "This has two newlines.\n\n" - ) ---- -test: Literal combinations -todo: true -yaml: | - empty: | - - literal: | - The \ ' " characters may be - freely used. Leading white - space is significant. - - Line breaks are significant. - Thus this value contains one - empty line and ends with a - single line break, but does - not start with one. - - is equal to: "The \\ ' \" characters may \ - be\nfreely used. Leading white\n space \ - is significant.\n\nLine breaks are \ - significant.\nThus this value contains \ - one\nempty line and ends with a\nsingle \ - line break, but does\nnot start with one.\n" - - # Comments may follow a block - # scalar value. They must be - # less indented. - - # Modifiers may be combined in any order. - indented and chomped: |2- - This has no newline. - - also written as: |-2 - This has no newline. - - both are equal to: " This has no newline." -php: | - array( - 'empty' => '', - 'literal' => "The \\ ' \" characters may be\nfreely used. Leading white\n space " + - "is significant.\n\nLine breaks are significant.\nThus this value contains one\n" + - "empty line and ends with a\nsingle line break, but does\nnot start with one.\n", - 'is equal to' => "The \\ ' \" characters may be\nfreely used. Leading white\n space " + - "is significant.\n\nLine breaks are significant.\nThus this value contains one\n" + - "empty line and ends with a\nsingle line break, but does\nnot start with one.\n", - 'indented and chomped' => ' This has no newline.', - 'also written as' => ' This has no newline.', - 'both are equal to' => ' This has no newline.' - ) ---- -test: Folded combinations -todo: true -yaml: | - empty: > - - one paragraph: > - Line feeds are converted - to spaces, so this value - contains no line breaks - except for the final one. - - multiple paragraphs: >2 - - An empty line, either - at the start or in - the value: - - Is interpreted as a - line break. Thus this - value contains three - line breaks. - - indented text: > - This is a folded - paragraph followed - by a list: - * first entry - * second entry - Followed by another - folded paragraph, - another list: - - * first entry - - * second entry - - And a final folded - paragraph. - - above is equal to: | - This is a folded paragraph followed by a list: - * first entry - * second entry - Followed by another folded paragraph, another list: - - * first entry - - * second entry - - And a final folded paragraph. - - # Explicit comments may follow - # but must be less indented. -php: | - array( - 'empty' => '', - 'one paragraph' => 'Line feeds are converted to spaces, so this value'. - " contains no line breaks except for the final one.\n", - 'multiple paragraphs' => "\nAn empty line, either at the start or in the value:\n". - "Is interpreted as a line break. Thus this value contains three line breaks.\n", - 'indented text' => "This is a folded paragraph followed by a list:\n". - " * first entry\n * second entry\nFollowed by another folded paragraph, ". - "another list:\n\n * first entry\n\n * second entry\n\nAnd a final folded paragraph.\n", - 'above is equal to' => "This is a folded paragraph followed by a list:\n". - " * first entry\n * second entry\nFollowed by another folded paragraph, ". - "another list:\n\n * first entry\n\n * second entry\n\nAnd a final folded paragraph.\n" - ) ---- -test: Single quotes -todo: true -yaml: | - empty: '' - second: '! : \ etc. can be used freely.' - third: 'a single quote '' must be escaped.' - span: 'this contains - six spaces - - and one - line break' - is same as: "this contains six spaces\nand one line break" -php: | - array( - 'empty' => '', - 'second' => '! : \\ etc. can be used freely.', - 'third' => "a single quote ' must be escaped.", - 'span' => "this contains six spaces\nand one line break", - 'is same as' => "this contains six spaces\nand one line break" - ) ---- -test: Double quotes -todo: true -yaml: | - empty: "" - second: "! : etc. can be used freely." - third: "a \" or a \\ must be escaped." - fourth: "this value ends with an LF.\n" - span: "this contains - four \ - spaces" - is equal to: "this contains four spaces" -php: | - array( - 'empty' => '', - 'second' => '! : etc. can be used freely.', - 'third' => 'a " or a \\ must be escaped.', - 'fourth' => "this value ends with an LF.\n", - 'span' => "this contains four spaces", - 'is equal to' => "this contains four spaces" - ) ---- -test: Unquoted strings -todo: true -yaml: | - first: There is no unquoted empty string. - - second: 12 ## This is an integer. - - third: !str 12 ## This is a string. - - span: this contains - six spaces - - and one - line break - - indicators: this has no comments. - #:foo and bar# are - both text. - - flow: [ can span - lines, # comment - like - this ] - - note: { one-line keys: but multi-line values } - -php: | - array( - 'first' => 'There is no unquoted empty string.', - 'second' => 12, - 'third' => '12', - 'span' => "this contains six spaces\nand one line break", - 'indicators' => "this has no comments. #:foo and bar# are both text.", - 'flow' => [ 'can span lines', 'like this' ], - 'note' => { 'one-line keys' => 'but multi-line values' } - ) ---- -test: Spanning sequences -todo: true -yaml: | - # The following are equal seqs - # with different identities. - flow: [ one, two ] - spanning: [ one, - two ] - block: - - one - - two -php: | - array( - 'flow' => [ 'one', 'two' ], - 'spanning' => [ 'one', 'two' ], - 'block' => [ 'one', 'two' ] - ) ---- -test: Flow mappings -yaml: | - # The following are equal maps - # with different identities. - flow: { one: 1, two: 2 } - block: - one: 1 - two: 2 -php: | - array( - 'flow' => array( 'one' => 1, 'two' => 2 ), - 'block' => array( 'one' => 1, 'two' => 2 ) - ) ---- -test: Representations of 12 -todo: true -yaml: | - - 12 # An integer - # The following scalars - # are loaded to the - # string value '1' '2'. - - !str 12 - - '12' - - "12" - - "\ - 1\ - 2\ - " - # Strings containing paths and regexps can be unquoted: - - /foo/bar - - d:/foo/bar - - foo/bar - - /a.*b/ -php: | - array( 12, '12', '12', '12', '12', '/foo/bar', 'd:/foo/bar', 'foo/bar', '/a.*b/' ) ---- -test: "Null" -todo: true -yaml: | - canonical: ~ - - english: null - - # This sequence has five - # entries, two with values. - sparse: - - ~ - - 2nd entry - - Null - - 4th entry - - - - four: This mapping has five keys, - only two with values. - -php: | - array ( - 'canonical' => null, - 'english' => null, - 'sparse' => array( null, '2nd entry', null, '4th entry', null ]), - 'four' => 'This mapping has five keys, only two with values.' - ) ---- -test: Omap -todo: true -yaml: | - # Explicitly typed dictionary. - Bestiary: !omap - - aardvark: African pig-like ant eater. Ugly. - - anteater: South-American ant eater. Two species. - - anaconda: South-American constrictor snake. Scary. - # Etc. -ruby: | - { - 'Bestiary' => YAML::Omap[ - 'aardvark', 'African pig-like ant eater. Ugly.', - 'anteater', 'South-American ant eater. Two species.', - 'anaconda', 'South-American constrictor snake. Scary.' - ] - } - ---- -test: Pairs -todo: true -yaml: | - # Explicitly typed pairs. - tasks: !pairs - - meeting: with team. - - meeting: with boss. - - break: lunch. - - meeting: with client. -ruby: | - { - 'tasks' => YAML::Pairs[ - 'meeting', 'with team.', - 'meeting', 'with boss.', - 'break', 'lunch.', - 'meeting', 'with client.' - ] - } - ---- -test: Set -todo: true -yaml: | - # Explicitly typed set. - baseball players: !set - Mark McGwire: - Sammy Sosa: - Ken Griffey: -ruby: | - { - 'baseball players' => YAML::Set[ - 'Mark McGwire', nil, - 'Sammy Sosa', nil, - 'Ken Griffey', nil - ] - } - ---- -test: Boolean -yaml: | - false: used as key - logical: true - answer: false -php: | - array( - false => 'used as key', - 'logical' => true, - 'answer' => false - ) ---- -test: Integer -yaml: | - canonical: 12345 - decimal: +12,345 - octal: 014 - hexadecimal: 0xC -php: | - array( - 'canonical' => 12345, - 'decimal' => 12345.0, - 'octal' => 12, - 'hexadecimal' => 12 - ) ---- -test: Float -yaml: | - canonical: 1.23015e+3 - exponential: 12.3015e+02 - fixed: 1,230.15 - negative infinity: -.inf - not a number: .NaN -php: | - array( - 'canonical' => 1230.15, - 'exponential' => 1230.15, - 'fixed' => 1230.15, - 'negative infinity' => log(0), - 'not a number' => -log(0) - ) ---- -test: Timestamp -todo: true -yaml: | - canonical: 2001-12-15T02:59:43.1Z - valid iso8601: 2001-12-14t21:59:43.10-05:00 - space separated: 2001-12-14 21:59:43.10 -05:00 - date (noon UTC): 2002-12-14 -ruby: | - array( - 'canonical' => YAML::mktime( 2001, 12, 15, 2, 59, 43, 0.10 ), - 'valid iso8601' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ), - 'space separated' => YAML::mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ), - 'date (noon UTC)' => Date.new( 2002, 12, 14 ) - ) ---- -test: Binary -todo: true -yaml: | - canonical: !binary "\ - R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\ - OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\ - +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\ - AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=" - base64: !binary | - R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5 - OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+ - +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC - AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= - description: > - The binary value above is a tiny arrow - encoded as a gif image. -ruby-setup: | - arrow_gif = "GIF89a\f\000\f\000\204\000\000\377\377\367\365\365\356\351\351\345fff\000\000\000\347\347\347^^^\363\363\355\216\216\216\340\340\340\237\237\237\223\223\223\247\247\247\236\236\236iiiccc\243\243\243\204\204\204\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371\377\376\371!\376\016Made with GIMP\000,\000\000\000\000\f\000\f\000\000\005, \216\2010\236\343@\024\350i\020\304\321\212\010\034\317\200M$z\357\3770\205p\270\2601f\r\e\316\001\303\001\036\020' \202\n\001\000;" -ruby: | - { - 'canonical' => arrow_gif, - 'base64' => arrow_gif, - 'description' => "The binary value above is a tiny arrow encoded as a gif image.\n" - } - ---- -test: Merge key -todo: true -yaml: | - --- - - &CENTER { x: 1, y: 2 } - - &LEFT { x: 0, y: 2 } - - &BIG { r: 10 } - - &SMALL { r: 1 } - - # All the following maps are equal: - - - # Explicit keys - x: 1 - y: 2 - r: 10 - label: center/big - - - # Merge one map - << : *CENTER - r: 10 - label: center/big - - - # Merge multiple maps - << : [ *CENTER, *BIG ] - label: center/big - - - # Override - << : [ *BIG, *LEFT, *SMALL ] - x: 1 - label: center/big - -ruby-setup: | - center = { 'x' => 1, 'y' => 2 } - left = { 'x' => 0, 'y' => 2 } - big = { 'r' => 10 } - small = { 'r' => 1 } - node1 = { 'x' => 1, 'y' => 2, 'r' => 10, 'label' => 'center/big' } - node2 = center.dup - node2.update( { 'r' => 10, 'label' => 'center/big' } ) - node3 = big.dup - node3.update( center ) - node3.update( { 'label' => 'center/big' } ) - node4 = small.dup - node4.update( left ) - node4.update( big ) - node4.update( { 'x' => 1, 'label' => 'center/big' } ) - -ruby: | - [ - center, left, big, small, node1, node2, node3, node4 - ] - ---- -test: Default key -todo: true -yaml: | - --- # Old schema - link with: - - library1.dll - - library2.dll - --- # New schema - link with: - - = : library1.dll - version: 1.2 - - = : library2.dll - version: 2.3 -ruby: | - y = YAML::Stream.new - y.add( { 'link with' => [ 'library1.dll', 'library2.dll' ] } ) - obj_h = Hash[ 'version' => 1.2 ] - obj_h.default = 'library1.dll' - obj_h2 = Hash[ 'version' => 2.3 ] - obj_h2.default = 'library2.dll' - y.add( { 'link with' => [ obj_h, obj_h2 ] } ) -documents: 2 - ---- -test: Special keys -todo: true -yaml: | - "!": These three keys - "&": had to be quoted - "=": and are normal strings. - # NOTE: the following node should NOT be serialized this way. - encoded node : - !special '!' : '!type' - !special|canonical '&' : 12 - = : value - # The proper way to serialize the above node is as follows: - node : !!type &12 value -ruby: | - { '!' => 'These three keys', '&' => 'had to be quoted', - '=' => 'and are normal strings.', - 'encoded node' => YAML::PrivateType.new( 'type', 'value' ), - 'node' => YAML::PrivateType.new( 'type', 'value' ) } diff --git a/vendor/symfony/yaml/Tests/Fixtures/YtsTypeTransfers.yml b/vendor/symfony/yaml/Tests/Fixtures/YtsTypeTransfers.yml deleted file mode 100755 index 46c8d4a2c..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/YtsTypeTransfers.yml +++ /dev/null @@ -1,244 +0,0 @@ ---- %YAML:1.0 -test: Strings -brief: > - Any group of characters beginning with an - alphabetic or numeric character is a string, - unless it belongs to one of the groups below - (such as an Integer or Time). -yaml: | - String -php: | - 'String' ---- -test: String characters -brief: > - A string can contain any alphabetic or - numeric character, along with many - punctuation characters, including the - period, dash, space, quotes, exclamation, and - question mark. -yaml: | - - What's Yaml? - - It's for writing data structures in plain text. - - And? - - And what? That's not good enough for you? - - No, I mean, "And what about Yaml?" - - Oh, oh yeah. Uh.. Yaml for Ruby. -php: | - array( - "What's Yaml?", - "It's for writing data structures in plain text.", - "And?", - "And what? That's not good enough for you?", - "No, I mean, \"And what about Yaml?\"", - "Oh, oh yeah. Uh.. Yaml for Ruby." - ) ---- -test: Indicators in Strings -brief: > - Be careful using indicators in strings. In particular, - the comma, colon, and pound sign must be used carefully. -yaml: | - the colon followed by space is an indicator: but is a string:right here - same for the pound sign: here we have it#in a string - the comma can, honestly, be used in most cases: [ but not in, inline collections ] -php: | - array( - 'the colon followed by space is an indicator' => 'but is a string:right here', - 'same for the pound sign' => 'here we have it#in a string', - 'the comma can, honestly, be used in most cases' => array('but not in', 'inline collections') - ) ---- -test: Forcing Strings -brief: > - Any YAML type can be forced into a string using the - explicit !str method. -yaml: | - date string: !str 2001-08-01 - number string: !str 192 -php: | - array( - 'date string' => '2001-08-01', - 'number string' => '192' - ) ---- -test: Single-quoted Strings -brief: > - You can also enclose your strings within single quotes, - which allows use of slashes, colons, and other indicators - freely. Inside single quotes, you can represent a single - quote in your string by using two single quotes next to - each other. -yaml: | - all my favorite symbols: '#:!/%.)' - a few i hate: '&(*' - why do i hate them?: 'it''s very hard to explain' - entities: '£ me' -php: | - array( - 'all my favorite symbols' => '#:!/%.)', - 'a few i hate' => '&(*', - 'why do i hate them?' => 'it\'s very hard to explain', - 'entities' => '£ me' - ) ---- -test: Double-quoted Strings -brief: > - Enclosing strings in double quotes allows you - to use escapings to represent ASCII and - Unicode characters. -yaml: | - i know where i want my line breaks: "one here\nand another here\n" -php: | - array( - 'i know where i want my line breaks' => "one here\nand another here\n" - ) ---- -test: Multi-line Quoted Strings -todo: true -brief: > - Both single- and double-quoted strings may be - carried on to new lines in your YAML document. - They must be indented a step and indentation - is interpreted as a single space. -yaml: | - i want a long string: "so i'm going to - let it go on and on to other lines - until i end it with a quote." -php: | - array('i want a long string' => "so i'm going to ". - "let it go on and on to other lines ". - "until i end it with a quote." - ) - ---- -test: Plain scalars -todo: true -brief: > - Unquoted strings may also span multiple lines, if they - are free of YAML space indicators and indented. -yaml: | - - My little toe is broken in two places; - - I'm crazy to have skied this way; - - I'm not the craziest he's seen, since there was always the German guy - who skied for 3 hours on a broken shin bone (just below the kneecap); - - Nevertheless, second place is respectable, and he doesn't - recommend going for the record; - - He's going to put my foot in plaster for a month; - - This would impair my skiing ability somewhat for the - duration, as can be imagined. -php: | - array( - "My little toe is broken in two places;", - "I'm crazy to have skied this way;", - "I'm not the craziest he's seen, since there was always ". - "the German guy who skied for 3 hours on a broken shin ". - "bone (just below the kneecap);", - "Nevertheless, second place is respectable, and he doesn't ". - "recommend going for the record;", - "He's going to put my foot in plaster for a month;", - "This would impair my skiing ability somewhat for the duration, ". - "as can be imagined." - ) ---- -test: 'Null' -brief: > - You can use the tilde '~' character for a null value. -yaml: | - name: Mr. Show - hosted by: Bob and David - date of next season: ~ -php: | - array( - 'name' => 'Mr. Show', - 'hosted by' => 'Bob and David', - 'date of next season' => null - ) ---- -test: Boolean -brief: > - You can use 'true' and 'false' for Boolean values. -yaml: | - Is Gus a Liar?: true - Do I rely on Gus for Sustenance?: false -php: | - array( - 'Is Gus a Liar?' => true, - 'Do I rely on Gus for Sustenance?' => false - ) ---- -test: Integers -dump_skip: true -brief: > - An integer is a series of numbers, optionally - starting with a positive or negative sign. Integers - may also contain commas for readability. -yaml: | - zero: 0 - simple: 12 - one-thousand: 1,000 - negative one-thousand: -1,000 -php: | - array( - 'zero' => 0, - 'simple' => 12, - 'one-thousand' => 1000.0, - 'negative one-thousand' => -1000.0 - ) ---- -test: Integers as Map Keys -brief: > - An integer can be used a dictionary key. -yaml: | - 1: one - 2: two - 3: three -php: | - array( - 1 => 'one', - 2 => 'two', - 3 => 'three' - ) ---- -test: Floats -dump_skip: true -brief: > - Floats are represented by numbers with decimals, - allowing for scientific notation, as well as - positive and negative infinity and "not a number." -yaml: | - a simple float: 2.00 - larger float: 1,000.09 - scientific notation: 1.00009e+3 -php: | - array( - 'a simple float' => 2.0, - 'larger float' => 1000.09, - 'scientific notation' => 1000.09 - ) ---- -test: Time -todo: true -brief: > - You can represent timestamps by using - ISO8601 format, or a variation which - allows spaces between the date, time and - time zone. -yaml: | - iso8601: 2001-12-14t21:59:43.10-05:00 - space separated: 2001-12-14 21:59:43.10 -05:00 -php: | - array( - 'iso8601' => mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ), - 'space separated' => mktime( 2001, 12, 14, 21, 59, 43, 0.10, "-05:00" ) - ) ---- -test: Date -todo: true -brief: > - A date can be represented by its year, - month and day in ISO8601 order. -yaml: | - 1976-07-31 -php: | - date( 1976, 7, 31 ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/embededPhp.yml b/vendor/symfony/yaml/Tests/Fixtures/embededPhp.yml deleted file mode 100755 index ec456ed09..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/embededPhp.yml +++ /dev/null @@ -1 +0,0 @@ -value: diff --git a/vendor/symfony/yaml/Tests/Fixtures/escapedCharacters.yml b/vendor/symfony/yaml/Tests/Fixtures/escapedCharacters.yml deleted file mode 100755 index 6ca044c8d..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/escapedCharacters.yml +++ /dev/null @@ -1,155 +0,0 @@ -test: outside double quotes -yaml: | - \0 \ \a \b \n -php: | - "\\0 \\ \\a \\b \\n" ---- -test: null -yaml: | - "\0" -php: | - "\x00" ---- -test: bell -yaml: | - "\a" -php: | - "\x07" ---- -test: backspace -yaml: | - "\b" -php: | - "\x08" ---- -test: horizontal tab (1) -yaml: | - "\t" -php: | - "\x09" ---- -test: horizontal tab (2) -yaml: | - "\ " -php: | - "\x09" ---- -test: line feed -yaml: | - "\n" -php: | - "\x0a" ---- -test: vertical tab -yaml: | - "\v" -php: | - "\x0b" ---- -test: form feed -yaml: | - "\f" -php: | - "\x0c" ---- -test: carriage return -yaml: | - "\r" -php: | - "\x0d" ---- -test: escape -yaml: | - "\e" -php: | - "\x1b" ---- -test: space -yaml: | - "\ " -php: | - "\x20" ---- -test: slash -yaml: | - "\/" -php: | - "\x2f" ---- -test: backslash -yaml: | - "\\" -php: | - "\\" ---- -test: Unicode next line -yaml: | - "\N" -php: | - "\xc2\x85" ---- -test: Unicode non-breaking space -yaml: | - "\_" -php: | - "\xc2\xa0" ---- -test: Unicode line separator -yaml: | - "\L" -php: | - "\xe2\x80\xa8" ---- -test: Unicode paragraph separator -yaml: | - "\P" -php: | - "\xe2\x80\xa9" ---- -test: Escaped 8-bit Unicode -yaml: | - "\x42" -php: | - "B" ---- -test: Escaped 16-bit Unicode -yaml: | - "\u20ac" -php: | - "\xe2\x82\xac" ---- -test: Escaped 32-bit Unicode -yaml: | - "\U00000043" -php: | - "C" ---- -test: Example 5.13 Escaped Characters -note: | - Currently throws an error parsing first line. Maybe Symfony Yaml doesn't support - continuation of string across multiple lines? Keeping test here but disabled. -todo: true -yaml: | - "Fun with \\ - \" \a \b \e \f \ - \n \r \t \v \0 \ - \ \_ \N \L \P \ - \x41 \u0041 \U00000041" -php: | - "Fun with \x5C\n\x22 \x07 \x08 \x1B \x0C\n\x0A \x0D \x09 \x0B \x00\n\x20 \xA0 \x85 \xe2\x80\xa8 \xe2\x80\xa9\nA A A" ---- -test: Double quotes with a line feed -yaml: | - { double: "some value\n \"some quoted string\" and 'some single quotes one'" } -php: | - array( - 'double' => "some value\n \"some quoted string\" and 'some single quotes one'" - ) ---- -test: Backslashes -yaml: | - { single: 'foo\Var', no-quotes: foo\Var, double: "foo\\Var" } -php: | - array( - 'single' => 'foo\Var', 'no-quotes' => 'foo\Var', 'double' => 'foo\Var' - ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/index.yml b/vendor/symfony/yaml/Tests/Fixtures/index.yml deleted file mode 100755 index 3216a89eb..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/index.yml +++ /dev/null @@ -1,18 +0,0 @@ -- escapedCharacters -- sfComments -- sfCompact -- sfTests -- sfObjects -- sfMergeKey -- sfQuotes -- YtsAnchorAlias -- YtsBasicTests -- YtsBlockMapping -- YtsDocumentSeparator -- YtsErrorTests -- YtsFlowCollections -- YtsFoldedScalars -- YtsNullsAndEmpties -- YtsSpecificationExamples -- YtsTypeTransfers -- unindentedCollections diff --git a/vendor/symfony/yaml/Tests/Fixtures/sfComments.yml b/vendor/symfony/yaml/Tests/Fixtures/sfComments.yml deleted file mode 100755 index b72a9b699..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/sfComments.yml +++ /dev/null @@ -1,76 +0,0 @@ ---- %YAML:1.0 -test: Comments at the end of a line -brief: > - Comments at the end of a line -yaml: | - ex1: "foo # bar" - ex2: "foo # bar" # comment - ex3: 'foo # bar' # comment - ex4: foo # comment - ex5: foo # comment with tab before - ex6: foo#foo # comment here - ex7: foo # ignore me # and me -php: | - array('ex1' => 'foo # bar', 'ex2' => 'foo # bar', 'ex3' => 'foo # bar', 'ex4' => 'foo', 'ex5' => 'foo', 'ex6' => 'foo#foo', 'ex7' => 'foo') ---- -test: Comments in the middle -brief: > - Comments in the middle -yaml: | - foo: - # some comment - # some comment - bar: foo - # some comment - # some comment -php: | - array('foo' => array('bar' => 'foo')) ---- -test: Comments on a hash line -brief: > - Comments on a hash line -yaml: | - foo: # a comment - foo: bar # a comment -php: | - array('foo' => array('foo' => 'bar')) ---- -test: 'Value starting with a #' -brief: > - 'Value starting with a #' -yaml: | - foo: '#bar' -php: | - array('foo' => '#bar') ---- -test: Document starting with a comment and a separator -brief: > - Commenting before document start is allowed -yaml: | - # document comment - --- - foo: bar # a comment -php: | - array('foo' => 'bar') ---- -test: Comment containing a colon on a hash line -brief: > - Comment containing a colon on a scalar line -yaml: 'foo # comment: this is also part of the comment' -php: | - 'foo' ---- -test: 'Hash key containing a #' -brief: > - 'Hash key containing a #' -yaml: 'foo#bar: baz' -php: | - array('foo#bar' => 'baz') ---- -test: 'Hash key ending with a space and a #' -brief: > - 'Hash key ending with a space and a #' -yaml: | - 'foo #': baz -php: | - array('foo #' => 'baz') diff --git a/vendor/symfony/yaml/Tests/Fixtures/sfCompact.yml b/vendor/symfony/yaml/Tests/Fixtures/sfCompact.yml deleted file mode 100755 index 1339d23a6..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/sfCompact.yml +++ /dev/null @@ -1,159 +0,0 @@ ---- %YAML:1.0 -test: Compact notation -brief: | - Compact notation for sets of mappings with single element -yaml: | - --- - # products purchased - - item : Super Hoop - - item : Basketball - quantity: 1 - - item: - name: Big Shoes - nick: Biggies - quantity: 1 -php: | - array ( - array ( - 'item' => 'Super Hoop', - ), - array ( - 'item' => 'Basketball', - 'quantity' => 1, - ), - array ( - 'item' => array( - 'name' => 'Big Shoes', - 'nick' => 'Biggies' - ), - 'quantity' => 1 - ) - ) ---- -test: Compact notation combined with inline notation -brief: | - Combinations of compact and inline notation are allowed -yaml: | - --- - items: - - { item: Super Hoop, quantity: 1 } - - [ Basketball, Big Shoes ] -php: | - array ( - 'items' => array ( - array ( - 'item' => 'Super Hoop', - 'quantity' => 1, - ), - array ( - 'Basketball', - 'Big Shoes' - ) - ) - ) ---- %YAML:1.0 -test: Compact notation -brief: | - Compact notation for sets of mappings with single element -yaml: | - --- - # products purchased - - item : Super Hoop - - item : Basketball - quantity: 1 - - item: - name: Big Shoes - nick: Biggies - quantity: 1 -php: | - array ( - array ( - 'item' => 'Super Hoop', - ), - array ( - 'item' => 'Basketball', - 'quantity' => 1, - ), - array ( - 'item' => array( - 'name' => 'Big Shoes', - 'nick' => 'Biggies' - ), - 'quantity' => 1 - ) - ) ---- -test: Compact notation combined with inline notation -brief: | - Combinations of compact and inline notation are allowed -yaml: | - --- - items: - - { item: Super Hoop, quantity: 1 } - - [ Basketball, Big Shoes ] -php: | - array ( - 'items' => array ( - array ( - 'item' => 'Super Hoop', - 'quantity' => 1, - ), - array ( - 'Basketball', - 'Big Shoes' - ) - ) - ) ---- %YAML:1.0 -test: Compact notation -brief: | - Compact notation for sets of mappings with single element -yaml: | - --- - # products purchased - - item : Super Hoop - - item : Basketball - quantity: 1 - - item: - name: Big Shoes - nick: Biggies - quantity: 1 -php: | - array ( - array ( - 'item' => 'Super Hoop', - ), - array ( - 'item' => 'Basketball', - 'quantity' => 1, - ), - array ( - 'item' => array( - 'name' => 'Big Shoes', - 'nick' => 'Biggies' - ), - 'quantity' => 1 - ) - ) ---- -test: Compact notation combined with inline notation -brief: | - Combinations of compact and inline notation are allowed -yaml: | - --- - items: - - { item: Super Hoop, quantity: 1 } - - [ Basketball, Big Shoes ] -php: | - array ( - 'items' => array ( - array ( - 'item' => 'Super Hoop', - 'quantity' => 1, - ), - array ( - 'Basketball', - 'Big Shoes' - ) - ) - ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/sfMergeKey.yml b/vendor/symfony/yaml/Tests/Fixtures/sfMergeKey.yml deleted file mode 100755 index 499446c10..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/sfMergeKey.yml +++ /dev/null @@ -1,66 +0,0 @@ ---- %YAML:1.0 -test: Simple In Place Substitution -brief: > - If you want to reuse an entire alias, only overwriting what is different - you can use a << in place substitution. This is not part of the official - YAML spec, but a widely implemented extension. See the following URL for - details: http://yaml.org/type/merge.html -yaml: | - foo: &foo - a: Steve - b: Clark - c: Brian - e: notnull - bar: - a: before - d: other - e: ~ - <<: *foo - b: new - x: Oren - c: - foo: bar - foo: ignore - bar: foo - bar_inline: {a: before, d: other, <<: *foo, b: new, x: Oren, c: { foo: bar, foo: ignore, bar: foo}} - duplicate: - foo: bar - foo: ignore - foo2: &foo2 - a: Ballmer - ding: &dong [ fi, fei, fo, fam] - check: - <<: - - *foo - - *dong - isit: tested - head: - <<: [ *foo , *dong , *foo2 ] - taz: &taz - a: Steve - w: - p: 1234 - nested: - <<: *taz - d: Doug - w: &nestedref - p: 12345 - z: - <<: *nestedref - head_inline: &head_inline { <<: [ *foo , *dong , *foo2 ] } - recursive_inline: { <<: *head_inline, c: { <<: *foo2 } } -php: | - array( - 'foo' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'e' => 'notnull'), - 'bar' => array('a' => 'before', 'd' => 'other', 'e' => null, 'b' => 'new', 'c' => array('foo' => 'bar', 'bar' => 'foo'), 'x' => 'Oren'), - 'bar_inline' => array('a' => 'before', 'd' => 'other', 'b' => 'new', 'c' => array('foo' => 'bar', 'bar' => 'foo'), 'e' => 'notnull', 'x' => 'Oren'), - 'duplicate' => array('foo' => 'bar'), - 'foo2' => array('a' => 'Ballmer'), - 'ding' => array('fi', 'fei', 'fo', 'fam'), - 'check' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'e' => 'notnull', 'fi', 'fei', 'fo', 'fam', 'isit' => 'tested'), - 'head' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'e' => 'notnull', 'fi', 'fei', 'fo', 'fam'), - 'taz' => array('a' => 'Steve', 'w' => array('p' => 1234)), - 'nested' => array('a' => 'Steve', 'w' => array('p' => 12345), 'd' => 'Doug', 'z' => array('p' => 12345)), - 'head_inline' => array('a' => 'Steve', 'b' => 'Clark', 'c' => 'Brian', 'e' => 'notnull', 'fi', 'fei', 'fo', 'fam'), - 'recursive_inline' => array('a' => 'Steve', 'b' => 'Clark', 'c' => array('a' => 'Ballmer'), 'e' => 'notnull', 'fi', 'fei', 'fo', 'fam'), - ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/sfObjects.yml b/vendor/symfony/yaml/Tests/Fixtures/sfObjects.yml deleted file mode 100755 index ee124b244..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/sfObjects.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- %YAML:1.0 -test: Objects -brief: > - Comments at the end of a line -yaml: | - ex1: "foo # bar" - ex2: "foo # bar" # comment - ex3: 'foo # bar' # comment - ex4: foo # comment -php: | - array('ex1' => 'foo # bar', 'ex2' => 'foo # bar', 'ex3' => 'foo # bar', 'ex4' => 'foo') diff --git a/vendor/symfony/yaml/Tests/Fixtures/sfQuotes.yml b/vendor/symfony/yaml/Tests/Fixtures/sfQuotes.yml deleted file mode 100755 index 7c60baec9..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/sfQuotes.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- %YAML:1.0 -test: Some characters at the beginning of a string must be escaped -brief: > - Some characters at the beginning of a string must be escaped -yaml: | - foo: '| bar' -php: | - array('foo' => '| bar') ---- -test: A key can be a quoted string -brief: > - A key can be a quoted string -yaml: | - "foo1": bar - 'foo2': bar - "foo \" bar": bar - 'foo '' bar': bar - 'foo3: ': bar - "foo4: ": bar - foo5: { "foo \" bar: ": bar, 'foo '' bar: ': bar } -php: | - array( - 'foo1' => 'bar', - 'foo2' => 'bar', - 'foo " bar' => 'bar', - 'foo \' bar' => 'bar', - 'foo3: ' => 'bar', - 'foo4: ' => 'bar', - 'foo5' => array( - 'foo " bar: ' => 'bar', - 'foo \' bar: ' => 'bar', - ), - ) diff --git a/vendor/symfony/yaml/Tests/Fixtures/sfTests.yml b/vendor/symfony/yaml/Tests/Fixtures/sfTests.yml deleted file mode 100755 index a427be1c8..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/sfTests.yml +++ /dev/null @@ -1,149 +0,0 @@ ---- %YAML:1.0 -test: Multiple quoted string on one line -brief: > - Multiple quoted string on one line -yaml: | - stripped_title: { name: "foo bar", help: "bar foo" } -php: | - array('stripped_title' => array('name' => 'foo bar', 'help' => 'bar foo')) ---- -test: Empty sequence -yaml: | - foo: [ ] -php: | - array('foo' => array()) ---- -test: Empty value -yaml: | - foo: -php: | - array('foo' => null) ---- -test: Inline string parsing -brief: > - Inline string parsing -yaml: | - test: ['complex: string', 'another [string]'] -php: | - array('test' => array('complex: string', 'another [string]')) ---- -test: Boolean -brief: > - Boolean -yaml: | - - false - - true - - null - - ~ - - 'false' - - 'true' - - 'null' - - '~' -php: | - array( - false, - true, - null, - null, - 'false', - 'true', - 'null', - '~', - ) ---- -test: Empty lines in literal blocks -brief: > - Empty lines in literal blocks -yaml: | - foo: - bar: | - foo - - - - bar -php: | - array('foo' => array('bar' => "foo\n\n\n \nbar\n")) ---- -test: Empty lines in folded blocks -brief: > - Empty lines in folded blocks -yaml: | - foo: - bar: > - - foo - - - bar -php: | - array('foo' => array('bar' => "\nfoo\n\nbar\n")) ---- -test: IP addresses -brief: > - IP addresses -yaml: | - foo: 10.0.0.2 -php: | - array('foo' => '10.0.0.2') ---- -test: A sequence with an embedded mapping -brief: > - A sequence with an embedded mapping -yaml: | - - foo - - bar: { bar: foo } -php: | - array('foo', array('bar' => array('bar' => 'foo'))) ---- -test: A sequence with an unordered array -brief: > - A sequence with an unordered array -yaml: | - 1: foo - 0: bar -php: | - array(1 => 'foo', 0 => 'bar') ---- -test: Octal -brief: as in spec example 2.19, octal value is converted -yaml: | - foo: 0123 -php: | - array('foo' => 83) ---- -test: Octal strings -brief: Octal notation in a string must remain a string -yaml: | - foo: "0123" -php: | - array('foo' => '0123') ---- -test: Octal strings -brief: Octal notation in a string must remain a string -yaml: | - foo: '0123' -php: | - array('foo' => '0123') ---- -test: Octal strings -brief: Octal notation in a string must remain a string -yaml: | - foo: | - 0123 -php: | - array('foo' => "0123\n") ---- -test: Document as a simple hash -brief: Document as a simple hash -yaml: | - { foo: bar } -php: | - array('foo' => 'bar') ---- -test: Document as a simple array -brief: Document as a simple array -yaml: | - [ foo, bar ] -php: | - array('foo', 'bar') diff --git a/vendor/symfony/yaml/Tests/Fixtures/unindentedCollections.yml b/vendor/symfony/yaml/Tests/Fixtures/unindentedCollections.yml deleted file mode 100755 index 0c96108e9..000000000 --- a/vendor/symfony/yaml/Tests/Fixtures/unindentedCollections.yml +++ /dev/null @@ -1,82 +0,0 @@ ---- %YAML:1.0 -test: Unindented collection -brief: > - Unindented collection -yaml: | - collection: - - item1 - - item2 - - item3 -php: | - array('collection' => array('item1', 'item2', 'item3')) ---- -test: Nested unindented collection (two levels) -brief: > - Nested unindented collection -yaml: | - collection: - key: - - a - - b - - c -php: | - array('collection' => array('key' => array('a', 'b', 'c'))) ---- -test: Nested unindented collection (three levels) -brief: > - Nested unindented collection -yaml: | - collection: - key: - subkey: - - one - - two - - three -php: | - array('collection' => array('key' => array('subkey' => array('one', 'two', 'three')))) ---- -test: Key/value after unindented collection (1) -brief: > - Key/value after unindented collection (1) -yaml: | - collection: - key: - - a - - b - - c - foo: bar -php: | - array('collection' => array('key' => array('a', 'b', 'c')), 'foo' => 'bar') ---- -test: Key/value after unindented collection (at the same level) -brief: > - Key/value after unindented collection -yaml: | - collection: - key: - - a - - b - - c - foo: bar -php: | - array('collection' => array('key' => array('a', 'b', 'c'), 'foo' => 'bar')) ---- -test: Shortcut Key after unindented collection -brief: > - Key/value after unindented collection -yaml: | - collection: - - key: foo - foo: bar -php: | - array('collection' => array(array('key' => 'foo', 'foo' => 'bar'))) ---- -test: Shortcut Key after unindented collection with custom spaces -brief: > - Key/value after unindented collection -yaml: | - collection: - - key: foo - foo: bar -php: | - array('collection' => array(array('key' => 'foo', 'foo' => 'bar'))) diff --git a/vendor/symfony/yaml/Tests/InlineTest.php b/vendor/symfony/yaml/Tests/InlineTest.php deleted file mode 100755 index 66ef70192..000000000 --- a/vendor/symfony/yaml/Tests/InlineTest.php +++ /dev/null @@ -1,506 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Tests; - -use PHPUnit\Framework\TestCase; -use Symfony\Component\Yaml\Inline; - -class InlineTest extends TestCase -{ - /** - * @dataProvider getTestsForParse - */ - public function testParse($yaml, $value) - { - $this->assertSame($value, Inline::parse($yaml), sprintf('::parse() converts an inline YAML to a PHP structure (%s)', $yaml)); - } - - /** - * @dataProvider getTestsForParseWithMapObjects - */ - public function testParseWithMapObjects($yaml, $value) - { - $actual = Inline::parse($yaml, false, false, true); - - $this->assertSame(serialize($value), serialize($actual)); - } - - /** - * @dataProvider getTestsForDump - */ - public function testDump($yaml, $value) - { - $this->assertEquals($yaml, Inline::dump($value), sprintf('::dump() converts a PHP structure to an inline YAML (%s)', $yaml)); - - $this->assertSame($value, Inline::parse(Inline::dump($value)), 'check consistency'); - } - - public function testDumpNumericValueWithLocale() - { - $locale = setlocale(LC_NUMERIC, 0); - if (false === $locale) { - $this->markTestSkipped('Your platform does not support locales.'); - } - - try { - $requiredLocales = array('fr_FR.UTF-8', 'fr_FR.UTF8', 'fr_FR.utf-8', 'fr_FR.utf8', 'French_France.1252'); - if (false === setlocale(LC_NUMERIC, $requiredLocales)) { - $this->markTestSkipped('Could not set any of required locales: '.implode(', ', $requiredLocales)); - } - - $this->assertEquals('1.2', Inline::dump(1.2)); - $this->assertContains('fr', strtolower(setlocale(LC_NUMERIC, 0))); - setlocale(LC_NUMERIC, $locale); - } catch (\Exception $e) { - setlocale(LC_NUMERIC, $locale); - throw $e; - } - } - - public function testHashStringsResemblingExponentialNumericsShouldNotBeChangedToINF() - { - $value = '686e444'; - - $this->assertSame($value, Inline::parse(Inline::dump($value))); - } - - /** - * @group legacy - * throws \Symfony\Component\Yaml\Exception\ParseException in 3.0 - */ - public function testParseScalarWithNonEscapedBlackslashShouldThrowException() - { - $this->assertSame('Foo\Var', Inline::parse('"Foo\Var"')); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testParseScalarWithNonEscapedBlackslashAtTheEndShouldThrowException() - { - Inline::parse('"Foo\\"'); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testParseScalarWithIncorrectlyQuotedStringShouldThrowException() - { - $value = "'don't do somthin' like that'"; - Inline::parse($value); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testParseScalarWithIncorrectlyDoubleQuotedStringShouldThrowException() - { - $value = '"don"t do somthin" like that"'; - Inline::parse($value); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testParseInvalidMappingKeyShouldThrowException() - { - $value = '{ "foo " bar": "bar" }'; - Inline::parse($value); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testParseInvalidMappingShouldThrowException() - { - Inline::parse('[foo] bar'); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testParseInvalidSequenceShouldThrowException() - { - Inline::parse('{ foo: bar } bar'); - } - - public function testParseScalarWithCorrectlyQuotedStringShouldReturnString() - { - $value = "'don''t do somthin'' like that'"; - $expect = "don't do somthin' like that"; - - $this->assertSame($expect, Inline::parseScalar($value)); - } - - /** - * @dataProvider getDataForParseReferences - */ - public function testParseReferences($yaml, $expected) - { - $this->assertSame($expected, Inline::parse($yaml, false, false, false, array('var' => 'var-value'))); - } - - public function getDataForParseReferences() - { - return array( - 'scalar' => array('*var', 'var-value'), - 'list' => array('[ *var ]', array('var-value')), - 'list-in-list' => array('[[ *var ]]', array(array('var-value'))), - 'map-in-list' => array('[ { key: *var } ]', array(array('key' => 'var-value'))), - 'embedded-mapping-in-list' => array('[ key: *var ]', array(array('key' => 'var-value'))), - 'map' => array('{ key: *var }', array('key' => 'var-value')), - 'list-in-map' => array('{ key: [*var] }', array('key' => array('var-value'))), - 'map-in-map' => array('{ foo: { bar: *var } }', array('foo' => array('bar' => 'var-value'))), - ); - } - - public function testParseMapReferenceInSequence() - { - $foo = array( - 'a' => 'Steve', - 'b' => 'Clark', - 'c' => 'Brian', - ); - $this->assertSame(array($foo), Inline::parse('[*foo]', false, false, false, array('foo' => $foo))); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - * @expectedExceptionMessage A reference must contain at least one character. - */ - public function testParseUnquotedAsterisk() - { - Inline::parse('{ foo: * }'); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - * @expectedExceptionMessage A reference must contain at least one character. - */ - public function testParseUnquotedAsteriskFollowedByAComment() - { - Inline::parse('{ foo: * #foo }'); - } - - /** - * @group legacy - * @expectedDeprecation Not quoting the scalar "@foo " starting with "@" is deprecated since Symfony 2.8 and will throw a ParseException in 3.0. - * throws \Symfony\Component\Yaml\Exception\ParseException in 3.0 - */ - public function testParseUnquotedScalarStartingWithReservedAtIndicator() - { - Inline::parse('{ foo: @foo }'); - } - - /** - * @group legacy - * @expectedDeprecation Not quoting the scalar "`foo " starting with "`" is deprecated since Symfony 2.8 and will throw a ParseException in 3.0. - * throws \Symfony\Component\Yaml\Exception\ParseException in 3.0 - */ - public function testParseUnquotedScalarStartingWithReservedBacktickIndicator() - { - Inline::parse('{ foo: `foo }'); - } - - /** - * @group legacy - * @expectedDeprecation Not quoting the scalar "|foo " starting with "|" is deprecated since Symfony 2.8 and will throw a ParseException in 3.0. - * throws \Symfony\Component\Yaml\Exception\ParseException in 3.0 - */ - public function testParseUnquotedScalarStartingWithLiteralStyleIndicator() - { - Inline::parse('{ foo: |foo }'); - } - - /** - * @group legacy - * @expectedDeprecation Not quoting the scalar ">foo " starting with ">" is deprecated since Symfony 2.8 and will throw a ParseException in 3.0. - * throws \Symfony\Component\Yaml\Exception\ParseException in 3.0 - */ - public function testParseUnquotedScalarStartingWithFoldedStyleIndicator() - { - Inline::parse('{ foo: >foo }'); - } - - public function getScalarIndicators() - { - return array(array('|'), array('>')); - } - - /** - * @dataProvider getDataForIsHash - */ - public function testIsHash($array, $expected) - { - $this->assertSame($expected, Inline::isHash($array)); - } - - public function getDataForIsHash() - { - return array( - array(array(), false), - array(array(1, 2, 3), false), - array(array(2 => 1, 1 => 2, 0 => 3), true), - array(array('foo' => 1, 'bar' => 2), true), - ); - } - - public function getTestsForParse() - { - return array( - array('', ''), - array('null', null), - array('false', false), - array('true', true), - array('12', 12), - array('-12', -12), - array('"quoted string"', 'quoted string'), - array("'quoted string'", 'quoted string'), - array('12.30e+02', 12.30e+02), - array('0x4D2', 0x4D2), - array('02333', 02333), - array('.Inf', -log(0)), - array('-.Inf', log(0)), - array("'686e444'", '686e444'), - array('686e444', 646e444), - array('123456789123456789123456789123456789', '123456789123456789123456789123456789'), - array('"foo\r\nbar"', "foo\r\nbar"), - array("'foo#bar'", 'foo#bar'), - array("'foo # bar'", 'foo # bar'), - array("'#cfcfcf'", '#cfcfcf'), - array('::form_base.html.twig', '::form_base.html.twig'), - - // Pre-YAML-1.2 booleans - array("'y'", 'y'), - array("'n'", 'n'), - array("'yes'", 'yes'), - array("'no'", 'no'), - array("'on'", 'on'), - array("'off'", 'off'), - - array('2007-10-30', gmmktime(0, 0, 0, 10, 30, 2007)), - array('2007-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 2007)), - array('2007-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 2007)), - array('1960-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 1960)), - array('1730-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 1730)), - - array('"a \\"string\\" with \'quoted strings inside\'"', 'a "string" with \'quoted strings inside\''), - array("'a \"string\" with ''quoted strings inside'''", 'a "string" with \'quoted strings inside\''), - - // sequences - // urls are no key value mapping. see #3609. Valid yaml "key: value" mappings require a space after the colon - array('[foo, http://urls.are/no/mappings, false, null, 12]', array('foo', 'http://urls.are/no/mappings', false, null, 12)), - array('[ foo , bar , false , null , 12 ]', array('foo', 'bar', false, null, 12)), - array('[\'foo,bar\', \'foo bar\']', array('foo,bar', 'foo bar')), - - // mappings - array('{foo:bar,bar:foo,false:false,null:null,integer:12}', array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)), - array('{ foo : bar, bar : foo, false : false, null : null, integer : 12 }', array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)), - array('{foo: \'bar\', bar: \'foo: bar\'}', array('foo' => 'bar', 'bar' => 'foo: bar')), - array('{\'foo\': \'bar\', "bar": \'foo: bar\'}', array('foo' => 'bar', 'bar' => 'foo: bar')), - array('{\'foo\'\'\': \'bar\', "bar\"": \'foo: bar\'}', array('foo\'' => 'bar', 'bar"' => 'foo: bar')), - array('{\'foo: \': \'bar\', "bar: ": \'foo: bar\'}', array('foo: ' => 'bar', 'bar: ' => 'foo: bar')), - - // nested sequences and mappings - array('[foo, [bar, foo]]', array('foo', array('bar', 'foo'))), - array('[foo, {bar: foo}]', array('foo', array('bar' => 'foo'))), - array('{ foo: {bar: foo} }', array('foo' => array('bar' => 'foo'))), - array('{ foo: [bar, foo] }', array('foo' => array('bar', 'foo'))), - - array('[ foo, [ bar, foo ] ]', array('foo', array('bar', 'foo'))), - - array('[{ foo: {bar: foo} }]', array(array('foo' => array('bar' => 'foo')))), - - array('[foo, [bar, [foo, [bar, foo]], foo]]', array('foo', array('bar', array('foo', array('bar', 'foo')), 'foo'))), - - array('[foo, {bar: foo, foo: [foo, {bar: foo}]}, [foo, {bar: foo}]]', array('foo', array('bar' => 'foo', 'foo' => array('foo', array('bar' => 'foo'))), array('foo', array('bar' => 'foo')))), - - array('[foo, bar: { foo: bar }]', array('foo', '1' => array('bar' => array('foo' => 'bar')))), - array('[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']', array('foo', '@foo.baz', array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, '@service_container')), - ); - } - - public function getTestsForParseWithMapObjects() - { - return array( - array('', ''), - array('null', null), - array('false', false), - array('true', true), - array('12', 12), - array('-12', -12), - array('"quoted string"', 'quoted string'), - array("'quoted string'", 'quoted string'), - array('12.30e+02', 12.30e+02), - array('0x4D2', 0x4D2), - array('02333', 02333), - array('.Inf', -log(0)), - array('-.Inf', log(0)), - array("'686e444'", '686e444'), - array('686e444', 646e444), - array('123456789123456789123456789123456789', '123456789123456789123456789123456789'), - array('"foo\r\nbar"', "foo\r\nbar"), - array("'foo#bar'", 'foo#bar'), - array("'foo # bar'", 'foo # bar'), - array("'#cfcfcf'", '#cfcfcf'), - array('::form_base.html.twig', '::form_base.html.twig'), - - array('2007-10-30', gmmktime(0, 0, 0, 10, 30, 2007)), - array('2007-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 2007)), - array('2007-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 2007)), - array('1960-10-30 02:59:43 Z', gmmktime(2, 59, 43, 10, 30, 1960)), - array('1730-10-30T02:59:43Z', gmmktime(2, 59, 43, 10, 30, 1730)), - - array('"a \\"string\\" with \'quoted strings inside\'"', 'a "string" with \'quoted strings inside\''), - array("'a \"string\" with ''quoted strings inside'''", 'a "string" with \'quoted strings inside\''), - - // sequences - // urls are no key value mapping. see #3609. Valid yaml "key: value" mappings require a space after the colon - array('[foo, http://urls.are/no/mappings, false, null, 12]', array('foo', 'http://urls.are/no/mappings', false, null, 12)), - array('[ foo , bar , false , null , 12 ]', array('foo', 'bar', false, null, 12)), - array('[\'foo,bar\', \'foo bar\']', array('foo,bar', 'foo bar')), - - // mappings - array('{foo:bar,bar:foo,false:false,null:null,integer:12}', (object) array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)), - array('{ foo : bar, bar : foo, false : false, null : null, integer : 12 }', (object) array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)), - array('{foo: \'bar\', bar: \'foo: bar\'}', (object) array('foo' => 'bar', 'bar' => 'foo: bar')), - array('{\'foo\': \'bar\', "bar": \'foo: bar\'}', (object) array('foo' => 'bar', 'bar' => 'foo: bar')), - array('{\'foo\'\'\': \'bar\', "bar\"": \'foo: bar\'}', (object) array('foo\'' => 'bar', 'bar"' => 'foo: bar')), - array('{\'foo: \': \'bar\', "bar: ": \'foo: bar\'}', (object) array('foo: ' => 'bar', 'bar: ' => 'foo: bar')), - - // nested sequences and mappings - array('[foo, [bar, foo]]', array('foo', array('bar', 'foo'))), - array('[foo, {bar: foo}]', array('foo', (object) array('bar' => 'foo'))), - array('{ foo: {bar: foo} }', (object) array('foo' => (object) array('bar' => 'foo'))), - array('{ foo: [bar, foo] }', (object) array('foo' => array('bar', 'foo'))), - - array('[ foo, [ bar, foo ] ]', array('foo', array('bar', 'foo'))), - - array('[{ foo: {bar: foo} }]', array((object) array('foo' => (object) array('bar' => 'foo')))), - - array('[foo, [bar, [foo, [bar, foo]], foo]]', array('foo', array('bar', array('foo', array('bar', 'foo')), 'foo'))), - - array('[foo, {bar: foo, foo: [foo, {bar: foo}]}, [foo, {bar: foo}]]', array('foo', (object) array('bar' => 'foo', 'foo' => array('foo', (object) array('bar' => 'foo'))), array('foo', (object) array('bar' => 'foo')))), - - array('[foo, bar: { foo: bar }]', array('foo', '1' => (object) array('bar' => (object) array('foo' => 'bar')))), - array('[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']', array('foo', '@foo.baz', (object) array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, '@service_container')), - - array('{}', new \stdClass()), - array('{ foo : bar, bar : {} }', (object) array('foo' => 'bar', 'bar' => new \stdClass())), - array('{ foo : [], bar : {} }', (object) array('foo' => array(), 'bar' => new \stdClass())), - array('{foo: \'bar\', bar: {} }', (object) array('foo' => 'bar', 'bar' => new \stdClass())), - array('{\'foo\': \'bar\', "bar": {}}', (object) array('foo' => 'bar', 'bar' => new \stdClass())), - array('{\'foo\': \'bar\', "bar": \'{}\'}', (object) array('foo' => 'bar', 'bar' => '{}')), - - array('[foo, [{}, {}]]', array('foo', array(new \stdClass(), new \stdClass()))), - array('[foo, [[], {}]]', array('foo', array(array(), new \stdClass()))), - array('[foo, [[{}, {}], {}]]', array('foo', array(array(new \stdClass(), new \stdClass()), new \stdClass()))), - array('[foo, {bar: {}}]', array('foo', '1' => (object) array('bar' => new \stdClass()))), - ); - } - - public function getTestsForDump() - { - return array( - array('null', null), - array('false', false), - array('true', true), - array('12', 12), - array("'quoted string'", 'quoted string'), - array('!!float 1230', 12.30e+02), - array('1234', 0x4D2), - array('1243', 02333), - array('.Inf', -log(0)), - array('-.Inf', log(0)), - array("'686e444'", '686e444'), - array('"foo\r\nbar"', "foo\r\nbar"), - array("'foo#bar'", 'foo#bar'), - array("'foo # bar'", 'foo # bar'), - array("'#cfcfcf'", '#cfcfcf'), - - array("'a \"string\" with ''quoted strings inside'''", 'a "string" with \'quoted strings inside\''), - - array("'-dash'", '-dash'), - array("'-'", '-'), - - // Pre-YAML-1.2 booleans - array("'y'", 'y'), - array("'n'", 'n'), - array("'yes'", 'yes'), - array("'no'", 'no'), - array("'on'", 'on'), - array("'off'", 'off'), - - // sequences - array('[foo, bar, false, null, 12]', array('foo', 'bar', false, null, 12)), - array('[\'foo,bar\', \'foo bar\']', array('foo,bar', 'foo bar')), - - // mappings - array('{ foo: bar, bar: foo, \'false\': false, \'null\': null, integer: 12 }', array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12)), - array('{ foo: bar, bar: \'foo: bar\' }', array('foo' => 'bar', 'bar' => 'foo: bar')), - - // nested sequences and mappings - array('[foo, [bar, foo]]', array('foo', array('bar', 'foo'))), - - array('[foo, [bar, [foo, [bar, foo]], foo]]', array('foo', array('bar', array('foo', array('bar', 'foo')), 'foo'))), - - array('{ foo: { bar: foo } }', array('foo' => array('bar' => 'foo'))), - - array('[foo, { bar: foo }]', array('foo', array('bar' => 'foo'))), - - array('[foo, { bar: foo, foo: [foo, { bar: foo }] }, [foo, { bar: foo }]]', array('foo', array('bar' => 'foo', 'foo' => array('foo', array('bar' => 'foo'))), array('foo', array('bar' => 'foo')))), - - array('[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']', array('foo', '@foo.baz', array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, '@service_container')), - - array('{ foo: { bar: { 1: 2, baz: 3 } } }', array('foo' => array('bar' => array(1 => 2, 'baz' => 3)))), - ); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - * @expectedExceptionMessage Malformed inline YAML string: {this, is not, supported}. - */ - public function testNotSupportedMissingValue() - { - Inline::parse('{this, is not, supported}'); - } - - public function testVeryLongQuotedStrings() - { - $longStringWithQuotes = str_repeat("x\r\n\\\"x\"x", 1000); - - $yamlString = Inline::dump(array('longStringWithQuotes' => $longStringWithQuotes)); - $arrayFromYaml = Inline::parse($yamlString); - - $this->assertEquals($longStringWithQuotes, $arrayFromYaml['longStringWithQuotes']); - } - - public function testBooleanMappingKeysAreConvertedToStrings() - { - $this->assertSame(array('false' => 'foo'), Inline::parse('{false: foo}')); - $this->assertSame(array('true' => 'foo'), Inline::parse('{true: foo}')); - } - - public function testTheEmptyStringIsAValidMappingKey() - { - $this->assertSame(array('' => 'foo'), Inline::parse('{ "": foo }')); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - * @expectedExceptionMessage Unexpected end of line, expected one of ",}". - */ - public function testUnfinishedInlineMap() - { - Inline::parse("{abc: 'def'"); - } -} diff --git a/vendor/symfony/yaml/Tests/ParseExceptionTest.php b/vendor/symfony/yaml/Tests/ParseExceptionTest.php deleted file mode 100755 index b7797fb7f..000000000 --- a/vendor/symfony/yaml/Tests/ParseExceptionTest.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Tests; - -use PHPUnit\Framework\TestCase; -use Symfony\Component\Yaml\Exception\ParseException; - -class ParseExceptionTest extends TestCase -{ - public function testGetMessage() - { - $exception = new ParseException('Error message', 42, 'foo: bar', '/var/www/app/config.yml'); - if (\PHP_VERSION_ID >= 50400) { - $message = 'Error message in "/var/www/app/config.yml" at line 42 (near "foo: bar")'; - } else { - $message = 'Error message in "\\/var\\/www\\/app\\/config.yml" at line 42 (near "foo: bar")'; - } - - $this->assertEquals($message, $exception->getMessage()); - } - - public function testGetMessageWithUnicodeInFilename() - { - $exception = new ParseException('Error message', 42, 'foo: bar', 'äöü.yml'); - if (\PHP_VERSION_ID >= 50400) { - $message = 'Error message in "äöü.yml" at line 42 (near "foo: bar")'; - } else { - $message = 'Error message in "\u00e4\u00f6\u00fc.yml" at line 42 (near "foo: bar")'; - } - - $this->assertEquals($message, $exception->getMessage()); - } -} diff --git a/vendor/symfony/yaml/Tests/ParserTest.php b/vendor/symfony/yaml/Tests/ParserTest.php deleted file mode 100755 index 0cf9bd4df..000000000 --- a/vendor/symfony/yaml/Tests/ParserTest.php +++ /dev/null @@ -1,1300 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Tests; - -use PHPUnit\Framework\TestCase; -use Symfony\Component\Yaml\Parser; -use Symfony\Component\Yaml\Yaml; - -class ParserTest extends TestCase -{ - /** @var Parser */ - protected $parser; - - protected function setUp() - { - $this->parser = new Parser(); - } - - protected function tearDown() - { - $this->parser = null; - } - - /** - * @dataProvider getDataFormSpecifications - */ - public function testSpecifications($file, $expected, $yaml, $comment) - { - $this->assertEquals($expected, var_export($this->parser->parse($yaml), true), $comment); - } - - public function getDataFormSpecifications() - { - $parser = new Parser(); - $path = __DIR__.'/Fixtures'; - - $tests = array(); - $files = $parser->parse(file_get_contents($path.'/index.yml')); - foreach ($files as $file) { - $yamls = file_get_contents($path.'/'.$file.'.yml'); - - // split YAMLs documents - foreach (preg_split('/^---( %YAML\:1\.0)?/m', $yamls) as $yaml) { - if (!$yaml) { - continue; - } - - $test = $parser->parse($yaml); - if (isset($test['todo']) && $test['todo']) { - // TODO - } else { - eval('$expected = '.trim($test['php']).';'); - - $tests[] = array($file, var_export($expected, true), $test['yaml'], $test['test']); - } - } - } - - return $tests; - } - - public function testTabsInYaml() - { - // test tabs in YAML - $yamls = array( - "foo:\n bar", - "foo:\n bar", - "foo:\n bar", - "foo:\n bar", - ); - - foreach ($yamls as $yaml) { - try { - $content = $this->parser->parse($yaml); - - $this->fail('YAML files must not contain tabs'); - } catch (\Exception $e) { - $this->assertInstanceOf('\Exception', $e, 'YAML files must not contain tabs'); - $this->assertEquals('A YAML file cannot contain tabs as indentation at line 2 (near "'.strpbrk($yaml, "\t").'").', $e->getMessage(), 'YAML files must not contain tabs'); - } - } - } - - public function testEndOfTheDocumentMarker() - { - $yaml = <<<'EOF' ---- %YAML:1.0 -foo -... -EOF; - - $this->assertEquals('foo', $this->parser->parse($yaml)); - } - - public function getBlockChompingTests() - { - $tests = array(); - - $yaml = <<<'EOF' -foo: |- - one - two -bar: |- - one - two - -EOF; - $expected = array( - 'foo' => "one\ntwo", - 'bar' => "one\ntwo", - ); - $tests['Literal block chomping strip with single trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: |- - one - two - -bar: |- - one - two - - -EOF; - $expected = array( - 'foo' => "one\ntwo", - 'bar' => "one\ntwo", - ); - $tests['Literal block chomping strip with multiple trailing newlines'] = array($expected, $yaml); - - $yaml = <<<'EOF' -{} - - -EOF; - $expected = array(); - $tests['Literal block chomping strip with multiple trailing newlines after a 1-liner'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: |- - one - two -bar: |- - one - two -EOF; - $expected = array( - 'foo' => "one\ntwo", - 'bar' => "one\ntwo", - ); - $tests['Literal block chomping strip without trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: | - one - two -bar: | - one - two - -EOF; - $expected = array( - 'foo' => "one\ntwo\n", - 'bar' => "one\ntwo\n", - ); - $tests['Literal block chomping clip with single trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: | - one - two - -bar: | - one - two - - -EOF; - $expected = array( - 'foo' => "one\ntwo\n", - 'bar' => "one\ntwo\n", - ); - $tests['Literal block chomping clip with multiple trailing newlines'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: -- bar: | - one - - two -EOF; - $expected = array( - 'foo' => array( - array( - 'bar' => "one\n\ntwo", - ), - ), - ); - $tests['Literal block chomping clip with embedded blank line inside unindented collection'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: | - one - two -bar: | - one - two -EOF; - $expected = array( - 'foo' => "one\ntwo\n", - 'bar' => "one\ntwo", - ); - $tests['Literal block chomping clip without trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: |+ - one - two -bar: |+ - one - two - -EOF; - $expected = array( - 'foo' => "one\ntwo\n", - 'bar' => "one\ntwo\n", - ); - $tests['Literal block chomping keep with single trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: |+ - one - two - -bar: |+ - one - two - - -EOF; - $expected = array( - 'foo' => "one\ntwo\n\n", - 'bar' => "one\ntwo\n\n", - ); - $tests['Literal block chomping keep with multiple trailing newlines'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: |+ - one - two -bar: |+ - one - two -EOF; - $expected = array( - 'foo' => "one\ntwo\n", - 'bar' => "one\ntwo", - ); - $tests['Literal block chomping keep without trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: >- - one - two -bar: >- - one - two - -EOF; - $expected = array( - 'foo' => 'one two', - 'bar' => 'one two', - ); - $tests['Folded block chomping strip with single trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: >- - one - two - -bar: >- - one - two - - -EOF; - $expected = array( - 'foo' => 'one two', - 'bar' => 'one two', - ); - $tests['Folded block chomping strip with multiple trailing newlines'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: >- - one - two -bar: >- - one - two -EOF; - $expected = array( - 'foo' => 'one two', - 'bar' => 'one two', - ); - $tests['Folded block chomping strip without trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: > - one - two -bar: > - one - two - -EOF; - $expected = array( - 'foo' => "one two\n", - 'bar' => "one two\n", - ); - $tests['Folded block chomping clip with single trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: > - one - two - -bar: > - one - two - - -EOF; - $expected = array( - 'foo' => "one two\n", - 'bar' => "one two\n", - ); - $tests['Folded block chomping clip with multiple trailing newlines'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: > - one - two -bar: > - one - two -EOF; - $expected = array( - 'foo' => "one two\n", - 'bar' => 'one two', - ); - $tests['Folded block chomping clip without trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: >+ - one - two -bar: >+ - one - two - -EOF; - $expected = array( - 'foo' => "one two\n", - 'bar' => "one two\n", - ); - $tests['Folded block chomping keep with single trailing newline'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: >+ - one - two - -bar: >+ - one - two - - -EOF; - $expected = array( - 'foo' => "one two\n\n", - 'bar' => "one two\n\n", - ); - $tests['Folded block chomping keep with multiple trailing newlines'] = array($expected, $yaml); - - $yaml = <<<'EOF' -foo: >+ - one - two -bar: >+ - one - two -EOF; - $expected = array( - 'foo' => "one two\n", - 'bar' => 'one two', - ); - $tests['Folded block chomping keep without trailing newline'] = array($expected, $yaml); - - return $tests; - } - - /** - * @dataProvider getBlockChompingTests - */ - public function testBlockChomping($expected, $yaml) - { - $this->assertSame($expected, $this->parser->parse($yaml)); - } - - /** - * Regression test for issue #7989. - * - * @see https://github.com/symfony/symfony/issues/7989 - */ - public function testBlockLiteralWithLeadingNewlines() - { - $yaml = <<<'EOF' -foo: |- - - - bar - -EOF; - $expected = array( - 'foo' => "\n\nbar", - ); - - $this->assertSame($expected, $this->parser->parse($yaml)); - } - - public function testObjectSupportEnabled() - { - $input = <<<'EOF' -foo: !!php/object:O:30:"Symfony\Component\Yaml\Tests\B":1:{s:1:"b";s:3:"foo";} -bar: 1 -EOF; - $this->assertEquals(array('foo' => new B(), 'bar' => 1), $this->parser->parse($input, false, true), '->parse() is able to parse objects'); - - $input = <<<'EOF' -foo: !php/object:O:30:"Symfony\Component\Yaml\Tests\B":1:{s:1:"b";s:3:"foo";} -bar: 1 -EOF; - $this->assertEquals(array('foo' => new B(), 'bar' => 1), $this->parser->parse($input, false, true), '->parse() is able to parse objects'); - } - - /** - * @dataProvider invalidDumpedObjectProvider - */ - public function testObjectSupportDisabledButNoExceptions($input) - { - $this->assertEquals(array('foo' => null, 'bar' => 1), $this->parser->parse($input), '->parse() does not parse objects'); - } - - /** - * @dataProvider getObjectForMapTests - */ - public function testObjectForMap($yaml, $expected) - { - $this->assertEquals($expected, $this->parser->parse($yaml, false, false, true)); - } - - public function getObjectForMapTests() - { - $tests = array(); - - $yaml = <<<'EOF' -foo: - fiz: [cat] -EOF; - $expected = new \stdClass(); - $expected->foo = new \stdClass(); - $expected->foo->fiz = array('cat'); - $tests['mapping'] = array($yaml, $expected); - - $yaml = '{ "foo": "bar", "fiz": "cat" }'; - $expected = new \stdClass(); - $expected->foo = 'bar'; - $expected->fiz = 'cat'; - $tests['inline-mapping'] = array($yaml, $expected); - - $yaml = "foo: bar\nbaz: foobar"; - $expected = new \stdClass(); - $expected->foo = 'bar'; - $expected->baz = 'foobar'; - $tests['object-for-map-is-applied-after-parsing'] = array($yaml, $expected); - - $yaml = <<<'EOT' -array: - - key: one - - key: two -EOT; - $expected = new \stdClass(); - $expected->array = array(); - $expected->array[0] = new \stdClass(); - $expected->array[0]->key = 'one'; - $expected->array[1] = new \stdClass(); - $expected->array[1]->key = 'two'; - $tests['nest-map-and-sequence'] = array($yaml, $expected); - - $yaml = <<<'YAML' -map: - 1: one - 2: two -YAML; - $expected = new \stdClass(); - $expected->map = new \stdClass(); - $expected->map->{1} = 'one'; - $expected->map->{2} = 'two'; - $tests['numeric-keys'] = array($yaml, $expected); - - $yaml = <<<'YAML' -map: - 0: one - 1: two -YAML; - $expected = new \stdClass(); - $expected->map = new \stdClass(); - $expected->map->{0} = 'one'; - $expected->map->{1} = 'two'; - $tests['zero-indexed-numeric-keys'] = array($yaml, $expected); - - return $tests; - } - - /** - * @dataProvider invalidDumpedObjectProvider - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testObjectsSupportDisabledWithExceptions($yaml) - { - $this->parser->parse($yaml, true, false); - } - - public function invalidDumpedObjectProvider() - { - $yamlTag = <<<'EOF' -foo: !!php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";} -bar: 1 -EOF; - $localTag = <<<'EOF' -foo: !php/object:O:30:"Symfony\Tests\Component\Yaml\B":1:{s:1:"b";s:3:"foo";} -bar: 1 -EOF; - - return array( - 'yaml-tag' => array($yamlTag), - 'local-tag' => array($localTag), - ); - } - - /** - * @requires extension iconv - */ - public function testNonUtf8Exception() - { - $yamls = array( - iconv('UTF-8', 'ISO-8859-1', "foo: 'äöüß'"), - iconv('UTF-8', 'ISO-8859-15', "euro: '€'"), - iconv('UTF-8', 'CP1252', "cp1252: '©ÉÇáñ'"), - ); - - foreach ($yamls as $yaml) { - try { - $this->parser->parse($yaml); - - $this->fail('charsets other than UTF-8 are rejected.'); - } catch (\Exception $e) { - $this->assertInstanceOf('Symfony\Component\Yaml\Exception\ParseException', $e, 'charsets other than UTF-8 are rejected.'); - } - } - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testUnindentedCollectionException() - { - $yaml = <<<'EOF' - -collection: --item1 --item2 --item3 - -EOF; - - $this->parser->parse($yaml); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testShortcutKeyUnindentedCollectionException() - { - $yaml = <<<'EOF' - -collection: -- key: foo - foo: bar - -EOF; - - $this->parser->parse($yaml); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - * @expectedExceptionMessageRegExp /^Multiple documents are not supported.+/ - */ - public function testMultipleDocumentsNotSupportedException() - { - Yaml::parse(<<<'EOL' -# Ranking of 1998 home runs ---- -- Mark McGwire -- Sammy Sosa -- Ken Griffey - -# Team ranking ---- -- Chicago Cubs -- St Louis Cardinals -EOL - ); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testSequenceInAMapping() - { - Yaml::parse(<<<'EOF' -yaml: - hash: me - - array stuff -EOF - ); - } - - public function testSequenceInMappingStartedBySingleDashLine() - { - $yaml = <<<'EOT' -a: -- - b: - - - bar: baz -- foo -d: e -EOT; - $expected = array( - 'a' => array( - array( - 'b' => array( - array( - 'bar' => 'baz', - ), - ), - ), - 'foo', - ), - 'd' => 'e', - ); - - $this->assertSame($expected, $this->parser->parse($yaml)); - } - - public function testSequenceFollowedByCommentEmbeddedInMapping() - { - $yaml = <<<'EOT' -a: - b: - - c -# comment - d: e -EOT; - $expected = array( - 'a' => array( - 'b' => array('c'), - 'd' => 'e', - ), - ); - - $this->assertSame($expected, $this->parser->parse($yaml)); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - */ - public function testMappingInASequence() - { - Yaml::parse(<<<'EOF' -yaml: - - array stuff - hash: me -EOF - ); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - * @expectedExceptionMessage missing colon - */ - public function testScalarInSequence() - { - Yaml::parse(<<<'EOF' -foo: - - bar -"missing colon" - foo: bar -EOF - ); - } - - /** - * > It is an error for two equal keys to appear in the same mapping node. - * > In such a case the YAML processor may continue, ignoring the second - * > `key: value` pair and issuing an appropriate warning. This strategy - * > preserves a consistent information model for one-pass and random access - * > applications. - * - * @see http://yaml.org/spec/1.2/spec.html#id2759572 - * @see http://yaml.org/spec/1.1/#id932806 - */ - public function testMappingDuplicateKeyBlock() - { - $input = <<<'EOD' -parent: - child: first - child: duplicate -parent: - child: duplicate - child: duplicate -EOD; - $expected = array( - 'parent' => array( - 'child' => 'first', - ), - ); - $this->assertSame($expected, Yaml::parse($input)); - } - - public function testMappingDuplicateKeyFlow() - { - $input = <<<'EOD' -parent: { child: first, child: duplicate } -parent: { child: duplicate, child: duplicate } -EOD; - $expected = array( - 'parent' => array( - 'child' => 'first', - ), - ); - $this->assertSame($expected, Yaml::parse($input)); - } - - public function testEmptyValue() - { - $input = <<<'EOF' -hash: -EOF; - - $this->assertEquals(array('hash' => null), Yaml::parse($input)); - } - - public function testCommentAtTheRootIndent() - { - $this->assertEquals(array( - 'services' => array( - 'app.foo_service' => array( - 'class' => 'Foo', - ), - 'app/bar_service' => array( - 'class' => 'Bar', - ), - ), - ), Yaml::parse(<<<'EOF' -# comment 1 -services: -# comment 2 - # comment 3 - app.foo_service: - class: Foo -# comment 4 - # comment 5 - app/bar_service: - class: Bar -EOF - )); - } - - public function testStringBlockWithComments() - { - $this->assertEquals(array('content' => <<<'EOT' -# comment 1 -header - - # comment 2 - -

title

- - -footer # comment3 -EOT - ), Yaml::parse(<<<'EOF' -content: | - # comment 1 - header - - # comment 2 - -

title

- - - footer # comment3 -EOF - )); - } - - public function testFoldedStringBlockWithComments() - { - $this->assertEquals(array(array('content' => <<<'EOT' -# comment 1 -header - - # comment 2 - -

title

- - -footer # comment3 -EOT - )), Yaml::parse(<<<'EOF' -- - content: | - # comment 1 - header - - # comment 2 - -

title

- - - footer # comment3 -EOF - )); - } - - public function testNestedFoldedStringBlockWithComments() - { - $this->assertEquals(array(array( - 'title' => 'some title', - 'content' => <<<'EOT' -# comment 1 -header - - # comment 2 - -

title

- - -footer # comment3 -EOT - )), Yaml::parse(<<<'EOF' -- - title: some title - content: | - # comment 1 - header - - # comment 2 - -

title

- - - footer # comment3 -EOF - )); - } - - public function testReferenceResolvingInInlineStrings() - { - $this->assertEquals(array( - 'var' => 'var-value', - 'scalar' => 'var-value', - 'list' => array('var-value'), - 'list_in_list' => array(array('var-value')), - 'map_in_list' => array(array('key' => 'var-value')), - 'embedded_mapping' => array(array('key' => 'var-value')), - 'map' => array('key' => 'var-value'), - 'list_in_map' => array('key' => array('var-value')), - 'map_in_map' => array('foo' => array('bar' => 'var-value')), - ), Yaml::parse(<<<'EOF' -var: &var var-value -scalar: *var -list: [ *var ] -list_in_list: [[ *var ]] -map_in_list: [ { key: *var } ] -embedded_mapping: [ key: *var ] -map: { key: *var } -list_in_map: { key: [*var] } -map_in_map: { foo: { bar: *var } } -EOF - )); - } - - public function testYamlDirective() - { - $yaml = <<<'EOF' -%YAML 1.2 ---- -foo: 1 -bar: 2 -EOF; - $this->assertEquals(array('foo' => 1, 'bar' => 2), $this->parser->parse($yaml)); - } - - public function testFloatKeys() - { - $yaml = <<<'EOF' -foo: - 1.2: "bar" - 1.3: "baz" -EOF; - - $expected = array( - 'foo' => array( - '1.2' => 'bar', - '1.3' => 'baz', - ), - ); - - $this->assertEquals($expected, $this->parser->parse($yaml)); - } - - /** - * @group legacy - * @expectedDeprecation Using a colon in the unquoted mapping value "bar: baz" in line 1 is deprecated since Symfony 2.8 and will throw a ParseException in 3.0. - * throw ParseException in Symfony 3.0 - */ - public function testColonInMappingValueException() - { - $yaml = <<<'EOF' -foo: bar: baz -EOF; - - $this->parser->parse($yaml); - } - - public function testColonInMappingValueExceptionNotTriggeredByColonInComment() - { - $yaml = <<<'EOT' -foo: - bar: foobar # Note: a comment after a colon -EOT; - - $this->assertSame(array('foo' => array('bar' => 'foobar')), $this->parser->parse($yaml)); - } - - /** - * @dataProvider getCommentLikeStringInScalarBlockData - */ - public function testCommentLikeStringsAreNotStrippedInBlockScalars($yaml, $expectedParserResult) - { - $this->assertSame($expectedParserResult, $this->parser->parse($yaml)); - } - - public function getCommentLikeStringInScalarBlockData() - { - $tests = array(); - - $yaml = <<<'EOT' -pages: - - - title: some title - content: | - # comment 1 - header - - # comment 2 - -

title

- - - footer # comment3 -EOT; - $expected = array( - 'pages' => array( - array( - 'title' => 'some title', - 'content' => <<<'EOT' -# comment 1 -header - - # comment 2 - -

title

- - -footer # comment3 -EOT - , - ), - ), - ); - $tests[] = array($yaml, $expected); - - $yaml = <<<'EOT' -test: | - foo - # bar - baz -collection: - - one: | - foo - # bar - baz - - two: | - foo - # bar - baz -EOT; - $expected = array( - 'test' => <<<'EOT' -foo -# bar -baz - -EOT - , - 'collection' => array( - array( - 'one' => <<<'EOT' -foo -# bar -baz - -EOT - , - ), - array( - 'two' => <<<'EOT' -foo -# bar -baz -EOT - , - ), - ), - ); - $tests[] = array($yaml, $expected); - - $yaml = <<<'EOT' -foo: - bar: - scalar-block: > - line1 - line2> - baz: -# comment - foobar: ~ -EOT; - $expected = array( - 'foo' => array( - 'bar' => array( - 'scalar-block' => "line1 line2>\n", - ), - 'baz' => array( - 'foobar' => null, - ), - ), - ); - $tests[] = array($yaml, $expected); - - $yaml = <<<'EOT' -a: - b: hello -# c: | -# first row -# second row - d: hello -EOT; - $expected = array( - 'a' => array( - 'b' => 'hello', - 'd' => 'hello', - ), - ); - $tests[] = array($yaml, $expected); - - return $tests; - } - - public function testBlankLinesAreParsedAsNewLinesInFoldedBlocks() - { - $yaml = <<<'EOT' -test: > -

A heading

- -
    -
  • a list
  • -
  • may be a good example
  • -
-EOT; - - $this->assertSame( - array( - 'test' => <<<'EOT' -

A heading

-
  • a list
  • may be a good example
-EOT - , - ), - $this->parser->parse($yaml) - ); - } - - public function testAdditionallyIndentedLinesAreParsedAsNewLinesInFoldedBlocks() - { - $yaml = <<<'EOT' -test: > -

A heading

- -
    -
  • a list
  • -
  • may be a good example
  • -
-EOT; - - $this->assertSame( - array( - 'test' => <<<'EOT' -

A heading

-
    -
  • a list
  • -
  • may be a good example
  • -
-EOT - , - ), - $this->parser->parse($yaml) - ); - } - - /** - * @param $lineNumber - * @param $yaml - * @dataProvider parserThrowsExceptionWithCorrectLineNumberProvider - */ - public function testParserThrowsExceptionWithCorrectLineNumber($lineNumber, $yaml) - { - if (method_exists($this, 'expectException')) { - $this->expectException('\Symfony\Component\Yaml\Exception\ParseException'); - $this->expectExceptionMessage(sprintf('Unexpected characters near "," at line %d (near "bar: "123",").', $lineNumber)); - } else { - $this->setExpectedException('\Symfony\Component\Yaml\Exception\ParseException', sprintf('Unexpected characters near "," at line %d (near "bar: "123",").', $lineNumber)); - } - - $this->parser->parse($yaml); - } - - public function parserThrowsExceptionWithCorrectLineNumberProvider() - { - return array( - array( - 4, - <<<'YAML' -foo: - - - # bar - bar: "123", -YAML - ), - array( - 5, - <<<'YAML' -foo: - - - # bar - # bar - bar: "123", -YAML - ), - array( - 8, - <<<'YAML' -foo: - - - # foobar - baz: 123 -bar: - - - # bar - bar: "123", -YAML - ), - array( - 10, - <<<'YAML' -foo: - - - # foobar - # foobar - baz: 123 -bar: - - - # bar - # bar - bar: "123", -YAML - ), - ); - } - - public function testCanParseVeryLongValue() - { - $longStringWithSpaces = str_repeat('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ', 20000); - $trickyVal = array('x' => $longStringWithSpaces); - - $yamlString = Yaml::dump($trickyVal); - $arrayFromYaml = $this->parser->parse($yamlString); - - $this->assertEquals($trickyVal, $arrayFromYaml); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - * @expectedExceptionMessage Reference "foo" does not exist at line 2 - */ - public function testParserCleansUpReferencesBetweenRuns() - { - $yaml = <<parser->parse($yaml); - - $yaml = <<parser->parse($yaml); - } - - public function testParseReferencesOnMergeKeys() - { - $yaml = << array( - 'a' => 'foo', - 'b' => 'bar', - 'c' => 'baz', - ), - 'mergekeyderef' => array( - 'd' => 'quux', - 'b' => 'bar', - 'c' => 'baz', - ), - ); - - $this->assertSame($expected, $this->parser->parse($yaml)); - } - - /** - * @expectedException \Symfony\Component\Yaml\Exception\ParseException - * @expectedExceptionMessage Reference "foo" does not exist - */ - public function testEvalRefException() - { - $yaml = <<parser->parse($yaml); - } -} - -class B -{ - public $b = 'foo'; -} diff --git a/vendor/symfony/yaml/Tests/YamlTest.php b/vendor/symfony/yaml/Tests/YamlTest.php deleted file mode 100755 index 9e776ca49..000000000 --- a/vendor/symfony/yaml/Tests/YamlTest.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml\Tests; - -use PHPUnit\Framework\TestCase; -use Symfony\Component\Yaml\Yaml; - -class YamlTest extends TestCase -{ - public function testParseAndDump() - { - $data = array('lorem' => 'ipsum', 'dolor' => 'sit'); - $yml = Yaml::dump($data); - $parsed = Yaml::parse($yml); - $this->assertEquals($data, $parsed); - } - - /** - * @group legacy - */ - public function testLegacyParseFromFile() - { - $filename = __DIR__.'/Fixtures/index.yml'; - $contents = file_get_contents($filename); - $parsedByFilename = Yaml::parse($filename); - $parsedByContents = Yaml::parse($contents); - $this->assertEquals($parsedByFilename, $parsedByContents); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage The indentation must be greater than zero - */ - public function testZeroIndentationThrowsException() - { - Yaml::dump(array('lorem' => 'ipsum', 'dolor' => 'sit'), 2, 0); - } - - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage The indentation must be greater than zero - */ - public function testNegativeIndentationThrowsException() - { - Yaml::dump(array('lorem' => 'ipsum', 'dolor' => 'sit'), 2, -4); - } -} diff --git a/vendor/symfony/yaml/Unescaper.php b/vendor/symfony/yaml/Unescaper.php deleted file mode 100755 index d0dbcfaa3..000000000 --- a/vendor/symfony/yaml/Unescaper.php +++ /dev/null @@ -1,156 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -/** - * Unescaper encapsulates unescaping rules for single and double-quoted - * YAML strings. - * - * @author Matthew Lewinski - * - * @internal - */ -class Unescaper -{ - /** - * Parser and Inline assume UTF-8 encoding, so escaped Unicode characters - * must be converted to that encoding. - * - * @deprecated since version 2.5, to be removed in 3.0 - * - * @internal - */ - const ENCODING = 'UTF-8'; - - /** - * Regex fragment that matches an escaped character in a double quoted string. - */ - const REGEX_ESCAPED_CHARACTER = '\\\\(x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|.)'; - - /** - * Unescapes a single quoted string. - * - * @param string $value A single quoted string - * - * @return string The unescaped string - */ - public function unescapeSingleQuotedString($value) - { - return str_replace('\'\'', '\'', $value); - } - - /** - * Unescapes a double quoted string. - * - * @param string $value A double quoted string - * - * @return string The unescaped string - */ - public function unescapeDoubleQuotedString($value) - { - $self = $this; - $callback = function ($match) use ($self) { - return $self->unescapeCharacter($match[0]); - }; - - // evaluate the string - return preg_replace_callback('/'.self::REGEX_ESCAPED_CHARACTER.'/u', $callback, $value); - } - - /** - * Unescapes a character that was found in a double-quoted string. - * - * @param string $value An escaped character - * - * @return string The unescaped character - * - * @internal This method is public to be usable as callback. It should not - * be used in user code. Should be changed in 3.0. - */ - public function unescapeCharacter($value) - { - switch ($value[1]) { - case '0': - return "\x0"; - case 'a': - return "\x7"; - case 'b': - return "\x8"; - case 't': - return "\t"; - case "\t": - return "\t"; - case 'n': - return "\n"; - case 'v': - return "\xB"; - case 'f': - return "\xC"; - case 'r': - return "\r"; - case 'e': - return "\x1B"; - case ' ': - return ' '; - case '"': - return '"'; - case '/': - return '/'; - case '\\': - return '\\'; - case 'N': - // U+0085 NEXT LINE - return "\xC2\x85"; - case '_': - // U+00A0 NO-BREAK SPACE - return "\xC2\xA0"; - case 'L': - // U+2028 LINE SEPARATOR - return "\xE2\x80\xA8"; - case 'P': - // U+2029 PARAGRAPH SEPARATOR - return "\xE2\x80\xA9"; - case 'x': - return self::utf8chr(hexdec(substr($value, 2, 2))); - case 'u': - return self::utf8chr(hexdec(substr($value, 2, 4))); - case 'U': - return self::utf8chr(hexdec(substr($value, 2, 8))); - default: - @trigger_error('Not escaping a backslash in a double-quoted string is deprecated since Symfony 2.8 and will throw a ParseException in 3.0.', E_USER_DEPRECATED); - - return $value; - } - } - - /** - * Get the UTF-8 character for the given code point. - * - * @param int $c The unicode code point - * - * @return string The corresponding UTF-8 character - */ - private static function utf8chr($c) - { - if (0x80 > $c %= 0x200000) { - return \chr($c); - } - if (0x800 > $c) { - return \chr(0xC0 | $c >> 6).\chr(0x80 | $c & 0x3F); - } - if (0x10000 > $c) { - return \chr(0xE0 | $c >> 12).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F); - } - - return \chr(0xF0 | $c >> 18).\chr(0x80 | $c >> 12 & 0x3F).\chr(0x80 | $c >> 6 & 0x3F).\chr(0x80 | $c & 0x3F); - } -} diff --git a/vendor/symfony/yaml/Yaml.php b/vendor/symfony/yaml/Yaml.php deleted file mode 100755 index 3f93cba9e..000000000 --- a/vendor/symfony/yaml/Yaml.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Yaml; - -use Symfony\Component\Yaml\Exception\ParseException; - -/** - * Yaml offers convenience methods to load and dump YAML. - * - * @author Fabien Potencier - */ -class Yaml -{ - /** - * Parses YAML into a PHP value. - * - * Usage: - * - * $array = Yaml::parse(file_get_contents('config.yml')); - * print_r($array); - * - * As this method accepts both plain strings and file names as an input, - * you must validate the input before calling this method. Passing a file - * as an input is a deprecated feature and will be removed in 3.0. - * - * Note: the ability to pass file names to the Yaml::parse method is deprecated since Symfony 2.2 and will be removed in 3.0. Pass the YAML contents of the file instead. - * - * @param string $input Path to a YAML file or a string containing YAML - * @param bool $exceptionOnInvalidType True if an exception must be thrown on invalid types false otherwise - * @param bool $objectSupport True if object support is enabled, false otherwise - * @param bool $objectForMap True if maps should return a stdClass instead of array() - * - * @return mixed The YAML converted to a PHP value - * - * @throws ParseException If the YAML is not valid - */ - public static function parse($input, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false) - { - // if input is a file, process it - $file = ''; - if (false === strpos($input, "\n") && is_file($input)) { - @trigger_error('The ability to pass file names to the '.__METHOD__.' method is deprecated since Symfony 2.2 and will be removed in 3.0. Pass the YAML contents of the file instead.', E_USER_DEPRECATED); - - if (false === is_readable($input)) { - throw new ParseException(sprintf('Unable to parse "%s" as the file is not readable.', $input)); - } - - $file = $input; - $input = file_get_contents($file); - } - - $yaml = new Parser(); - - try { - return $yaml->parse($input, $exceptionOnInvalidType, $objectSupport, $objectForMap); - } catch (ParseException $e) { - if ($file) { - $e->setParsedFile($file); - } - - throw $e; - } - } - - /** - * Dumps a PHP value to a YAML string. - * - * The dump method, when supplied with an array, will do its best - * to convert the array into friendly YAML. - * - * @param mixed $input The PHP value - * @param int $inline The level where you switch to inline YAML - * @param int $indent The amount of spaces to use for indentation of nested nodes - * @param bool $exceptionOnInvalidType True if an exception must be thrown on invalid types (a PHP resource or object), false otherwise - * @param bool $objectSupport True if object support is enabled, false otherwise - * - * @return string A YAML string representing the original PHP value - */ - public static function dump($input, $inline = 2, $indent = 4, $exceptionOnInvalidType = false, $objectSupport = false) - { - if ($indent < 1) { - throw new \InvalidArgumentException('The indentation must be greater than zero.'); - } - - $yaml = new Dumper(); - $yaml->setIndentation($indent); - - return $yaml->dump($input, $inline, 0, $exceptionOnInvalidType, $objectSupport); - } -} diff --git a/vendor/symfony/yaml/phpunit.xml.dist b/vendor/symfony/yaml/phpunit.xml.dist deleted file mode 100755 index b5d4d914f..000000000 --- a/vendor/symfony/yaml/phpunit.xml.dist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - ./Tests/ - - - - - - ./ - - ./Tests - ./vendor - - - - diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/CHANGELOG.md b/vendor/tencentcloud/tencentcloud-sdk-php/CHANGELOG.md index dd97fdaf2..71f53ac14 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/CHANGELOG.md +++ b/vendor/tencentcloud/tencentcloud-sdk-php/CHANGELOG.md @@ -1,3 +1,3613 @@ +# Release 3.0.950 + +## 多媒体创作引擎(cme) 版本:2019-10-29 + +### 第 56 次发布 + +发布时间:2023-08-09 01:16:08 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [MediaCastOutputMediaSetting](https://cloud.tencent.com/document/api/1156/40360#MediaCastOutputMediaSetting) + + * 新增成员:FollowSourceInfo + + + + +## 云安全一体化平台(csip) 版本:2022-11-21 + +### 第 8 次发布 + +发布时间:2023-08-09 01:17:49 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeListenerList](https://cloud.tencent.com/document/api/664/96103) + +新增数据结构: + +* [ClbListenerListInfo](https://cloud.tencent.com/document/api/664/90825#ClbListenerListInfo) + + + +## 数据湖计算 DLC(dlc) 版本:2021-01-25 + +### 第 59 次发布 + +发布时间:2023-08-09 01:22:16 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateNotebookSession](https://cloud.tencent.com/document/api/1342/86113) + + * 新增入参:IsInherit + +* [CreateSparkSessionBatchSQL](https://cloud.tencent.com/document/api/1342/92838) + + * 新增入参:IsInherit + + + + +## 数据传输服务(dts) 版本:2021-12-06 + +### 第 14 次发布 + +发布时间:2023-08-09 01:23:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeMigrationDetail](https://cloud.tencent.com/document/api/571/82085) + + * 新增出参:DumperResumeCtrl, RateLimitOption + + +新增数据结构: + +* [ErrInfo](https://cloud.tencent.com/document/api/571/82108#ErrInfo) +* [RateLimitOption](https://cloud.tencent.com/document/api/571/82108#RateLimitOption) + +修改数据结构: + +* [Endpoint](https://cloud.tencent.com/document/api/571/82108#Endpoint) + + * 新增成员:CcnOwnerUin + +* [JobItem](https://cloud.tencent.com/document/api/571/82108#JobItem) + + * 新增成员:DumperResumeCtrl + +* [Options](https://cloud.tencent.com/document/api/571/82108#Options) + + * 新增成员:RateLimitOption, AutoRetryTimeRangeMinutes + +* [SyncDetailInfo](https://cloud.tencent.com/document/api/571/82108#SyncDetailInfo) + + * 新增成员:ErrInfo + + * **修改成员**:CauseOfCompareDisable + +* [SyncJobInfo](https://cloud.tencent.com/document/api/571/82108#SyncJobInfo) + + * 新增成员:SrcNodeType, SrcInfos, DstNodeType, DstInfos, DumperResumeCtrl + + + + +## 数据传输服务(dts) 版本:2018-03-30 + + + +## 物联网通信(iotcloud) 版本:2021-04-08 + +### 第 9 次发布 + +发布时间:2023-08-09 01:29:39 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeDevice](https://cloud.tencent.com/document/api/634/71948) + + * 新增出参:NBIoTDeviceID + + +修改数据结构: + +* [CLSLogItem](https://cloud.tencent.com/document/api/634/71973#CLSLogItem) + + * 新增成员:UserId + +* [DeviceInfo](https://cloud.tencent.com/document/api/634/71973#DeviceInfo) + + * 新增成员:NBIoTDeviceID + +* [ProductProperties](https://cloud.tencent.com/document/api/634/71973#ProductProperties) + + * 新增成员:AppEUI + + + + +## 物联网通信(iotcloud) 版本:2018-06-14 + + + +## 物联网智能视频服务(iotvideo) 版本:2021-11-25 + +### 第 17 次发布 + +发布时间:2023-08-09 01:31:19 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [ResetCloudStorageEvent](https://cloud.tencent.com/document/api/1131/96104) + + + +## 物联网智能视频服务(iotvideo) 版本:2020-12-15 + + + +## 物联网智能视频服务(iotvideo) 版本:2019-11-26 + + + +## 文字识别(ocr) 版本:2018-11-19 + +### 第 110 次发布 + +发布时间:2023-08-09 01:39:38 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* VerifyBasicBizLicense +* VerifyBizLicense + +**删除数据结构**: + +* BizLicenseVerifyResult + + + +## 集团账号管理(organization) 版本:2021-03-31 + +### 第 21 次发布 + +发布时间:2023-08-09 01:40:29 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateOrganizationMemberAuthIdentity](https://cloud.tencent.com/document/api/850/96106) +* [DeleteOrganizationMembersPolicy](https://cloud.tencent.com/document/api/850/96105) + + + +## 集团账号管理(organization) 版本:2018-12-25 + + + +## 前端性能监控(rum) 版本:2021-06-22 + +### 第 28 次发布 + +发布时间:2023-08-09 01:43:06 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeDataPvUrlStatistics](https://cloud.tencent.com/document/api/1464/65768) + + * 新增入参:GroupByType + + + + +## SSL 证书(ssl) 版本:2019-12-05 + +### 第 39 次发布 + +发布时间:2023-08-09 01:45:30 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeCertificates](https://cloud.tencent.com/document/api/400/41671) + + * 新增入参:Hostable + +* [UpdateCertificateInstance](https://cloud.tencent.com/document/api/400/91649) + +* [UploadCertificate](https://cloud.tencent.com/document/api/400/41665) + + * 新增入参:Tags + + +修改数据结构: + +* [DeployRecordDetail](https://cloud.tencent.com/document/api/400/41679#DeployRecordDetail) + + * 新增成员:EnvId, TCBType, Region + + * **修改成员**:Port + +* [UpdateRecordDetail](https://cloud.tencent.com/document/api/400/41679#UpdateRecordDetail) + + * 新增成员:EnvId, TCBType + + * **修改成员**:Port, Namespace, SecretName + + + + +## 消息队列 TDMQ(tdmq) 版本:2020-02-17 + +### 第 72 次发布 + +发布时间:2023-08-09 01:50:17 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeRabbitMQVirtualHost](https://cloud.tencent.com/document/api/1179/93455) + + * 新增入参:SortElement, SortOrder + + +修改数据结构: + +* [RabbitMQVirtualHostInfo](https://cloud.tencent.com/document/api/1179/46089#RabbitMQVirtualHostInfo) + + * 新增成员:Status, MessageHeapCount, MessageRateIn, MessageRateOut + + * **修改成员**:InstanceId, VirtualHost, Description, Tags, CreateTime, ModifyTime, VirtualHostStatistics + + + + +## TI-ONE 训练平台(tione) 版本:2021-11-11 + +### 第 31 次发布 + +发布时间:2023-08-08 22:45:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [ChatCompletion](https://cloud.tencent.com/document/api/851/96102) + +新增数据结构: + +* [Choice](https://cloud.tencent.com/document/api/851/75051#Choice) +* [Message](https://cloud.tencent.com/document/api/851/75051#Message) +* [Usage](https://cloud.tencent.com/document/api/851/75051#Usage) + + + +## TI-ONE 训练平台(tione) 版本:2019-10-22 + + + +## 私有网络(vpc) 版本:2017-03-12 + +### 第 164 次发布 + +发布时间:2023-08-09 01:58:05 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AcceptVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96026) + + * 新增入参:PeeringConnectionId + +* [DeleteVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96024) + + * 新增入参:PeeringConnectionId + + + + +## 数据开发治理平台 WeData(wedata) 版本:2021-08-20 + +### 第 40 次发布 + +发布时间:2023-08-09 02:00:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeSchedulerInstanceStatus](https://cloud.tencent.com/document/api/1267/95198) + + * 新增入参:StartTime, EndTime, InCharge + +* [DescribeSchedulerRunTimeInstanceCntByStatus](https://cloud.tencent.com/document/api/1267/95197) + + * 新增入参:TaskType, InCharge + +* [DescribeSchedulerTaskCntByStatus](https://cloud.tencent.com/document/api/1267/95196) + + * 新增入参:InCharge + +* [DescribeSchedulerTaskTypeCnt](https://cloud.tencent.com/document/api/1267/95195) + + * 新增入参:InCharge + +* [DescribeStatisticInstanceStatusTrendOps](https://cloud.tencent.com/document/api/1267/95193) + + * 新增入参:InCharge, TaskType, StateList, AggregationUnit, AverageWindowSize + +* [DescribeTaskByCycle](https://cloud.tencent.com/document/api/1267/95192) + + * 新增入参:InCharge + +* [DescribeTaskByStatusReport](https://cloud.tencent.com/document/api/1267/95190) + + * 新增入参:AggregationUnit, CycleUnit, Status, InCharge + + +修改数据结构: + +* [InstanceStatisticInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceStatisticInfo) + + * 新增成员:ReportTime, Count + +* [TaskByStatus](https://cloud.tencent.com/document/api/1267/76336#TaskByStatus) + + * 新增成员:ReportTime, Count + + + + +# Release 3.0.949 + +## 语音识别(asr) 版本:2019-06-14 + +### 第 30 次发布 + +发布时间:2023-08-08 01:06:35 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [VoicePrintCount](https://cloud.tencent.com/document/api/1093/96061) + +新增数据结构: + +* [VoicePrintCountData](https://cloud.tencent.com/document/api/1093/37824#VoicePrintCountData) + + + +## 云呼叫中心(ccc) 版本:2020-02-10 + +### 第 53 次发布 + +发布时间:2023-08-08 01:09:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateAdminURL](https://cloud.tencent.com/document/api/679/96062) + + + +## 日志服务(cls) 版本:2020-10-16 + +### 第 65 次发布 + +发布时间:2023-08-08 01:11:32 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateMachineGroup](https://cloud.tencent.com/document/api/614/56440) + + * 新增入参:OSType + + +新增数据结构: + +* [EventLog](https://cloud.tencent.com/document/api/614/56471#EventLog) + +修改数据结构: + +* [ExtractRuleInfo](https://cloud.tencent.com/document/api/614/56471#ExtractRuleInfo) + + * 新增成员:EventLogRules + +* [MachineGroupInfo](https://cloud.tencent.com/document/api/614/56471#MachineGroupInfo) + + * 新增成员:OSType + + + + +## 云安全一体化平台(csip) 版本:2022-11-21 + +### 第 7 次发布 + +发布时间:2023-08-08 01:12:25 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateRiskCenterScanTask](https://cloud.tencent.com/document/api/664/94177) + + * 新增出参:Status, UnAuthAsset + + +修改数据结构: + +* [AssetClusterPod](https://cloud.tencent.com/document/api/664/90825#AssetClusterPod) + + * 新增成员:IsNewAsset + + * **修改成员**:AppId, Uin, Nick, Region, AssetId, AssetName, InstanceCreateTime, Namespace, Status, ClusterId, ClusterName, MachineId, MachineName, PodIp, ServiceCount, ContainerCount, PublicIp, PrivateIp, IsCore + +* [CVMAssetVO](https://cloud.tencent.com/document/api/664/90825#CVMAssetVO) + + * 新增成员:IsNewAsset + +* [DBAssetVO](https://cloud.tencent.com/document/api/664/90825#DBAssetVO) + + * 新增成员:IsNewAsset + + * **修改成员**:AssetId, AssetName, AssetType, VpcId, VpcName, Region, Domain, AssetCreateTime, LastScanTime, ConfigurationRisk, Attack, Access, ScanTask, AppId, Uin, NickName, Port, Tag, PrivateIp, PublicIp, Status, IsCore + +* [DomainAssetVO](https://cloud.tencent.com/document/api/664/90825#DomainAssetVO) + + * 新增成员:IsNewAsset, VerifyDomain, VerifyTXTRecord, VerifyStatus + +* [IpAssetListVO](https://cloud.tencent.com/document/api/664/90825#IpAssetListVO) + + * 新增成员:IsNewAsset, VerifyStatus + + * **修改成员**:AssetId, AssetName, AssetType, Region, CFWStatus, AssetCreateTime, PublicIp, PublicIpType, VpcId, VpcName, AppId, Uin, NickName, IsCore, IsCloud, Attack, Access, Intercept, InBandwidth, OutBandwidth, InFlow, OutFlow, LastScanTime, PortRisk, VulnerabilityRisk, ConfigurationRisk, ScanTask, WeakPassword, WebContentRisk, Tag, AddressId, MemberId, RiskExposure + +* [SubnetAsset](https://cloud.tencent.com/document/api/664/90825#SubnetAsset) + + * 新增成员:IsNewAsset + + * **修改成员**:AppId, Uin, AssetId, AssetName, Region, VpcId, VpcName, Tag, Nick, CIDR, Zone, CVM, AvailableIp, CreateTime, ConfigureRisk, ScanTask, LastScanTime, IsCore + +* [Vpc](https://cloud.tencent.com/document/api/664/90825#Vpc) + + * 新增成员:IsNewAsset, IsCore + + * **修改成员**:Subnet, ConnectedVpc, AssetId, Region, CVM, Tag, DNS, AssetName, CIDR, CreateTime, AppId, Uin, Nick + + + + +## TDSQL-C MySQL 版(cynosdb) 版本:2019-01-07 + +### 第 65 次发布 + +发布时间:2023-08-08 01:14:23 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [CynosdbClusterDetail](https://cloud.tencent.com/document/api/1003/48097#CynosdbClusterDetail) + + * **修改成员**:ResourcePackages, RenewFlag + + + + +## T-Sec-堡垒机(BH)(dasb) 版本:2019-10-18 + +### 第 14 次发布 + +发布时间:2023-08-08 01:15:01 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeDevices](https://cloud.tencent.com/document/api/1025/74415) + + * 新增入参:ManagedAccount + + + + +## 数据连接器(eis) 版本:2021-06-01 + +### 第 8 次发布 + +发布时间:2023-08-08 01:16:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ListDeployableRuntimesMC](https://cloud.tencent.com/document/api/1270/57965) + + * 新增入参:RuntimeClass + + +修改数据结构: + +* [AbstractRuntimeMC](https://cloud.tencent.com/document/api/1270/57968#AbstractRuntimeMC) + + * 新增成员:MatchExtensions + +* [RuntimeExtensionMC](https://cloud.tencent.com/document/api/1270/57968#RuntimeExtensionMC) + + * **修改成员**:Size, Replica, Name, Status, CreatedAt, UpdatedAt + + + + +## 数据连接器(eis) 版本:2020-07-15 + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 102 次发布 + +发布时间:2023-08-08 01:16:56 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreatePreparedPersonalEsign](https://cloud.tencent.com/document/api/1323/89386) + + * 新增入参:Agent + + +修改数据结构: + +* [GroupOrganization](https://cloud.tencent.com/document/api/1323/70369#GroupOrganization) + + * **修改成员**:Name, Alias, OrganizationId, UpdateTime, Status, IsMainOrganization, IdCardNumber, AdminInfo, License, LicenseExpireTime, JoinTime, FlowEngineEnable + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2021-05-26 + +### 第 100 次发布 + +发布时间:2023-08-08 01:17:36 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ChannelDescribeEmployees](https://cloud.tencent.com/document/api/1420/81119) + + * **修改入参**:Agent + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2020-12-22 + + + +## 数据开发治理平台 WeData(wedata) 版本:2021-08-20 + +### 第 39 次发布 + +发布时间:2023-08-08 01:27:52 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeBatchOperateTask](https://cloud.tencent.com/document/api/1267/94610) + + * 新增入参:DatasourceIdList, DatasourceTypeList, CycleUnitList, CanSubmit + + +修改数据结构: + +* [DescribeBatchOperateTaskDTO](https://cloud.tencent.com/document/api/1267/76336#DescribeBatchOperateTaskDTO) + + * 新增成员:CycleUnit, ScheduleDesc, DatasourceId, DatasourceType + + + + +# Release 3.0.948 + +## 智能视图计算平台(iss) 版本:2023-05-17 + +### 第 2 次发布 + +发布时间:2023-08-07 15:48:42 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AddOrganization](https://cloud.tencent.com/document/api/1344/95894) + + * **修改出参**:Data + +* [AddRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95929) + + * 新增出参:Data, RequestId + + * **删除出参**:PlanId, PlanName, TemplateId, Describe, LifeCycle, Status, ChannelCount, CreateAt, UpdateAt + +* [AddRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95913) + + * 新增出参:Data, RequestId + + * **删除出参**:TemplateId, TemplateName, TimeSections, DevTimeSections, Scale, CreateAt, UpdateAt + +* [AddRecordPlan](https://cloud.tencent.com/document/api/1344/95928) + + * **修改出参**:Data + +* [AddRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95941) + + * 新增出参:Data, RequestId + + * **删除出参**:TaskId, TaskName, StartTime, EndTime, Mode, Expiration, Status, Capacity, Describe + +* [AddStreamAuth](https://cloud.tencent.com/document/api/1344/95902) + + * 新增出参:Data, RequestId + + * **删除出参**:Id, PullState, PullSecret, PullExpired, PushState, PushSecret, PushExpired, AppId + +* [AddUserDevice](https://cloud.tencent.com/document/api/1344/95876) + + * **修改出参**:Data + +* [ControlDeviceStream](https://cloud.tencent.com/document/api/1344/95943) + + * 新增出参:Data, RequestId + + * **删除出参**:Flv, Hls, Rtmp + +* [DescribeAITaskResult](https://cloud.tencent.com/document/api/1344/95948) + + * **修改出参**:Data + +* [DescribeDeviceChannel](https://cloud.tencent.com/document/api/1344/95874) + + * 新增出参:Data, RequestId + + * **删除出参**:DeviceId, ChannelId, ChannelCode, Name, Status, PTZType, Manufacturer, Resolution, State, Region + +* [DescribeDevicePreset](https://cloud.tencent.com/document/api/1344/95878) + + * 新增出参:Data, RequestId + + * **删除出参**:Index, Name + +* [DescribeDomain](https://cloud.tencent.com/document/api/1344/95898) + + * 新增出参:Data, RequestId + + * **删除出参**:Id, PlayDomain, InternalDomain, HaveCert, ClusterId, ClusterName, AppId + +* [DescribeDomainRegion](https://cloud.tencent.com/document/api/1344/95897) + + * 新增出参:Data, RequestId + + * **删除出参**:Label, Value, Region + +* [DescribeGateway](https://cloud.tencent.com/document/api/1344/95888) + + * 新增出参:Data, RequestId + + * **删除出参**:GatewayId, GwId, Name, Description, ClusterId, ClusterName, Status, Version, DeviceNum, CreatedAt, Region + +* [DescribeGatewayProtocol](https://cloud.tencent.com/document/api/1344/95886) + + * 新增出参:Data, RequestId + + * **删除出参**:TypeCode, Value, Label + +* [DescribeGatewayVersion](https://cloud.tencent.com/document/api/1344/95885) + + * 新增出参:Data, RequestId + + * **删除出参**:Services + +* [DescribeOrganization](https://cloud.tencent.com/document/api/1344/95892) + + * 新增出参:Data, RequestId + + * **删除出参**:OrganizationId, Name, ParentId, Level, AppId, ParentIds, Total, Online + +* [DescribeRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95925) + + * 新增出参:Data, RequestId + + * **删除出参**:PlanId, PlanName, TemplateId, Describe, LifeCycle, Status, ChannelCount, CreateAt, UpdateAt + +* [DescribeRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95909) + + * 新增出参:Data, RequestId + + * **删除出参**:TemplateId, TemplateName, TimeSections, DevTimeSections, Scale, CreateAt, UpdateAt + +* [DescribeRecordFile](https://cloud.tencent.com/document/api/1344/95934) + + * 新增出参:Data, RequestId + + * **删除出参**:Tips, List + +* [DescribeRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95939) + + * 新增出参:Data, RequestId + + * **删除出参**:TaskId, TaskName, StartTime, EndTime, Mode, Expiration, Status, Capacity, Channels, Describe, ChannelCount + +* [DescribeStreamAuth](https://cloud.tencent.com/document/api/1344/95896) + + * 新增出参:Data, RequestId + + * **删除出参**:Id, PullState, PullSecret, PullExpired, PushState, PushSecret, PushExpired, AppId + +* [DescribeUserDevice](https://cloud.tencent.com/document/api/1344/95872) + + * **修改出参**:Data + +* [DescribeVideoDownloadUrl](https://cloud.tencent.com/document/api/1344/95932) + + * 新增出参:Data, RequestId + + * **删除出参**:Url, ActualBeginTime, ActualEndTime + +* [ListGateways](https://cloud.tencent.com/document/api/1344/95884) + + * 新增出参:Data, RequestId + + * **删除出参**:List, TotalCount + +* [ListOrganizationChannelNumbers](https://cloud.tencent.com/document/api/1344/95923) + + * 新增出参:Data, RequestId + + * **删除出参**:TotalCount, NotInPlanCount + +* [ListOrganizationChannels](https://cloud.tencent.com/document/api/1344/95922) + + * 新增出参:Data, RequestId + + * **删除出参**:PageNumber, PageSize, TotalCount, List + +* [ListRecordBackupPlanDevices](https://cloud.tencent.com/document/api/1344/95921) + + * 新增出参:Data, RequestId + + * **删除出参**:PageNumber, PageSize, TotalCount, List + +* [ListRecordBackupPlans](https://cloud.tencent.com/document/api/1344/95920) + + * **修改出参**:Data + +* [ListRecordBackupTemplates](https://cloud.tencent.com/document/api/1344/95907) + + * 新增出参:Data, RequestId + + * **删除出参**:TemplateId, TemplateName, TimeSections, DevTimeSections, Scale, CreateAt, UpdateAt + +* [ListRecordPlanChannels](https://cloud.tencent.com/document/api/1344/95919) + + * 新增出参:Data, RequestId + + * **删除出参**:List + +* [ListRecordPlanDevices](https://cloud.tencent.com/document/api/1344/95918) + + * 新增出参:Data, RequestId + + * **删除出参**:PageNumber, PageSize, TotalCount, List + +* [PlayRecord](https://cloud.tencent.com/document/api/1344/95931) + + * 新增出参:Data, RequestId + + * **删除出参**:Flv + +* [UpdateGateway](https://cloud.tencent.com/document/api/1344/95883) + + * 新增出参:Data, RequestId + + * **删除出参**:GatewayId, GwId, Name, Description, ClusterId, ClusterName, Status, CreatedAt, Secret, Version + +* [UpdateOrganization](https://cloud.tencent.com/document/api/1344/95891) + + * **修改出参**:Data + +* [UpdateRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95916) + + * 新增出参:Data, RequestId + + * **删除出参**:PlanId, PlanName, TemplateId, Describe, LifeCycle, Status, ChannelCount, CreateAt, UpdateAt + +* [UpdateRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95905) + + * 新增出参:Data, RequestId + + * **删除出参**:TemplateId, TemplateName, TimeSections, DevTimeSections, Scale, CreateAt, UpdateAt + +* [UpdateRecordPlan](https://cloud.tencent.com/document/api/1344/95915) + + * **修改出参**:Data + +* [UpdateUserDevice](https://cloud.tencent.com/document/api/1344/95867) + + * **修改出参**:Data + + +新增数据结构: + +* [AITaskResultData](https://cloud.tencent.com/document/api/1344/95952#AITaskResultData) +* [AddDeviceData](https://cloud.tencent.com/document/api/1344/95952#AddDeviceData) +* [AddOrgData](https://cloud.tencent.com/document/api/1344/95952#AddOrgData) +* [AddRecordBackupPlanData](https://cloud.tencent.com/document/api/1344/95952#AddRecordBackupPlanData) +* [AddRecordBackupTemplateData](https://cloud.tencent.com/document/api/1344/95952#AddRecordBackupTemplateData) +* [AddRecordRetrieveTaskData](https://cloud.tencent.com/document/api/1344/95952#AddRecordRetrieveTaskData) +* [AddStreamAuthData](https://cloud.tencent.com/document/api/1344/95952#AddStreamAuthData) +* [ControlDeviceStreamData](https://cloud.tencent.com/document/api/1344/95952#ControlDeviceStreamData) +* [DescribeDeviceChannelData](https://cloud.tencent.com/document/api/1344/95952#DescribeDeviceChannelData) +* [DescribeDeviceData](https://cloud.tencent.com/document/api/1344/95952#DescribeDeviceData) +* [DescribeDevicePresetData](https://cloud.tencent.com/document/api/1344/95952#DescribeDevicePresetData) +* [DescribeDomainData](https://cloud.tencent.com/document/api/1344/95952#DescribeDomainData) +* [DescribeDomainRegionData](https://cloud.tencent.com/document/api/1344/95952#DescribeDomainRegionData) +* [DescribeGatewayData](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayData) +* [DescribeGatewayProtocolData](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayProtocolData) +* [DescribeGatewayVersionData](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayVersionData) +* [DescribeOrganizationData](https://cloud.tencent.com/document/api/1344/95952#DescribeOrganizationData) +* [DescribeRecordBackupPlanData](https://cloud.tencent.com/document/api/1344/95952#DescribeRecordBackupPlanData) +* [DescribeRecordBackupTemplateData](https://cloud.tencent.com/document/api/1344/95952#DescribeRecordBackupTemplateData) +* [DescribeRecordFileData](https://cloud.tencent.com/document/api/1344/95952#DescribeRecordFileData) +* [DescribeRecordRetrieveTaskData](https://cloud.tencent.com/document/api/1344/95952#DescribeRecordRetrieveTaskData) +* [DescribeStreamAuthData](https://cloud.tencent.com/document/api/1344/95952#DescribeStreamAuthData) +* [DescribeVideoDownloadUrlData](https://cloud.tencent.com/document/api/1344/95952#DescribeVideoDownloadUrlData) +* [ListGatewaysData](https://cloud.tencent.com/document/api/1344/95952#ListGatewaysData) +* [ListOrganizationChannelNumbersData](https://cloud.tencent.com/document/api/1344/95952#ListOrganizationChannelNumbersData) +* [ListOrganizationChannelsData](https://cloud.tencent.com/document/api/1344/95952#ListOrganizationChannelsData) +* [ListRecordBackupPlanData](https://cloud.tencent.com/document/api/1344/95952#ListRecordBackupPlanData) +* [ListRecordBackupPlanDevicesData](https://cloud.tencent.com/document/api/1344/95952#ListRecordBackupPlanDevicesData) +* [ListRecordBackupTemplatesData](https://cloud.tencent.com/document/api/1344/95952#ListRecordBackupTemplatesData) +* [ListRecordPlanChannelsData](https://cloud.tencent.com/document/api/1344/95952#ListRecordPlanChannelsData) +* [ListRecordPlanDevicesData](https://cloud.tencent.com/document/api/1344/95952#ListRecordPlanDevicesData) +* [PlayRecordData](https://cloud.tencent.com/document/api/1344/95952#PlayRecordData) +* [RecordPlanOptData](https://cloud.tencent.com/document/api/1344/95952#RecordPlanOptData) +* [UpdateDeviceData](https://cloud.tencent.com/document/api/1344/95952#UpdateDeviceData) +* [UpdateGatewayData](https://cloud.tencent.com/document/api/1344/95952#UpdateGatewayData) +* [UpdateOrgData](https://cloud.tencent.com/document/api/1344/95952#UpdateOrgData) +* [UpdateRecordBackupPlanData](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordBackupPlanData) +* [UpdateRecordBackupTemplateData](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordBackupTemplateData) + +**删除数据结构**: + +* AITaskResultResponse +* AddDeviceResponse +* AddOrgResponse +* DescribeDeviceResponse +* ListRecordBackupPlanResponse +* RecordPlanOptResponse +* UpdateDeviceResponse +* UpdateOrgResponse + + + +## 消息队列 RocketMQ 版(trocket) 版本:2023-03-08 + +### 第 1 次发布 + +发布时间:2023-08-07 10:45:38 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeInstanceList](https://cloud.tencent.com/document/api/1493/96028) +* [DescribeTopicList](https://cloud.tencent.com/document/api/1493/96030) + +新增数据结构: + +* [Filter](https://cloud.tencent.com/document/api/1493/96031#Filter) +* [InstanceItem](https://cloud.tencent.com/document/api/1493/96031#InstanceItem) +* [Tag](https://cloud.tencent.com/document/api/1493/96031#Tag) +* [TagFilter](https://cloud.tencent.com/document/api/1493/96031#TagFilter) +* [TopicItem](https://cloud.tencent.com/document/api/1493/96031#TopicItem) + + + +# Release 3.0.947 + +## 云数据库 MySQL(cdb) 版本:2017-03-20 + +### 第 141 次发布 + +发布时间:2023-08-07 01:07:06 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeCpuExpandStrategy](https://cloud.tencent.com/document/api/236/96018) +* [StartCpuExpand](https://cloud.tencent.com/document/api/236/96017) +* [StopCpuExpand](https://cloud.tencent.com/document/api/236/96016) + + + +## 数据湖计算 DLC(dlc) 版本:2021-01-25 + +### 第 58 次发布 + +发布时间:2023-08-07 01:10:42 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeUserRoles](https://cloud.tencent.com/document/api/1342/96019) + +新增数据结构: + +* [CosPermission](https://cloud.tencent.com/document/api/1342/53778#CosPermission) +* [UserRole](https://cloud.tencent.com/document/api/1342/53778#UserRole) + + + +## 容器服务(tke) 版本:2018-05-25 + +### 第 160 次发布 + +发布时间:2023-08-07 01:18:30 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ModifyClusterAttribute](https://cloud.tencent.com/document/api/457/42938) + + * 新增入参:ClusterProperty + + * 新增出参:ClusterProperty + + +新增数据结构: + +* [ClusterProperty](https://cloud.tencent.com/document/api/457/31866#ClusterProperty) + + + +## 微服务引擎 TSE(tse) 版本:2020-12-07 + +### 第 37 次发布 + +发布时间:2023-08-07 01:19:09 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [KongRoutePreview](https://cloud.tencent.com/document/api/1364/54942#KongRoutePreview) + + + + +## 私有网络(vpc) 版本:2017-03-12 + +### 第 163 次发布 + +发布时间:2023-08-07 01:19:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [AcceptVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96026) +* [CreateVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96025) +* [DeleteVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96024) +* [DescribeVpcPeeringConnections](https://cloud.tencent.com/document/api/215/96023) +* [ModifyVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96022) +* [RejectVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96021) + + + +# Release 3.0.946 + +## 业务风险情报(bri) 版本:2019-03-28 + +### 第 4 次发布 + +发布时间:2023-08-03 12:20:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [BRIRequest](https://cloud.tencent.com/document/api/1064/35632#BRIRequest) + + * 新增成员:SubAppid + + + + +## 智能视图计算平台(iss) 版本:2023-05-17 + +### 第 1 次发布 + +发布时间:2023-08-03 16:25:45 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [AddAITask](https://cloud.tencent.com/document/api/1344/95951) +* [AddOrganization](https://cloud.tencent.com/document/api/1344/95894) +* [AddRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95929) +* [AddRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95913) +* [AddRecordPlan](https://cloud.tencent.com/document/api/1344/95928) +* [AddRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95941) +* [AddRecordTemplate](https://cloud.tencent.com/document/api/1344/95912) +* [AddStreamAuth](https://cloud.tencent.com/document/api/1344/95902) +* [AddUserDevice](https://cloud.tencent.com/document/api/1344/95876) +* [CheckDomain](https://cloud.tencent.com/document/api/1344/95901) +* [ControlDevicePTZ](https://cloud.tencent.com/document/api/1344/95880) +* [ControlDevicePreset](https://cloud.tencent.com/document/api/1344/95879) +* [ControlDeviceStream](https://cloud.tencent.com/document/api/1344/95943) +* [ControlRecord](https://cloud.tencent.com/document/api/1344/95936) +* [ControlRecordTimeline](https://cloud.tencent.com/document/api/1344/95935) +* [DeleteAITask](https://cloud.tencent.com/document/api/1344/95950) +* [DeleteDomain](https://cloud.tencent.com/document/api/1344/95900) +* [DeleteGateway](https://cloud.tencent.com/document/api/1344/95889) +* [DeleteOrganization](https://cloud.tencent.com/document/api/1344/95893) +* [DeleteRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95927) +* [DeleteRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95911) +* [DeleteRecordPlan](https://cloud.tencent.com/document/api/1344/95926) +* [DeleteRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95940) +* [DeleteRecordTemplate](https://cloud.tencent.com/document/api/1344/95910) +* [DeleteUserDevice](https://cloud.tencent.com/document/api/1344/95875) +* [DescribeAITask](https://cloud.tencent.com/document/api/1344/95949) +* [DescribeAITaskResult](https://cloud.tencent.com/document/api/1344/95948) +* [DescribeCNAME](https://cloud.tencent.com/document/api/1344/95899) +* [DescribeDeviceChannel](https://cloud.tencent.com/document/api/1344/95874) +* [DescribeDevicePreset](https://cloud.tencent.com/document/api/1344/95878) +* [DescribeDeviceRegion](https://cloud.tencent.com/document/api/1344/95873) +* [DescribeDomain](https://cloud.tencent.com/document/api/1344/95898) +* [DescribeDomainRegion](https://cloud.tencent.com/document/api/1344/95897) +* [DescribeGateway](https://cloud.tencent.com/document/api/1344/95888) +* [DescribeGatewayMonitor](https://cloud.tencent.com/document/api/1344/95887) +* [DescribeGatewayProtocol](https://cloud.tencent.com/document/api/1344/95886) +* [DescribeGatewayVersion](https://cloud.tencent.com/document/api/1344/95885) +* [DescribeOrganization](https://cloud.tencent.com/document/api/1344/95892) +* [DescribeRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95925) +* [DescribeRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95909) +* [DescribeRecordFile](https://cloud.tencent.com/document/api/1344/95934) +* [DescribeRecordPlan](https://cloud.tencent.com/document/api/1344/95924) +* [DescribeRecordPlaybackUrl](https://cloud.tencent.com/document/api/1344/95933) +* [DescribeRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95939) +* [DescribeRecordTemplate](https://cloud.tencent.com/document/api/1344/95908) +* [DescribeStreamAuth](https://cloud.tencent.com/document/api/1344/95896) +* [DescribeUserDevice](https://cloud.tencent.com/document/api/1344/95872) +* [DescribeVideoDownloadUrl](https://cloud.tencent.com/document/api/1344/95932) +* [ListAITasks](https://cloud.tencent.com/document/api/1344/95947) +* [ListDevices](https://cloud.tencent.com/document/api/1344/95871) +* [ListGateways](https://cloud.tencent.com/document/api/1344/95884) +* [ListOrganizationChannelNumbers](https://cloud.tencent.com/document/api/1344/95923) +* [ListOrganizationChannels](https://cloud.tencent.com/document/api/1344/95922) +* [ListRecordBackupPlanDevices](https://cloud.tencent.com/document/api/1344/95921) +* [ListRecordBackupPlans](https://cloud.tencent.com/document/api/1344/95920) +* [ListRecordBackupTemplates](https://cloud.tencent.com/document/api/1344/95907) +* [ListRecordPlanChannels](https://cloud.tencent.com/document/api/1344/95919) +* [ListRecordPlanDevices](https://cloud.tencent.com/document/api/1344/95918) +* [ListRecordPlans](https://cloud.tencent.com/document/api/1344/95917) +* [ListRecordRetrieveTasks](https://cloud.tencent.com/document/api/1344/95938) +* [ListRecordTemplates](https://cloud.tencent.com/document/api/1344/95906) +* [PlayRecord](https://cloud.tencent.com/document/api/1344/95931) +* [RefreshDeviceChannel](https://cloud.tencent.com/document/api/1344/95870) +* [UpdateAITask](https://cloud.tencent.com/document/api/1344/95946) +* [UpdateAITaskStatus](https://cloud.tencent.com/document/api/1344/95945) +* [UpdateDeviceOrganization](https://cloud.tencent.com/document/api/1344/95869) +* [UpdateDeviceStatus](https://cloud.tencent.com/document/api/1344/95868) +* [UpdateGateway](https://cloud.tencent.com/document/api/1344/95883) +* [UpdateOrganization](https://cloud.tencent.com/document/api/1344/95891) +* [UpdateRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95916) +* [UpdateRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95905) +* [UpdateRecordPlan](https://cloud.tencent.com/document/api/1344/95915) +* [UpdateRecordTemplate](https://cloud.tencent.com/document/api/1344/95904) +* [UpdateUserDevice](https://cloud.tencent.com/document/api/1344/95867) +* [UpgradeGateway](https://cloud.tencent.com/document/api/1344/95882) + +新增数据结构: + +* [AIConfig](https://cloud.tencent.com/document/api/1344/95952#AIConfig) +* [AITaskInfo](https://cloud.tencent.com/document/api/1344/95952#AITaskInfo) +* [AITaskResultInfo](https://cloud.tencent.com/document/api/1344/95952#AITaskResultInfo) +* [AITaskResultResponse](https://cloud.tencent.com/document/api/1344/95952#AITaskResultResponse) +* [AITemplates](https://cloud.tencent.com/document/api/1344/95952#AITemplates) +* [AddDeviceResponse](https://cloud.tencent.com/document/api/1344/95952#AddDeviceResponse) +* [AddOrgResponse](https://cloud.tencent.com/document/api/1344/95952#AddOrgResponse) +* [BaseAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#BaseAIResultInfo) +* [BodyAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#BodyAIResultInfo) +* [CarAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#CarAIResultInfo) +* [ChannelInfo](https://cloud.tencent.com/document/api/1344/95952#ChannelInfo) +* [ChefClothAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#ChefClothAIResultInfo) +* [ChefHatAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#ChefHatAIResultInfo) +* [DescribeDeviceRegion](https://cloud.tencent.com/document/api/1344/95952#DescribeDeviceRegion) +* [DescribeDeviceResponse](https://cloud.tencent.com/document/api/1344/95952#DescribeDeviceResponse) +* [DescribeGatewayMonitor](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayMonitor) +* [DescribeGatewayVersion](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayVersion) +* [FaceMaskAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#FaceMaskAIResultInfo) +* [GatewayVersion](https://cloud.tencent.com/document/api/1344/95952#GatewayVersion) +* [GatewaysData](https://cloud.tencent.com/document/api/1344/95952#GatewaysData) +* [LifeCycleData](https://cloud.tencent.com/document/api/1344/95952#LifeCycleData) +* [ListAITaskData](https://cloud.tencent.com/document/api/1344/95952#ListAITaskData) +* [ListDeviceInfo](https://cloud.tencent.com/document/api/1344/95952#ListDeviceInfo) +* [ListRecordBackupPlanResponse](https://cloud.tencent.com/document/api/1344/95952#ListRecordBackupPlanResponse) +* [Location](https://cloud.tencent.com/document/api/1344/95952#Location) +* [OperTimeSlot](https://cloud.tencent.com/document/api/1344/95952#OperTimeSlot) +* [OrganizationChannelInfo](https://cloud.tencent.com/document/api/1344/95952#OrganizationChannelInfo) +* [PetAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#PetAIResultInfo) +* [PhoneCallAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#PhoneCallAIResultInfo) +* [PlateContent](https://cloud.tencent.com/document/api/1344/95952#PlateContent) +* [RecordPlanBaseInfo](https://cloud.tencent.com/document/api/1344/95952#RecordPlanBaseInfo) +* [RecordPlanChannelInfo](https://cloud.tencent.com/document/api/1344/95952#RecordPlanChannelInfo) +* [RecordPlanOptResponse](https://cloud.tencent.com/document/api/1344/95952#RecordPlanOptResponse) +* [RecordPlaybackUrl](https://cloud.tencent.com/document/api/1344/95952#RecordPlaybackUrl) +* [RecordRetrieveTaskChannelInfo](https://cloud.tencent.com/document/api/1344/95952#RecordRetrieveTaskChannelInfo) +* [RecordRetrieveTaskDetailsInfo](https://cloud.tencent.com/document/api/1344/95952#RecordRetrieveTaskDetailsInfo) +* [RecordTemplateInfo](https://cloud.tencent.com/document/api/1344/95952#RecordTemplateInfo) +* [RecordTemplateTimeSections](https://cloud.tencent.com/document/api/1344/95952#RecordTemplateTimeSections) +* [RecordTimeLine](https://cloud.tencent.com/document/api/1344/95952#RecordTimeLine) +* [SmokingAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#SmokingAIResultInfo) +* [SnapshotConfig](https://cloud.tencent.com/document/api/1344/95952#SnapshotConfig) +* [Timeline](https://cloud.tencent.com/document/api/1344/95952#Timeline) +* [UpdateDeviceResponse](https://cloud.tencent.com/document/api/1344/95952#UpdateDeviceResponse) +* [UpdateOrgResponse](https://cloud.tencent.com/document/api/1344/95952#UpdateOrgResponse) +* [UpdateRecordBackupPlanModify](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordBackupPlanModify) +* [UpdateRecordBackupTemplateModify](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordBackupTemplateModify) +* [UpdateRecordPlanData](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordPlanData) +* [UpdateRecordTemplateData](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordTemplateData) + + + +## 云数据库 PostgreSQL(postgres) 版本:2017-03-12 + +### 第 39 次发布 + +发布时间:2023-08-04 01:15:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeDBInstanceHAConfig](https://cloud.tencent.com/document/api/409/95970) +* [ModifyDBInstanceHAConfig](https://cloud.tencent.com/document/api/409/95969) +* [SwitchDBInstancePrimary](https://cloud.tencent.com/document/api/409/95968) + + + +## 云函数(scf) 版本:2018-04-16 + +### 第 59 次发布 + +发布时间:2023-08-04 01:16:09 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [NamespaceResourceEnvTKE](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnvTKE) + + * 新增成员:PodTemplatePatch + + + + +## 云数据库 SQL Server(sqlserver) 版本:2018-03-28 + +### 第 49 次发布 + +发布时间:2023-08-04 01:16:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [DBInstance](https://cloud.tencent.com/document/api/238/19976#DBInstance) + + * **修改成员**:Architecture, Style + + + + +## 边缘安全加速平台(teo) 版本:2022-09-01 + +### 第 47 次发布 + +发布时间:2023-08-04 01:18:31 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [L4OfflineLog](https://cloud.tencent.com/document/api/1552/80721#L4OfflineLog) + + * 新增成员:LogStartTime, LogEndTime + +* [L7OfflineLog](https://cloud.tencent.com/document/api/1552/80721#L7OfflineLog) + + * 新增成员:LogStartTime, LogEndTime + +* [Resource](https://cloud.tencent.com/document/api/1552/80721#Resource) + + * **修改成员**:Group, ZoneNumber + + + + +## 边缘安全加速平台(teo) 版本:2022-01-06 + + + +## 数据开发治理平台 WeData(wedata) 版本:2021-08-20 + +### 第 38 次发布 + +发布时间:2023-08-04 01:21:15 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [BatchDeleteIntegrationTasks](https://cloud.tencent.com/document/api/1267/82540) + + * 新增入参:DeleteKFFlag + +* [CommitIntegrationTask](https://cloud.tencent.com/document/api/1267/82526) + + * 新增入参:VersionDesc, InstanceVersion + +* [DeleteIntegrationTask](https://cloud.tencent.com/document/api/1267/82516) + + * 新增出参:DeleteFlag, DeleteErrInfo + +* [DescribeIntegrationTask](https://cloud.tencent.com/document/api/1267/82495) + + * 新增入参:InstanceVersion + + * 新增出参:AgentStatus, TaskVersion + + +新增数据结构: + +* [AgentStatus](https://cloud.tencent.com/document/api/1267/76336#AgentStatus) +* [TaskVersionInstance](https://cloud.tencent.com/document/api/1267/76336#TaskVersionInstance) + +修改数据结构: + +* [IntegrationTaskInfo](https://cloud.tencent.com/document/api/1267/76336#IntegrationTaskInfo) + + * 新增成员:SwitchResource, ReadPhase, InstanceVersion + + + + +# Release 3.0.945 + +## 日志服务(cls) 版本:2020-10-16 + +### 第 64 次发布 + +发布时间:2023-08-03 01:03:31 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeKafkaConsumer](https://cloud.tencent.com/document/api/614/95719) + + * 新增出参:ConsumerContent + +* [ModifyKafkaConsumer](https://cloud.tencent.com/document/api/614/95720) + + * 新增入参:ConsumerContent + + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 101 次发布 + +发布时间:2023-08-03 01:06:38 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeOrganizationGroupOrganizations](https://cloud.tencent.com/document/api/1323/86114) + + * 新增出参:ActivatedTotal + + + + +# Release 3.0.944 + +## 日志服务(cls) 版本:2020-10-16 + +### 第 63 次发布 + +发布时间:2023-08-02 01:08:23 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeKafkaUser](https://cloud.tencent.com/document/api/614/95781) + + + +## TDSQL-C MySQL 版(cynosdb) 版本:2019-01-07 + +### 第 64 次发布 + +发布时间:2023-08-02 01:13:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [OpenClusterReadOnlyInstanceGroupAccess](https://cloud.tencent.com/document/api/1003/95782) + + + +## T-Sec-堡垒机(BH)(dasb) 版本:2019-10-18 + +### 第 13 次发布 + +发布时间:2023-08-02 01:13:55 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [Device](https://cloud.tencent.com/document/api/1025/74416#Device) + + * 新增成员:IpPortSet + +* [ExternalDevice](https://cloud.tencent.com/document/api/1025/74416#ExternalDevice) + + * 新增成员:IpPortSet + +* [Resource](https://cloud.tencent.com/document/api/1025/74416#Resource) + + * **修改成员**:LogDeliveryArgs + + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 100 次发布 + +发布时间:2023-08-02 01:15:29 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreatePersonAuthCertificateImage](https://cloud.tencent.com/document/api/1323/95783) + + + +## 数据加速器 GooseFS(goosefs) 版本:2022-05-19 + +### 第 6 次发布 + +发布时间:2023-08-02 01:16:12 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [AddCrossVpcSubnetSupportForClientNode](https://cloud.tencent.com/document/api/1424/95800) +* [AttachFileSystemBucket](https://cloud.tencent.com/document/api/1424/95793) +* [BatchAddClientNodes](https://cloud.tencent.com/document/api/1424/95799) +* [BatchDeleteClientNodes](https://cloud.tencent.com/document/api/1424/95798) +* [CreateFileSystem](https://cloud.tencent.com/document/api/1424/95792) +* [DeleteCrossVpcSubnetSupportForClientNode](https://cloud.tencent.com/document/api/1424/95797) +* [DeleteFileSystem](https://cloud.tencent.com/document/api/1424/95791) +* [DescribeClientNodes](https://cloud.tencent.com/document/api/1424/95796) +* [DescribeFileSystemBuckets](https://cloud.tencent.com/document/api/1424/95790) +* [DescribeFileSystems](https://cloud.tencent.com/document/api/1424/95789) +* [DetachFileSystemBucket](https://cloud.tencent.com/document/api/1424/95788) +* [ExpandCapacity](https://cloud.tencent.com/document/api/1424/95787) +* [ModifyDataRepositoryBandwidth](https://cloud.tencent.com/document/api/1424/95786) +* [QueryCrossVpcSubnetSupportForClientNode](https://cloud.tencent.com/document/api/1424/95795) +* [QueryDataRepositoryBandwidth](https://cloud.tencent.com/document/api/1424/95785) + +新增数据结构: + +* [ClientClusterManagerNodeInfo](https://cloud.tencent.com/document/api/1424/95076#ClientClusterManagerNodeInfo) +* [ClientNodeAttribute](https://cloud.tencent.com/document/api/1424/95076#ClientNodeAttribute) +* [FSAttribute](https://cloud.tencent.com/document/api/1424/95076#FSAttribute) +* [GooseFSxAttribute](https://cloud.tencent.com/document/api/1424/95076#GooseFSxAttribute) +* [GooseFSxBuildElement](https://cloud.tencent.com/document/api/1424/95076#GooseFSxBuildElement) +* [LinuxNodeAttribute](https://cloud.tencent.com/document/api/1424/95076#LinuxNodeAttribute) +* [MappedBucket](https://cloud.tencent.com/document/api/1424/95076#MappedBucket) +* [SubnetInfo](https://cloud.tencent.com/document/api/1424/95076#SubnetInfo) +* [Tag](https://cloud.tencent.com/document/api/1424/95076#Tag) + + + +## 移动应用安全(ms) 版本:2018-04-08 + +### 第 16 次发布 + +发布时间:2023-08-02 01:19:05 + +本次发布包含了以下内容: + +改善已有的文档。 + +**预下线接口**: + +* CancelEncryptTask +* CreateEncryptInstance +* CreateOrderInstance +* DescribeEncryptInstances +* DescribeOrderInstances + +修改数据结构: + +* [AndroidResult](https://cloud.tencent.com/document/api/283/17759#AndroidResult) + + * **修改成员**:ResultId, OrderId, ResourceId, OpUin, AppType, AppPkgName, BindAppPkgName, EncryptState, EncryptStateDesc, EncryptErrCode, EncryptErrDesc, EncryptErrRef, CreatTime, StartTime, EndTime, CostTime, AppUrl, AppMd5, AppName, AppVersion, AppSize, OnlineToolVersion, EncryptAppMd5, EncryptAppSize, EncryptPkgUrl, OutputToolVersion, OutputToolSize, ToolOutputTime, ToolExpireTime, OutputToolUrl, AndroidPlan + +* [EncryptResults](https://cloud.tencent.com/document/api/283/17759#EncryptResults) + + * **修改成员**:PlatformType, PlatformDesc, OrderType, OrderTypeDesc, EncryptOpType, EncryptOpTypeDesc, ResourceId, OrderId, AndroidResult, IOSResult, SDKResult, AppletResult + +* [Orders](https://cloud.tencent.com/document/api/283/17759#Orders) + + * **修改成员**:OrderId, PlatformType, PlatformTypeDesc, OrderType, OrderTypeDesc, AppPkgName, ResourceId, ResourceStatus, ResourceStatusDesc, TestTimes, ValidTime, ExpireTime, CreateTime, Approver, ApprovalStatus, ApprovalStatusDesc, ApprovalTime, TimesTaskTotalCount, TimesTaskSuccessCount, TimesTaskFailCount + + + + +## NLP 服务(nlp) 版本:2019-04-08 + +### 第 20 次发布 + +发布时间:2023-08-02 01:19:12 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* AutoSummarization +* ChatBot +* CreateDict +* CreateWordItems +* DeleteDict +* DeleteWordItems +* DependencyParsing +* DescribeDict +* DescribeDicts +* DescribeWordItems +* GenerateCouplet +* GeneratePoetry +* KeywordsExtraction +* LexicalAnalysis +* SearchWordItems +* SentenceEmbedding +* SentimentAnalysis +* SimilarWords +* TextClassification +* TextCorrection +* TextCorrectionPro +* TextSimilarity +* TextSimilarityPro +* UpdateDict +* WordEmbedding +* WordSimilarity + +**删除数据结构**: + +* CCIToken +* ClassificationResult +* DictInfo +* DpToken +* Keyword +* NerToken +* PosToken +* SearchResult +* Similarity +* WordItem + + + +## 云函数(scf) 版本:2018-04-16 + +### 第 58 次发布 + +发布时间:2023-08-02 01:20:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [K8SToleration](https://cloud.tencent.com/document/api/583/17244#K8SToleration) + + * **修改成员**:Key + + + + +## 云数据库 SQL Server(sqlserver) 版本:2018-03-28 + +### 第 48 次发布 + +发布时间:2023-08-02 01:20:58 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeInstanceByOrders](https://cloud.tencent.com/document/api/238/95801) + +新增数据结构: + +* [DealInstance](https://cloud.tencent.com/document/api/238/19976#DealInstance) + + + +## 消息队列 TDMQ(tdmq) 版本:2020-02-17 + +### 第 71 次发布 + +发布时间:2023-08-02 01:22:40 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DeleteRocketMQVipInstance](https://cloud.tencent.com/document/api/1179/95802) + +修改接口: + +* [DescribeCmqSubscriptionDetail](https://cloud.tencent.com/document/api/1179/55908) + + * 新增入参:QueueName, QueryType + + * **修改入参**:TopicName + + +修改数据结构: + +* [CmqSubscription](https://cloud.tencent.com/document/api/1179/46089#CmqSubscription) + + * 新增成员:TopicName + +* [CmqTopic](https://cloud.tencent.com/document/api/1179/46089#CmqTopic) + + * 新增成员:SubscriptionCount + + * **修改成员**:TopicId, TopicName, MsgRetentionSeconds, MaxMsgSize, Qps, FilterType, CreateTime, LastModifyTime, MsgCount, CreateUin, Tags, Trace, TenantId, NamespaceName, Status, BrokerType + + + + +## 微服务平台 TSF(tsf) 版本:2018-03-26 + +### 第 97 次发布 + +发布时间:2023-08-02 01:26:52 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DeployGroup](https://cloud.tencent.com/document/api/649/36070) + + * 新增入参:EnableBatchHealthCheck + + +修改数据结构: + +* [VmGroup](https://cloud.tencent.com/document/api/649/36099#VmGroup) + + * 新增成员:EnableBatchHealthCheck + + * **修改成员**:GroupId, GroupName, GroupStatus, PackageId, PackageName, PackageVersion, ClusterId, ClusterName, NamespaceId, NamespaceName, ApplicationId, ApplicationName, InstanceCount, RunInstanceCount, StartupParameters, CreateTime, UpdateTime, OffInstanceCount, GroupDesc, MicroserviceType, ApplicationType, GroupResourceType, UpdatedTime, DeployDesc, UpdateType, DeployBetaEnable, DeployBatch, DeployExeMode, DeployWaitTime, EnableHealthCheck, HealthCheckSettings, PackageType, StartScript, StopScript, Alias, AgentProfileList, WarmupSetting, GatewayConfig + + + + +# Release 3.0.943 + +## 日志服务(cls) 版本:2020-10-16 + +### 第 62 次发布 + +发布时间:2023-08-01 01:11:03 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeKafkaConsumer](https://cloud.tencent.com/document/api/614/95719) +* [ModifyKafkaConsumer](https://cloud.tencent.com/document/api/614/95720) + +### 第 61 次发布 + +发布时间:2023-07-31 16:20:55 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateConfigExtra](https://cloud.tencent.com/document/api/614/71166) + + * 新增入参:AdvancedConfig + +* [ModifyConfig](https://cloud.tencent.com/document/api/614/58614) + + * 新增入参:AdvancedConfig + +* [ModifyConfigExtra](https://cloud.tencent.com/document/api/614/71163) + + * 新增入参:AdvancedConfig + + +修改数据结构: + +* [ConfigExtraInfo](https://cloud.tencent.com/document/api/614/56471#ConfigExtraInfo) + + * 新增成员:AdvancedConfig + +* [ConfigInfo](https://cloud.tencent.com/document/api/614/56471#ConfigInfo) + + * 新增成员:AdvancedConfig + + + + +## TDSQL-C MySQL 版(cynosdb) 版本:2019-01-07 + +### 第 63 次发布 + +发布时间:2023-08-01 01:15:19 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeAccounts](https://cloud.tencent.com/document/api/1003/48075) + + * 新增入参:AccountRegular + + +修改数据结构: + +* [ClusterInstanceDetail](https://cloud.tencent.com/document/api/1003/48097#ClusterInstanceDetail) + + * 新增成员:MaintainStartTime, MaintainDuration, MaintainWeekDays + + + + +## 数据湖计算 DLC(dlc) 版本:2021-01-25 + +### 第 57 次发布 + +发布时间:2023-08-01 01:17:48 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [CommonMetrics](https://cloud.tencent.com/document/api/1342/53778#CommonMetrics) + + * **修改成员**:CreateTaskTime, ProcessTime, QueueTime, ExecutionTime, IsResultCacheHit, MatchedMVBytes, MatchedMVs, AffectedBytes, AffectedRows, ProcessedBytes, ProcessedRows + + + + +## 弹性 MapReduce(emr) 版本:2019-01-03 + +### 第 49 次发布 + +发布时间:2023-08-01 01:21:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [NodeHardwareInfo](https://cloud.tencent.com/document/api/589/33981#NodeHardwareInfo) + + * 新增成员:ServicesStatus + + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 99 次发布 + +发布时间:2023-08-01 01:22:32 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateEmbedWebUrl](https://cloud.tencent.com/document/api/1323/95590) + + * 新增入参:Option + +* [CreatePrepareFlow](https://cloud.tencent.com/document/api/1323/83412) + + * 新增入参:ResourceType, Components, FlowOption, NeedSignReview, NeedCreateReview, UserData, FlowId, FlowType + + +新增数据结构: + +* [CreateFlowOption](https://cloud.tencent.com/document/api/1323/70369#CreateFlowOption) +* [EmbedUrlOption](https://cloud.tencent.com/document/api/1323/70369#EmbedUrlOption) + +修改数据结构: + +* [Component](https://cloud.tencent.com/document/api/1323/70369#Component) + + * 新增成员:LockComponentValue, ForbidMoveAndDelete + +* [Department](https://cloud.tencent.com/document/api/1323/70369#Department) + + * **修改成员**:DepartmentId, DepartmentName + +* [SealInfo](https://cloud.tencent.com/document/api/1323/70369#SealInfo) + + * 新增成员:SealId, SealType, SealName + +* [StaffRole](https://cloud.tencent.com/document/api/1323/70369#StaffRole) + + * **修改成员**:RoleId, RoleName + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2021-05-26 + +### 第 99 次发布 + +发布时间:2023-08-01 01:24:13 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [TemplateInfo](https://cloud.tencent.com/document/api/1420/61525#TemplateInfo) + + * **修改成员**:IsPromoter, Available + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2020-12-22 + + + +## 云直播CSS(live) 版本:2018-08-01 + +### 第 109 次发布 + +发布时间:2023-08-01 01:30:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增数据结构: + +* [MixPortraitSegmentParams](https://cloud.tencent.com/document/api/267/20474#MixPortraitSegmentParams) + +修改数据结构: + +* [CommonMixInputParam](https://cloud.tencent.com/document/api/267/20474#CommonMixInputParam) + + * 新增成员:PortraitSegmentParams + + + + +## 多网聚合加速(mna) 版本:2021-01-19 + +### 第 12 次发布 + +发布时间:2023-08-01 01:32:11 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [GetDevices](https://cloud.tencent.com/document/api/1385/80480) + + * 新增入参:DeviceType + + + + +## 媒体处理(mps) 版本:2019-06-12 + +### 第 65 次发布 + +发布时间:2023-08-01 01:33:24 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [OverrideTranscodeParameter](https://cloud.tencent.com/document/api/862/37615#OverrideTranscodeParameter) + + * 新增成员:StdExtInfo + + + + +## 流计算 Oceanus(oceanus) 版本:2019-04-22 + +### 第 36 次发布 + +发布时间:2023-08-01 01:34:42 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateJobConfig](https://cloud.tencent.com/document/api/849/52004) + + * 新增入参:ClazzLevels, ExpertModeOn, ExpertModeConfiguration + + +新增数据结构: + +* [ClazzLevel](https://cloud.tencent.com/document/api/849/52010#ClazzLevel) +* [ExpertModeConfiguration](https://cloud.tencent.com/document/api/849/52010#ExpertModeConfiguration) +* [JobGraph](https://cloud.tencent.com/document/api/849/52010#JobGraph) +* [JobGraphEdge](https://cloud.tencent.com/document/api/849/52010#JobGraphEdge) +* [JobGraphNode](https://cloud.tencent.com/document/api/849/52010#JobGraphNode) +* [NodeConfig](https://cloud.tencent.com/document/api/849/52010#NodeConfig) +* [SlotSharingGroup](https://cloud.tencent.com/document/api/849/52010#SlotSharingGroup) +* [SlotSharingGroupSpec](https://cloud.tencent.com/document/api/849/52010#SlotSharingGroupSpec) + +修改数据结构: + +* [JobConfig](https://cloud.tencent.com/document/api/849/52010#JobConfig) + + * 新增成员:ClazzLevels, ExpertModeOn, ExpertModeConfiguration + + + + +## 消息队列 TDMQ(tdmq) 版本:2020-02-17 + +### 第 70 次发布 + +发布时间:2023-08-01 01:43:47 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateRocketMQVipInstance](https://cloud.tencent.com/document/api/1179/95721) + +新增数据结构: + +* [VpcInfo](https://cloud.tencent.com/document/api/1179/46089#VpcInfo) + + + +# Release 3.0.942 + +## 云数据库 MySQL(cdb) 版本:2017-03-20 + +### 第 140 次发布 + +发布时间:2023-07-31 01:10:35 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [RoInstanceInfo](https://cloud.tencent.com/document/api/236/15878#RoInstanceInfo) + + * **修改成员**:MasterInstanceId, RoStatus, OfflineTime, Weight, Region, Zone, InstanceId, Status, InstanceType, InstanceName, HourFeeStatus, TaskStatus, Memory, Volume, Qps, Vip, Vport, VpcId, SubnetId, DeviceType, EngineVersion, DeadlineTime, PayType + + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 98 次发布 + +发布时间:2023-07-31 01:23:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [FlowBrief](https://cloud.tencent.com/document/api/1323/70369#FlowBrief) + + * **修改成员**:Creator, Deadline + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2021-05-26 + +### 第 98 次发布 + +发布时间:2023-07-28 17:50:48 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ChannelCreatePrepareFlow](https://cloud.tencent.com/document/api/1420/87897) + + * **修改入参**:FlowApproverList + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2020-12-22 + + + +## 低代码互动课堂(lcic) 版本:2022-08-17 + +### 第 35 次发布 + +发布时间:2023-07-31 01:30:04 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeRoom](https://cloud.tencent.com/document/api/1639/80941) + + * 新增出参:AudienceType + + + + +## 文字识别(ocr) 版本:2018-11-19 + +### 第 109 次发布 + +发布时间:2023-07-31 01:34:27 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* QueryBarCode +* VerifyEnterpriseFourFactors + +**删除数据结构**: + +* Detail +* ProductDataRecord + + + +## 边缘安全加速平台(teo) 版本:2022-09-01 + +### 第 46 次发布 + +发布时间:2023-07-31 01:43:23 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [ApplicationProxy](https://cloud.tencent.com/document/api/1552/80721#ApplicationProxy) + + * **修改成员**:ProxyId, AccelerateMainland + + + + +## 边缘安全加速平台(teo) 版本:2022-01-06 + + + +## TI-ONE 训练平台(tione) 版本:2021-11-11 + +### 第 30 次发布 + +发布时间:2023-07-28 15:36:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DeleteNotebook](https://cloud.tencent.com/document/api/851/95663) +* [DescribeNotebook](https://cloud.tencent.com/document/api/851/95662) +* [StopCreatingImage](https://cloud.tencent.com/document/api/851/95661) +* [StopNotebook](https://cloud.tencent.com/document/api/851/95660) + +新增数据结构: + +* [NotebookDetail](https://cloud.tencent.com/document/api/851/75051#NotebookDetail) + +### 第 29 次发布 + +发布时间:2023-07-28 15:25:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateNotebook](https://cloud.tencent.com/document/api/851/95658) +* [CreateNotebookImage](https://cloud.tencent.com/document/api/851/95657) +* [DeleteNotebookImageRecord](https://cloud.tencent.com/document/api/851/95656) +* [DescribeNotebookImageKernels](https://cloud.tencent.com/document/api/851/95655) +* [DescribeNotebookImageRecords](https://cloud.tencent.com/document/api/851/95654) +* [DescribeNotebooks](https://cloud.tencent.com/document/api/851/95653) +* [ModifyNotebook](https://cloud.tencent.com/document/api/851/95652) +* [ModifyNotebookTags](https://cloud.tencent.com/document/api/851/95651) +* [StartNotebook](https://cloud.tencent.com/document/api/851/95650) + +新增数据结构: + +* [NotebookImageRecord](https://cloud.tencent.com/document/api/851/75051#NotebookImageRecord) +* [NotebookSetItem](https://cloud.tencent.com/document/api/851/75051#NotebookSetItem) +* [ResourceConf](https://cloud.tencent.com/document/api/851/75051#ResourceConf) + + + +## TI-ONE 训练平台(tione) 版本:2019-10-22 + + + +## Web 应用防火墙(waf) 版本:2018-01-25 + +### 第 41 次发布 + +发布时间:2023-07-31 01:50:43 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [GetAttackHistogram](https://cloud.tencent.com/document/api/627/95692) + +新增数据结构: + +* [LogHistogramInfo](https://cloud.tencent.com/document/api/627/53609#LogHistogramInfo) + + + +# Release 3.0.941 + +## 品牌经营管家(bma) 版本:2022-11-15 + +### 第 9 次发布 + +发布时间:2023-07-28 01:09:00 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [FakeURLData](https://cloud.tencent.com/document/api/1296/86604#FakeURLData) + + * 新增成员:AuditStatus + + * **修改成员**:FakeURLId, BrandName, Origin, FakeURL, FakeDomain, Heat, BlockStatus, BlockNote, OfflineStatus, OfflineNote, IP, IPLocation, WebCompany, WebAttribute, WebName, WebICP, WebCreateTime, WebExpireTime, InsertTime, CertificationStatus, Snapshot, AccountStatus + + + + +## 品牌经营管家(bma) 版本:2021-06-24 + + + +## 云呼叫中心(ccc) 版本:2020-02-10 + +### 第 52 次发布 + +发布时间:2023-07-28 01:10:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [SdkAppIdBuyInfo](https://cloud.tencent.com/document/api/679/47715#SdkAppIdBuyInfo) + + * 新增成员:SipBuyNum + +* [StaffBuyInfo](https://cloud.tencent.com/document/api/679/47715#StaffBuyInfo) + + * 新增成员:SipNum + + + + +## 日志服务(cls) 版本:2020-10-16 + +### 第 60 次发布 + +发布时间:2023-07-28 01:15:40 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeDashboards](https://cloud.tencent.com/document/api/614/95636) + +新增数据结构: + +* [DashboardInfo](https://cloud.tencent.com/document/api/614/56471#DashboardInfo) +* [DashboardTopicInfo](https://cloud.tencent.com/document/api/614/56471#DashboardTopicInfo) +* [TopicIdAndRegion](https://cloud.tencent.com/document/api/614/56471#TopicIdAndRegion) + +修改数据结构: + +* [ScheduledSqlResouceInfo](https://cloud.tencent.com/document/api/614/56471#ScheduledSqlResouceInfo) + + * 新增成员:BizType, MetricName + + + + +## 主机安全(cwp) 版本:2018-02-28 + +### 第 92 次发布 + +发布时间:2023-07-28 01:18:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [EffectiveMachineInfo](https://cloud.tencent.com/document/api/296/19867#EffectiveMachineInfo) + + * **修改成员**:MachineName, MachinePublicIp, MachinePrivateIp, MachineTag, Quuid, Uuid, KernelVersion, MachineStatus, LicenseOrder, VulNum, CloudTags, InstanceID + +* [LicenseDetail](https://cloud.tencent.com/document/api/296/19867#LicenseDetail) + + * 新增成员:FreezeNum + +* [Machine](https://cloud.tencent.com/document/api/296/19867#Machine) + + * **修改成员**:MachineName, MachineOs, MachineStatus, Uuid, Quuid, VulNum, MachineIp, IsProVersion, MachineWanIp, PayMode, MalwareNum, Tag, BaselineNum, CyberAttackNum, SecurityStatus, InvasionNum, RegionInfo, InstanceState, LicenseStatus, ProjectId, HasAssetScan, MachineType, KernelVersion, ProtectType, CloudTags, IsAddedOnTheFifteen, IpList, VpcId, MachineExtraInfo, InstanceId + + + + +## DNSPod(dnspod) 版本:2021-03-23 + +### 第 23 次发布 + +发布时间:2023-07-28 01:23:03 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateRecord](https://cloud.tencent.com/document/api/1427/56180) + + * 新增入参:Remark + + + + +## 低代码互动课堂(lcic) 版本:2022-08-17 + +### 第 34 次发布 + +发布时间:2023-07-28 01:32:25 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [RoomItem](https://cloud.tencent.com/document/api/1639/81423#RoomItem) + + * 新增成员:IsGradingRequiredPostClass, RoomType + + + + +## 容器安全服务(tcss) 版本:2020-11-01 + +### 第 48 次发布 + +发布时间:2023-07-28 01:47:50 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AddAssetImageRegistryRegistryDetail](https://cloud.tencent.com/document/api/1285/65560) + + * 新增入参:ConnDetectConfig + +* [CreateAssetImageRegistryScanTask](https://cloud.tencent.com/document/api/1285/65517) + + * 新增出参:TaskID + +* [CreateAssetImageRegistryScanTaskOneKey](https://cloud.tencent.com/document/api/1285/65516) + + * 新增出参:TaskID + +* [DescribeAssetImageRegistryRegistryDetail](https://cloud.tencent.com/document/api/1285/65539) + + * 新增出参:ConnDetectDetail, InstanceID + +* [DescribeAssetImageRegistryScanStatusOneKey](https://cloud.tencent.com/document/api/1285/65495) + + * 新增入参:TaskID + +* [ModifyAssetImageRegistryScanStop](https://cloud.tencent.com/document/api/1285/65462) + + * 新增入参:TaskID + +* [ModifyAssetImageRegistryScanStopOneKey](https://cloud.tencent.com/document/api/1285/65461) + + * 新增入参:TaskID + +* [UpdateAssetImageRegistryRegistryDetail](https://cloud.tencent.com/document/api/1285/65519) + + * 新增入参:ConnDetectConfig + + +新增数据结构: + +* [ConnDetectConfig](https://cloud.tencent.com/document/api/1285/65614#ConnDetectConfig) +* [RegistryConnDetectResult](https://cloud.tencent.com/document/api/1285/65614#RegistryConnDetectResult) + + + +## 实时音视频(trtc) 版本:2019-07-22 + +### 第 56 次发布 + +发布时间:2023-07-28 01:54:49 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [McuLayout](https://cloud.tencent.com/document/api/647/44055#McuLayout) + + * 新增成员:BackgroundRenderMode + +* [McuVideoParams](https://cloud.tencent.com/document/api/647/44055#McuVideoParams) + + * 新增成员:BackgroundRenderMode + + + + +## 私有网络(vpc) 版本:2017-03-12 + +### 第 162 次发布 + +发布时间:2023-07-28 01:57:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeSpecificTrafficPackageUsedDetails](https://cloud.tencent.com/document/api/215/95637) + +修改接口: + +* [DescribeVpcEndPointService](https://cloud.tencent.com/document/api/215/54678) + + * 新增入参:IsListAuthorizedEndPointService + + +新增数据结构: + +* [TrafficFlow](https://cloud.tencent.com/document/api/215/15824#TrafficFlow) +* [UsedDetail](https://cloud.tencent.com/document/api/215/15824#UsedDetail) + + + +## Web 应用防火墙(waf) 版本:2018-01-25 + +### 第 40 次发布 + +发布时间:2023-07-28 01:59:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeAccessHistogram](https://cloud.tencent.com/document/api/627/95638) + +新增数据结构: + +* [AccessHistogramItem](https://cloud.tencent.com/document/api/627/53609#AccessHistogramItem) + + + +# Release 3.0.940 + +## API 网关(apigateway) 版本:2018-08-08 + +### 第 42 次发布 + +发布时间:2023-07-27 01:06:01 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* GenerateApiDocument + +**删除数据结构**: + +* DocumentSDK + + + +## 文件存储(cfs) 版本:2019-07-19 + +### 第 25 次发布 + +发布时间:2023-07-27 01:09:08 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeCfsFileSystems](https://cloud.tencent.com/document/api/582/38170) + + * 新增入参:Offset, Limit + + + + +## 日志服务(cls) 版本:2020-10-16 + +### 第 59 次发布 + +发布时间:2023-07-27 01:09:55 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [MachineGroupTypeInfo](https://cloud.tencent.com/document/api/614/56471#MachineGroupTypeInfo) + + * **修改成员**:Values + + + + +## TDSQL-C MySQL 版(cynosdb) 版本:2019-01-07 + +### 第 62 次发布 + +发布时间:2023-07-27 01:11:21 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ExportInstanceSlowQueries](https://cloud.tencent.com/document/api/1003/76368) + + * 新增入参:OrderBy, OrderByType + + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 97 次发布 + +发布时间:2023-07-26 17:55:39 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateOrganizationBatchSignUrl](https://cloud.tencent.com/document/api/1323/95598) + +### 第 96 次发布 + +发布时间:2023-07-26 16:20:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateWebThemeConfig](https://cloud.tencent.com/document/api/1323/95592) + +新增数据结构: + +* [WebThemeConfig](https://cloud.tencent.com/document/api/1323/70369#WebThemeConfig) + +### 第 95 次发布 + +发布时间:2023-07-26 16:06:53 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateEmbedWebUrl](https://cloud.tencent.com/document/api/1323/95590) + +新增数据结构: + +* [ReviewerInfo](https://cloud.tencent.com/document/api/1323/70369#ReviewerInfo) + +### 第 94 次发布 + +发布时间:2023-07-26 11:26:03 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreatePrepareFlow](https://cloud.tencent.com/document/api/1323/83412) + + * 新增入参:Agent + + +修改数据结构: + +* [FlowCreateApprover](https://cloud.tencent.com/document/api/1323/70369#FlowCreateApprover) + + * 新增成员:ApproverVerifyTypes, ApproverSignTypes + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2021-05-26 + +### 第 97 次发布 + +发布时间:2023-07-26 16:20:45 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [ChannelCreateWebThemeConfig](https://cloud.tencent.com/document/api/1420/95591) + +新增数据结构: + +* [WebThemeConfig](https://cloud.tencent.com/document/api/1420/61525#WebThemeConfig) + + + +## 腾讯电子签(基础版)(essbasic) 版本:2020-12-22 + + + +## 人脸融合(facefusion) 版本:2022-09-27 + +### 第 5 次发布 + +发布时间:2023-07-27 01:13:31 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [FuseFace](https://cloud.tencent.com/document/api/670/85618) + + * 新增入参:FuseParam + + +新增数据结构: + +* [FuseParam](https://cloud.tencent.com/document/api/670/85619#FuseParam) +* [ImageCodecParam](https://cloud.tencent.com/document/api/670/85619#ImageCodecParam) +* [MetaData](https://cloud.tencent.com/document/api/670/85619#MetaData) + + + +## 人脸融合(facefusion) 版本:2018-12-01 + +### 第 7 次发布 + +发布时间:2023-07-27 01:13:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [FaceFusion](https://cloud.tencent.com/document/api/670/31061) + + * 新增入参:FuseParam + +* [FuseFace](https://cloud.tencent.com/document/api/670/37736) + + * 新增入参:FuseParam + + +新增数据结构: + +* [FuseParam](https://cloud.tencent.com/document/api/670/31062#FuseParam) +* [ImageCodecParam](https://cloud.tencent.com/document/api/670/31062#ImageCodecParam) +* [MetaData](https://cloud.tencent.com/document/api/670/31062#MetaData) + + + +## 物联网智能视频服务(iotvideo) 版本:2021-11-25 + +### 第 16 次发布 + +发布时间:2023-07-27 01:14:43 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [PackageInfo](https://cloud.tencent.com/document/api/1131/76635#PackageInfo) + + * 新增成员:CreatedAt, UpdatedAt + + + + +## 物联网智能视频服务(iotvideo) 版本:2020-12-15 + + + +## 物联网智能视频服务(iotvideo) 版本:2019-11-26 + + + +## 低代码互动课堂(lcic) 版本:2022-08-17 + +### 第 33 次发布 + +发布时间:2023-07-27 01:15:22 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [EventInfo](https://cloud.tencent.com/document/api/1639/81423#EventInfo) + + * **修改成员**:Timestamp, EventType, EventData + + + + +## 文字识别(ocr) 版本:2018-11-19 + +### 第 108 次发布 + +发布时间:2023-07-27 01:16:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [IDCardOCR](https://cloud.tencent.com/document/api/866/33524) + + * 新增入参:EnableRecognitionRectify + + + + +# Release 3.0.939 + +## T-Sec-DDoS防护(Anti-DDoS)(antiddos) 版本:2020-03-09 + +### 第 58 次发布 + +发布时间:2023-07-26 01:01:23 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeBizMonitorTrend](https://cloud.tencent.com/document/api/297/95517) + + + +## 日志服务(cls) 版本:2020-10-16 + +### 第 58 次发布 + +发布时间:2023-07-26 01:10:44 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DeleteScheduledSql](https://cloud.tencent.com/document/api/614/95520) +* [DescribeScheduledSqlInfo](https://cloud.tencent.com/document/api/614/95519) +* [ModifyScheduledSql](https://cloud.tencent.com/document/api/614/95518) + +新增数据结构: + +* [ScheduledSqlTaskInfo](https://cloud.tencent.com/document/api/614/56471#ScheduledSqlTaskInfo) + + + +## DNSPod(dnspod) 版本:2021-03-23 + +### 第 22 次发布 + +发布时间:2023-07-26 01:17:12 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeRecordFilterList](https://cloud.tencent.com/document/api/1427/95521) + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 93 次发布 + +发布时间:2023-07-26 01:19:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +**预下线接口**: + +* DescribeIntegrationMainOrganizationUser + + + +## 物联网智能视频服务(iotvideo) 版本:2021-11-25 + +### 第 15 次发布 + +发布时间:2023-07-26 01:24:02 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DeleteCloudStorageEvent](https://cloud.tencent.com/document/api/1131/95523) +* [DescribeDevicePackages](https://cloud.tencent.com/document/api/1131/95522) + +修改接口: + +* [DescribeCloudStorageThumbnail](https://cloud.tencent.com/document/api/1131/77499) + + * 新增出参:ExpireTime + + +新增数据结构: + +* [PackageInfo](https://cloud.tencent.com/document/api/1131/76635#PackageInfo) + + + +## 物联网智能视频服务(iotvideo) 版本:2020-12-15 + + + +## 物联网智能视频服务(iotvideo) 版本:2019-11-26 + + + +## 低代码互动课堂(lcic) 版本:2022-08-17 + +### 第 32 次发布 + +发布时间:2023-07-26 01:25:48 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateRoom](https://cloud.tencent.com/document/api/1639/80942) + + * 新增入参:RoomType + +* [DescribeRoom](https://cloud.tencent.com/document/api/1639/80941) + + * 新增出参:RoomType + +* [ModifyRoom](https://cloud.tencent.com/document/api/1639/86030) + + * 新增入参:RoomType + + +修改数据结构: + +* [RoomInfo](https://cloud.tencent.com/document/api/1639/81423#RoomInfo) + + * 新增成员:IsGradingRequiredPostClass, RoomType + + + + +## 移动应用安全(ms) 版本:2018-04-08 + +### 第 15 次发布 + +发布时间:2023-07-26 01:29:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CancelEncryptTask](https://cloud.tencent.com/document/api/283/95529) +* [CreateEncryptInstance](https://cloud.tencent.com/document/api/283/95528) +* [CreateOrderInstance](https://cloud.tencent.com/document/api/283/95527) +* [DescribeEncryptInstances](https://cloud.tencent.com/document/api/283/95526) +* [DescribeEncryptPlan](https://cloud.tencent.com/document/api/283/95525) +* [DescribeOrderInstances](https://cloud.tencent.com/document/api/283/95524) + +新增数据结构: + +* [AndroidAppInfo](https://cloud.tencent.com/document/api/283/17759#AndroidAppInfo) +* [AndroidPlan](https://cloud.tencent.com/document/api/283/17759#AndroidPlan) +* [AndroidResult](https://cloud.tencent.com/document/api/283/17759#AndroidResult) +* [AppletInfo](https://cloud.tencent.com/document/api/283/17759#AppletInfo) +* [AppletPlan](https://cloud.tencent.com/document/api/283/17759#AppletPlan) +* [AppletResult](https://cloud.tencent.com/document/api/283/17759#AppletResult) +* [EncryptResults](https://cloud.tencent.com/document/api/283/17759#EncryptResults) +* [IOSPlan](https://cloud.tencent.com/document/api/283/17759#IOSPlan) +* [IOSResult](https://cloud.tencent.com/document/api/283/17759#IOSResult) +* [Orders](https://cloud.tencent.com/document/api/283/17759#Orders) +* [SDKPlan](https://cloud.tencent.com/document/api/283/17759#SDKPlan) +* [SDKResult](https://cloud.tencent.com/document/api/283/17759#SDKResult) + + + +## 文字识别(ocr) 版本:2018-11-19 + +### 第 107 次发布 + +发布时间:2023-07-26 01:30:16 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [OtherInvoice](https://cloud.tencent.com/document/api/866/33527#OtherInvoice) + + * 新增成员:Date + + * **修改成员**:Title, Total, OtherInvoiceListItems, OtherInvoiceTableItems + +* [SingleInvoiceItem](https://cloud.tencent.com/document/api/866/33527#SingleInvoiceItem) + + * 新增成员:VatSalesList + + * **修改成员**:VatElectronicSpecialInvoice, VatElectronicInvoiceBlockchain, VatElectronicInvoiceToll, VatElectronicSpecialInvoiceFull, VatElectronicInvoiceFull, MachinePrintedInvoice, BusInvoice, ShippingInvoice, TollInvoice, OtherInvoice, MotorVehicleSaleInvoice, UsedCarPurchaseInvoice, VatInvoiceRoll, TaxiTicket, QuotaInvoice, AirTransport, NonTaxIncomeGeneralBill, NonTaxIncomeElectronicBill, TrainTicket, MedicalOutpatientInvoice, MedicalHospitalizedInvoice + +* [VatInvoiceInfo](https://cloud.tencent.com/document/api/866/33527#VatInvoiceInfo) + + * 新增成员:BlockChainMark, AcquisitionMark, SubTotal, SubTax + + * **修改成员**:CheckCode, FormType, TravelTax, BuyerAddrTel, BuyerBankAccount, CompanySealContent, TaxSealContent, ServiceName, City, QRCodeMark, AgentMark, TransitMark, OilMark, Title, Kind, Code, Number, NumberConfirm, Date, Total, TotalCn, PretaxAmount, Tax, MachineCode, Ciphertext, Remark, Seller, SellerTaxID, SellerAddrTel, SellerBankAccount, Buyer, BuyerTaxID, CompanySealMark, Issuer, Reviewer, Province, VatInvoiceItemInfos, CodeConfirm, Receiptor, ElectronicFullMark, ElectronicFullNumber, FormName + +* [VatInvoiceItemInfo](https://cloud.tencent.com/document/api/866/33527#VatInvoiceItemInfo) + + * 新增成员:SerialNumber + + * **修改成员**:Name, Specification, Unit, Quantity, Price, Total, TaxRate, Tax, DateStart, DateEnd, LicensePlate, VehicleType + +* [VatInvoiceRoll](https://cloud.tencent.com/document/api/866/33527#VatInvoiceRoll) + + * **修改成员**:Title, Code, Number, NumberConfirm, Date, CheckCode, Seller, SellerTaxID, Buyer, BuyerTaxID, Category, Total, TotalCn, Kind, Province, City, CompanySealMark, QRCodeMark, ServiceName, CompanySealContent, TaxSealContent, VatRollItems + + + + +## 安全运营中心(ssa) 版本:2018-06-08 + +### 第 18 次发布 + +发布时间:2023-07-26 01:34:12 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [ConcernInfo](https://cloud.tencent.com/document/api/664/51406#ConcernInfo) + + * **修改成员**:IpCountry, IpProvince, Result, Confidence, IpIsp, IpInfrastructure, ThreatType, Groups, Status, Tags, VictimAssetType, VictimAssetName, DomainRegistrant, DomainRegisteredInstitution, DomainRegistrationTime, FileName, FileMd5, VirusName, FilePath, FileSize, ProcName, Pid, ProcPath, ProcUser, DefendedCount, DetectedCount + + + + +## 消息队列 TDMQ(tdmq) 版本:2020-02-17 + +### 第 69 次发布 + +发布时间:2023-07-26 01:38:18 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [RabbitMQClusterInfo](https://cloud.tencent.com/document/api/1179/46089#RabbitMQClusterInfo) + + * 新增成员:ZoneIds + + * **修改成员**:ExceptionInformation, ClusterStatus + + + + +# Release 3.0.938 + +## AI 绘画(aiart) 版本:2022-12-29 + +### 第 2 次发布 + +发布时间:2023-07-25 10:37:02 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ImageToImage](https://cloud.tencent.com/document/api/1668/88066) + + * 新增入参:RspImgType + +* [TextToImage](https://cloud.tencent.com/document/api/1668/88064) + + * 新增入参:RspImgType + + + + +## 混沌演练平台(cfg) 版本:2021-08-20 + +### 第 9 次发布 + +发布时间:2023-07-25 10:44:01 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeTaskList](https://cloud.tencent.com/document/api/1500/71779) + + * 新增入参:Filters + +* [DescribeTemplateList](https://cloud.tencent.com/document/api/1500/71773) + + * 新增入参:Filters + + +新增数据结构: + +* [ActionFilter](https://cloud.tencent.com/document/api/1500/71784#ActionFilter) + + + +## 消息队列 CKafka(ckafka) 版本:2019-08-19 + +### 第 90 次发布 + +发布时间:2023-07-25 10:45:07 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [InstanceScalingDown](https://cloud.tencent.com/document/api/597/95460) + +新增数据结构: + +* [ScalingDownResp](https://cloud.tencent.com/document/api/597/40861#ScalingDownResp) + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 92 次发布 + +发布时间:2023-07-25 10:56:49 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ModifyApplicationCallbackInfo](https://cloud.tencent.com/document/api/1323/86752) + + * 新增入参:Agent + + + + +## 轻量应用服务器(lighthouse) 版本:2020-03-24 + +### 第 51 次发布 + +发布时间:2023-07-25 11:04:43 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeDockerActivities](https://cloud.tencent.com/document/api/1207/95476) +* [DescribeDockerContainerConfiguration](https://cloud.tencent.com/document/api/1207/95475) +* [DescribeDockerContainerDetail](https://cloud.tencent.com/document/api/1207/95474) +* [DescribeDockerContainers](https://cloud.tencent.com/document/api/1207/95473) +* [ModifyDockerContainer](https://cloud.tencent.com/document/api/1207/95472) +* [RemoveDockerContainers](https://cloud.tencent.com/document/api/1207/95471) +* [RenameDockerContainer](https://cloud.tencent.com/document/api/1207/95470) +* [RerunDockerContainer](https://cloud.tencent.com/document/api/1207/95469) +* [RestartDockerContainers](https://cloud.tencent.com/document/api/1207/95468) +* [RunDockerContainers](https://cloud.tencent.com/document/api/1207/95467) +* [StartDockerContainers](https://cloud.tencent.com/document/api/1207/95466) +* [StopDockerContainers](https://cloud.tencent.com/document/api/1207/95465) + +新增数据结构: + +* [DockerActivity](https://cloud.tencent.com/document/api/1207/47576#DockerActivity) +* [DockerContainer](https://cloud.tencent.com/document/api/1207/47576#DockerContainer) + +修改数据结构: + +* [LoginConfiguration](https://cloud.tencent.com/document/api/1207/47576#LoginConfiguration) + + * 新增成员:KeyIds + + + + +## Web 应用防火墙(waf) 版本:2018-01-25 + +### 第 39 次发布 + +发布时间:2023-07-25 11:27:24 + +本次发布包含了以下内容: + +改善已有的文档。 + +**预下线接口**: + +* DescribeAutoDenyIP + + + +# Release 3.0.937 + +## 云硬盘(cbs) 版本:2017-03-12 + +### 第 51 次发布 + +发布时间:2023-07-24 01:12:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* DescribeDiskOperationLogs +* DescribeSnapshotOperationLogs + +**删除数据结构**: + +* DiskOperationLog +* SnapshotOperationLog + + + +## 云数据库 MySQL(cdb) 版本:2017-03-20 + +### 第 139 次发布 + +发布时间:2023-07-24 01:13:25 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* DescribeCDBProxy +* DescribeProxyConnectionPoolConf +* ModifyCDBProxyConnectionPool +* ModifyCDBProxyVipVPort +* QueryCDBProxy + +**删除数据结构**: + +* Address +* BaseGroupInfo +* ConnectionPoolInfo +* PoolConf +* ProxyGroup +* ProxyGroups +* ProxyNodeInfo +* RWInfo +* RWInfos +* RWInstanceInfo + + + +## Cloud Studio(云端 IDE)(cloudstudio) 版本:2023-05-08 + +### 第 4 次发布 + +发布时间:2023-07-24 01:17:40 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateWorkspaceToken](https://cloud.tencent.com/document/api/1039/94095) + + * 新增入参:Policies + + + + +## Cloud Studio(云端 IDE)(cloudstudio) 版本:2021-05-24 + + + +## 域名注册(domain) 版本:2018-08-08 + +### 第 25 次发布 + +发布时间:2023-07-24 01:25:15 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateDomainRedemption](https://cloud.tencent.com/document/api/242/95411) + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 91 次发布 + +发布时间:2023-07-24 01:28:01 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [BindEmployeeUserIdWithClientOpenId](https://cloud.tencent.com/document/api/1323/90238) + + * 新增入参:Agent + +* [CreateFlowApprovers](https://cloud.tencent.com/document/api/1323/80033) + + * 新增入参:Agent + +* [CreateUserAutoSignEnableUrl](https://cloud.tencent.com/document/api/1323/87787) + + * 新增入参:Agent + +* [DescribeThirdPartyAuthCode](https://cloud.tencent.com/document/api/1323/70368) + + * 新增入参:Operator, Agent + +* [DescribeUserAutoSignStatus](https://cloud.tencent.com/document/api/1323/87786) + + * 新增入参:Agent + +* [DisableUserAutoSign](https://cloud.tencent.com/document/api/1323/87785) + + * 新增入参:Agent + +* [UnbindEmployeeUserIdWithClientOpenId](https://cloud.tencent.com/document/api/1323/90239) + + * 新增入参:Agent + + +修改数据结构: + +* [FillApproverInfo](https://cloud.tencent.com/document/api/1323/70369#FillApproverInfo) + + * 新增成员:ApproverName, ApproverMobile + + * **修改成员**:ApproverSource, CustomUserId + + + + +## 分布式身份(tdid) 版本:2021-05-19 + +### 第 10 次发布 + +发布时间:2023-07-24 01:49:20 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* AddLabel +* GetAgencyTDid + +**删除数据结构**: + +* Identity + + + +## 互动白板(tiw) 版本:2019-09-19 + +### 第 33 次发布 + +发布时间:2023-07-24 01:52:09 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeTranscodeByUrl](https://cloud.tencent.com/document/api/1137/95412) + + + +# Release 3.0.936 + +## 多媒体创作引擎(cme) 版本:2019-10-29 + +### 第 55 次发布 + +发布时间:2023-07-21 01:14:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [MediaCastProjectInfo](https://cloud.tencent.com/document/api/1156/40360#MediaCastProjectInfo) + + * 新增成员:Duration + + + + +## 腾讯电子签企业版(ess) 版本:2020-11-11 + +### 第 90 次发布 + +发布时间:2023-07-21 01:23:30 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateSchemeUrl](https://cloud.tencent.com/document/api/1323/70359) + + * 新增入参:Hides + + +修改数据结构: + +* [RegisterInfo](https://cloud.tencent.com/document/api/1323/70369#RegisterInfo) + + * 新增成员:UnifiedSocialCreditCode + + * **修改成员**:Uscc + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2021-05-26 + +### 第 96 次发布 + +发布时间:2023-07-21 01:23:53 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateSignUrls](https://cloud.tencent.com/document/api/1420/61522) + + * 新增入参:Hides + + + + +## 腾讯电子签(基础版)(essbasic) 版本:2020-12-22 + + + +## 低代码互动课堂(lcic) 版本:2022-08-17 + +### 第 31 次发布 + +发布时间:2023-07-21 01:29:56 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateRoom](https://cloud.tencent.com/document/api/1639/80942) + + * 新增入参:IsGradingRequiredPostClass + +* [DescribeRoom](https://cloud.tencent.com/document/api/1639/80941) + + * 新增出参:IsGradingRequiredPostClass + +* [ModifyRoom](https://cloud.tencent.com/document/api/1639/86030) + + * 新增入参:IsGradingRequiredPostClass + + + + +## 云数据库 PostgreSQL(postgres) 版本:2017-03-12 + +### 第 38 次发布 + +发布时间:2023-07-21 01:35:07 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CloneDBInstance](https://cloud.tencent.com/document/api/409/68071) + + * 新增入参:SyncMode + + + + +## 云压测(pts) 版本:2021-07-28 + +### 第 12 次发布 + +发布时间:2023-07-21 01:35:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [Scenario](https://cloud.tencent.com/document/api/1484/78100#Scenario) + + * **修改成员**:ScenarioId, Name, Description, Type, Status, Load, EncodedScripts, Configs, Extensions, Datasets, SLAId, CronId, CreatedAt, UpdatedAt, ProjectId, AppId, Uin, SubAccountUin, TestScripts, Protocols, RequestFiles, SLAPolicy, Plugins, DomainNameConfig, NotificationHooks, Owner, ProjectName + + + + +## 分布式身份(tdid) 版本:2021-05-19 + +### 第 9 次发布 + +发布时间:2023-07-21 01:42:20 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* GetConsortiumClusterList +* GetConsortiumList +* GetCredentialCptRank + +**删除数据结构**: + +* BcosClusterItem +* ConsortiumItem +* CptIssueRank + + + +## 互动白板(tiw) 版本:2019-09-19 + +### 第 32 次发布 + +发布时间:2023-07-21 01:44:39 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeTranscode](https://cloud.tencent.com/document/api/1137/40059) + + * 新增出参:CreateTime, AssignTime, FinishedTime + + + + +## Web 应用防火墙(waf) 版本:2018-01-25 + +### 第 38 次发布 + +发布时间:2023-07-21 01:50:55 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AddDomainWhiteRule](https://cloud.tencent.com/document/api/627/72650) + + * **修改出参**:Id + + + + # Release 3.0.935 ## 云数据库 MySQL(cdb) 版本:2017-03-20 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/README.MD b/vendor/tencentcloud/tencentcloud-sdk-php/README.MD index 72bb31b31..4b73a4a14 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/README.MD +++ b/vendor/tencentcloud/tencentcloud-sdk-php/README.MD @@ -150,6 +150,27 @@ $clientProfile->setHttpProfile($httpProfile); $client = new OcrClient($cred, 'ap-beijing', $this->clientProfile); ``` +## 地域容灾 + +从`3.0.933`起 腾讯云 Php SDK 支持地域容灾,当某个域名请求失败时,会自动切换到容灾域名。使用方式如下: +使用地域时有三种状态相互转换:关闭、全开和半开状态 +关闭:使用主要域名请求,如果出现错误时,会切换到全开状态 +全开:使用容灾域名请求,当达到一定时间时,会切换到半开状态 +半开:此时会放少量的请求到主要域名,如果请求失败,则切换到全开状态,当请求成功数达到一定的数量时,会切换到关闭状态 + +相关设置如下 +```php +use TencentCloud\Common\Profile\RegionBreakerProfile; +// 开启地域容灾 +$clientProfile->enableRegionBreaker=true; +// 设置主备节点,以cvm产品为例,假设主节点在上海,备节点在北京,则配置如下 +$regionBreakerProfile = new RegionBreakerProfile( + "cvm.ap-shanghai.tencentcloudapi.com", // 主节点 + "cvm.ap-beijing.tencentcloudapi.com" // 备节点 +); +$clientProfile->setRegionBreakerProfile($regionBreakerProfile); +``` + ## 证书问题 如果你的 PHP 环境证书有问题,可能会遇到报错,类似于 `cURL error 60: See http://curl.haxx.se/libcurl/c/libcurl-errors.html`,请尝试按如下步骤解决: diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/SERVICE_CHANGELOG.md b/vendor/tencentcloud/tencentcloud-sdk-php/SERVICE_CHANGELOG.md index 2fbf01401..1c43dc96e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/SERVICE_CHANGELOG.md +++ b/vendor/tencentcloud/tencentcloud-sdk-php/SERVICE_CHANGELOG.md @@ -1,95 +1,10 @@ # 本版本更新包含以下内容: -## 云数据库 MySQL(cdb) 版本:2017-03-20 - -### 第 138 次发布 - -发布时间:2023-07-20 01:13:27 - -本次发布包含了以下内容: - -改善已有的文档。 - -**删除接口**: - -* ModifyCDBProxyDesc - - - -## 云数据仓库 ClickHouse(cdwch) 版本:2020-09-15 - -### 第 13 次发布 - -发布时间:2023-07-20 01:14:55 - -本次发布包含了以下内容: - -改善已有的文档。 - -修改数据结构: - -* [InstanceInfo](https://cloud.tencent.com/document/api/1299/83429#InstanceInfo) - - * 新增成员:EsIndexId, EsIndexUsername, EsIndexPassword, HasEsIndex - - * **修改成员**:MountDiskType, CHProxyVip, CosBucketName, CanAttachCbs, CanAttachCbsLvm, CanAttachCos, Components, UpgradeVersions - -* [InstanceStateInfo](https://cloud.tencent.com/document/api/1299/83429#InstanceStateInfo) - - * 新增成员:ProcessSubName - - * **修改成员**:RequestId - - - - -## Cloud Studio(云端 IDE)(cloudstudio) 版本:2023-05-08 - -### 第 3 次发布 - -发布时间:2023-07-20 01:17:13 - -本次发布包含了以下内容: - -改善已有的文档。 - -修改接口: - -* [CreateWorkspaceToken](https://cloud.tencent.com/document/api/1039/94095) - - * **修改入参**:SpaceKey - - - - -## Cloud Studio(云端 IDE)(cloudstudio) 版本:2021-05-24 - - - -## 日志服务(cls) 版本:2020-10-16 - -### 第 57 次发布 - -发布时间:2023-07-20 01:17:22 - -本次发布包含了以下内容: - -改善已有的文档。 - -修改数据结构: - -* [KafkaRechargeInfo](https://cloud.tencent.com/document/api/614/56471#KafkaRechargeInfo) - - * **修改成员**:KafkaType, KafkaInstance, IsEncryptionAddr, Protocol, Offset - - - - -## 数据湖计算 DLC(dlc) 版本:2021-01-25 +## 多媒体创作引擎(cme) 版本:2019-10-29 ### 第 56 次发布 -发布时间:2023-07-20 01:23:15 +发布时间:2023-08-09 01:16:08 本次发布包含了以下内容: @@ -97,115 +12,18 @@ 修改数据结构: -* [SparkJobInfo](https://cloud.tencent.com/document/api/1342/53778#SparkJobInfo) +* [MediaCastOutputMediaSetting](https://cloud.tencent.com/document/api/1156/40360#MediaCastOutputMediaSetting) - * 新增成员:IsSessionStarted - - * **修改成员**:JobExecutorMaxNumbers, SparkImageVersion, SessionId, DataEngineClusterType, DataEngineImageVersion, IsInherit + * 新增成员:FollowSourceInfo -## 腾讯健康组学平台(omics) 版本:2022-11-28 +## 云安全一体化平台(csip) 版本:2022-11-21 -### 第 5 次发布 +### 第 8 次发布 -发布时间:2023-07-20 01:37:20 - -本次发布包含了以下内容: - -改善已有的文档。 - -修改接口: - -* [RunApplication](https://cloud.tencent.com/document/api/1643/89094) - - * 新增入参:ApplicationVersionId - - - - -## 云函数(scf) 版本:2018-04-16 - -### 第 57 次发布 - -发布时间:2023-07-20 01:39:23 - -本次发布包含了以下内容: - -改善已有的文档。 - -修改接口: - -* [CreateNamespace](https://cloud.tencent.com/document/api/583/37160) - - * 新增入参:ResourceEnv - - -新增数据结构: - -* [K8SLabel](https://cloud.tencent.com/document/api/583/17244#K8SLabel) -* [K8SToleration](https://cloud.tencent.com/document/api/583/17244#K8SToleration) -* [NamespaceResourceEnv](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnv) -* [NamespaceResourceEnvTKE](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnvTKE) - - - -## 腾讯云区块链服务平台 TBaaS(tbaas) 版本:2018-04-16 - -### 第 18 次发布 - -发布时间:2023-07-20 01:41:44 - -本次发布包含了以下内容: - -改善已有的文档。 - -**删除接口**: - -* CreateChaincodeAndInstallForUser -* GetChaincodeCompileLogForUser -* GetChaincodeInitializeResultForUser -* GetChaincodeLogForUser -* GetChannelListForUser -* GetClusterListForUser -* GetPeerLogForUser -* InitializeChaincodeForUser - -**删除数据结构**: - -* ChannelDetailForUser -* ClusterDetailForUser -* GroupDetailForUser -* LogDetailForUser -* PeerDetailForUser - - - -## 云点播(vod) 版本:2018-07-17 - -### 第 161 次发布 - -发布时间:2023-07-20 01:50:53 - -本次发布包含了以下内容: - -改善已有的文档。 - -修改数据结构: - -* [QualityInspectItem](https://cloud.tencent.com/document/api/266/31773#QualityInspectItem) - - * **修改成员**:StartTimeOffset, EndTimeOffset, AreaCoordSet, Confidence - - - - -## 数据开发治理平台 WeData(wedata) 版本:2021-08-20 - -### 第 37 次发布 - -发布时间:2023-07-20 01:54:12 +发布时间:2023-08-09 01:17:49 本次发布包含了以下内容: @@ -213,172 +31,381 @@ 新增接口: -* [BatchDeleteOpsTasks](https://cloud.tencent.com/document/api/1267/95234) -* [BatchModifyOpsOwners](https://cloud.tencent.com/document/api/1267/95258) -* [BatchRunOpsTask](https://cloud.tencent.com/document/api/1267/95233) -* [BatchStopOpsTasks](https://cloud.tencent.com/document/api/1267/95257) -* [BatchStopWorkflowsByIds](https://cloud.tencent.com/document/api/1267/95232) -* [CountOpsInstanceState](https://cloud.tencent.com/document/api/1267/95256) -* [CreateBaseline](https://cloud.tencent.com/document/api/1267/95249) -* [CreateOpsMakePlan](https://cloud.tencent.com/document/api/1267/95231) -* [DagInstances](https://cloud.tencent.com/document/api/1267/95230) -* [DeleteBaseline](https://cloud.tencent.com/document/api/1267/95229) -* [DeleteFile](https://cloud.tencent.com/document/api/1267/95250) -* [DeleteResourceFile](https://cloud.tencent.com/document/api/1267/95236) -* [DeleteWorkflowById](https://cloud.tencent.com/document/api/1267/95228) -* [DescribeAllByFolderNew](https://cloud.tencent.com/document/api/1267/95227) -* [DescribeAllTaskType](https://cloud.tencent.com/document/api/1267/95226) -* [DescribeAllUsedVersionSon](https://cloud.tencent.com/document/api/1267/95225) -* [DescribeBaselineAllTaskDag](https://cloud.tencent.com/document/api/1267/95248) -* [DescribeBaselineById](https://cloud.tencent.com/document/api/1267/95247) -* [DescribeBaselineInstanceDag](https://cloud.tencent.com/document/api/1267/95246) -* [DescribeBaselineInstanceGantt](https://cloud.tencent.com/document/api/1267/95245) -* [DescribeBaselineInstances](https://cloud.tencent.com/document/api/1267/95244) -* [DescribeBaselines](https://cloud.tencent.com/document/api/1267/95243) -* [DescribeBelongTo](https://cloud.tencent.com/document/api/1267/95224) -* [DescribeDependOpsTaskList](https://cloud.tencent.com/document/api/1267/95223) -* [DescribeDependOpsTasks](https://cloud.tencent.com/document/api/1267/95255) -* [DescribeDependTaskLists](https://cloud.tencent.com/document/api/1267/95222) -* [DescribeDiagnosticInfoByBaselineId](https://cloud.tencent.com/document/api/1267/95242) -* [DescribeDrInstancePage](https://cloud.tencent.com/document/api/1267/95221) -* [DescribeDrInstanceScriptContent](https://cloud.tencent.com/document/api/1267/95220) -* [DescribeDrSonInstance](https://cloud.tencent.com/document/api/1267/95219) -* [DescribeEvent](https://cloud.tencent.com/document/api/1267/95218) -* [DescribeEventCases](https://cloud.tencent.com/document/api/1267/95217) -* [DescribeEventConsumeTasks](https://cloud.tencent.com/document/api/1267/95216) -* [DescribeEventDetail](https://cloud.tencent.com/document/api/1267/95215) -* [DescribeEventIsAlarmTypes](https://cloud.tencent.com/document/api/1267/95214) -* [DescribeEventTypes](https://cloud.tencent.com/document/api/1267/95213) -* [DescribeEvents](https://cloud.tencent.com/document/api/1267/95212) -* [DescribeFathers](https://cloud.tencent.com/document/api/1267/95211) -* [DescribeInstanceByCycle](https://cloud.tencent.com/document/api/1267/95210) -* [DescribeInstanceByCycleReport](https://cloud.tencent.com/document/api/1267/95209) -* [DescribeInstanceLogDetail](https://cloud.tencent.com/document/api/1267/95235) -* [DescribeInstanceLogFile](https://cloud.tencent.com/document/api/1267/95208) -* [DescribeInstancesInfoWithTaskInfo](https://cloud.tencent.com/document/api/1267/95207) -* [DescribeOperateOpsTaskDatasource](https://cloud.tencent.com/document/api/1267/95206) -* [DescribeOperateOpsTaskDatasourceType](https://cloud.tencent.com/document/api/1267/95205) -* [DescribeOperateOpsTasks](https://cloud.tencent.com/document/api/1267/95254) -* [DescribeOpsInstanceLogList](https://cloud.tencent.com/document/api/1267/95204) -* [DescribeOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95203) -* [DescribeOpsMakePlanTasks](https://cloud.tencent.com/document/api/1267/95202) -* [DescribeOpsMakePlans](https://cloud.tencent.com/document/api/1267/95201) -* [DescribeOpsWorkflows](https://cloud.tencent.com/document/api/1267/95200) -* [DescribeScheduleInstance](https://cloud.tencent.com/document/api/1267/95241) -* [DescribeScheduleInstances](https://cloud.tencent.com/document/api/1267/95199) -* [DescribeSchedulerInstanceStatus](https://cloud.tencent.com/document/api/1267/95198) -* [DescribeSchedulerRunTimeInstanceCntByStatus](https://cloud.tencent.com/document/api/1267/95197) -* [DescribeSchedulerTaskCntByStatus](https://cloud.tencent.com/document/api/1267/95196) -* [DescribeSchedulerTaskTypeCnt](https://cloud.tencent.com/document/api/1267/95195) -* [DescribeSonInstances](https://cloud.tencent.com/document/api/1267/95194) -* [DescribeStatisticInstanceStatusTrendOps](https://cloud.tencent.com/document/api/1267/95193) -* [DescribeSuccessorOpsTaskInfos](https://cloud.tencent.com/document/api/1267/95253) -* [DescribeTaskByCycle](https://cloud.tencent.com/document/api/1267/95192) -* [DescribeTaskByCycleReport](https://cloud.tencent.com/document/api/1267/95191) -* [DescribeTaskByStatusReport](https://cloud.tencent.com/document/api/1267/95190) -* [DescribeTaskRunHistory](https://cloud.tencent.com/document/api/1267/95189) -* [DescribeThirdTaskRunLog](https://cloud.tencent.com/document/api/1267/95188) -* [DescribeWorkflowCanvasInfo](https://cloud.tencent.com/document/api/1267/95187) -* [DescribeWorkflowExecuteById](https://cloud.tencent.com/document/api/1267/95186) -* [DescribeWorkflowInfoById](https://cloud.tencent.com/document/api/1267/95185) -* [DescribeWorkflowListByProjectId](https://cloud.tencent.com/document/api/1267/95184) -* [DescribeWorkflowOpsCanvasInfo](https://cloud.tencent.com/document/api/1267/95183) -* [DescribeWorkflowTaskCount](https://cloud.tencent.com/document/api/1267/95182) -* [DiagnosePlus](https://cloud.tencent.com/document/api/1267/95181) -* [EditBaseline](https://cloud.tencent.com/document/api/1267/95240) -* [ForceSucScheduleInstances](https://cloud.tencent.com/document/api/1267/95180) -* [FreezeOpsTasks](https://cloud.tencent.com/document/api/1267/95252) -* [FreezeTasksByWorkflowIds](https://cloud.tencent.com/document/api/1267/95179) -* [KillOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95178) -* [KillScheduleInstances](https://cloud.tencent.com/document/api/1267/95177) -* [MakeUpOpsTasks](https://cloud.tencent.com/document/api/1267/95251) -* [MakeUpTasksByWorkflow](https://cloud.tencent.com/document/api/1267/95176) -* [ModifyBaselineAlarmStatus](https://cloud.tencent.com/document/api/1267/95175) -* [ModifyBaselineTaskAlarmStatus](https://cloud.tencent.com/document/api/1267/95174) -* [RerunOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95173) -* [RerunScheduleInstances](https://cloud.tencent.com/document/api/1267/95172) -* [RunTasksByMultiWorkflow](https://cloud.tencent.com/document/api/1267/95171) -* [StopBaseline](https://cloud.tencent.com/document/api/1267/95239) -* [SubmitBaseline](https://cloud.tencent.com/document/api/1267/95238) -* [UpdateWorkflowOwner](https://cloud.tencent.com/document/api/1267/95170) +* [DescribeListenerList](https://cloud.tencent.com/document/api/664/96103) 新增数据结构: -* [AlarmRuleDto](https://cloud.tencent.com/document/api/1267/76336#AlarmRuleDto) -* [BaselineDetailResponse](https://cloud.tencent.com/document/api/1267/76336#BaselineDetailResponse) -* [BaselineDto](https://cloud.tencent.com/document/api/1267/76336#BaselineDto) -* [BaselineInstanceVo](https://cloud.tencent.com/document/api/1267/76336#BaselineInstanceVo) -* [BaselineTaskDto](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskDto) -* [BaselineTaskInfo](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskInfo) -* [BaselineTaskInstanceDto](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskInstanceDto) -* [BatchOperateResultOpsDto](https://cloud.tencent.com/document/api/1267/76336#BatchOperateResultOpsDto) -* [BatchOperationOpsDto](https://cloud.tencent.com/document/api/1267/76336#BatchOperationOpsDto) -* [BooleanResponse](https://cloud.tencent.com/document/api/1267/76336#BooleanResponse) -* [CollectionFolderOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionFolderOpsDto) -* [CollectionInstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionInstanceOpsDto) -* [CollectionTaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionTaskOpsDto) -* [CommonIdOpsDto](https://cloud.tencent.com/document/api/1267/76336#CommonIdOpsDto) -* [CreateAlarmRuleRequest](https://cloud.tencent.com/document/api/1267/76336#CreateAlarmRuleRequest) -* [CreateMakeDatetimeInfo](https://cloud.tencent.com/document/api/1267/76336#CreateMakeDatetimeInfo) -* [DatasourceTypeByTaskType](https://cloud.tencent.com/document/api/1267/76336#DatasourceTypeByTaskType) -* [DescribeBaselineResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeBaselineResponse) -* [DescribeBaselineTaskDagResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeBaselineTaskDagResponse) -* [DescribeDiagnosticInfoResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeDiagnosticInfoResponse) -* [DrInstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#DrInstanceOpsDto) -* [DrInstanceOpsDtoPage](https://cloud.tencent.com/document/api/1267/76336#DrInstanceOpsDtoPage) -* [EventCaseAuditLogOptDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseAuditLogOptDto) -* [EventCaseAuditLogVOCollection](https://cloud.tencent.com/document/api/1267/76336#EventCaseAuditLogVOCollection) -* [EventCaseConsumeLogOptDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseConsumeLogOptDto) -* [EventCaseConsumeLogOptDtoCollection](https://cloud.tencent.com/document/api/1267/76336#EventCaseConsumeLogOptDtoCollection) -* [EventCaseOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseOpsDto) -* [EventDto](https://cloud.tencent.com/document/api/1267/76336#EventDto) -* [EventListenerOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventListenerOpsDto) -* [EventOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventOpsDto) -* [EventPage](https://cloud.tencent.com/document/api/1267/76336#EventPage) -* [FolderOpsDto](https://cloud.tencent.com/document/api/1267/76336#FolderOpsDto) -* [InstanceApiOpsRequest](https://cloud.tencent.com/document/api/1267/76336#InstanceApiOpsRequest) -* [InstanceCondition](https://cloud.tencent.com/document/api/1267/76336#InstanceCondition) -* [InstanceDownloadLogInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceDownloadLogInfo) -* [InstanceLogInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceLogInfo) -* [InstanceLogInfoOpsDto](https://cloud.tencent.com/document/api/1267/76336#InstanceLogInfoOpsDto) -* [InstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#InstanceOpsDto) -* [InstanceOpsInfoPage](https://cloud.tencent.com/document/api/1267/76336#InstanceOpsInfoPage) -* [InstanceSearchCondition](https://cloud.tencent.com/document/api/1267/76336#InstanceSearchCondition) +* [ClbListenerListInfo](https://cloud.tencent.com/document/api/664/90825#ClbListenerListInfo) + + + +## 数据湖计算 DLC(dlc) 版本:2021-01-25 + +### 第 59 次发布 + +发布时间:2023-08-09 01:22:16 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateNotebookSession](https://cloud.tencent.com/document/api/1342/86113) + + * 新增入参:IsInherit + +* [CreateSparkSessionBatchSQL](https://cloud.tencent.com/document/api/1342/92838) + + * 新增入参:IsInherit + + + + +## 数据传输服务(dts) 版本:2021-12-06 + +### 第 14 次发布 + +发布时间:2023-08-09 01:23:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeMigrationDetail](https://cloud.tencent.com/document/api/571/82085) + + * 新增出参:DumperResumeCtrl, RateLimitOption + + +新增数据结构: + +* [ErrInfo](https://cloud.tencent.com/document/api/571/82108#ErrInfo) +* [RateLimitOption](https://cloud.tencent.com/document/api/571/82108#RateLimitOption) + +修改数据结构: + +* [Endpoint](https://cloud.tencent.com/document/api/571/82108#Endpoint) + + * 新增成员:CcnOwnerUin + +* [JobItem](https://cloud.tencent.com/document/api/571/82108#JobItem) + + * 新增成员:DumperResumeCtrl + +* [Options](https://cloud.tencent.com/document/api/571/82108#Options) + + * 新增成员:RateLimitOption, AutoRetryTimeRangeMinutes + +* [SyncDetailInfo](https://cloud.tencent.com/document/api/571/82108#SyncDetailInfo) + + * 新增成员:ErrInfo + + * **修改成员**:CauseOfCompareDisable + +* [SyncJobInfo](https://cloud.tencent.com/document/api/571/82108#SyncJobInfo) + + * 新增成员:SrcNodeType, SrcInfos, DstNodeType, DstInfos, DumperResumeCtrl + + + + +## 数据传输服务(dts) 版本:2018-03-30 + + + +## 物联网通信(iotcloud) 版本:2021-04-08 + +### 第 9 次发布 + +发布时间:2023-08-09 01:29:39 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeDevice](https://cloud.tencent.com/document/api/634/71948) + + * 新增出参:NBIoTDeviceID + + +修改数据结构: + +* [CLSLogItem](https://cloud.tencent.com/document/api/634/71973#CLSLogItem) + + * 新增成员:UserId + +* [DeviceInfo](https://cloud.tencent.com/document/api/634/71973#DeviceInfo) + + * 新增成员:NBIoTDeviceID + +* [ProductProperties](https://cloud.tencent.com/document/api/634/71973#ProductProperties) + + * 新增成员:AppEUI + + + + +## 物联网通信(iotcloud) 版本:2018-06-14 + + + +## 物联网智能视频服务(iotvideo) 版本:2021-11-25 + +### 第 17 次发布 + +发布时间:2023-08-09 01:31:19 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [ResetCloudStorageEvent](https://cloud.tencent.com/document/api/1131/96104) + + + +## 物联网智能视频服务(iotvideo) 版本:2020-12-15 + + + +## 物联网智能视频服务(iotvideo) 版本:2019-11-26 + + + +## 文字识别(ocr) 版本:2018-11-19 + +### 第 110 次发布 + +发布时间:2023-08-09 01:39:38 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* VerifyBasicBizLicense +* VerifyBizLicense + +**删除数据结构**: + +* BizLicenseVerifyResult + + + +## 集团账号管理(organization) 版本:2021-03-31 + +### 第 21 次发布 + +发布时间:2023-08-09 01:40:29 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateOrganizationMemberAuthIdentity](https://cloud.tencent.com/document/api/850/96106) +* [DeleteOrganizationMembersPolicy](https://cloud.tencent.com/document/api/850/96105) + + + +## 集团账号管理(organization) 版本:2018-12-25 + + + +## 前端性能监控(rum) 版本:2021-06-22 + +### 第 28 次发布 + +发布时间:2023-08-09 01:43:06 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeDataPvUrlStatistics](https://cloud.tencent.com/document/api/1464/65768) + + * 新增入参:GroupByType + + + + +## SSL 证书(ssl) 版本:2019-12-05 + +### 第 39 次发布 + +发布时间:2023-08-09 01:45:30 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeCertificates](https://cloud.tencent.com/document/api/400/41671) + + * 新增入参:Hostable + +* [UpdateCertificateInstance](https://cloud.tencent.com/document/api/400/91649) + +* [UploadCertificate](https://cloud.tencent.com/document/api/400/41665) + + * 新增入参:Tags + + +修改数据结构: + +* [DeployRecordDetail](https://cloud.tencent.com/document/api/400/41679#DeployRecordDetail) + + * 新增成员:EnvId, TCBType, Region + + * **修改成员**:Port + +* [UpdateRecordDetail](https://cloud.tencent.com/document/api/400/41679#UpdateRecordDetail) + + * 新增成员:EnvId, TCBType + + * **修改成员**:Port, Namespace, SecretName + + + + +## 消息队列 TDMQ(tdmq) 版本:2020-02-17 + +### 第 72 次发布 + +发布时间:2023-08-09 01:50:17 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeRabbitMQVirtualHost](https://cloud.tencent.com/document/api/1179/93455) + + * 新增入参:SortElement, SortOrder + + +修改数据结构: + +* [RabbitMQVirtualHostInfo](https://cloud.tencent.com/document/api/1179/46089#RabbitMQVirtualHostInfo) + + * 新增成员:Status, MessageHeapCount, MessageRateIn, MessageRateOut + + * **修改成员**:InstanceId, VirtualHost, Description, Tags, CreateTime, ModifyTime, VirtualHostStatistics + + + + +## TI-ONE 训练平台(tione) 版本:2021-11-11 + +### 第 31 次发布 + +发布时间:2023-08-08 22:45:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [ChatCompletion](https://cloud.tencent.com/document/api/851/96102) + +新增数据结构: + +* [Choice](https://cloud.tencent.com/document/api/851/75051#Choice) +* [Message](https://cloud.tencent.com/document/api/851/75051#Message) +* [Usage](https://cloud.tencent.com/document/api/851/75051#Usage) + + + +## TI-ONE 训练平台(tione) 版本:2019-10-22 + + + +## 私有网络(vpc) 版本:2017-03-12 + +### 第 164 次发布 + +发布时间:2023-08-09 01:58:05 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AcceptVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96026) + + * 新增入参:PeeringConnectionId + +* [DeleteVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96024) + + * 新增入参:PeeringConnectionId + + + + +## 数据开发治理平台 WeData(wedata) 版本:2021-08-20 + +### 第 40 次发布 + +发布时间:2023-08-09 02:00:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeSchedulerInstanceStatus](https://cloud.tencent.com/document/api/1267/95198) + + * 新增入参:StartTime, EndTime, InCharge + +* [DescribeSchedulerRunTimeInstanceCntByStatus](https://cloud.tencent.com/document/api/1267/95197) + + * 新增入参:TaskType, InCharge + +* [DescribeSchedulerTaskCntByStatus](https://cloud.tencent.com/document/api/1267/95196) + + * 新增入参:InCharge + +* [DescribeSchedulerTaskTypeCnt](https://cloud.tencent.com/document/api/1267/95195) + + * 新增入参:InCharge + +* [DescribeStatisticInstanceStatusTrendOps](https://cloud.tencent.com/document/api/1267/95193) + + * 新增入参:InCharge, TaskType, StateList, AggregationUnit, AverageWindowSize + +* [DescribeTaskByCycle](https://cloud.tencent.com/document/api/1267/95192) + + * 新增入参:InCharge + +* [DescribeTaskByStatusReport](https://cloud.tencent.com/document/api/1267/95190) + + * 新增入参:AggregationUnit, CycleUnit, Status, InCharge + + +修改数据结构: + * [InstanceStatisticInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceStatisticInfo) -* [LinkOpsDto](https://cloud.tencent.com/document/api/1267/76336#LinkOpsDto) -* [MakePlanInstanceOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanInstanceOpsDtoCollection) -* [MakePlanOpsDto](https://cloud.tencent.com/document/api/1267/76336#MakePlanOpsDto) -* [MakePlanOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanOpsDtoCollection) -* [MakePlanTaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#MakePlanTaskOpsDto) -* [MakePlanTaskOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanTaskOpsDtoCollection) -* [ModifyAlarmRuleRequest](https://cloud.tencent.com/document/api/1267/76336#ModifyAlarmRuleRequest) -* [OperationOpsDto](https://cloud.tencent.com/document/api/1267/76336#OperationOpsDto) -* [OpsTaskCanvasDto](https://cloud.tencent.com/document/api/1267/76336#OpsTaskCanvasDto) -* [OpsTaskCanvasInfoList](https://cloud.tencent.com/document/api/1267/76336#OpsTaskCanvasInfoList) -* [OpsTaskInfoPage](https://cloud.tencent.com/document/api/1267/76336#OpsTaskInfoPage) -* [OpsTaskLinkInfoDto](https://cloud.tencent.com/document/api/1267/76336#OpsTaskLinkInfoDto) -* [PairDto](https://cloud.tencent.com/document/api/1267/76336#PairDto) -* [ProjectBaseInfoOpsRequest](https://cloud.tencent.com/document/api/1267/76336#ProjectBaseInfoOpsRequest) -* [RuntimeInstanceCntTop](https://cloud.tencent.com/document/api/1267/76336#RuntimeInstanceCntTop) -* [ScreenInstanceInfo](https://cloud.tencent.com/document/api/1267/76336#ScreenInstanceInfo) -* [ScreenTaskInfo](https://cloud.tencent.com/document/api/1267/76336#ScreenTaskInfo) -* [SimpleDataSourceInfo](https://cloud.tencent.com/document/api/1267/76336#SimpleDataSourceInfo) -* [StrToStrMap](https://cloud.tencent.com/document/api/1267/76336#StrToStrMap) -* [StringListNode](https://cloud.tencent.com/document/api/1267/76336#StringListNode) -* [TaskByCycle](https://cloud.tencent.com/document/api/1267/76336#TaskByCycle) + + * 新增成员:ReportTime, Count + * [TaskByStatus](https://cloud.tencent.com/document/api/1267/76336#TaskByStatus) -* [TaskInstanceCountDto](https://cloud.tencent.com/document/api/1267/76336#TaskInstanceCountDto) -* [TaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#TaskOpsDto) -* [TaskTypeCnt](https://cloud.tencent.com/document/api/1267/76336#TaskTypeCnt) -* [TaskTypeMap](https://cloud.tencent.com/document/api/1267/76336#TaskTypeMap) -* [TaskTypeOpsDto](https://cloud.tencent.com/document/api/1267/76336#TaskTypeOpsDto) -* [WorkFlowExecuteDto](https://cloud.tencent.com/document/api/1267/76336#WorkFlowExecuteDto) -* [WorkFlowExecuteDtoByPage](https://cloud.tencent.com/document/api/1267/76336#WorkFlowExecuteDtoByPage) -* [WorkflowCanvasOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowCanvasOpsDto) -* [WorkflowExtOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowExtOpsDto) -* [WorkflowExtOpsDtoPage](https://cloud.tencent.com/document/api/1267/76336#WorkflowExtOpsDtoPage) -* [WorkflowSchedulerOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowSchedulerOpsDto) -* [WorkflowTaskCountOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowTaskCountOpsDto) + + * 新增成员:ReportTime, Count + @@ -1001,6 +1028,25 @@ ## AI 绘画(aiart) 版本:2022-12-29 +### 第 2 次发布 + +发布时间:2023-07-25 10:37:02 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ImageToImage](https://cloud.tencent.com/document/api/1668/88066) + + * 新增入参:RspImgType + +* [TextToImage](https://cloud.tencent.com/document/api/1668/88064) + + * 新增入参:RspImgType + + ### 第 1 次发布 发布时间:2023-03-09 15:10:44 @@ -2081,6 +2127,18 @@ ## T-Sec-DDoS防护(Anti-DDoS)(antiddos) 版本:2020-03-09 +### 第 58 次发布 + +发布时间:2023-07-26 01:01:23 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeBizMonitorTrend](https://cloud.tencent.com/document/api/297/95517) + ### 第 57 次发布 发布时间:2023-06-27 01:01:43 @@ -2091,14 +2149,14 @@ 修改接口: -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:FilterBasicPlusFlag 修改数据结构: -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) * 新增成员:BasicPlusFlag @@ -2113,11 +2171,11 @@ 修改接口: -* [CreateBoundIP](https://cloud.tencent.com/document/api/1021/57763) +* [CreateBoundIP](https://cloud.tencent.com/document/api/297/95349) * 新增入参:FilterRegion -* [DescribeBasicDeviceStatus](https://cloud.tencent.com/document/api/1021/59237) +* [DescribeBasicDeviceStatus](https://cloud.tencent.com/document/api/297/95386) * 新增入参:IdList, FilterRegion @@ -2125,14 +2183,14 @@ * 新增出参:CLBData -* [DescribeNewL7Rules](https://cloud.tencent.com/document/api/1021/76706) +* [DescribeNewL7Rules](https://cloud.tencent.com/document/api/297/95344) * 新增入参:Export 修改数据结构: -* [BoundIpInfo](https://cloud.tencent.com/document/api/1021/57582#BoundIpInfo) +* [BoundIpInfo](https://cloud.tencent.com/document/api/297/95396#BoundIpInfo) * 新增成员:Domain @@ -2147,40 +2205,40 @@ 修改接口: -* [DescribeBizTrend](https://cloud.tencent.com/document/api/1021/60144) +* [DescribeBizTrend](https://cloud.tencent.com/document/api/297/95359) * 新增入参:BusinessType * 新增出参:MaxData -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:FilterAssetIpList -* [DescribeListSchedulingDomain](https://cloud.tencent.com/document/api/1021/57556) +* [DescribeListSchedulingDomain](https://cloud.tencent.com/document/api/297/95364) * 新增入参:Status -* [DescribeOverviewCCTrend](https://cloud.tencent.com/document/api/1021/73420) +* [DescribeOverviewCCTrend](https://cloud.tencent.com/document/api/297/95355) * **修改入参**:Business -* [DescribeOverviewDDoSTrend](https://cloud.tencent.com/document/api/1021/73419) +* [DescribeOverviewDDoSTrend](https://cloud.tencent.com/document/api/297/95353) * **修改入参**:Business 修改数据结构: -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) * 新增成员:ModifyTime -* [EipProductInfo](https://cloud.tencent.com/document/api/1021/57582#EipProductInfo) +* [EipProductInfo](https://cloud.tencent.com/document/api/297/95396#EipProductInfo) * 新增成员:Domain -* [IPLineInfo](https://cloud.tencent.com/document/api/1021/57582#IPLineInfo) +* [IPLineInfo](https://cloud.tencent.com/document/api/297/95396#IPLineInfo) * 新增成员:Domain @@ -2195,7 +2253,7 @@ 修改数据结构: -* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/1021/57582#BGPInstanceSpecification) +* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/297/95396#BGPInstanceSpecification) * 新增成员:DownGradeProtect @@ -2210,7 +2268,7 @@ 修改数据结构: -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) * 新增成员:GiftServiceBandWidth @@ -2225,11 +2283,11 @@ 修改数据结构: -* [Layer7Rule](https://cloud.tencent.com/document/api/1021/57582#Layer7Rule) +* [Layer7Rule](https://cloud.tencent.com/document/api/297/95396#Layer7Rule) * 新增成员:Protocol, Vport -* [SourceServer](https://cloud.tencent.com/document/api/1021/57582#SourceServer) +* [SourceServer](https://cloud.tencent.com/document/api/297/95396#SourceServer) * 新增成员:Port @@ -2244,14 +2302,14 @@ 修改接口: -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:ExcludeAdvancedInfo 修改数据结构: -* [L7RuleHealth](https://cloud.tencent.com/document/api/1021/57582#L7RuleHealth) +* [L7RuleHealth](https://cloud.tencent.com/document/api/297/95396#L7RuleHealth) * 新增成员:PassiveStatus @@ -2266,11 +2324,11 @@ 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:ElasticBandwidth, EOFlag -* [NewL7RuleEntry](https://cloud.tencent.com/document/api/1021/57582#NewL7RuleEntry) +* [NewL7RuleEntry](https://cloud.tencent.com/document/api/297/95396#NewL7RuleEntry) * 新增成员:Version @@ -2285,11 +2343,11 @@ 新增接口: -* [DescribeBizHttpStatus](https://cloud.tencent.com/document/api/1021/84352) +* [DescribeBizHttpStatus](https://cloud.tencent.com/document/api/297/95360) 新增数据结构: -* [HttpStatusMap](https://cloud.tencent.com/document/api/1021/57582#HttpStatusMap) +* [HttpStatusMap](https://cloud.tencent.com/document/api/297/95396#HttpStatusMap) ### 第 48 次发布 @@ -2301,18 +2359,18 @@ 修改接口: -* [SwitchWaterPrintConfig](https://cloud.tencent.com/document/api/1021/59001) +* [SwitchWaterPrintConfig](https://cloud.tencent.com/document/api/297/95299) * 新增入参:CloudSdkProxy 修改数据结构: -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) * 新增成员:Line, ElasticServiceBandwidth -* [WaterPrintConfig](https://cloud.tencent.com/document/api/1021/57582#WaterPrintConfig) +* [WaterPrintConfig](https://cloud.tencent.com/document/api/297/95396#WaterPrintConfig) * 新增成员:CloudSdkProxy @@ -2327,18 +2385,18 @@ 修改接口: -* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/1021/57524) +* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/297/95347) * 新增入参:FilterConvoy -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:FilterTrialFlag, FilterConvoy 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:ConvoyId @@ -2353,14 +2411,14 @@ 修改接口: -* [ModifyDDoSThreshold](https://cloud.tencent.com/document/api/1021/69190) +* [ModifyDDoSThreshold](https://cloud.tencent.com/document/api/297/95394) * 新增入参:AckFloodThreshold, AckFloodPktThreshold, SynAckFloodThreshold, SynAckFloodPktThreshold, RstFloodThreshold, RstFloodPktThreshold 修改数据结构: -* [ProtectThresholdRelation](https://cloud.tencent.com/document/api/1021/57582#ProtectThresholdRelation) +* [ProtectThresholdRelation](https://cloud.tencent.com/document/api/297/95396#ProtectThresholdRelation) * 新增成员:AckFloodThreshold, AckFloodPktThreshold, SynAckFloodThreshold, SynAckFloodPktThreshold, RstFloodThreshold, RstFloodPktThreshold @@ -2375,22 +2433,22 @@ 修改接口: -* [ModifyDDoSThreshold](https://cloud.tencent.com/document/api/1021/69190) +* [ModifyDDoSThreshold](https://cloud.tencent.com/document/api/297/95394) * 新增入参:OtherThresholdFlag, SynFloodThreshold, SynFloodPktThreshold, UdpFloodThreshold, UdpFloodPktThreshold 修改数据结构: -* [PacketFilterConfig](https://cloud.tencent.com/document/api/1021/57582#PacketFilterConfig) +* [PacketFilterConfig](https://cloud.tencent.com/document/api/297/95396#PacketFilterConfig) * 新增成员:PktLenGT -* [ProtectThresholdRelation](https://cloud.tencent.com/document/api/1021/57582#ProtectThresholdRelation) +* [ProtectThresholdRelation](https://cloud.tencent.com/document/api/297/95396#ProtectThresholdRelation) * 新增成员:SynFloodThreshold, SynFloodPktThreshold, UdpFloodThreshold, UdpFloodPktThreshold -* [ProtocolBlockConfig](https://cloud.tencent.com/document/api/1021/57582#ProtocolBlockConfig) +* [ProtocolBlockConfig](https://cloud.tencent.com/document/api/297/95396#ProtocolBlockConfig) * 新增成员:PingOfDeath, TearDrop @@ -2405,7 +2463,7 @@ 新增接口: -* [DescribePendingRiskInfo](https://cloud.tencent.com/document/api/1021/82200) +* [DescribePendingRiskInfo](https://cloud.tencent.com/document/api/297/95351) ### 第 43 次发布 @@ -2417,7 +2475,7 @@ 修改接口: -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:FilterLightFlag, FilterChannelFlag @@ -2432,7 +2490,7 @@ 修改数据结构: -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) * 新增成员:VitalityVersion @@ -2459,7 +2517,7 @@ 新增接口: -* [DescribeNewL7RulesErrHealth](https://cloud.tencent.com/document/api/1021/79701) +* [DescribeNewL7RulesErrHealth](https://cloud.tencent.com/document/api/297/95368) ### 第 39 次发布 @@ -2471,7 +2529,7 @@ 新增接口: -* [DescribeBgpBizTrend](https://cloud.tencent.com/document/api/1021/78796) +* [DescribeBgpBizTrend](https://cloud.tencent.com/document/api/297/95361) **删除接口**: @@ -2487,15 +2545,15 @@ 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:InstanceVersion -* [L4RuleSource](https://cloud.tencent.com/document/api/1021/57582#L4RuleSource) +* [L4RuleSource](https://cloud.tencent.com/document/api/297/95396#L4RuleSource) * 新增成员:Backup -* [L7RuleHealth](https://cloud.tencent.com/document/api/1021/57582#L7RuleHealth) +* [L7RuleHealth](https://cloud.tencent.com/document/api/297/95396#L7RuleHealth) * 新增成员:ProtocolFlag, PassiveEnable, BlockInter, FailedCountInter, FailedThreshold, PassiveStatusCode @@ -2510,7 +2568,7 @@ 修改数据结构: -* [L7RuleEntry](https://cloud.tencent.com/document/api/1021/57582#L7RuleEntry) +* [L7RuleEntry](https://cloud.tencent.com/document/api/297/95396#L7RuleEntry) * 新增成员:CCAIEnable @@ -2525,7 +2583,7 @@ 新增接口: -* [CreateNewL7Rules](https://cloud.tencent.com/document/api/1021/76711) +* [CreateNewL7Rules](https://cloud.tencent.com/document/api/297/95369) ### 第 35 次发布 @@ -2537,11 +2595,11 @@ 新增接口: -* [DescribeNewL7Rules](https://cloud.tencent.com/document/api/1021/76706) +* [DescribeNewL7Rules](https://cloud.tencent.com/document/api/297/95344) 新增数据结构: -* [L7RuleHealth](https://cloud.tencent.com/document/api/1021/57582#L7RuleHealth) +* [L7RuleHealth](https://cloud.tencent.com/document/api/297/95396#L7RuleHealth) ### 第 34 次发布 @@ -2553,22 +2611,22 @@ 修改接口: -* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/1021/57524) +* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/297/95347) * 新增入参:FilterPackType 新增数据结构: -* [AnycastOutPackRelation](https://cloud.tencent.com/document/api/1021/57582#AnycastOutPackRelation) +* [AnycastOutPackRelation](https://cloud.tencent.com/document/api/297/95396#AnycastOutPackRelation) 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:AnycastOutPackRelation -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) * 新增成员:IpCountNewFlag @@ -2583,39 +2641,39 @@ 修改接口: -* [CreateCCReqLimitPolicy](https://cloud.tencent.com/document/api/1021/69187) +* [CreateCCReqLimitPolicy](https://cloud.tencent.com/document/api/297/95391) * 新增入参:IsGlobal -* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/1021/57524) +* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/297/95347) * 新增入参:FilterTag -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:FilterTag 新增数据结构: -* [TagFilter](https://cloud.tencent.com/document/api/1021/57582#TagFilter) -* [TagInfo](https://cloud.tencent.com/document/api/1021/57582#TagInfo) +* [TagFilter](https://cloud.tencent.com/document/api/297/95396#TagFilter) +* [TagInfo](https://cloud.tencent.com/document/api/297/95396#TagInfo) 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:TagInfoList -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) * 新增成员:TagInfoList -* [BlackWhiteIpRelation](https://cloud.tencent.com/document/api/1021/57582#BlackWhiteIpRelation) +* [BlackWhiteIpRelation](https://cloud.tencent.com/document/api/297/95396#BlackWhiteIpRelation) * 新增成员:ModifyTime -* [PacketFilterRelation](https://cloud.tencent.com/document/api/1021/57582#PacketFilterRelation) +* [PacketFilterRelation](https://cloud.tencent.com/document/api/297/95396#PacketFilterRelation) * 新增成员:ModifyTime @@ -2630,7 +2688,7 @@ 修改接口: -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:FilterEnterpriseFlag @@ -2645,34 +2703,34 @@ 新增接口: -* [DescribeOverviewDDoSEventList](https://cloud.tencent.com/document/api/1021/73673) +* [DescribeOverviewDDoSEventList](https://cloud.tencent.com/document/api/297/95354) 修改接口: -* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/1021/57524) +* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/297/95347) * 新增入参:FilterCname, FilterInstanceIdList -* [DescribeListIPAlarmConfig](https://cloud.tencent.com/document/api/1021/57559) +* [DescribeListIPAlarmConfig](https://cloud.tencent.com/document/api/297/95372) * 新增入参:FilterCname 新增数据结构: -* [OverviewDDoSEvent](https://cloud.tencent.com/document/api/1021/57582#OverviewDDoSEvent) +* [OverviewDDoSEvent](https://cloud.tencent.com/document/api/297/95396#OverviewDDoSEvent) 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:BGPIPChannelFlag -* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/1021/57582#BGPInstanceSpecification) +* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/297/95396#BGPInstanceSpecification) * 新增成员:EnterpriseFlag, ElasticLimit -* [IPLineInfo](https://cloud.tencent.com/document/api/1021/57582#IPLineInfo) +* [IPLineInfo](https://cloud.tencent.com/document/api/297/95396#IPLineInfo) * 新增成员:Cname, ResourceFlag @@ -2687,15 +2745,15 @@ 新增数据结构: -* [RuleInstanceRelation](https://cloud.tencent.com/document/api/1021/57582#RuleInstanceRelation) +* [RuleInstanceRelation](https://cloud.tencent.com/document/api/297/95396#RuleInstanceRelation) 修改数据结构: -* [Layer4Rule](https://cloud.tencent.com/document/api/1021/57582#Layer4Rule) +* [Layer4Rule](https://cloud.tencent.com/document/api/297/95396#Layer4Rule) * 新增成员:InstanceDetailRule -* [Layer7Rule](https://cloud.tencent.com/document/api/1021/57582#Layer7Rule) +* [Layer7Rule](https://cloud.tencent.com/document/api/297/95396#Layer7Rule) * 新增成员:InstanceDetailRule @@ -2710,10 +2768,10 @@ 新增接口: -* [DescribeOverviewAttackTrend](https://cloud.tencent.com/document/api/1021/73421) -* [DescribeOverviewCCTrend](https://cloud.tencent.com/document/api/1021/73420) -* [DescribeOverviewDDoSTrend](https://cloud.tencent.com/document/api/1021/73419) -* [DescribeOverviewIndex](https://cloud.tencent.com/document/api/1021/73418) +* [DescribeOverviewAttackTrend](https://cloud.tencent.com/document/api/297/95356) +* [DescribeOverviewCCTrend](https://cloud.tencent.com/document/api/297/95355) +* [DescribeOverviewDDoSTrend](https://cloud.tencent.com/document/api/297/95353) +* [DescribeOverviewIndex](https://cloud.tencent.com/document/api/297/95352) ### 第 28 次发布 @@ -2725,7 +2783,7 @@ 修改数据结构: -* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/1021/57582#BGPInstanceSpecification) +* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/297/95396#BGPInstanceSpecification) * 新增成员:BattleEditionFlag, ChannelEditionFlag @@ -2740,7 +2798,7 @@ 修改数据结构: -* [NewL7RuleEntry](https://cloud.tencent.com/document/api/1021/57582#NewL7RuleEntry) +* [NewL7RuleEntry](https://cloud.tencent.com/document/api/297/95396#NewL7RuleEntry) * 新增成员:RewriteHttps, ErrCode @@ -2755,7 +2813,7 @@ 修改接口: -* [CreateSchedulingDomain](https://cloud.tencent.com/document/api/1021/57557) +* [CreateSchedulingDomain](https://cloud.tencent.com/document/api/297/95365) * 新增入参:Product @@ -2770,14 +2828,14 @@ 修改接口: -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:FilterInstanceIdList 修改数据结构: -* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/1021/57582#BGPInstanceSpecification) +* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/297/95396#BGPInstanceSpecification) * 新增成员:ServiceBandWidth @@ -2792,7 +2850,7 @@ 修改数据结构: -* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/1021/57582#BGPInstanceSpecification) +* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/297/95396#BGPInstanceSpecification) * 新增成员:UnionPackFlag @@ -2807,17 +2865,17 @@ 新增接口: -* [CreateCcBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/70487) -* [DeleteCCLevelPolicy](https://cloud.tencent.com/document/api/1021/70492) -* [DeleteCCThresholdPolicy](https://cloud.tencent.com/document/api/1021/70491) -* [DescribeCCLevelList](https://cloud.tencent.com/document/api/1021/70490) -* [DescribeCCLevelPolicy](https://cloud.tencent.com/document/api/1021/70489) -* [DescribeCCThresholdList](https://cloud.tencent.com/document/api/1021/70488) +* [CreateCcBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95341) +* [DeleteCCLevelPolicy](https://cloud.tencent.com/document/api/297/95390) +* [DeleteCCThresholdPolicy](https://cloud.tencent.com/document/api/297/95387) +* [DescribeCCLevelList](https://cloud.tencent.com/document/api/297/95385) +* [DescribeCCLevelPolicy](https://cloud.tencent.com/document/api/297/95384) +* [DescribeCCThresholdList](https://cloud.tencent.com/document/api/297/95381) 新增数据结构: -* [CCLevelPolicy](https://cloud.tencent.com/document/api/1021/57582#CCLevelPolicy) -* [CCThresholdPolicy](https://cloud.tencent.com/document/api/1021/57582#CCThresholdPolicy) +* [CCLevelPolicy](https://cloud.tencent.com/document/api/297/95396#CCLevelPolicy) +* [CCThresholdPolicy](https://cloud.tencent.com/document/api/297/95396#CCThresholdPolicy) ### 第 22 次发布 @@ -2829,7 +2887,7 @@ 修改接口: -* [AssociateDDoSEipLoadBalancer](https://cloud.tencent.com/document/api/1021/59863) +* [AssociateDDoSEipLoadBalancer](https://cloud.tencent.com/document/api/297/95296) * 新增入参:Vip @@ -2844,37 +2902,37 @@ 新增接口: -* [CreateCCPrecisionPolicy](https://cloud.tencent.com/document/api/1021/69188) -* [CreateCCReqLimitPolicy](https://cloud.tencent.com/document/api/1021/69187) -* [CreateCcGeoIPBlockConfig](https://cloud.tencent.com/document/api/1021/69178) -* [DeleteCCPrecisionPolicy](https://cloud.tencent.com/document/api/1021/69186) -* [DeleteCCRequestLimitPolicy](https://cloud.tencent.com/document/api/1021/69185) -* [DeleteCcBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/69177) -* [DeleteCcGeoIPBlockConfig](https://cloud.tencent.com/document/api/1021/69176) -* [DeletePortAclConfig](https://cloud.tencent.com/document/api/1021/69175) -* [DescribeCCPrecisionPlyList](https://cloud.tencent.com/document/api/1021/69184) -* [DescribeCCReqLimitPolicyList](https://cloud.tencent.com/document/api/1021/69183) -* [DescribeCcBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/69174) -* [DescribeCcGeoIPBlockConfigList](https://cloud.tencent.com/document/api/1021/69173) -* [ModifyCCLevelPolicy](https://cloud.tencent.com/document/api/1021/69182) -* [ModifyCCPrecisionPolicy](https://cloud.tencent.com/document/api/1021/69181) -* [ModifyCCReqLimitPolicy](https://cloud.tencent.com/document/api/1021/69180) -* [ModifyCCThresholdPolicy](https://cloud.tencent.com/document/api/1021/69179) -* [ModifyCcBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/69172) -* [ModifyDDoSBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/69171) -* [ModifyDDoSLevel](https://cloud.tencent.com/document/api/1021/69191) -* [ModifyDDoSThreshold](https://cloud.tencent.com/document/api/1021/69190) -* [ModifyPortAclConfig](https://cloud.tencent.com/document/api/1021/69170) +* [CreateCCPrecisionPolicy](https://cloud.tencent.com/document/api/297/95392) +* [CreateCCReqLimitPolicy](https://cloud.tencent.com/document/api/297/95391) +* [CreateCcGeoIPBlockConfig](https://cloud.tencent.com/document/api/297/95340) +* [DeleteCCPrecisionPolicy](https://cloud.tencent.com/document/api/297/95389) +* [DeleteCCRequestLimitPolicy](https://cloud.tencent.com/document/api/297/95388) +* [DeleteCcBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95328) +* [DeleteCcGeoIPBlockConfig](https://cloud.tencent.com/document/api/297/95327) +* [DeletePortAclConfig](https://cloud.tencent.com/document/api/297/95322) +* [DescribeCCPrecisionPlyList](https://cloud.tencent.com/document/api/297/95383) +* [DescribeCCReqLimitPolicyList](https://cloud.tencent.com/document/api/297/95382) +* [DescribeCcBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95318) +* [DescribeCcGeoIPBlockConfigList](https://cloud.tencent.com/document/api/297/95317) +* [ModifyCCLevelPolicy](https://cloud.tencent.com/document/api/297/95380) +* [ModifyCCPrecisionPolicy](https://cloud.tencent.com/document/api/297/95379) +* [ModifyCCReqLimitPolicy](https://cloud.tencent.com/document/api/297/95378) +* [ModifyCCThresholdPolicy](https://cloud.tencent.com/document/api/297/95377) +* [ModifyCcBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95305) +* [ModifyDDoSBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95304) +* [ModifyDDoSLevel](https://cloud.tencent.com/document/api/297/95395) +* [ModifyDDoSThreshold](https://cloud.tencent.com/document/api/297/95394) +* [ModifyPortAclConfig](https://cloud.tencent.com/document/api/297/95300) 新增数据结构: -* [CCPrecisionPlyRecord](https://cloud.tencent.com/document/api/1021/57582#CCPrecisionPlyRecord) -* [CCPrecisionPolicy](https://cloud.tencent.com/document/api/1021/57582#CCPrecisionPolicy) -* [CCReqLimitPolicy](https://cloud.tencent.com/document/api/1021/57582#CCReqLimitPolicy) -* [CCReqLimitPolicyRecord](https://cloud.tencent.com/document/api/1021/57582#CCReqLimitPolicyRecord) -* [CcBlackWhiteIpPolicy](https://cloud.tencent.com/document/api/1021/57582#CcBlackWhiteIpPolicy) -* [CcGeoIPBlockConfig](https://cloud.tencent.com/document/api/1021/57582#CcGeoIPBlockConfig) -* [CcGeoIpPolicyNew](https://cloud.tencent.com/document/api/1021/57582#CcGeoIpPolicyNew) +* [CCPrecisionPlyRecord](https://cloud.tencent.com/document/api/297/95396#CCPrecisionPlyRecord) +* [CCPrecisionPolicy](https://cloud.tencent.com/document/api/297/95396#CCPrecisionPolicy) +* [CCReqLimitPolicy](https://cloud.tencent.com/document/api/297/95396#CCReqLimitPolicy) +* [CCReqLimitPolicyRecord](https://cloud.tencent.com/document/api/297/95396#CCReqLimitPolicyRecord) +* [CcBlackWhiteIpPolicy](https://cloud.tencent.com/document/api/297/95396#CcBlackWhiteIpPolicy) +* [CcGeoIPBlockConfig](https://cloud.tencent.com/document/api/297/95396#CcGeoIPBlockConfig) +* [CcGeoIpPolicyNew](https://cloud.tencent.com/document/api/297/95396#CcGeoIpPolicyNew) ### 第 20 次发布 @@ -2886,13 +2944,13 @@ 新增接口: -* [DescribeDDoSConnectLimitList](https://cloud.tencent.com/document/api/1021/68398) -* [DescribeListPortAclList](https://cloud.tencent.com/document/api/1021/68397) +* [DescribeDDoSConnectLimitList](https://cloud.tencent.com/document/api/297/95315) +* [DescribeListPortAclList](https://cloud.tencent.com/document/api/297/95309) 新增数据结构: -* [AclConfigRelation](https://cloud.tencent.com/document/api/1021/57582#AclConfigRelation) -* [ConnectLimitRelation](https://cloud.tencent.com/document/api/1021/57582#ConnectLimitRelation) +* [AclConfigRelation](https://cloud.tencent.com/document/api/297/95396#AclConfigRelation) +* [ConnectLimitRelation](https://cloud.tencent.com/document/api/297/95396#ConnectLimitRelation) ### 第 19 次发布 @@ -2904,11 +2962,11 @@ 新增接口: -* [CreateDDoSConnectLimit](https://cloud.tencent.com/document/api/1021/68352) +* [CreateDDoSConnectLimit](https://cloud.tencent.com/document/api/297/95337) 新增数据结构: -* [ConnectLimitConfig](https://cloud.tencent.com/document/api/1021/57582#ConnectLimitConfig) +* [ConnectLimitConfig](https://cloud.tencent.com/document/api/297/95396#ConnectLimitConfig) ### 第 18 次发布 @@ -2920,12 +2978,12 @@ 新增接口: -* [CreatePortAclConfig](https://cloud.tencent.com/document/api/1021/68253) -* [CreatePortAclConfigList](https://cloud.tencent.com/document/api/1021/68252) +* [CreatePortAclConfig](https://cloud.tencent.com/document/api/297/95333) +* [CreatePortAclConfigList](https://cloud.tencent.com/document/api/297/95332) 新增数据结构: -* [AclConfig](https://cloud.tencent.com/document/api/1021/57582#AclConfig) +* [AclConfig](https://cloud.tencent.com/document/api/297/95396#AclConfig) ### 第 17 次发布 @@ -2937,13 +2995,13 @@ 新增接口: -* [CreateDDoSBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/66356) -* [DeleteDDoSBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/66355) -* [DescribeDDoSBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/66354) +* [CreateDDoSBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95338) +* [DeleteDDoSBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95326) +* [DescribeDDoSBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95316) 新增数据结构: -* [IpSegment](https://cloud.tencent.com/document/api/1021/57582#IpSegment) +* [IpSegment](https://cloud.tencent.com/document/api/297/95396#IpSegment) ### 第 16 次发布 @@ -2955,11 +3013,11 @@ 修改接口: -* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/1021/57524) +* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/297/95347) * 新增入参:FilterStatus -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) * 新增入参:FilterStatus, FilterBoundStatus @@ -2974,7 +3032,7 @@ 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:V6Flag @@ -2989,11 +3047,11 @@ 新增接口: -* [ModifyNewDomainRules](https://cloud.tencent.com/document/api/1021/64631) +* [ModifyNewDomainRules](https://cloud.tencent.com/document/api/297/95367) 新增数据结构: -* [NewL7RuleEntry](https://cloud.tencent.com/document/api/1021/57582#NewL7RuleEntry) +* [NewL7RuleEntry](https://cloud.tencent.com/document/api/297/95396#NewL7RuleEntry) ### 第 13 次发布 @@ -3005,14 +3063,14 @@ 修改接口: -* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/1021/57524) +* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/297/95347) * 新增入参:FilterDamDDoSStatus 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:DamDDoSStatus @@ -3027,7 +3085,7 @@ 修改数据结构: -* [L4RuleSource](https://cloud.tencent.com/document/api/1021/57582#L4RuleSource) +* [L4RuleSource](https://cloud.tencent.com/document/api/297/95396#L4RuleSource) * 新增成员:Port @@ -3042,7 +3100,7 @@ 修改数据结构: -* [L7RuleEntry](https://cloud.tencent.com/document/api/1021/57582#L7RuleEntry) +* [L7RuleEntry](https://cloud.tencent.com/document/api/297/95396#L7RuleEntry) * 新增成员:Id @@ -3057,13 +3115,13 @@ 新增接口: -* [DescribeBizTrend](https://cloud.tencent.com/document/api/1021/60144) -* [DescribeCCTrend](https://cloud.tencent.com/document/api/1021/60143) -* [DescribeDDoSTrend](https://cloud.tencent.com/document/api/1021/60142) +* [DescribeBizTrend](https://cloud.tencent.com/document/api/297/95359) +* [DescribeCCTrend](https://cloud.tencent.com/document/api/297/95358) +* [DescribeDDoSTrend](https://cloud.tencent.com/document/api/297/95357) 新增数据结构: -* [ProtocolPort](https://cloud.tencent.com/document/api/1021/57582#ProtocolPort) +* [ProtocolPort](https://cloud.tencent.com/document/api/297/95396#ProtocolPort) ### 第 9 次发布 @@ -3075,7 +3133,7 @@ 修改数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) * 新增成员:Domain @@ -3090,7 +3148,7 @@ 新增接口: -* [AssociateDDoSEipLoadBalancer](https://cloud.tencent.com/document/api/1021/59863) +* [AssociateDDoSEipLoadBalancer](https://cloud.tencent.com/document/api/297/95296) ### 第 7 次发布 @@ -3102,12 +3160,12 @@ 新增接口: -* [ModifyL7RulesEdge](https://cloud.tencent.com/document/api/1021/59510) +* [ModifyL7RulesEdge](https://cloud.tencent.com/document/api/#/#) 新增数据结构: -* [L4RuleSource](https://cloud.tencent.com/document/api/1021/57582#L4RuleSource) -* [L7RuleEntry](https://cloud.tencent.com/document/api/1021/57582#L7RuleEntry) +* [L4RuleSource](https://cloud.tencent.com/document/api/297/95396#L4RuleSource) +* [L7RuleEntry](https://cloud.tencent.com/document/api/297/95396#L7RuleEntry) ### 第 6 次发布 @@ -3119,11 +3177,11 @@ 新增接口: -* [DescribeBasicDeviceStatus](https://cloud.tencent.com/document/api/1021/59237) +* [DescribeBasicDeviceStatus](https://cloud.tencent.com/document/api/297/95386) 新增数据结构: -* [KeyValue](https://cloud.tencent.com/document/api/1021/57582#KeyValue) +* [KeyValue](https://cloud.tencent.com/document/api/297/95396#KeyValue) ### 第 5 次发布 @@ -3135,15 +3193,15 @@ 新增接口: -* [SwitchWaterPrintConfig](https://cloud.tencent.com/document/api/1021/59001) +* [SwitchWaterPrintConfig](https://cloud.tencent.com/document/api/297/95299) 修改数据结构: -* [ForwardListener](https://cloud.tencent.com/document/api/1021/57582#ForwardListener) +* [ForwardListener](https://cloud.tencent.com/document/api/297/95396#ForwardListener) * 新增成员:FrontendPortEnd -* [WaterPrintConfig](https://cloud.tencent.com/document/api/1021/57582#WaterPrintConfig) +* [WaterPrintConfig](https://cloud.tencent.com/document/api/297/95396#WaterPrintConfig) * 新增成员:Verify @@ -3158,22 +3216,22 @@ 新增接口: -* [CreateBoundIP](https://cloud.tencent.com/document/api/1021/57763) +* [CreateBoundIP](https://cloud.tencent.com/document/api/297/95349) 修改接口: -* [CreateL7RuleCerts](https://cloud.tencent.com/document/api/1021/57742) +* [CreateL7RuleCerts](https://cloud.tencent.com/document/api/297/95370) * 新增入参:CertId, L7Rules -* [DescribeL7RulesBySSLCertId](https://cloud.tencent.com/document/api/1021/57740) +* [DescribeL7RulesBySSLCertId](https://cloud.tencent.com/document/api/297/95348) * 新增入参:Status, CertIds 新增数据结构: -* [BoundIpInfo](https://cloud.tencent.com/document/api/1021/57582#BoundIpInfo) +* [BoundIpInfo](https://cloud.tencent.com/document/api/297/95396#BoundIpInfo) ### 第 3 次发布 @@ -3185,14 +3243,14 @@ 新增接口: -* [CreateL7RuleCerts](https://cloud.tencent.com/document/api/1021/57742) -* [DescribeL7RulesBySSLCertId](https://cloud.tencent.com/document/api/1021/57740) +* [CreateL7RuleCerts](https://cloud.tencent.com/document/api/297/95370) +* [DescribeL7RulesBySSLCertId](https://cloud.tencent.com/document/api/297/95348) 新增数据结构: -* [CertIdInsL7Rules](https://cloud.tencent.com/document/api/1021/57582#CertIdInsL7Rules) -* [InsL7Rules](https://cloud.tencent.com/document/api/1021/57582#InsL7Rules) -* [SuccessCode](https://cloud.tencent.com/document/api/1021/57582#SuccessCode) +* [CertIdInsL7Rules](https://cloud.tencent.com/document/api/297/95396#CertIdInsL7Rules) +* [InsL7Rules](https://cloud.tencent.com/document/api/297/95396#InsL7Rules) +* [SuccessCode](https://cloud.tencent.com/document/api/297/95396#SuccessCode) ### 第 2 次发布 @@ -3204,7 +3262,7 @@ 修改数据结构: -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) * 新增成员:DDoSLevel, CCEnable @@ -3219,86 +3277,86 @@ 新增接口: -* [AssociateDDoSEipAddress](https://cloud.tencent.com/document/api/1021/57525) -* [CreateBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/57553) -* [CreateDDoSAI](https://cloud.tencent.com/document/api/1021/57552) -* [CreateDDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/1021/57551) -* [CreateDDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/1021/57550) -* [CreateDefaultAlarmThreshold](https://cloud.tencent.com/document/api/1021/57562) -* [CreateIPAlarmThresholdConfig](https://cloud.tencent.com/document/api/1021/57561) -* [CreatePacketFilterConfig](https://cloud.tencent.com/document/api/1021/57549) -* [CreateProtocolBlockConfig](https://cloud.tencent.com/document/api/1021/57548) -* [CreateSchedulingDomain](https://cloud.tencent.com/document/api/1021/57557) -* [CreateWaterPrintConfig](https://cloud.tencent.com/document/api/1021/57547) -* [CreateWaterPrintKey](https://cloud.tencent.com/document/api/1021/57546) -* [DeleteBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/57545) -* [DeleteDDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/1021/57544) -* [DeleteDDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/1021/57543) -* [DeletePacketFilterConfig](https://cloud.tencent.com/document/api/1021/57542) -* [DeleteWaterPrintConfig](https://cloud.tencent.com/document/api/1021/57541) -* [DeleteWaterPrintKey](https://cloud.tencent.com/document/api/1021/57540) -* [DescribeBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/57539) -* [DescribeDefaultAlarmThreshold](https://cloud.tencent.com/document/api/1021/57560) -* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/1021/57524) -* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/1021/57521) -* [DescribeListBlackWhiteIpList](https://cloud.tencent.com/document/api/1021/57538) -* [DescribeListDDoSAI](https://cloud.tencent.com/document/api/1021/57537) -* [DescribeListDDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/1021/57536) -* [DescribeListDDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/1021/57535) -* [DescribeListIPAlarmConfig](https://cloud.tencent.com/document/api/1021/57559) -* [DescribeListListener](https://cloud.tencent.com/document/api/1021/57534) -* [DescribeListPacketFilterConfig](https://cloud.tencent.com/document/api/1021/57533) -* [DescribeListProtectThresholdConfig](https://cloud.tencent.com/document/api/1021/57532) -* [DescribeListProtocolBlockConfig](https://cloud.tencent.com/document/api/1021/57531) -* [DescribeListSchedulingDomain](https://cloud.tencent.com/document/api/1021/57556) -* [DescribeListWaterPrintConfig](https://cloud.tencent.com/document/api/1021/57530) -* [DisassociateDDoSEipAddress](https://cloud.tencent.com/document/api/1021/57523) -* [ModifyDDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/1021/57529) -* [ModifyDDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/1021/57528) -* [ModifyDomainUsrName](https://cloud.tencent.com/document/api/1021/57555) -* [ModifyPacketFilterConfig](https://cloud.tencent.com/document/api/1021/57527) +* [AssociateDDoSEipAddress](https://cloud.tencent.com/document/api/297/95297) +* [CreateBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95342) +* [CreateDDoSAI](https://cloud.tencent.com/document/api/297/95339) +* [CreateDDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/297/95336) +* [CreateDDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/297/95335) +* [CreateDefaultAlarmThreshold](https://cloud.tencent.com/document/api/297/95375) +* [CreateIPAlarmThresholdConfig](https://cloud.tencent.com/document/api/297/95374) +* [CreatePacketFilterConfig](https://cloud.tencent.com/document/api/297/95334) +* [CreateProtocolBlockConfig](https://cloud.tencent.com/document/api/297/95331) +* [CreateSchedulingDomain](https://cloud.tencent.com/document/api/297/95365) +* [CreateWaterPrintConfig](https://cloud.tencent.com/document/api/297/95330) +* [CreateWaterPrintKey](https://cloud.tencent.com/document/api/297/95329) +* [DeleteBlackWhiteIpList](https://cloud.tencent.com/document/api/#/#) +* [DeleteDDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/297/95325) +* [DeleteDDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/297/95324) +* [DeletePacketFilterConfig](https://cloud.tencent.com/document/api/297/95323) +* [DeleteWaterPrintConfig](https://cloud.tencent.com/document/api/297/95321) +* [DeleteWaterPrintKey](https://cloud.tencent.com/document/api/297/95320) +* [DescribeBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95319) +* [DescribeDefaultAlarmThreshold](https://cloud.tencent.com/document/api/297/95373) +* [DescribeListBGPIPInstances](https://cloud.tencent.com/document/api/297/95347) +* [DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346) +* [DescribeListBlackWhiteIpList](https://cloud.tencent.com/document/api/297/95314) +* [DescribeListDDoSAI](https://cloud.tencent.com/document/api/297/95313) +* [DescribeListDDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/297/95312) +* [DescribeListDDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/297/95311) +* [DescribeListIPAlarmConfig](https://cloud.tencent.com/document/api/297/95372) +* [DescribeListListener](https://cloud.tencent.com/document/api/297/95345) +* [DescribeListPacketFilterConfig](https://cloud.tencent.com/document/api/297/95310) +* [DescribeListProtectThresholdConfig](https://cloud.tencent.com/document/api/297/95308) +* [DescribeListProtocolBlockConfig](https://cloud.tencent.com/document/api/297/95307) +* [DescribeListSchedulingDomain](https://cloud.tencent.com/document/api/297/95364) +* [DescribeListWaterPrintConfig](https://cloud.tencent.com/document/api/297/95306) +* [DisassociateDDoSEipAddress](https://cloud.tencent.com/document/api/297/95295) +* [ModifyDDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/297/95303) +* [ModifyDDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/297/95302) +* [ModifyDomainUsrName](https://cloud.tencent.com/document/api/297/95363) +* [ModifyPacketFilterConfig](https://cloud.tencent.com/document/api/297/95301) 新增数据结构: -* [BGPIPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstance) -* [BGPIPInstanceSpecification](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstanceSpecification) -* [BGPIPInstanceUsages](https://cloud.tencent.com/document/api/1021/57582#BGPIPInstanceUsages) -* [BGPInstance](https://cloud.tencent.com/document/api/1021/57582#BGPInstance) -* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/1021/57582#BGPInstanceSpecification) -* [BGPInstanceUsages](https://cloud.tencent.com/document/api/1021/57582#BGPInstanceUsages) -* [BlackWhiteIpRelation](https://cloud.tencent.com/document/api/1021/57582#BlackWhiteIpRelation) -* [DDoSAIRelation](https://cloud.tencent.com/document/api/1021/57582#DDoSAIRelation) -* [DDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/1021/57582#DDoSGeoIPBlockConfig) -* [DDoSGeoIPBlockConfigRelation](https://cloud.tencent.com/document/api/1021/57582#DDoSGeoIPBlockConfigRelation) -* [DDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/1021/57582#DDoSSpeedLimitConfig) -* [DDoSSpeedLimitConfigRelation](https://cloud.tencent.com/document/api/1021/57582#DDoSSpeedLimitConfigRelation) -* [DefaultAlarmThreshold](https://cloud.tencent.com/document/api/1021/57582#DefaultAlarmThreshold) -* [EipAddressPackRelation](https://cloud.tencent.com/document/api/1021/57582#EipAddressPackRelation) -* [EipAddressRelation](https://cloud.tencent.com/document/api/1021/57582#EipAddressRelation) -* [EipProductInfo](https://cloud.tencent.com/document/api/1021/57582#EipProductInfo) -* [ForwardListener](https://cloud.tencent.com/document/api/1021/57582#ForwardListener) -* [IPAlarmThresholdRelation](https://cloud.tencent.com/document/api/1021/57582#IPAlarmThresholdRelation) -* [IPLineInfo](https://cloud.tencent.com/document/api/1021/57582#IPLineInfo) -* [InstanceRelation](https://cloud.tencent.com/document/api/1021/57582#InstanceRelation) -* [Layer4Rule](https://cloud.tencent.com/document/api/1021/57582#Layer4Rule) -* [Layer7Rule](https://cloud.tencent.com/document/api/1021/57582#Layer7Rule) -* [ListenerCcThreholdConfig](https://cloud.tencent.com/document/api/1021/57582#ListenerCcThreholdConfig) -* [PackInfo](https://cloud.tencent.com/document/api/1021/57582#PackInfo) -* [PacketFilterConfig](https://cloud.tencent.com/document/api/1021/57582#PacketFilterConfig) -* [PacketFilterRelation](https://cloud.tencent.com/document/api/1021/57582#PacketFilterRelation) -* [PortSegment](https://cloud.tencent.com/document/api/1021/57582#PortSegment) -* [ProtectThresholdRelation](https://cloud.tencent.com/document/api/1021/57582#ProtectThresholdRelation) -* [ProtocolBlockConfig](https://cloud.tencent.com/document/api/1021/57582#ProtocolBlockConfig) -* [ProtocolBlockRelation](https://cloud.tencent.com/document/api/1021/57582#ProtocolBlockRelation) -* [ProxyTypeInfo](https://cloud.tencent.com/document/api/1021/57582#ProxyTypeInfo) -* [RegionInfo](https://cloud.tencent.com/document/api/1021/57582#RegionInfo) -* [SchedulingDomainInfo](https://cloud.tencent.com/document/api/1021/57582#SchedulingDomainInfo) -* [SourceServer](https://cloud.tencent.com/document/api/1021/57582#SourceServer) -* [SpeedValue](https://cloud.tencent.com/document/api/1021/57582#SpeedValue) -* [StaticPackRelation](https://cloud.tencent.com/document/api/1021/57582#StaticPackRelation) -* [WaterPrintConfig](https://cloud.tencent.com/document/api/1021/57582#WaterPrintConfig) -* [WaterPrintKey](https://cloud.tencent.com/document/api/1021/57582#WaterPrintKey) -* [WaterPrintRelation](https://cloud.tencent.com/document/api/1021/57582#WaterPrintRelation) +* [BGPIPInstance](https://cloud.tencent.com/document/api/297/95396#BGPIPInstance) +* [BGPIPInstanceSpecification](https://cloud.tencent.com/document/api/297/95396#BGPIPInstanceSpecification) +* [BGPIPInstanceUsages](https://cloud.tencent.com/document/api/297/95396#BGPIPInstanceUsages) +* [BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance) +* [BGPInstanceSpecification](https://cloud.tencent.com/document/api/297/95396#BGPInstanceSpecification) +* [BGPInstanceUsages](https://cloud.tencent.com/document/api/297/95396#BGPInstanceUsages) +* [BlackWhiteIpRelation](https://cloud.tencent.com/document/api/297/95396#BlackWhiteIpRelation) +* [DDoSAIRelation](https://cloud.tencent.com/document/api/297/95396#DDoSAIRelation) +* [DDoSGeoIPBlockConfig](https://cloud.tencent.com/document/api/297/95396#DDoSGeoIPBlockConfig) +* [DDoSGeoIPBlockConfigRelation](https://cloud.tencent.com/document/api/297/95396#DDoSGeoIPBlockConfigRelation) +* [DDoSSpeedLimitConfig](https://cloud.tencent.com/document/api/297/95396#DDoSSpeedLimitConfig) +* [DDoSSpeedLimitConfigRelation](https://cloud.tencent.com/document/api/297/95396#DDoSSpeedLimitConfigRelation) +* [DefaultAlarmThreshold](https://cloud.tencent.com/document/api/297/95396#DefaultAlarmThreshold) +* [EipAddressPackRelation](https://cloud.tencent.com/document/api/297/95396#EipAddressPackRelation) +* [EipAddressRelation](https://cloud.tencent.com/document/api/297/95396#EipAddressRelation) +* [EipProductInfo](https://cloud.tencent.com/document/api/297/95396#EipProductInfo) +* [ForwardListener](https://cloud.tencent.com/document/api/297/95396#ForwardListener) +* [IPAlarmThresholdRelation](https://cloud.tencent.com/document/api/297/95396#IPAlarmThresholdRelation) +* [IPLineInfo](https://cloud.tencent.com/document/api/297/95396#IPLineInfo) +* [InstanceRelation](https://cloud.tencent.com/document/api/297/95396#InstanceRelation) +* [Layer4Rule](https://cloud.tencent.com/document/api/297/95396#Layer4Rule) +* [Layer7Rule](https://cloud.tencent.com/document/api/297/95396#Layer7Rule) +* [ListenerCcThreholdConfig](https://cloud.tencent.com/document/api/297/95396#ListenerCcThreholdConfig) +* [PackInfo](https://cloud.tencent.com/document/api/297/95396#PackInfo) +* [PacketFilterConfig](https://cloud.tencent.com/document/api/297/95396#PacketFilterConfig) +* [PacketFilterRelation](https://cloud.tencent.com/document/api/297/95396#PacketFilterRelation) +* [PortSegment](https://cloud.tencent.com/document/api/297/95396#PortSegment) +* [ProtectThresholdRelation](https://cloud.tencent.com/document/api/297/95396#ProtectThresholdRelation) +* [ProtocolBlockConfig](https://cloud.tencent.com/document/api/297/95396#ProtocolBlockConfig) +* [ProtocolBlockRelation](https://cloud.tencent.com/document/api/297/95396#ProtocolBlockRelation) +* [ProxyTypeInfo](https://cloud.tencent.com/document/api/297/95396#ProxyTypeInfo) +* [RegionInfo](https://cloud.tencent.com/document/api/297/95396#RegionInfo) +* [SchedulingDomainInfo](https://cloud.tencent.com/document/api/297/95396#SchedulingDomainInfo) +* [SourceServer](https://cloud.tencent.com/document/api/297/95396#SourceServer) +* [SpeedValue](https://cloud.tencent.com/document/api/297/95396#SpeedValue) +* [StaticPackRelation](https://cloud.tencent.com/document/api/297/95396#StaticPackRelation) +* [WaterPrintConfig](https://cloud.tencent.com/document/api/297/95396#WaterPrintConfig) +* [WaterPrintKey](https://cloud.tencent.com/document/api/297/95396#WaterPrintKey) +* [WaterPrintRelation](https://cloud.tencent.com/document/api/297/95396#WaterPrintRelation) @@ -3526,6 +3584,22 @@ ## API 网关(apigateway) 版本:2018-08-08 +### 第 42 次发布 + +发布时间:2023-07-27 01:06:01 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* GenerateApiDocument + +**删除数据结构**: + +* DocumentSDK + ### 第 41 次发布 发布时间:2023-07-14 01:02:00 @@ -6254,6 +6328,22 @@ ## 语音识别(asr) 版本:2019-06-14 +### 第 30 次发布 + +发布时间:2023-08-08 01:06:35 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [VoicePrintCount](https://cloud.tencent.com/document/api/1093/96061) + +新增数据结构: + +* [VoicePrintCountData](https://cloud.tencent.com/document/api/1093/37824#VoicePrintCountData) + ### 第 29 次发布 发布时间:2023-07-18 01:07:49 @@ -9900,6 +9990,23 @@ ## 品牌经营管家(bma) 版本:2022-11-15 +### 第 9 次发布 + +发布时间:2023-07-28 01:09:00 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [FakeURLData](https://cloud.tencent.com/document/api/1296/86604#FakeURLData) + + * 新增成员:AuditStatus + + * **修改成员**:FakeURLId, BrandName, Origin, FakeURL, FakeDomain, Heat, BlockStatus, BlockNote, OfflineStatus, OfflineNote, IP, IPLocation, WebCompany, WebAttribute, WebName, WebICP, WebCreateTime, WebExpireTime, InsertTime, CertificationStatus, Snapshot, AccountStatus + + ### 第 8 次发布 发布时间:2023-05-18 01:05:33 @@ -10651,6 +10758,21 @@ ## 业务风险情报(bri) 版本:2019-03-28 +### 第 4 次发布 + +发布时间:2023-08-03 12:20:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [BRIRequest](https://cloud.tencent.com/document/api/1064/35632#BRIRequest) + + * 新增成员:SubAppid + + ### 第 3 次发布 发布时间:2020-10-19 08:01:54 @@ -12570,6 +12692,24 @@ ## 云硬盘(cbs) 版本:2017-03-12 +### 第 51 次发布 + +发布时间:2023-07-24 01:12:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* DescribeDiskOperationLogs +* DescribeSnapshotOperationLogs + +**删除数据结构**: + +* DiskOperationLog +* SnapshotOperationLog + ### 第 50 次发布 发布时间:2023-05-23 01:06:09 @@ -13581,6 +13721,37 @@ ## 云呼叫中心(ccc) 版本:2020-02-10 +### 第 53 次发布 + +发布时间:2023-08-08 01:09:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateAdminURL](https://cloud.tencent.com/document/api/679/96062) + +### 第 52 次发布 + +发布时间:2023-07-28 01:10:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [SdkAppIdBuyInfo](https://cloud.tencent.com/document/api/679/47715#SdkAppIdBuyInfo) + + * 新增成员:SipBuyNum + +* [StaffBuyInfo](https://cloud.tencent.com/document/api/679/47715#StaffBuyInfo) + + * 新增成员:SipNum + + ### 第 51 次发布 发布时间:2023-06-30 01:11:07 @@ -14496,6 +14667,64 @@ ## 云数据库 MySQL(cdb) 版本:2017-03-20 +### 第 141 次发布 + +发布时间:2023-08-07 01:07:06 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeCpuExpandStrategy](https://cloud.tencent.com/document/api/236/96018) +* [StartCpuExpand](https://cloud.tencent.com/document/api/236/96017) +* [StopCpuExpand](https://cloud.tencent.com/document/api/236/96016) + +### 第 140 次发布 + +发布时间:2023-07-31 01:10:35 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [RoInstanceInfo](https://cloud.tencent.com/document/api/236/15878#RoInstanceInfo) + + * **修改成员**:MasterInstanceId, RoStatus, OfflineTime, Weight, Region, Zone, InstanceId, Status, InstanceType, InstanceName, HourFeeStatus, TaskStatus, Memory, Volume, Qps, Vip, Vport, VpcId, SubnetId, DeviceType, EngineVersion, DeadlineTime, PayType + + +### 第 139 次发布 + +发布时间:2023-07-24 01:13:25 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* DescribeCDBProxy +* DescribeProxyConnectionPoolConf +* ModifyCDBProxyConnectionPool +* ModifyCDBProxyVipVPort +* QueryCDBProxy + +**删除数据结构**: + +* Address +* BaseGroupInfo +* ConnectionPoolInfo +* PoolConf +* ProxyGroup +* ProxyGroups +* ProxyNodeInfo +* RWInfo +* RWInfos +* RWInstanceInfo + ### 第 138 次发布 发布时间:2023-07-20 01:13:27 @@ -20463,6 +20692,29 @@ ## 混沌演练平台(cfg) 版本:2021-08-20 +### 第 9 次发布 + +发布时间:2023-07-25 10:44:01 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeTaskList](https://cloud.tencent.com/document/api/1500/71779) + + * 新增入参:Filters + +* [DescribeTemplateList](https://cloud.tencent.com/document/api/1500/71773) + + * 新增入参:Filters + + +新增数据结构: + +* [ActionFilter](https://cloud.tencent.com/document/api/1500/71784#ActionFilter) + ### 第 8 次发布 发布时间:2023-06-29 01:09:00 @@ -20646,6 +20898,21 @@ ## 文件存储(cfs) 版本:2019-07-19 +### 第 25 次发布 + +发布时间:2023-07-27 01:09:08 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeCfsFileSystems](https://cloud.tencent.com/document/api/582/38170) + + * 新增入参:Offset, Limit + + ### 第 24 次发布 发布时间:2023-07-14 01:07:56 @@ -22732,6 +22999,22 @@ ## 消息队列 CKafka(ckafka) 版本:2019-08-19 +### 第 90 次发布 + +发布时间:2023-07-25 10:45:07 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [InstanceScalingDown](https://cloud.tencent.com/document/api/597/95460) + +新增数据结构: + +* [ScalingDownResp](https://cloud.tencent.com/document/api/597/40861#ScalingDownResp) + ### 第 89 次发布 发布时间:2023-07-18 01:18:06 @@ -27074,6 +27357,21 @@ ## Cloud Studio(云端 IDE)(cloudstudio) 版本:2023-05-08 +### 第 4 次发布 + +发布时间:2023-07-24 01:17:40 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateWorkspaceToken](https://cloud.tencent.com/document/api/1039/94095) + + * 新增入参:Policies + + ### 第 3 次发布 发布时间:2023-07-20 01:17:13 @@ -27134,6 +27432,172 @@ ## 日志服务(cls) 版本:2020-10-16 +### 第 65 次发布 + +发布时间:2023-08-08 01:11:32 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateMachineGroup](https://cloud.tencent.com/document/api/614/56440) + + * 新增入参:OSType + + +新增数据结构: + +* [EventLog](https://cloud.tencent.com/document/api/614/56471#EventLog) + +修改数据结构: + +* [ExtractRuleInfo](https://cloud.tencent.com/document/api/614/56471#ExtractRuleInfo) + + * 新增成员:EventLogRules + +* [MachineGroupInfo](https://cloud.tencent.com/document/api/614/56471#MachineGroupInfo) + + * 新增成员:OSType + + +### 第 64 次发布 + +发布时间:2023-08-03 01:03:31 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeKafkaConsumer](https://cloud.tencent.com/document/api/614/95719) + + * 新增出参:ConsumerContent + +* [ModifyKafkaConsumer](https://cloud.tencent.com/document/api/614/95720) + + * 新增入参:ConsumerContent + + +### 第 63 次发布 + +发布时间:2023-08-02 01:08:23 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeKafkaUser](https://cloud.tencent.com/document/api/614/95781) + +### 第 62 次发布 + +发布时间:2023-08-01 01:11:03 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeKafkaConsumer](https://cloud.tencent.com/document/api/614/95719) +* [ModifyKafkaConsumer](https://cloud.tencent.com/document/api/614/95720) + +### 第 61 次发布 + +发布时间:2023-07-31 16:20:55 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateConfigExtra](https://cloud.tencent.com/document/api/614/71166) + + * 新增入参:AdvancedConfig + +* [ModifyConfig](https://cloud.tencent.com/document/api/614/58614) + + * 新增入参:AdvancedConfig + +* [ModifyConfigExtra](https://cloud.tencent.com/document/api/614/71163) + + * 新增入参:AdvancedConfig + + +修改数据结构: + +* [ConfigExtraInfo](https://cloud.tencent.com/document/api/614/56471#ConfigExtraInfo) + + * 新增成员:AdvancedConfig + +* [ConfigInfo](https://cloud.tencent.com/document/api/614/56471#ConfigInfo) + + * 新增成员:AdvancedConfig + + +### 第 60 次发布 + +发布时间:2023-07-28 01:15:40 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeDashboards](https://cloud.tencent.com/document/api/614/95636) + +新增数据结构: + +* [DashboardInfo](https://cloud.tencent.com/document/api/614/56471#DashboardInfo) +* [DashboardTopicInfo](https://cloud.tencent.com/document/api/614/56471#DashboardTopicInfo) +* [TopicIdAndRegion](https://cloud.tencent.com/document/api/614/56471#TopicIdAndRegion) + +修改数据结构: + +* [ScheduledSqlResouceInfo](https://cloud.tencent.com/document/api/614/56471#ScheduledSqlResouceInfo) + + * 新增成员:BizType, MetricName + + +### 第 59 次发布 + +发布时间:2023-07-27 01:09:55 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [MachineGroupTypeInfo](https://cloud.tencent.com/document/api/614/56471#MachineGroupTypeInfo) + + * **修改成员**:Values + + +### 第 58 次发布 + +发布时间:2023-07-26 01:10:44 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DeleteScheduledSql](https://cloud.tencent.com/document/api/614/95520) +* [DescribeScheduledSqlInfo](https://cloud.tencent.com/document/api/614/95519) +* [ModifyScheduledSql](https://cloud.tencent.com/document/api/614/95518) + +新增数据结构: + +* [ScheduledSqlTaskInfo](https://cloud.tencent.com/document/api/614/56471#ScheduledSqlTaskInfo) + ### 第 57 次发布 发布时间:2023-07-20 01:17:22 @@ -28289,6 +28753,36 @@ ## 多媒体创作引擎(cme) 版本:2019-10-29 +### 第 56 次发布 + +发布时间:2023-08-09 01:16:08 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [MediaCastOutputMediaSetting](https://cloud.tencent.com/document/api/1156/40360#MediaCastOutputMediaSetting) + + * 新增成员:FollowSourceInfo + + +### 第 55 次发布 + +发布时间:2023-07-21 01:14:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [MediaCastProjectInfo](https://cloud.tencent.com/document/api/1156/40360#MediaCastProjectInfo) + + * 新增成员:Duration + + ### 第 54 次发布 发布时间:2023-06-29 01:11:59 @@ -32754,6 +33248,78 @@ ## 云安全一体化平台(csip) 版本:2022-11-21 +### 第 8 次发布 + +发布时间:2023-08-09 01:17:49 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [[DescribeListenerList](https://cloud.tencent.com/document/api/664/96103)](https://cloud.tencent.com/document/api/#/#) + +新增数据结构: + +* [[ClbListenerListInfo](https://cloud.tencent.com/document/api/664/90825#ClbListenerListInfo)](https://cloud.tencent.com/document/api/664/90825#[ClbListenerListInfo](https://cloud.tencent.com/document/api/664/90825#ClbListenerListInfo)) + +### 第 7 次发布 + +发布时间:2023-08-08 01:12:25 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateRiskCenterScanTask](https://cloud.tencent.com/document/api/664/94177) + + * 新增出参:Status, UnAuthAsset + + +修改数据结构: + +* [AssetClusterPod](https://cloud.tencent.com/document/api/664/90825#AssetClusterPod) + + * 新增成员:IsNewAsset + + * **修改成员**:AppId, Uin, Nick, Region, AssetId, AssetName, InstanceCreateTime, Namespace, Status, ClusterId, ClusterName, MachineId, MachineName, PodIp, ServiceCount, ContainerCount, PublicIp, PrivateIp, IsCore + +* [CVMAssetVO](https://cloud.tencent.com/document/api/664/90825#CVMAssetVO) + + * 新增成员:IsNewAsset + +* [DBAssetVO](https://cloud.tencent.com/document/api/664/90825#DBAssetVO) + + * 新增成员:IsNewAsset + + * **修改成员**:AssetId, AssetName, AssetType, VpcId, VpcName, Region, Domain, AssetCreateTime, LastScanTime, ConfigurationRisk, Attack, Access, ScanTask, AppId, Uin, NickName, Port, Tag, PrivateIp, PublicIp, Status, IsCore + +* [DomainAssetVO](https://cloud.tencent.com/document/api/664/90825#DomainAssetVO) + + * 新增成员:IsNewAsset, VerifyDomain, VerifyTXTRecord, VerifyStatus + +* [IpAssetListVO](https://cloud.tencent.com/document/api/664/90825#IpAssetListVO) + + * 新增成员:IsNewAsset, VerifyStatus + + * **修改成员**:AssetId, AssetName, AssetType, Region, CFWStatus, AssetCreateTime, PublicIp, PublicIpType, VpcId, VpcName, AppId, Uin, NickName, IsCore, IsCloud, Attack, Access, Intercept, InBandwidth, OutBandwidth, InFlow, OutFlow, LastScanTime, PortRisk, VulnerabilityRisk, ConfigurationRisk, ScanTask, WeakPassword, WebContentRisk, Tag, AddressId, MemberId, RiskExposure + +* [SubnetAsset](https://cloud.tencent.com/document/api/664/90825#SubnetAsset) + + * 新增成员:IsNewAsset + + * **修改成员**:AppId, Uin, AssetId, AssetName, Region, VpcId, VpcName, Tag, Nick, CIDR, Zone, CVM, AvailableIp, CreateTime, ConfigureRisk, ScanTask, LastScanTime, IsCore + +* [Vpc](https://cloud.tencent.com/document/api/664/90825#Vpc) + + * 新增成员:IsNewAsset, IsCore + + * **修改成员**:Subnet, ConnectedVpc, AssetId, Region, CVM, Tag, DNS, AssetName, CIDR, CreateTime, AppId, Uin, Nick + + ### 第 6 次发布 发布时间:2023-07-18 01:21:16 @@ -35013,6 +35579,29 @@ ## 主机安全(cwp) 版本:2018-02-28 +### 第 92 次发布 + +发布时间:2023-07-28 01:18:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [EffectiveMachineInfo](https://cloud.tencent.com/document/api/296/19867#EffectiveMachineInfo) + + * **修改成员**:MachineName, MachinePublicIp, MachinePrivateIp, MachineTag, Quuid, Uuid, KernelVersion, MachineStatus, LicenseOrder, VulNum, CloudTags, InstanceID + +* [LicenseDetail](https://cloud.tencent.com/document/api/296/19867#LicenseDetail) + + * 新增成员:FreezeNum + +* [Machine](https://cloud.tencent.com/document/api/296/19867#Machine) + + * **修改成员**:MachineName, MachineOs, MachineStatus, Uuid, Quuid, VulNum, MachineIp, IsProVersion, MachineWanIp, PayMode, MalwareNum, Tag, BaselineNum, CyberAttackNum, SecurityStatus, InvasionNum, RegionInfo, InstanceState, LicenseStatus, ProjectId, HasAssetScan, MachineType, KernelVersion, ProtectType, CloudTags, IsAddedOnTheFifteen, IpList, VpcId, MachineExtraInfo, InstanceId + + ### 第 91 次发布 发布时间:2023-07-18 01:22:32 @@ -37803,6 +38392,70 @@ ## TDSQL-C MySQL 版(cynosdb) 版本:2019-01-07 +### 第 65 次发布 + +发布时间:2023-08-08 01:14:23 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [CynosdbClusterDetail](https://cloud.tencent.com/document/api/1003/48097#CynosdbClusterDetail) + + * **修改成员**:ResourcePackages, RenewFlag + + +### 第 64 次发布 + +发布时间:2023-08-02 01:13:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [OpenClusterReadOnlyInstanceGroupAccess](https://cloud.tencent.com/document/api/1003/95782) + +### 第 63 次发布 + +发布时间:2023-08-01 01:15:19 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeAccounts](https://cloud.tencent.com/document/api/1003/48075) + + * 新增入参:AccountRegular + + +修改数据结构: + +* [ClusterInstanceDetail](https://cloud.tencent.com/document/api/1003/48097#ClusterInstanceDetail) + + * 新增成员:MaintainStartTime, MaintainDuration, MaintainWeekDays + + +### 第 62 次发布 + +发布时间:2023-07-27 01:11:21 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ExportInstanceSlowQueries](https://cloud.tencent.com/document/api/1003/76368) + + * 新增入参:OrderBy, OrderByType + + ### 第 61 次发布 发布时间:2023-07-13 01:13:53 @@ -39090,6 +39743,44 @@ ## T-Sec-堡垒机(BH)(dasb) 版本:2019-10-18 +### 第 14 次发布 + +发布时间:2023-08-08 01:15:01 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeDevices](https://cloud.tencent.com/document/api/1025/74415) + + * 新增入参:ManagedAccount + + +### 第 13 次发布 + +发布时间:2023-08-02 01:13:55 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [Device](https://cloud.tencent.com/document/api/1025/74416#Device) + + * 新增成员:IpPortSet + +* [ExternalDevice](https://cloud.tencent.com/document/api/1025/74416#ExternalDevice) + + * 新增成员:IpPortSet + +* [Resource](https://cloud.tencent.com/document/api/1025/74416#Resource) + + * **修改成员**:LogDeliveryArgs + + ### 第 12 次发布 发布时间:2023-07-07 01:21:45 @@ -42506,6 +43197,57 @@ ## 数据湖计算 DLC(dlc) 版本:2021-01-25 +### 第 59 次发布 + +发布时间:2023-08-09 01:22:16 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateNotebookSession](https://cloud.tencent.com/document/api/1342/86113) + + * 新增入参:IsInherit + +* [CreateSparkSessionBatchSQL](https://cloud.tencent.com/document/api/1342/92838) + + * 新增入参:IsInherit + + +### 第 58 次发布 + +发布时间:2023-08-07 01:10:42 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeUserRoles](https://cloud.tencent.com/document/api/1342/96019) + +新增数据结构: + +* [CosPermission](https://cloud.tencent.com/document/api/1342/53778#CosPermission) +* [UserRole](https://cloud.tencent.com/document/api/1342/53778#UserRole) + +### 第 57 次发布 + +发布时间:2023-08-01 01:17:48 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [CommonMetrics](https://cloud.tencent.com/document/api/1342/53778#CommonMetrics) + + * **修改成员**:CreateTaskTime, ProcessTime, QueueTime, ExecutionTime, IsResultCacheHit, MatchedMVBytes, MatchedMVs, AffectedBytes, AffectedRows, ProcessedBytes, ProcessedRows + + ### 第 56 次发布 发布时间:2023-07-20 01:23:15 @@ -43797,6 +44539,33 @@ ## DNSPod(dnspod) 版本:2021-03-23 +### 第 23 次发布 + +发布时间:2023-07-28 01:23:03 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateRecord](https://cloud.tencent.com/document/api/1427/56180) + + * 新增入参:Remark + + +### 第 22 次发布 + +发布时间:2023-07-26 01:17:12 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeRecordFilterList](https://cloud.tencent.com/document/api/1427/95521) + ### 第 21 次发布 发布时间:2023-07-10 01:22:33 @@ -44244,6 +45013,18 @@ ## 域名注册(domain) 版本:2018-08-08 +### 第 25 次发布 + +发布时间:2023-07-24 01:25:15 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateDomainRedemption](https://cloud.tencent.com/document/api/242/95411) + ### 第 24 次发布 发布时间:2023-05-18 01:23:17 @@ -45304,6 +46085,51 @@ ## 数据传输服务(dts) 版本:2021-12-06 +### 第 14 次发布 + +发布时间:2023-08-09 01:23:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeMigrationDetail](https://cloud.tencent.com/document/api/571/82085) + + * 新增出参:DumperResumeCtrl, RateLimitOption + + +新增数据结构: + +* [[ErrInfo](https://cloud.tencent.com/document/api/571/82108#ErrInfo)](https://cloud.tencent.com/document/api/571/82108#[ErrInfo](https://cloud.tencent.com/document/api/571/82108#ErrInfo)) +* [[RateLimitOption](https://cloud.tencent.com/document/api/571/82108#RateLimitOption)](https://cloud.tencent.com/document/api/571/82108#[RateLimitOption](https://cloud.tencent.com/document/api/571/82108#RateLimitOption)) + +修改数据结构: + +* [Endpoint](https://cloud.tencent.com/document/api/571/82108#Endpoint) + + * 新增成员:CcnOwnerUin + +* [JobItem](https://cloud.tencent.com/document/api/571/82108#JobItem) + + * 新增成员:DumperResumeCtrl + +* [Options](https://cloud.tencent.com/document/api/571/82108#Options) + + * 新增成员:RateLimitOption, AutoRetryTimeRangeMinutes + +* [SyncDetailInfo](https://cloud.tencent.com/document/api/571/82108#SyncDetailInfo) + + * 新增成员:ErrInfo + + * **修改成员**:CauseOfCompareDisable + +* [SyncJobInfo](https://cloud.tencent.com/document/api/571/82108#SyncJobInfo) + + * 新增成员:SrcNodeType, SrcInfos, DstNodeType, DstInfos, DumperResumeCtrl + + ### 第 13 次发布 发布时间:2023-05-29 14:42:50 @@ -48164,6 +48990,32 @@ ## 数据连接器(eis) 版本:2021-06-01 +### 第 8 次发布 + +发布时间:2023-08-08 01:16:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ListDeployableRuntimesMC](https://cloud.tencent.com/document/api/1270/57965) + + * 新增入参:RuntimeClass + + +修改数据结构: + +* [AbstractRuntimeMC](https://cloud.tencent.com/document/api/1270/57968#AbstractRuntimeMC) + + * 新增成员:MatchExtensions + +* [RuntimeExtensionMC](https://cloud.tencent.com/document/api/1270/57968#RuntimeExtensionMC) + + * **修改成员**:Size, Replica, Name, Status, CreatedAt, UpdatedAt + + ### 第 7 次发布 发布时间:2023-05-15 01:37:48 @@ -48324,6 +49176,21 @@ ## 弹性 MapReduce(emr) 版本:2019-01-03 +### 第 49 次发布 + +发布时间:2023-08-01 01:21:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [NodeHardwareInfo](https://cloud.tencent.com/document/api/589/33981#NodeHardwareInfo) + + * 新增成员:ServicesStatus + + ### 第 48 次发布 发布时间:2023-07-05 01:26:25 @@ -50491,6 +51358,278 @@ ## 腾讯电子签企业版(ess) 版本:2020-11-11 +### 第 102 次发布 + +发布时间:2023-08-08 01:16:56 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreatePreparedPersonalEsign](https://cloud.tencent.com/document/api/1323/89386) + + * 新增入参:Agent + + +修改数据结构: + +* [GroupOrganization](https://cloud.tencent.com/document/api/1323/70369#GroupOrganization) + + * **修改成员**:Name, Alias, OrganizationId, UpdateTime, Status, IsMainOrganization, IdCardNumber, AdminInfo, License, LicenseExpireTime, JoinTime, FlowEngineEnable + + +### 第 101 次发布 + +发布时间:2023-08-03 01:06:38 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeOrganizationGroupOrganizations](https://cloud.tencent.com/document/api/1323/86114) + + * 新增出参:ActivatedTotal + + +### 第 100 次发布 + +发布时间:2023-08-02 01:15:29 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreatePersonAuthCertificateImage](https://cloud.tencent.com/document/api/1323/95783) + +### 第 99 次发布 + +发布时间:2023-08-01 01:22:32 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateEmbedWebUrl](https://cloud.tencent.com/document/api/1323/95590) + + * 新增入参:Option + +* [CreatePrepareFlow](https://cloud.tencent.com/document/api/1323/83412) + + * 新增入参:ResourceType, Components, FlowOption, NeedSignReview, NeedCreateReview, UserData, FlowId, FlowType + + +新增数据结构: + +* [CreateFlowOption](https://cloud.tencent.com/document/api/1323/70369#CreateFlowOption) +* [EmbedUrlOption](https://cloud.tencent.com/document/api/1323/70369#EmbedUrlOption) + +修改数据结构: + +* [Component](https://cloud.tencent.com/document/api/1323/70369#Component) + + * 新增成员:LockComponentValue, ForbidMoveAndDelete + +* [Department](https://cloud.tencent.com/document/api/1323/70369#Department) + + * **修改成员**:DepartmentId, DepartmentName + +* [SealInfo](https://cloud.tencent.com/document/api/1323/70369#SealInfo) + + * 新增成员:SealId, SealType, SealName + +* [StaffRole](https://cloud.tencent.com/document/api/1323/70369#StaffRole) + + * **修改成员**:RoleId, RoleName + + +### 第 98 次发布 + +发布时间:2023-07-31 01:23:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [FlowBrief](https://cloud.tencent.com/document/api/1323/70369#FlowBrief) + + * **修改成员**:Creator, Deadline + + +### 第 97 次发布 + +发布时间:2023-07-26 17:55:39 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateOrganizationBatchSignUrl](https://cloud.tencent.com/document/api/1323/95598) + +### 第 96 次发布 + +发布时间:2023-07-26 16:20:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateWebThemeConfig](https://cloud.tencent.com/document/api/1323/95592) + +新增数据结构: + +* [WebThemeConfig](https://cloud.tencent.com/document/api/1323/70369#WebThemeConfig) + +### 第 95 次发布 + +发布时间:2023-07-26 16:06:53 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateEmbedWebUrl](https://cloud.tencent.com/document/api/1323/95590) + +新增数据结构: + +* [ReviewerInfo](https://cloud.tencent.com/document/api/1323/70369#ReviewerInfo) + +### 第 94 次发布 + +发布时间:2023-07-26 11:26:03 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreatePrepareFlow](https://cloud.tencent.com/document/api/1323/83412) + + * 新增入参:Agent + + +修改数据结构: + +* [FlowCreateApprover](https://cloud.tencent.com/document/api/1323/70369#FlowCreateApprover) + + * 新增成员:ApproverVerifyTypes, ApproverSignTypes + + +### 第 93 次发布 + +发布时间:2023-07-26 01:19:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +**预下线接口**: + +* DescribeIntegrationMainOrganizationUser + +### 第 92 次发布 + +发布时间:2023-07-25 10:56:49 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ModifyApplicationCallbackInfo](https://cloud.tencent.com/document/api/1323/86752) + + * 新增入参:Agent + + +### 第 91 次发布 + +发布时间:2023-07-24 01:28:01 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [BindEmployeeUserIdWithClientOpenId](https://cloud.tencent.com/document/api/1323/90238) + + * 新增入参:Agent + +* [CreateFlowApprovers](https://cloud.tencent.com/document/api/1323/80033) + + * 新增入参:Agent + +* [CreateUserAutoSignEnableUrl](https://cloud.tencent.com/document/api/1323/87787) + + * 新增入参:Agent + +* [DescribeThirdPartyAuthCode](https://cloud.tencent.com/document/api/1323/70368) + + * 新增入参:Operator, Agent + +* [DescribeUserAutoSignStatus](https://cloud.tencent.com/document/api/1323/87786) + + * 新增入参:Agent + +* [DisableUserAutoSign](https://cloud.tencent.com/document/api/1323/87785) + + * 新增入参:Agent + +* [UnbindEmployeeUserIdWithClientOpenId](https://cloud.tencent.com/document/api/1323/90239) + + * 新增入参:Agent + + +修改数据结构: + +* [FillApproverInfo](https://cloud.tencent.com/document/api/1323/70369#FillApproverInfo) + + * 新增成员:ApproverName, ApproverMobile + + * **修改成员**:ApproverSource, CustomUserId + + +### 第 90 次发布 + +发布时间:2023-07-21 01:23:30 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateSchemeUrl](https://cloud.tencent.com/document/api/1323/70359) + + * 新增入参:Hides + + +修改数据结构: + +* [RegisterInfo](https://cloud.tencent.com/document/api/1323/70369#RegisterInfo) + + * 新增成员:UnifiedSocialCreditCode + + * **修改成员**:Uscc + + ### 第 89 次发布 发布时间:2023-07-19 01:24:04 @@ -52240,6 +53379,82 @@ ## 腾讯电子签(基础版)(essbasic) 版本:2021-05-26 +### 第 100 次发布 + +发布时间:2023-08-08 01:17:36 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ChannelDescribeEmployees](https://cloud.tencent.com/document/api/1420/81119) + + * **修改入参**:Agent + + +### 第 99 次发布 + +发布时间:2023-08-01 01:24:13 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [TemplateInfo](https://cloud.tencent.com/document/api/1420/61525#TemplateInfo) + + * **修改成员**:IsPromoter, Available + + +### 第 98 次发布 + +发布时间:2023-07-28 17:50:48 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ChannelCreatePrepareFlow](https://cloud.tencent.com/document/api/1420/87897) + + * **修改入参**:FlowApproverList + + +### 第 97 次发布 + +发布时间:2023-07-26 16:20:45 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [ChannelCreateWebThemeConfig](https://cloud.tencent.com/document/api/1420/95591) + +新增数据结构: + +* [WebThemeConfig](https://cloud.tencent.com/document/api/1420/61525#WebThemeConfig) + +### 第 96 次发布 + +发布时间:2023-07-21 01:23:53 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateSignUrls](https://cloud.tencent.com/document/api/1420/61522) + + * 新增入参:Hides + + ### 第 95 次发布 发布时间:2023-07-18 01:30:22 @@ -53996,6 +55211,31 @@ ## 人脸融合(facefusion) 版本:2018-12-01 +### 第 7 次发布 + +发布时间:2023-07-27 01:13:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [FaceFusion](https://cloud.tencent.com/document/api/670/31061) + + * 新增入参:FuseParam + +* [FuseFace](https://cloud.tencent.com/document/api/670/37736) + + * 新增入参:FuseParam + + +新增数据结构: + +* [FuseParam](https://cloud.tencent.com/document/api/670/31062#FuseParam) +* [ImageCodecParam](https://cloud.tencent.com/document/api/670/31062#ImageCodecParam) +* [MetaData](https://cloud.tencent.com/document/api/670/31062#MetaData) + ### 第 6 次发布 发布时间:2021-07-22 08:05:36 @@ -54098,6 +55338,27 @@ ## 人脸融合(facefusion) 版本:2022-09-27 +### 第 5 次发布 + +发布时间:2023-07-27 01:13:31 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [FuseFace](https://cloud.tencent.com/document/api/670/85618) + + * 新增入参:FuseParam + + +新增数据结构: + +* [FuseParam](https://cloud.tencent.com/document/api/670/85619#FuseParam) +* [ImageCodecParam](https://cloud.tencent.com/document/api/670/85619#ImageCodecParam) +* [MetaData](https://cloud.tencent.com/document/api/670/85619#MetaData) + ### 第 4 次发布 发布时间:2023-05-31 01:26:29 @@ -57226,6 +58487,44 @@ ## 数据加速器 GooseFS(goosefs) 版本:2022-05-19 +### 第 6 次发布 + +发布时间:2023-08-02 01:16:12 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [AddCrossVpcSubnetSupportForClientNode](https://cloud.tencent.com/document/api/1424/95800) +* [AttachFileSystemBucket](https://cloud.tencent.com/document/api/1424/95793) +* [BatchAddClientNodes](https://cloud.tencent.com/document/api/1424/95799) +* [BatchDeleteClientNodes](https://cloud.tencent.com/document/api/1424/95798) +* [CreateFileSystem](https://cloud.tencent.com/document/api/1424/95792) +* [DeleteCrossVpcSubnetSupportForClientNode](https://cloud.tencent.com/document/api/1424/95797) +* [DeleteFileSystem](https://cloud.tencent.com/document/api/1424/95791) +* [DescribeClientNodes](https://cloud.tencent.com/document/api/1424/95796) +* [DescribeFileSystemBuckets](https://cloud.tencent.com/document/api/1424/95790) +* [DescribeFileSystems](https://cloud.tencent.com/document/api/1424/95789) +* [DetachFileSystemBucket](https://cloud.tencent.com/document/api/1424/95788) +* [ExpandCapacity](https://cloud.tencent.com/document/api/1424/95787) +* [ModifyDataRepositoryBandwidth](https://cloud.tencent.com/document/api/1424/95786) +* [QueryCrossVpcSubnetSupportForClientNode](https://cloud.tencent.com/document/api/1424/95795) +* [QueryDataRepositoryBandwidth](https://cloud.tencent.com/document/api/1424/95785) + +新增数据结构: + +* [ClientClusterManagerNodeInfo](https://cloud.tencent.com/document/api/1424/95076#ClientClusterManagerNodeInfo) +* [ClientNodeAttribute](https://cloud.tencent.com/document/api/1424/95076#ClientNodeAttribute) +* [FSAttribute](https://cloud.tencent.com/document/api/1424/95076#FSAttribute) +* [GooseFSxAttribute](https://cloud.tencent.com/document/api/1424/95076#GooseFSxAttribute) +* [GooseFSxBuildElement](https://cloud.tencent.com/document/api/1424/95076#GooseFSxBuildElement) +* [LinuxNodeAttribute](https://cloud.tencent.com/document/api/1424/95076#LinuxNodeAttribute) +* [MappedBucket](https://cloud.tencent.com/document/api/1424/95076#MappedBucket) +* [SubnetInfo](https://cloud.tencent.com/document/api/1424/95076#SubnetInfo) +* [Tag](https://cloud.tencent.com/document/api/1424/95076#Tag) + ### 第 5 次发布 发布时间:2023-07-19 01:25:47 @@ -61274,6 +62573,36 @@ ## 物联网通信(iotcloud) 版本:2021-04-08 +### 第 9 次发布 + +发布时间:2023-08-09 01:29:39 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeDevice](https://cloud.tencent.com/document/api/634/71948) + + * 新增出参:NBIoTDeviceID + + +修改数据结构: + +* [CLSLogItem](https://cloud.tencent.com/document/api/634/71973#CLSLogItem) + + * 新增成员:UserId + +* [DeviceInfo](https://cloud.tencent.com/document/api/634/71973#DeviceInfo) + + * 新增成员:NBIoTDeviceID + +* [ProductProperties](https://cloud.tencent.com/document/api/634/71973#ProductProperties) + + * 新增成员:AppEUI + + ### 第 8 次发布 发布时间:2023-06-14 01:27:08 @@ -63433,6 +64762,57 @@ ## 物联网智能视频服务(iotvideo) 版本:2021-11-25 +### 第 17 次发布 + +发布时间:2023-08-09 01:31:19 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [[ResetCloudStorageEvent](https://cloud.tencent.com/document/api/1131/96104)](https://cloud.tencent.com/document/api/#/#) + +### 第 16 次发布 + +发布时间:2023-07-27 01:14:43 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [PackageInfo](https://cloud.tencent.com/document/api/1131/76635#PackageInfo) + + * 新增成员:CreatedAt, UpdatedAt + + +### 第 15 次发布 + +发布时间:2023-07-26 01:24:02 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DeleteCloudStorageEvent](https://cloud.tencent.com/document/api/1131/95523) +* [DescribeDevicePackages](https://cloud.tencent.com/document/api/1131/95522) + +修改接口: + +* [DescribeCloudStorageThumbnail](https://cloud.tencent.com/document/api/1131/77499) + + * 新增出参:ExpireTime + + +新增数据结构: + +* [PackageInfo](https://cloud.tencent.com/document/api/1131/76635#PackageInfo) + ### 第 14 次发布 发布时间:2023-05-12 01:31:53 @@ -64369,6 +65749,427 @@ +## 智能视图计算平台(iss) 版本:2023-05-17 + +### 第 2 次发布 + +发布时间:2023-08-07 15:48:42 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AddOrganization](https://cloud.tencent.com/document/api/1344/95894) + + * **修改出参**:Data + +* [AddRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95929) + + * 新增出参:Data, RequestId + + * **删除出参**:PlanId, PlanName, TemplateId, Describe, LifeCycle, Status, ChannelCount, CreateAt, UpdateAt + +* [AddRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95913) + + * 新增出参:Data, RequestId + + * **删除出参**:TemplateId, TemplateName, TimeSections, DevTimeSections, Scale, CreateAt, UpdateAt + +* [AddRecordPlan](https://cloud.tencent.com/document/api/1344/95928) + + * **修改出参**:Data + +* [AddRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95941) + + * 新增出参:Data, RequestId + + * **删除出参**:TaskId, TaskName, StartTime, EndTime, Mode, Expiration, Status, Capacity, Describe + +* [AddStreamAuth](https://cloud.tencent.com/document/api/1344/95902) + + * 新增出参:Data, RequestId + + * **删除出参**:Id, PullState, PullSecret, PullExpired, PushState, PushSecret, PushExpired, AppId + +* [AddUserDevice](https://cloud.tencent.com/document/api/1344/95876) + + * **修改出参**:Data + +* [ControlDeviceStream](https://cloud.tencent.com/document/api/1344/95943) + + * 新增出参:Data, RequestId + + * **删除出参**:Flv, Hls, Rtmp + +* [DescribeAITaskResult](https://cloud.tencent.com/document/api/1344/95948) + + * **修改出参**:Data + +* [DescribeDeviceChannel](https://cloud.tencent.com/document/api/1344/95874) + + * 新增出参:Data, RequestId + + * **删除出参**:DeviceId, ChannelId, ChannelCode, Name, Status, PTZType, Manufacturer, Resolution, State, Region + +* [DescribeDevicePreset](https://cloud.tencent.com/document/api/1344/95878) + + * 新增出参:Data, RequestId + + * **删除出参**:Index, Name + +* [DescribeDomain](https://cloud.tencent.com/document/api/1344/95898) + + * 新增出参:Data, RequestId + + * **删除出参**:Id, PlayDomain, InternalDomain, HaveCert, ClusterId, ClusterName, AppId + +* [DescribeDomainRegion](https://cloud.tencent.com/document/api/1344/95897) + + * 新增出参:Data, RequestId + + * **删除出参**:Label, Value, Region + +* [DescribeGateway](https://cloud.tencent.com/document/api/1344/95888) + + * 新增出参:Data, RequestId + + * **删除出参**:GatewayId, GwId, Name, Description, ClusterId, ClusterName, Status, Version, DeviceNum, CreatedAt, Region + +* [DescribeGatewayProtocol](https://cloud.tencent.com/document/api/1344/95886) + + * 新增出参:Data, RequestId + + * **删除出参**:TypeCode, Value, Label + +* [DescribeGatewayVersion](https://cloud.tencent.com/document/api/1344/95885) + + * 新增出参:Data, RequestId + + * **删除出参**:Services + +* [DescribeOrganization](https://cloud.tencent.com/document/api/1344/95892) + + * 新增出参:Data, RequestId + + * **删除出参**:OrganizationId, Name, ParentId, Level, AppId, ParentIds, Total, Online + +* [DescribeRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95925) + + * 新增出参:Data, RequestId + + * **删除出参**:PlanId, PlanName, TemplateId, Describe, LifeCycle, Status, ChannelCount, CreateAt, UpdateAt + +* [DescribeRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95909) + + * 新增出参:Data, RequestId + + * **删除出参**:TemplateId, TemplateName, TimeSections, DevTimeSections, Scale, CreateAt, UpdateAt + +* [DescribeRecordFile](https://cloud.tencent.com/document/api/1344/95934) + + * 新增出参:Data, RequestId + + * **删除出参**:Tips, List + +* [DescribeRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95939) + + * 新增出参:Data, RequestId + + * **删除出参**:TaskId, TaskName, StartTime, EndTime, Mode, Expiration, Status, Capacity, Channels, Describe, ChannelCount + +* [DescribeStreamAuth](https://cloud.tencent.com/document/api/1344/95896) + + * 新增出参:Data, RequestId + + * **删除出参**:Id, PullState, PullSecret, PullExpired, PushState, PushSecret, PushExpired, AppId + +* [DescribeUserDevice](https://cloud.tencent.com/document/api/1344/95872) + + * **修改出参**:Data + +* [DescribeVideoDownloadUrl](https://cloud.tencent.com/document/api/1344/95932) + + * 新增出参:Data, RequestId + + * **删除出参**:Url, ActualBeginTime, ActualEndTime + +* [ListGateways](https://cloud.tencent.com/document/api/1344/95884) + + * 新增出参:Data, RequestId + + * **删除出参**:List, TotalCount + +* [ListOrganizationChannelNumbers](https://cloud.tencent.com/document/api/1344/95923) + + * 新增出参:Data, RequestId + + * **删除出参**:TotalCount, NotInPlanCount + +* [ListOrganizationChannels](https://cloud.tencent.com/document/api/1344/95922) + + * 新增出参:Data, RequestId + + * **删除出参**:PageNumber, PageSize, TotalCount, List + +* [ListRecordBackupPlanDevices](https://cloud.tencent.com/document/api/1344/95921) + + * 新增出参:Data, RequestId + + * **删除出参**:PageNumber, PageSize, TotalCount, List + +* [ListRecordBackupPlans](https://cloud.tencent.com/document/api/1344/95920) + + * **修改出参**:Data + +* [ListRecordBackupTemplates](https://cloud.tencent.com/document/api/1344/95907) + + * 新增出参:Data, RequestId + + * **删除出参**:TemplateId, TemplateName, TimeSections, DevTimeSections, Scale, CreateAt, UpdateAt + +* [ListRecordPlanChannels](https://cloud.tencent.com/document/api/1344/95919) + + * 新增出参:Data, RequestId + + * **删除出参**:List + +* [ListRecordPlanDevices](https://cloud.tencent.com/document/api/1344/95918) + + * 新增出参:Data, RequestId + + * **删除出参**:PageNumber, PageSize, TotalCount, List + +* [PlayRecord](https://cloud.tencent.com/document/api/1344/95931) + + * 新增出参:Data, RequestId + + * **删除出参**:Flv + +* [UpdateGateway](https://cloud.tencent.com/document/api/1344/95883) + + * 新增出参:Data, RequestId + + * **删除出参**:GatewayId, GwId, Name, Description, ClusterId, ClusterName, Status, CreatedAt, Secret, Version + +* [UpdateOrganization](https://cloud.tencent.com/document/api/1344/95891) + + * **修改出参**:Data + +* [UpdateRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95916) + + * 新增出参:Data, RequestId + + * **删除出参**:PlanId, PlanName, TemplateId, Describe, LifeCycle, Status, ChannelCount, CreateAt, UpdateAt + +* [UpdateRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95905) + + * 新增出参:Data, RequestId + + * **删除出参**:TemplateId, TemplateName, TimeSections, DevTimeSections, Scale, CreateAt, UpdateAt + +* [UpdateRecordPlan](https://cloud.tencent.com/document/api/1344/95915) + + * **修改出参**:Data + +* [UpdateUserDevice](https://cloud.tencent.com/document/api/1344/95867) + + * **修改出参**:Data + + +新增数据结构: + +* [AITaskResultData](https://cloud.tencent.com/document/api/1344/95952#AITaskResultData) +* [AddDeviceData](https://cloud.tencent.com/document/api/1344/95952#AddDeviceData) +* [AddOrgData](https://cloud.tencent.com/document/api/1344/95952#AddOrgData) +* [AddRecordBackupPlanData](https://cloud.tencent.com/document/api/1344/95952#AddRecordBackupPlanData) +* [AddRecordBackupTemplateData](https://cloud.tencent.com/document/api/1344/95952#AddRecordBackupTemplateData) +* [AddRecordRetrieveTaskData](https://cloud.tencent.com/document/api/1344/95952#AddRecordRetrieveTaskData) +* [AddStreamAuthData](https://cloud.tencent.com/document/api/1344/95952#AddStreamAuthData) +* [ControlDeviceStreamData](https://cloud.tencent.com/document/api/1344/95952#ControlDeviceStreamData) +* [DescribeDeviceChannelData](https://cloud.tencent.com/document/api/1344/95952#DescribeDeviceChannelData) +* [DescribeDeviceData](https://cloud.tencent.com/document/api/1344/95952#DescribeDeviceData) +* [DescribeDevicePresetData](https://cloud.tencent.com/document/api/1344/95952#DescribeDevicePresetData) +* [DescribeDomainData](https://cloud.tencent.com/document/api/1344/95952#DescribeDomainData) +* [DescribeDomainRegionData](https://cloud.tencent.com/document/api/1344/95952#DescribeDomainRegionData) +* [DescribeGatewayData](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayData) +* [DescribeGatewayProtocolData](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayProtocolData) +* [DescribeGatewayVersionData](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayVersionData) +* [DescribeOrganizationData](https://cloud.tencent.com/document/api/1344/95952#DescribeOrganizationData) +* [DescribeRecordBackupPlanData](https://cloud.tencent.com/document/api/1344/95952#DescribeRecordBackupPlanData) +* [DescribeRecordBackupTemplateData](https://cloud.tencent.com/document/api/1344/95952#DescribeRecordBackupTemplateData) +* [DescribeRecordFileData](https://cloud.tencent.com/document/api/1344/95952#DescribeRecordFileData) +* [DescribeRecordRetrieveTaskData](https://cloud.tencent.com/document/api/1344/95952#DescribeRecordRetrieveTaskData) +* [DescribeStreamAuthData](https://cloud.tencent.com/document/api/1344/95952#DescribeStreamAuthData) +* [DescribeVideoDownloadUrlData](https://cloud.tencent.com/document/api/1344/95952#DescribeVideoDownloadUrlData) +* [ListGatewaysData](https://cloud.tencent.com/document/api/1344/95952#ListGatewaysData) +* [ListOrganizationChannelNumbersData](https://cloud.tencent.com/document/api/1344/95952#ListOrganizationChannelNumbersData) +* [ListOrganizationChannelsData](https://cloud.tencent.com/document/api/1344/95952#ListOrganizationChannelsData) +* [ListRecordBackupPlanData](https://cloud.tencent.com/document/api/1344/95952#ListRecordBackupPlanData) +* [ListRecordBackupPlanDevicesData](https://cloud.tencent.com/document/api/1344/95952#ListRecordBackupPlanDevicesData) +* [ListRecordBackupTemplatesData](https://cloud.tencent.com/document/api/1344/95952#ListRecordBackupTemplatesData) +* [ListRecordPlanChannelsData](https://cloud.tencent.com/document/api/1344/95952#ListRecordPlanChannelsData) +* [ListRecordPlanDevicesData](https://cloud.tencent.com/document/api/1344/95952#ListRecordPlanDevicesData) +* [PlayRecordData](https://cloud.tencent.com/document/api/1344/95952#PlayRecordData) +* [RecordPlanOptData](https://cloud.tencent.com/document/api/1344/95952#RecordPlanOptData) +* [UpdateDeviceData](https://cloud.tencent.com/document/api/1344/95952#UpdateDeviceData) +* [UpdateGatewayData](https://cloud.tencent.com/document/api/1344/95952#UpdateGatewayData) +* [UpdateOrgData](https://cloud.tencent.com/document/api/1344/95952#UpdateOrgData) +* [UpdateRecordBackupPlanData](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordBackupPlanData) +* [UpdateRecordBackupTemplateData](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordBackupTemplateData) + +**删除数据结构**: + +* AITaskResultResponse +* AddDeviceResponse +* AddOrgResponse +* DescribeDeviceResponse +* ListRecordBackupPlanResponse +* RecordPlanOptResponse +* UpdateDeviceResponse +* UpdateOrgResponse + +### 第 1 次发布 + +发布时间:2023-08-03 16:25:45 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [AddAITask](https://cloud.tencent.com/document/api/1344/95951) +* [AddOrganization](https://cloud.tencent.com/document/api/1344/95894) +* [AddRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95929) +* [AddRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95913) +* [AddRecordPlan](https://cloud.tencent.com/document/api/1344/95928) +* [AddRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95941) +* [AddRecordTemplate](https://cloud.tencent.com/document/api/1344/95912) +* [AddStreamAuth](https://cloud.tencent.com/document/api/1344/95902) +* [AddUserDevice](https://cloud.tencent.com/document/api/1344/95876) +* [CheckDomain](https://cloud.tencent.com/document/api/1344/95901) +* [ControlDevicePTZ](https://cloud.tencent.com/document/api/1344/95880) +* [ControlDevicePreset](https://cloud.tencent.com/document/api/1344/95879) +* [ControlDeviceStream](https://cloud.tencent.com/document/api/1344/95943) +* [ControlRecord](https://cloud.tencent.com/document/api/1344/95936) +* [ControlRecordTimeline](https://cloud.tencent.com/document/api/1344/95935) +* [DeleteAITask](https://cloud.tencent.com/document/api/1344/95950) +* [DeleteDomain](https://cloud.tencent.com/document/api/1344/95900) +* [DeleteGateway](https://cloud.tencent.com/document/api/1344/95889) +* [DeleteOrganization](https://cloud.tencent.com/document/api/1344/95893) +* [DeleteRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95927) +* [DeleteRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95911) +* [DeleteRecordPlan](https://cloud.tencent.com/document/api/1344/95926) +* [DeleteRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95940) +* [DeleteRecordTemplate](https://cloud.tencent.com/document/api/1344/95910) +* [DeleteUserDevice](https://cloud.tencent.com/document/api/1344/95875) +* [DescribeAITask](https://cloud.tencent.com/document/api/1344/95949) +* [DescribeAITaskResult](https://cloud.tencent.com/document/api/1344/95948) +* [DescribeCNAME](https://cloud.tencent.com/document/api/1344/95899) +* [DescribeDeviceChannel](https://cloud.tencent.com/document/api/1344/95874) +* [DescribeDevicePreset](https://cloud.tencent.com/document/api/1344/95878) +* [DescribeDeviceRegion](https://cloud.tencent.com/document/api/1344/95873) +* [DescribeDomain](https://cloud.tencent.com/document/api/1344/95898) +* [DescribeDomainRegion](https://cloud.tencent.com/document/api/1344/95897) +* [DescribeGateway](https://cloud.tencent.com/document/api/1344/95888) +* [DescribeGatewayMonitor](https://cloud.tencent.com/document/api/1344/95887) +* [DescribeGatewayProtocol](https://cloud.tencent.com/document/api/1344/95886) +* [DescribeGatewayVersion](https://cloud.tencent.com/document/api/1344/95885) +* [DescribeOrganization](https://cloud.tencent.com/document/api/1344/95892) +* [DescribeRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95925) +* [DescribeRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95909) +* [DescribeRecordFile](https://cloud.tencent.com/document/api/1344/95934) +* [DescribeRecordPlan](https://cloud.tencent.com/document/api/1344/95924) +* [DescribeRecordPlaybackUrl](https://cloud.tencent.com/document/api/1344/95933) +* [DescribeRecordRetrieveTask](https://cloud.tencent.com/document/api/1344/95939) +* [DescribeRecordTemplate](https://cloud.tencent.com/document/api/1344/95908) +* [DescribeStreamAuth](https://cloud.tencent.com/document/api/1344/95896) +* [DescribeUserDevice](https://cloud.tencent.com/document/api/1344/95872) +* [DescribeVideoDownloadUrl](https://cloud.tencent.com/document/api/1344/95932) +* [ListAITasks](https://cloud.tencent.com/document/api/1344/95947) +* [ListDevices](https://cloud.tencent.com/document/api/1344/95871) +* [ListGateways](https://cloud.tencent.com/document/api/1344/95884) +* [ListOrganizationChannelNumbers](https://cloud.tencent.com/document/api/1344/95923) +* [ListOrganizationChannels](https://cloud.tencent.com/document/api/1344/95922) +* [ListRecordBackupPlanDevices](https://cloud.tencent.com/document/api/1344/95921) +* [ListRecordBackupPlans](https://cloud.tencent.com/document/api/1344/95920) +* [ListRecordBackupTemplates](https://cloud.tencent.com/document/api/1344/95907) +* [ListRecordPlanChannels](https://cloud.tencent.com/document/api/1344/95919) +* [ListRecordPlanDevices](https://cloud.tencent.com/document/api/1344/95918) +* [ListRecordPlans](https://cloud.tencent.com/document/api/1344/95917) +* [ListRecordRetrieveTasks](https://cloud.tencent.com/document/api/1344/95938) +* [ListRecordTemplates](https://cloud.tencent.com/document/api/1344/95906) +* [PlayRecord](https://cloud.tencent.com/document/api/1344/95931) +* [RefreshDeviceChannel](https://cloud.tencent.com/document/api/1344/95870) +* [UpdateAITask](https://cloud.tencent.com/document/api/1344/95946) +* [UpdateAITaskStatus](https://cloud.tencent.com/document/api/1344/95945) +* [UpdateDeviceOrganization](https://cloud.tencent.com/document/api/1344/95869) +* [UpdateDeviceStatus](https://cloud.tencent.com/document/api/1344/95868) +* [UpdateGateway](https://cloud.tencent.com/document/api/1344/95883) +* [UpdateOrganization](https://cloud.tencent.com/document/api/1344/95891) +* [UpdateRecordBackupPlan](https://cloud.tencent.com/document/api/1344/95916) +* [UpdateRecordBackupTemplate](https://cloud.tencent.com/document/api/1344/95905) +* [UpdateRecordPlan](https://cloud.tencent.com/document/api/1344/95915) +* [UpdateRecordTemplate](https://cloud.tencent.com/document/api/1344/95904) +* [UpdateUserDevice](https://cloud.tencent.com/document/api/1344/95867) +* [UpgradeGateway](https://cloud.tencent.com/document/api/1344/95882) + +新增数据结构: + +* [AIConfig](https://cloud.tencent.com/document/api/1344/95952#AIConfig) +* [AITaskInfo](https://cloud.tencent.com/document/api/1344/95952#AITaskInfo) +* [AITaskResultInfo](https://cloud.tencent.com/document/api/1344/95952#AITaskResultInfo) +* [AITaskResultResponse](https://cloud.tencent.com/document/api/1344/95952#AITaskResultResponse) +* [AITemplates](https://cloud.tencent.com/document/api/1344/95952#AITemplates) +* [AddDeviceResponse](https://cloud.tencent.com/document/api/1344/95952#AddDeviceResponse) +* [AddOrgResponse](https://cloud.tencent.com/document/api/1344/95952#AddOrgResponse) +* [BaseAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#BaseAIResultInfo) +* [BodyAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#BodyAIResultInfo) +* [CarAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#CarAIResultInfo) +* [ChannelInfo](https://cloud.tencent.com/document/api/1344/95952#ChannelInfo) +* [ChefClothAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#ChefClothAIResultInfo) +* [ChefHatAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#ChefHatAIResultInfo) +* [DescribeDeviceRegion](https://cloud.tencent.com/document/api/1344/95952#DescribeDeviceRegion) +* [DescribeDeviceResponse](https://cloud.tencent.com/document/api/1344/95952#DescribeDeviceResponse) +* [DescribeGatewayMonitor](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayMonitor) +* [DescribeGatewayVersion](https://cloud.tencent.com/document/api/1344/95952#DescribeGatewayVersion) +* [FaceMaskAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#FaceMaskAIResultInfo) +* [GatewayVersion](https://cloud.tencent.com/document/api/1344/95952#GatewayVersion) +* [GatewaysData](https://cloud.tencent.com/document/api/1344/95952#GatewaysData) +* [LifeCycleData](https://cloud.tencent.com/document/api/1344/95952#LifeCycleData) +* [ListAITaskData](https://cloud.tencent.com/document/api/1344/95952#ListAITaskData) +* [ListDeviceInfo](https://cloud.tencent.com/document/api/1344/95952#ListDeviceInfo) +* [ListRecordBackupPlanResponse](https://cloud.tencent.com/document/api/1344/95952#ListRecordBackupPlanResponse) +* [Location](https://cloud.tencent.com/document/api/1344/95952#Location) +* [OperTimeSlot](https://cloud.tencent.com/document/api/1344/95952#OperTimeSlot) +* [OrganizationChannelInfo](https://cloud.tencent.com/document/api/1344/95952#OrganizationChannelInfo) +* [PetAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#PetAIResultInfo) +* [PhoneCallAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#PhoneCallAIResultInfo) +* [PlateContent](https://cloud.tencent.com/document/api/1344/95952#PlateContent) +* [RecordPlanBaseInfo](https://cloud.tencent.com/document/api/1344/95952#RecordPlanBaseInfo) +* [RecordPlanChannelInfo](https://cloud.tencent.com/document/api/1344/95952#RecordPlanChannelInfo) +* [RecordPlanOptResponse](https://cloud.tencent.com/document/api/1344/95952#RecordPlanOptResponse) +* [RecordPlaybackUrl](https://cloud.tencent.com/document/api/1344/95952#RecordPlaybackUrl) +* [RecordRetrieveTaskChannelInfo](https://cloud.tencent.com/document/api/1344/95952#RecordRetrieveTaskChannelInfo) +* [RecordRetrieveTaskDetailsInfo](https://cloud.tencent.com/document/api/1344/95952#RecordRetrieveTaskDetailsInfo) +* [RecordTemplateInfo](https://cloud.tencent.com/document/api/1344/95952#RecordTemplateInfo) +* [RecordTemplateTimeSections](https://cloud.tencent.com/document/api/1344/95952#RecordTemplateTimeSections) +* [RecordTimeLine](https://cloud.tencent.com/document/api/1344/95952#RecordTimeLine) +* [SmokingAIResultInfo](https://cloud.tencent.com/document/api/1344/95952#SmokingAIResultInfo) +* [SnapshotConfig](https://cloud.tencent.com/document/api/1344/95952#SnapshotConfig) +* [Timeline](https://cloud.tencent.com/document/api/1344/95952#Timeline) +* [UpdateDeviceResponse](https://cloud.tencent.com/document/api/1344/95952#UpdateDeviceResponse) +* [UpdateOrgResponse](https://cloud.tencent.com/document/api/1344/95952#UpdateOrgResponse) +* [UpdateRecordBackupPlanModify](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordBackupPlanModify) +* [UpdateRecordBackupTemplateModify](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordBackupTemplateModify) +* [UpdateRecordPlanData](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordPlanData) +* [UpdateRecordTemplateData](https://cloud.tencent.com/document/api/1344/95952#UpdateRecordTemplateData) + + + + ## 媒体智能标签(ivld) 版本:2021-09-03 ### 第 8 次发布 @@ -65167,6 +66968,104 @@ ## 低代码互动课堂(lcic) 版本:2022-08-17 +### 第 35 次发布 + +发布时间:2023-07-31 01:30:04 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeRoom](https://cloud.tencent.com/document/api/1639/80941) + + * 新增出参:AudienceType + + +### 第 34 次发布 + +发布时间:2023-07-28 01:32:25 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [RoomItem](https://cloud.tencent.com/document/api/1639/81423#RoomItem) + + * 新增成员:IsGradingRequiredPostClass, RoomType + + +### 第 33 次发布 + +发布时间:2023-07-27 01:15:22 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [EventInfo](https://cloud.tencent.com/document/api/1639/81423#EventInfo) + + * **修改成员**:Timestamp, EventType, EventData + + +### 第 32 次发布 + +发布时间:2023-07-26 01:25:48 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateRoom](https://cloud.tencent.com/document/api/1639/80942) + + * 新增入参:RoomType + +* [DescribeRoom](https://cloud.tencent.com/document/api/1639/80941) + + * 新增出参:RoomType + +* [ModifyRoom](https://cloud.tencent.com/document/api/1639/86030) + + * 新增入参:RoomType + + +修改数据结构: + +* [RoomInfo](https://cloud.tencent.com/document/api/1639/81423#RoomInfo) + + * 新增成员:IsGradingRequiredPostClass, RoomType + + +### 第 31 次发布 + +发布时间:2023-07-21 01:29:56 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateRoom](https://cloud.tencent.com/document/api/1639/80942) + + * 新增入参:IsGradingRequiredPostClass + +* [DescribeRoom](https://cloud.tencent.com/document/api/1639/80941) + + * 新增出参:IsGradingRequiredPostClass + +* [ModifyRoom](https://cloud.tencent.com/document/api/1639/86030) + + * 新增入参:IsGradingRequiredPostClass + + ### 第 30 次发布 发布时间:2023-07-14 01:25:31 @@ -65770,6 +67669,41 @@ ## 轻量应用服务器(lighthouse) 版本:2020-03-24 +### 第 51 次发布 + +发布时间:2023-07-25 11:04:43 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeDockerActivities](https://cloud.tencent.com/document/api/1207/95476) +* [DescribeDockerContainerConfiguration](https://cloud.tencent.com/document/api/1207/95475) +* [DescribeDockerContainerDetail](https://cloud.tencent.com/document/api/1207/95474) +* [DescribeDockerContainers](https://cloud.tencent.com/document/api/1207/95473) +* [ModifyDockerContainer](https://cloud.tencent.com/document/api/1207/95472) +* [RemoveDockerContainers](https://cloud.tencent.com/document/api/1207/95471) +* [RenameDockerContainer](https://cloud.tencent.com/document/api/1207/95470) +* [RerunDockerContainer](https://cloud.tencent.com/document/api/1207/95469) +* [RestartDockerContainers](https://cloud.tencent.com/document/api/1207/95468) +* [RunDockerContainers](https://cloud.tencent.com/document/api/1207/95467) +* [StartDockerContainers](https://cloud.tencent.com/document/api/1207/95466) +* [StopDockerContainers](https://cloud.tencent.com/document/api/1207/95465) + +新增数据结构: + +* [DockerActivity](https://cloud.tencent.com/document/api/1207/47576#DockerActivity) +* [DockerContainer](https://cloud.tencent.com/document/api/1207/47576#DockerContainer) + +修改数据结构: + +* [LoginConfiguration](https://cloud.tencent.com/document/api/1207/47576#LoginConfiguration) + + * 新增成员:KeyIds + + ### 第 50 次发布 发布时间:2023-07-19 01:30:20 @@ -66736,6 +68670,25 @@ ## 云直播CSS(live) 版本:2018-08-01 +### 第 109 次发布 + +发布时间:2023-08-01 01:30:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增数据结构: + +* [MixPortraitSegmentParams](https://cloud.tencent.com/document/api/267/20474#MixPortraitSegmentParams) + +修改数据结构: + +* [CommonMixInputParam](https://cloud.tencent.com/document/api/267/20474#CommonMixInputParam) + + * 新增成员:PortraitSegmentParams + + ### 第 108 次发布 发布时间:2023-07-05 01:34:10 @@ -70543,7 +72496,22 @@ -## 移动网络加速(mna) 版本:2021-01-19 +## 多网聚合加速(mna) 版本:2021-01-19 + +### 第 12 次发布 + +发布时间:2023-08-01 01:32:11 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [GetDevices](https://cloud.tencent.com/document/api/1385/80480) + + * 新增入参:DeviceType + ### 第 11 次发布 @@ -73348,6 +75316,21 @@ ## 媒体处理(mps) 版本:2019-06-12 +### 第 65 次发布 + +发布时间:2023-08-01 01:33:24 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [OverrideTranscodeParameter](https://cloud.tencent.com/document/api/862/37615#OverrideTranscodeParameter) + + * 新增成员:StdExtInfo + + ### 第 64 次发布 发布时间:2023-06-12 01:29:43 @@ -76018,6 +78001,69 @@ ## 移动应用安全(ms) 版本:2018-04-08 +### 第 16 次发布 + +发布时间:2023-08-02 01:19:05 + +本次发布包含了以下内容: + +改善已有的文档。 + +**预下线接口**: + +* CancelEncryptTask +* CreateEncryptInstance +* CreateOrderInstance +* DescribeEncryptInstances +* DescribeOrderInstances + +修改数据结构: + +* [AndroidResult](https://cloud.tencent.com/document/api/283/17759#AndroidResult) + + * **修改成员**:ResultId, OrderId, ResourceId, OpUin, AppType, AppPkgName, BindAppPkgName, EncryptState, EncryptStateDesc, EncryptErrCode, EncryptErrDesc, EncryptErrRef, CreatTime, StartTime, EndTime, CostTime, AppUrl, AppMd5, AppName, AppVersion, AppSize, OnlineToolVersion, EncryptAppMd5, EncryptAppSize, EncryptPkgUrl, OutputToolVersion, OutputToolSize, ToolOutputTime, ToolExpireTime, OutputToolUrl, AndroidPlan + +* [EncryptResults](https://cloud.tencent.com/document/api/283/17759#EncryptResults) + + * **修改成员**:PlatformType, PlatformDesc, OrderType, OrderTypeDesc, EncryptOpType, EncryptOpTypeDesc, ResourceId, OrderId, AndroidResult, IOSResult, SDKResult, AppletResult + +* [Orders](https://cloud.tencent.com/document/api/283/17759#Orders) + + * **修改成员**:OrderId, PlatformType, PlatformTypeDesc, OrderType, OrderTypeDesc, AppPkgName, ResourceId, ResourceStatus, ResourceStatusDesc, TestTimes, ValidTime, ExpireTime, CreateTime, Approver, ApprovalStatus, ApprovalStatusDesc, ApprovalTime, TimesTaskTotalCount, TimesTaskSuccessCount, TimesTaskFailCount + + +### 第 15 次发布 + +发布时间:2023-07-26 01:29:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CancelEncryptTask](https://cloud.tencent.com/document/api/283/95529) +* [CreateEncryptInstance](https://cloud.tencent.com/document/api/283/95528) +* [CreateOrderInstance](https://cloud.tencent.com/document/api/283/95527) +* [DescribeEncryptInstances](https://cloud.tencent.com/document/api/283/95526) +* [DescribeEncryptPlan](https://cloud.tencent.com/document/api/283/95525) +* [DescribeOrderInstances](https://cloud.tencent.com/document/api/283/95524) + +新增数据结构: + +* [AndroidAppInfo](https://cloud.tencent.com/document/api/283/17759#AndroidAppInfo) +* [AndroidPlan](https://cloud.tencent.com/document/api/283/17759#AndroidPlan) +* [AndroidResult](https://cloud.tencent.com/document/api/283/17759#AndroidResult) +* [AppletInfo](https://cloud.tencent.com/document/api/283/17759#AppletInfo) +* [AppletPlan](https://cloud.tencent.com/document/api/283/17759#AppletPlan) +* [AppletResult](https://cloud.tencent.com/document/api/283/17759#AppletResult) +* [EncryptResults](https://cloud.tencent.com/document/api/283/17759#EncryptResults) +* [IOSPlan](https://cloud.tencent.com/document/api/283/17759#IOSPlan) +* [IOSResult](https://cloud.tencent.com/document/api/283/17759#IOSResult) +* [Orders](https://cloud.tencent.com/document/api/283/17759#Orders) +* [SDKPlan](https://cloud.tencent.com/document/api/283/17759#SDKPlan) +* [SDKResult](https://cloud.tencent.com/document/api/283/17759#SDKResult) + ### 第 14 次发布 发布时间:2023-06-15 01:29:09 @@ -76382,6 +78428,56 @@ ## NLP 服务(nlp) 版本:2019-04-08 +### 第 20 次发布 + +发布时间:2023-08-02 01:19:12 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* AutoSummarization +* ChatBot +* CreateDict +* CreateWordItems +* DeleteDict +* DeleteWordItems +* DependencyParsing +* DescribeDict +* DescribeDicts +* DescribeWordItems +* GenerateCouplet +* GeneratePoetry +* KeywordsExtraction +* LexicalAnalysis +* SearchWordItems +* SentenceEmbedding +* SentimentAnalysis +* SimilarWords +* TextClassification +* TextCorrection +* TextCorrectionPro +* TextSimilarity +* TextSimilarityPro +* UpdateDict +* WordEmbedding +* WordSimilarity + +**删除数据结构**: + +* CCIToken +* ClassificationResult +* DictInfo +* DpToken +* Keyword +* NerToken +* PosToken +* SearchResult +* Similarity +* WordItem + ### 第 19 次发布 发布时间:2023-06-26 15:51:14 @@ -76795,6 +78891,39 @@ ## 流计算 Oceanus(oceanus) 版本:2019-04-22 +### 第 36 次发布 + +发布时间:2023-08-01 01:34:42 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CreateJobConfig](https://cloud.tencent.com/document/api/849/52004) + + * 新增入参:ClazzLevels, ExpertModeOn, ExpertModeConfiguration + + +新增数据结构: + +* [ClazzLevel](https://cloud.tencent.com/document/api/849/52010#ClazzLevel) +* [ExpertModeConfiguration](https://cloud.tencent.com/document/api/849/52010#ExpertModeConfiguration) +* [JobGraph](https://cloud.tencent.com/document/api/849/52010#JobGraph) +* [JobGraphEdge](https://cloud.tencent.com/document/api/849/52010#JobGraphEdge) +* [JobGraphNode](https://cloud.tencent.com/document/api/849/52010#JobGraphNode) +* [NodeConfig](https://cloud.tencent.com/document/api/849/52010#NodeConfig) +* [SlotSharingGroup](https://cloud.tencent.com/document/api/849/52010#SlotSharingGroup) +* [SlotSharingGroupSpec](https://cloud.tencent.com/document/api/849/52010#SlotSharingGroupSpec) + +修改数据结构: + +* [JobConfig](https://cloud.tencent.com/document/api/849/52010#JobConfig) + + * 新增成员:ClazzLevels, ExpertModeOn, ExpertModeConfiguration + + ### 第 35 次发布 发布时间:2023-07-17 01:29:44 @@ -77508,6 +79637,95 @@ ## 文字识别(ocr) 版本:2018-11-19 +### 第 110 次发布 + +发布时间:2023-08-09 01:39:38 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* VerifyBasicBizLicense +* VerifyBizLicense + +**删除数据结构**: + +* BizLicenseVerifyResult + +### 第 109 次发布 + +发布时间:2023-07-31 01:34:27 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* QueryBarCode +* VerifyEnterpriseFourFactors + +**删除数据结构**: + +* Detail +* ProductDataRecord + +### 第 108 次发布 + +发布时间:2023-07-27 01:16:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [IDCardOCR](https://cloud.tencent.com/document/api/866/33524) + + * 新增入参:EnableRecognitionRectify + + +### 第 107 次发布 + +发布时间:2023-07-26 01:30:16 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [OtherInvoice](https://cloud.tencent.com/document/api/866/33527#OtherInvoice) + + * 新增成员:Date + + * **修改成员**:Title, Total, OtherInvoiceListItems, OtherInvoiceTableItems + +* [SingleInvoiceItem](https://cloud.tencent.com/document/api/866/33527#SingleInvoiceItem) + + * 新增成员:VatSalesList + + * **修改成员**:VatElectronicSpecialInvoice, VatElectronicInvoiceBlockchain, VatElectronicInvoiceToll, VatElectronicSpecialInvoiceFull, VatElectronicInvoiceFull, MachinePrintedInvoice, BusInvoice, ShippingInvoice, TollInvoice, OtherInvoice, MotorVehicleSaleInvoice, UsedCarPurchaseInvoice, VatInvoiceRoll, TaxiTicket, QuotaInvoice, AirTransport, NonTaxIncomeGeneralBill, NonTaxIncomeElectronicBill, TrainTicket, MedicalOutpatientInvoice, MedicalHospitalizedInvoice + +* [VatInvoiceInfo](https://cloud.tencent.com/document/api/866/33527#VatInvoiceInfo) + + * 新增成员:BlockChainMark, AcquisitionMark, SubTotal, SubTax + + * **修改成员**:CheckCode, FormType, TravelTax, BuyerAddrTel, BuyerBankAccount, CompanySealContent, TaxSealContent, ServiceName, City, QRCodeMark, AgentMark, TransitMark, OilMark, Title, Kind, Code, Number, NumberConfirm, Date, Total, TotalCn, PretaxAmount, Tax, MachineCode, Ciphertext, Remark, Seller, SellerTaxID, SellerAddrTel, SellerBankAccount, Buyer, BuyerTaxID, CompanySealMark, Issuer, Reviewer, Province, VatInvoiceItemInfos, CodeConfirm, Receiptor, ElectronicFullMark, ElectronicFullNumber, FormName + +* [VatInvoiceItemInfo](https://cloud.tencent.com/document/api/866/33527#VatInvoiceItemInfo) + + * 新增成员:SerialNumber + + * **修改成员**:Name, Specification, Unit, Quantity, Price, Total, TaxRate, Tax, DateStart, DateEnd, LicensePlate, VehicleType + +* [VatInvoiceRoll](https://cloud.tencent.com/document/api/866/33527#VatInvoiceRoll) + + * **修改成员**:Title, Code, Number, NumberConfirm, Date, CheckCode, Seller, SellerTaxID, Buyer, BuyerTaxID, Category, Total, TotalCn, Kind, Province, City, CompanySealMark, QRCodeMark, ServiceName, CompanySealContent, TaxSealContent, VatRollItems + + ### 第 106 次发布 发布时间:2023-07-19 01:34:27 @@ -79706,6 +81924,19 @@ ## 集团账号管理(organization) 版本:2021-03-31 +### 第 21 次发布 + +发布时间:2023-08-09 01:40:29 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [[CreateOrganizationMemberAuthIdentity](https://cloud.tencent.com/document/api/850/96106)](https://cloud.tencent.com/document/api/#/#) +* [[DeleteOrganizationMembersPolicy](https://cloud.tencent.com/document/api/850/96105)](https://cloud.tencent.com/document/api/#/#) + ### 第 20 次发布 发布时间:2023-06-30 01:38:16 @@ -80052,6 +82283,27 @@ ## 渠道合作伙伴(partners) 版本:2018-03-21 +### 第 31 次发布 + +发布时间:2023-07-20 18:40:49 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增数据结构: + +* [RefundMap](https://cloud.tencent.com/document/api/563/16047#RefundMap) + +修改数据结构: + +* [AgentDealNewElem](https://cloud.tencent.com/document/api/563/16047#AgentDealNewElem) + + * 新增成员:RefundMap + + * **修改成员**:ResourceIds + + ### 第 30 次发布 发布时间:2023-06-21 01:29:51 @@ -80625,6 +82877,35 @@ ## 云数据库 PostgreSQL(postgres) 版本:2017-03-12 +### 第 39 次发布 + +发布时间:2023-08-04 01:15:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeDBInstanceHAConfig](https://cloud.tencent.com/document/api/409/95970) +* [ModifyDBInstanceHAConfig](https://cloud.tencent.com/document/api/409/95969) +* [SwitchDBInstancePrimary](https://cloud.tencent.com/document/api/409/95968) + +### 第 38 次发布 + +发布时间:2023-07-21 01:35:07 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [CloneDBInstance](https://cloud.tencent.com/document/api/409/68071) + + * 新增入参:SyncMode + + ### 第 37 次发布 发布时间:2023-06-14 01:35:12 @@ -81737,6 +84018,21 @@ ## 云压测(pts) 版本:2021-07-28 +### 第 12 次发布 + +发布时间:2023-07-21 01:35:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [Scenario](https://cloud.tencent.com/document/api/1484/78100#Scenario) + + * **修改成员**:ScenarioId, Name, Description, Type, Status, Load, EncodedScripts, Configs, Extensions, Datasets, SLAId, CronId, CreatedAt, UpdatedAt, ProjectId, AppId, Uin, SubAccountUin, TestScripts, Protocols, RequestFiles, SLAPolicy, Plugins, DomainNameConfig, NotificationHooks, Owner, ProjectName + + ### 第 11 次发布 发布时间:2023-04-05 01:50:08 @@ -83610,6 +85906,21 @@ ## 前端性能监控(rum) 版本:2021-06-22 +### 第 28 次发布 + +发布时间:2023-08-09 01:43:06 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeDataPvUrlStatistics](https://cloud.tencent.com/document/api/1464/65768) + + * 新增入参:GroupByType + + ### 第 27 次发布 发布时间:2023-05-12 01:43:18 @@ -84098,6 +86409,36 @@ ## 云函数(scf) 版本:2018-04-16 +### 第 59 次发布 + +发布时间:2023-08-04 01:16:09 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [NamespaceResourceEnvTKE](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnvTKE) + + * 新增成员:PodTemplatePatch + + +### 第 58 次发布 + +发布时间:2023-08-02 01:20:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [K8SToleration](https://cloud.tencent.com/document/api/583/17244#K8SToleration) + + * **修改成员**:Key + + ### 第 57 次发布 发布时间:2023-07-20 01:39:23 @@ -84115,10 +86456,10 @@ 新增数据结构: -* [[K8SLabel](https://cloud.tencent.com/document/api/583/17244#K8SLabel)](https://cloud.tencent.com/document/api/583/17244#[K8SLabel](https://cloud.tencent.com/document/api/583/17244#K8SLabel)) -* [[K8SToleration](https://cloud.tencent.com/document/api/583/17244#K8SToleration)](https://cloud.tencent.com/document/api/583/17244#[K8SToleration](https://cloud.tencent.com/document/api/583/17244#K8SToleration)) -* [[NamespaceResourceEnv](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnv)](https://cloud.tencent.com/document/api/583/17244#[NamespaceResourceEnv](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnv)) -* [[NamespaceResourceEnvTKE](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnvTKE)](https://cloud.tencent.com/document/api/583/17244#[NamespaceResourceEnvTKE](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnvTKE)) +* [K8SLabel](https://cloud.tencent.com/document/api/583/17244#K8SLabel) +* [K8SToleration](https://cloud.tencent.com/document/api/583/17244#K8SToleration) +* [NamespaceResourceEnv](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnv) +* [NamespaceResourceEnvTKE](https://cloud.tencent.com/document/api/583/17244#NamespaceResourceEnvTKE) ### 第 56 次发布 @@ -86431,6 +88772,37 @@ ## 云数据库 SQL Server(sqlserver) 版本:2018-03-28 +### 第 49 次发布 + +发布时间:2023-08-04 01:16:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [DBInstance](https://cloud.tencent.com/document/api/238/19976#DBInstance) + + * **修改成员**:Architecture, Style + + +### 第 48 次发布 + +发布时间:2023-08-02 01:20:58 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeInstanceByOrders](https://cloud.tencent.com/document/api/238/95801) + +新增数据结构: + +* [DealInstance](https://cloud.tencent.com/document/api/238/19976#DealInstance) + ### 第 47 次发布 发布时间:2023-06-28 01:38:12 @@ -87584,6 +89956,21 @@ ## 安全运营中心(ssa) 版本:2018-06-08 +### 第 18 次发布 + +发布时间:2023-07-26 01:34:12 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [ConcernInfo](https://cloud.tencent.com/document/api/664/51406#ConcernInfo) + + * **修改成员**:IpCountry, IpProvince, Result, Confidence, IpIsp, IpInfrastructure, ThreatType, Groups, Status, Tags, VictimAssetType, VictimAssetName, DomainRegistrant, DomainRegisteredInstitution, DomainRegistrationTime, FileName, FileMd5, VirusName, FilePath, FileSize, ProcName, Pid, ProcPath, ProcUser, DefendedCount, DetectedCount + + ### 第 17 次发布 发布时间:2023-06-14 01:38:59 @@ -87947,6 +90334,42 @@ ## SSL 证书(ssl) 版本:2019-12-05 +### 第 39 次发布 + +发布时间:2023-08-09 01:45:30 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeCertificates](https://cloud.tencent.com/document/api/400/41671) + + * 新增入参:Hostable + +* [UpdateCertificateInstance](https://cloud.tencent.com/document/api/400/91649) + +* [UploadCertificate](https://cloud.tencent.com/document/api/400/41665) + + * 新增入参:Tags + + +修改数据结构: + +* [DeployRecordDetail](https://cloud.tencent.com/document/api/400/41679#DeployRecordDetail) + + * 新增成员:EnvId, TCBType, Region + + * **修改成员**:Port + +* [UpdateRecordDetail](https://cloud.tencent.com/document/api/400/41679#UpdateRecordDetail) + + * 新增成员:EnvId, TCBType + + * **修改成员**:Port, Namespace, SecretName + + ### 第 38 次发布 发布时间:2023-07-17 01:34:11 @@ -95178,6 +97601,54 @@ ## 容器安全服务(tcss) 版本:2020-11-01 +### 第 48 次发布 + +发布时间:2023-07-28 01:47:50 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AddAssetImageRegistryRegistryDetail](https://cloud.tencent.com/document/api/1285/65560) + + * 新增入参:ConnDetectConfig + +* [CreateAssetImageRegistryScanTask](https://cloud.tencent.com/document/api/1285/65517) + + * 新增出参:TaskID + +* [CreateAssetImageRegistryScanTaskOneKey](https://cloud.tencent.com/document/api/1285/65516) + + * 新增出参:TaskID + +* [DescribeAssetImageRegistryRegistryDetail](https://cloud.tencent.com/document/api/1285/65539) + + * 新增出参:ConnDetectDetail, InstanceID + +* [DescribeAssetImageRegistryScanStatusOneKey](https://cloud.tencent.com/document/api/1285/65495) + + * 新增入参:TaskID + +* [ModifyAssetImageRegistryScanStop](https://cloud.tencent.com/document/api/1285/65462) + + * 新增入参:TaskID + +* [ModifyAssetImageRegistryScanStopOneKey](https://cloud.tencent.com/document/api/1285/65461) + + * 新增入参:TaskID + +* [UpdateAssetImageRegistryRegistryDetail](https://cloud.tencent.com/document/api/1285/65519) + + * 新增入参:ConnDetectConfig + + +新增数据结构: + +* [ConnDetectConfig](https://cloud.tencent.com/document/api/1285/65614#ConnDetectConfig) +* [RegistryConnDetectResult](https://cloud.tencent.com/document/api/1285/65614#RegistryConnDetectResult) + ### 第 47 次发布 发布时间:2023-06-30 01:45:16 @@ -96948,6 +99419,43 @@ ## 分布式身份(tdid) 版本:2021-05-19 +### 第 10 次发布 + +发布时间:2023-07-24 01:49:20 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* AddLabel +* GetAgencyTDid + +**删除数据结构**: + +* Identity + +### 第 9 次发布 + +发布时间:2023-07-21 01:42:20 + +本次发布包含了以下内容: + +改善已有的文档。 + +**删除接口**: + +* GetConsortiumClusterList +* GetConsortiumList +* GetCredentialCptRank + +**删除数据结构**: + +* BcosClusterItem +* ConsortiumItem +* CptIssueRank + ### 第 8 次发布 发布时间:2023-06-27 01:43:11 @@ -97224,6 +99732,97 @@ ## 消息队列 TDMQ(tdmq) 版本:2020-02-17 +### 第 72 次发布 + +发布时间:2023-08-09 01:50:17 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeRabbitMQVirtualHost](https://cloud.tencent.com/document/api/1179/93455) + + * 新增入参:SortElement, SortOrder + + +修改数据结构: + +* [RabbitMQVirtualHostInfo](https://cloud.tencent.com/document/api/1179/46089#RabbitMQVirtualHostInfo) + + * 新增成员:Status, MessageHeapCount, MessageRateIn, MessageRateOut + + * **修改成员**:InstanceId, VirtualHost, Description, Tags, CreateTime, ModifyTime, VirtualHostStatistics + + +### 第 71 次发布 + +发布时间:2023-08-02 01:22:40 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DeleteRocketMQVipInstance](https://cloud.tencent.com/document/api/1179/95802) + +修改接口: + +* [DescribeCmqSubscriptionDetail](https://cloud.tencent.com/document/api/1179/55908) + + * 新增入参:QueueName, QueryType + + * **修改入参**:TopicName + + +修改数据结构: + +* [CmqSubscription](https://cloud.tencent.com/document/api/1179/46089#CmqSubscription) + + * 新增成员:TopicName + +* [CmqTopic](https://cloud.tencent.com/document/api/1179/46089#CmqTopic) + + * 新增成员:SubscriptionCount + + * **修改成员**:TopicId, TopicName, MsgRetentionSeconds, MaxMsgSize, Qps, FilterType, CreateTime, LastModifyTime, MsgCount, CreateUin, Tags, Trace, TenantId, NamespaceName, Status, BrokerType + + +### 第 70 次发布 + +发布时间:2023-08-01 01:43:47 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateRocketMQVipInstance](https://cloud.tencent.com/document/api/1179/95721) + +新增数据结构: + +* [VpcInfo](https://cloud.tencent.com/document/api/1179/46089#VpcInfo) + +### 第 69 次发布 + +发布时间:2023-07-26 01:38:18 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [RabbitMQClusterInfo](https://cloud.tencent.com/document/api/1179/46089#RabbitMQClusterInfo) + + * 新增成员:ZoneIds + + * **修改成员**:ExceptionInformation, ClusterStatus + + ### 第 68 次发布 发布时间:2023-07-17 01:38:17 @@ -101023,6 +103622,44 @@ ## 边缘安全加速平台(teo) 版本:2022-09-01 +### 第 47 次发布 + +发布时间:2023-08-04 01:18:31 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [L4OfflineLog](https://cloud.tencent.com/document/api/1552/80721#L4OfflineLog) + + * 新增成员:LogStartTime, LogEndTime + +* [L7OfflineLog](https://cloud.tencent.com/document/api/1552/80721#L7OfflineLog) + + * 新增成员:LogStartTime, LogEndTime + +* [Resource](https://cloud.tencent.com/document/api/1552/80721#Resource) + + * **修改成员**:Group, ZoneNumber + + +### 第 46 次发布 + +发布时间:2023-07-31 01:43:23 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [ApplicationProxy](https://cloud.tencent.com/document/api/1552/80721#ApplicationProxy) + + * **修改成员**:ProxyId, AccelerateMainland + + ### 第 45 次发布 发布时间:2023-07-06 01:59:03 @@ -104491,6 +107128,69 @@ ## TI-ONE 训练平台(tione) 版本:2021-11-11 +### 第 31 次发布 + +发布时间:2023-08-08 22:45:41 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [[ChatCompletion](https://cloud.tencent.com/document/api/851/96102)](https://cloud.tencent.com/document/api/#/#) + +新增数据结构: + +* [[Choice](https://cloud.tencent.com/document/api/851/75051#Choice)](https://cloud.tencent.com/document/api/851/75051#[Choice](https://cloud.tencent.com/document/api/851/75051#Choice)) +* [[Message](https://cloud.tencent.com/document/api/851/75051#Message)](https://cloud.tencent.com/document/api/851/75051#[Message](https://cloud.tencent.com/document/api/851/75051#Message)) +* [[Usage](https://cloud.tencent.com/document/api/851/75051#Usage)](https://cloud.tencent.com/document/api/851/75051#[Usage](https://cloud.tencent.com/document/api/851/75051#Usage)) + +### 第 30 次发布 + +发布时间:2023-07-28 15:36:37 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DeleteNotebook](https://cloud.tencent.com/document/api/851/95663) +* [DescribeNotebook](https://cloud.tencent.com/document/api/851/95662) +* [StopCreatingImage](https://cloud.tencent.com/document/api/851/95661) +* [StopNotebook](https://cloud.tencent.com/document/api/851/95660) + +新增数据结构: + +* [NotebookDetail](https://cloud.tencent.com/document/api/851/75051#NotebookDetail) + +### 第 29 次发布 + +发布时间:2023-07-28 15:25:51 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [CreateNotebook](https://cloud.tencent.com/document/api/851/95658) +* [CreateNotebookImage](https://cloud.tencent.com/document/api/851/95657) +* [DeleteNotebookImageRecord](https://cloud.tencent.com/document/api/851/95656) +* [DescribeNotebookImageKernels](https://cloud.tencent.com/document/api/851/95655) +* [DescribeNotebookImageRecords](https://cloud.tencent.com/document/api/851/95654) +* [DescribeNotebooks](https://cloud.tencent.com/document/api/851/95653) +* [ModifyNotebook](https://cloud.tencent.com/document/api/851/95652) +* [ModifyNotebookTags](https://cloud.tencent.com/document/api/851/95651) +* [StartNotebook](https://cloud.tencent.com/document/api/851/95650) + +新增数据结构: + +* [NotebookImageRecord](https://cloud.tencent.com/document/api/851/75051#NotebookImageRecord) +* [NotebookSetItem](https://cloud.tencent.com/document/api/851/75051#NotebookSetItem) +* [ResourceConf](https://cloud.tencent.com/document/api/851/75051#ResourceConf) + ### 第 28 次发布 发布时间:2023-07-17 01:40:19 @@ -105255,6 +107955,33 @@ ## 互动白板(tiw) 版本:2019-09-19 +### 第 33 次发布 + +发布时间:2023-07-24 01:52:09 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeTranscodeByUrl](https://cloud.tencent.com/document/api/1137/95412) + +### 第 32 次发布 + +发布时间:2023-07-21 01:44:39 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeTranscode](https://cloud.tencent.com/document/api/1137/40059) + + * 新增出参:CreateTime, AssignTime, FinishedTime + + ### 第 31 次发布 发布时间:2023-04-11 01:42:49 @@ -105873,6 +108600,27 @@ ## 容器服务(tke) 版本:2018-05-25 +### 第 160 次发布 + +发布时间:2023-08-07 01:18:30 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [ModifyClusterAttribute](https://cloud.tencent.com/document/api/457/42938) + + * 新增入参:ClusterProperty + + * 新增出参:ClusterProperty + + +新增数据结构: + +* [ClusterProperty](https://cloud.tencent.com/document/api/457/31866#ClusterProperty) + ### 第 159 次发布 发布时间:2023-07-14 01:40:32 @@ -109463,6 +112211,32 @@ +## 消息队列 RocketMQ 版(trocket) 版本:2023-03-08 + +### 第 1 次发布 + +发布时间:2023-08-07 10:45:38 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeInstanceList](https://cloud.tencent.com/document/api/1493/96028) +* [DescribeTopicList](https://cloud.tencent.com/document/api/1493/96030) + +新增数据结构: + +* [Filter](https://cloud.tencent.com/document/api/1493/96031#Filter) +* [InstanceItem](https://cloud.tencent.com/document/api/1493/96031#InstanceItem) +* [Tag](https://cloud.tencent.com/document/api/1493/96031#Tag) +* [TagFilter](https://cloud.tencent.com/document/api/1493/96031#TagFilter) +* [TopicItem](https://cloud.tencent.com/document/api/1493/96031#TopicItem) + + + + ## T-Sec-安心平台(RP)(trp) 版本:2021-05-15 ### 第 25 次发布 @@ -110138,6 +112912,25 @@ ## 实时音视频(trtc) 版本:2019-07-22 +### 第 56 次发布 + +发布时间:2023-07-28 01:54:49 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [McuLayout](https://cloud.tencent.com/document/api/647/44055#McuLayout) + + * 新增成员:BackgroundRenderMode + +* [McuVideoParams](https://cloud.tencent.com/document/api/647/44055#McuVideoParams) + + * 新增成员:BackgroundRenderMode + + ### 第 55 次发布 发布时间:2023-07-11 01:48:58 @@ -111185,6 +113978,19 @@ ## 微服务引擎 TSE(tse) 版本:2020-12-07 +### 第 37 次发布 + +发布时间:2023-08-07 01:19:09 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改数据结构: + +* [KongRoutePreview](https://cloud.tencent.com/document/api/1364/54942#KongRoutePreview) + + ### 第 36 次发布 发布时间:2023-07-19 01:46:53 @@ -111903,6 +114709,30 @@ ## 微服务平台 TSF(tsf) 版本:2018-03-26 +### 第 97 次发布 + +发布时间:2023-08-02 01:26:52 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DeployGroup](https://cloud.tencent.com/document/api/649/36070) + + * 新增入参:EnableBatchHealthCheck + + +修改数据结构: + +* [VmGroup](https://cloud.tencent.com/document/api/649/36099#VmGroup) + + * 新增成员:EnableBatchHealthCheck + + * **修改成员**:GroupId, GroupName, GroupStatus, PackageId, PackageName, PackageVersion, ClusterId, ClusterName, NamespaceId, NamespaceName, ApplicationId, ApplicationName, InstanceCount, RunInstanceCount, StartupParameters, CreateTime, UpdateTime, OffInstanceCount, GroupDesc, MicroserviceType, ApplicationType, GroupResourceType, UpdatedTime, DeployDesc, UpdateType, DeployBetaEnable, DeployBatch, DeployExeMode, DeployWaitTime, EnableHealthCheck, HealthCheckSettings, PackageType, StartScript, StopScript, Alias, AgentProfileList, WarmupSetting, GatewayConfig + + ### 第 96 次发布 发布时间:2023-06-08 02:06:11 @@ -119417,6 +122247,66 @@ ## 私有网络(vpc) 版本:2017-03-12 +### 第 164 次发布 + +发布时间:2023-08-09 01:58:05 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AcceptVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96026) + + * 新增入参:PeeringConnectionId + +* [DeleteVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96024) + + * 新增入参:PeeringConnectionId + + +### 第 163 次发布 + +发布时间:2023-08-07 01:19:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [AcceptVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96026) +* [CreateVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96025) +* [DeleteVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96024) +* [DescribeVpcPeeringConnections](https://cloud.tencent.com/document/api/215/96023) +* [ModifyVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96022) +* [RejectVpcPeeringConnection](https://cloud.tencent.com/document/api/215/96021) + +### 第 162 次发布 + +发布时间:2023-07-28 01:57:59 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeSpecificTrafficPackageUsedDetails](https://cloud.tencent.com/document/api/215/95637) + +修改接口: + +* [DescribeVpcEndPointService](https://cloud.tencent.com/document/api/215/54678) + + * 新增入参:IsListAuthorizedEndPointService + + +新增数据结构: + +* [TrafficFlow](https://cloud.tencent.com/document/api/215/15824#TrafficFlow) +* [UsedDetail](https://cloud.tencent.com/document/api/215/15824#UsedDetail) + ### 第 161 次发布 发布时间:2023-07-12 01:51:01 @@ -123106,6 +125996,65 @@ ## Web 应用防火墙(waf) 版本:2018-01-25 +### 第 41 次发布 + +发布时间:2023-07-31 01:50:43 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [GetAttackHistogram](https://cloud.tencent.com/document/api/627/95692) + +新增数据结构: + +* [LogHistogramInfo](https://cloud.tencent.com/document/api/627/53609#LogHistogramInfo) + +### 第 40 次发布 + +发布时间:2023-07-28 01:59:57 + +本次发布包含了以下内容: + +改善已有的文档。 + +新增接口: + +* [DescribeAccessHistogram](https://cloud.tencent.com/document/api/627/95638) + +新增数据结构: + +* [AccessHistogramItem](https://cloud.tencent.com/document/api/627/53609#AccessHistogramItem) + +### 第 39 次发布 + +发布时间:2023-07-25 11:27:24 + +本次发布包含了以下内容: + +改善已有的文档。 + +**预下线接口**: + +* DescribeAutoDenyIP + +### 第 38 次发布 + +发布时间:2023-07-21 01:50:55 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [AddDomainWhiteRule](https://cloud.tencent.com/document/api/627/72650) + + * **修改出参**:Id + + ### 第 37 次发布 发布时间:2023-07-05 01:56:06 @@ -124202,6 +127151,119 @@ ## 数据开发治理平台 WeData(wedata) 版本:2021-08-20 +### 第 40 次发布 + +发布时间:2023-08-09 02:00:26 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeSchedulerInstanceStatus](https://cloud.tencent.com/document/api/1267/95198) + + * 新增入参:StartTime, EndTime, InCharge + +* [DescribeSchedulerRunTimeInstanceCntByStatus](https://cloud.tencent.com/document/api/1267/95197) + + * 新增入参:TaskType, InCharge + +* [DescribeSchedulerTaskCntByStatus](https://cloud.tencent.com/document/api/1267/95196) + + * 新增入参:InCharge + +* [DescribeSchedulerTaskTypeCnt](https://cloud.tencent.com/document/api/1267/95195) + + * 新增入参:InCharge + +* [DescribeStatisticInstanceStatusTrendOps](https://cloud.tencent.com/document/api/1267/95193) + + * 新增入参:InCharge, TaskType, StateList, AggregationUnit, AverageWindowSize + +* [DescribeTaskByCycle](https://cloud.tencent.com/document/api/1267/95192) + + * 新增入参:InCharge + +* [DescribeTaskByStatusReport](https://cloud.tencent.com/document/api/1267/95190) + + * 新增入参:AggregationUnit, CycleUnit, Status, InCharge + + +修改数据结构: + +* [InstanceStatisticInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceStatisticInfo) + + * 新增成员:ReportTime, Count + +* [TaskByStatus](https://cloud.tencent.com/document/api/1267/76336#TaskByStatus) + + * 新增成员:ReportTime, Count + + +### 第 39 次发布 + +发布时间:2023-08-08 01:27:52 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [DescribeBatchOperateTask](https://cloud.tencent.com/document/api/1267/94610) + + * 新增入参:DatasourceIdList, DatasourceTypeList, CycleUnitList, CanSubmit + + +修改数据结构: + +* [DescribeBatchOperateTaskDTO](https://cloud.tencent.com/document/api/1267/76336#DescribeBatchOperateTaskDTO) + + * 新增成员:CycleUnit, ScheduleDesc, DatasourceId, DatasourceType + + +### 第 38 次发布 + +发布时间:2023-08-04 01:21:15 + +本次发布包含了以下内容: + +改善已有的文档。 + +修改接口: + +* [BatchDeleteIntegrationTasks](https://cloud.tencent.com/document/api/1267/82540) + + * 新增入参:DeleteKFFlag + +* [CommitIntegrationTask](https://cloud.tencent.com/document/api/1267/82526) + + * 新增入参:VersionDesc, InstanceVersion + +* [DeleteIntegrationTask](https://cloud.tencent.com/document/api/1267/82516) + + * 新增出参:DeleteFlag, DeleteErrInfo + +* [DescribeIntegrationTask](https://cloud.tencent.com/document/api/1267/82495) + + * 新增入参:InstanceVersion + + * 新增出参:AgentStatus, TaskVersion + + +新增数据结构: + +* [AgentStatus](https://cloud.tencent.com/document/api/1267/76336#AgentStatus) +* [TaskVersionInstance](https://cloud.tencent.com/document/api/1267/76336#TaskVersionInstance) + +修改数据结构: + +* [IntegrationTaskInfo](https://cloud.tencent.com/document/api/1267/76336#IntegrationTaskInfo) + + * 新增成员:SwitchResource, ReadPhase, InstanceVersion + + ### 第 37 次发布 发布时间:2023-07-20 01:54:12 @@ -124212,172 +127274,172 @@ 新增接口: -* [[BatchDeleteOpsTasks](https://cloud.tencent.com/document/api/1267/95234)](https://cloud.tencent.com/document/api/#/#) -* [[BatchModifyOpsOwners](https://cloud.tencent.com/document/api/1267/95258)](https://cloud.tencent.com/document/api/#/#) -* [[BatchRunOpsTask](https://cloud.tencent.com/document/api/1267/95233)](https://cloud.tencent.com/document/api/#/#) -* [[BatchStopOpsTasks](https://cloud.tencent.com/document/api/1267/95257)](https://cloud.tencent.com/document/api/#/#) -* [[BatchStopWorkflowsByIds](https://cloud.tencent.com/document/api/1267/95232)](https://cloud.tencent.com/document/api/#/#) -* [[CountOpsInstanceState](https://cloud.tencent.com/document/api/1267/95256)](https://cloud.tencent.com/document/api/#/#) -* [[CreateBaseline](https://cloud.tencent.com/document/api/1267/95249)](https://cloud.tencent.com/document/api/#/#) -* [[CreateOpsMakePlan](https://cloud.tencent.com/document/api/1267/95231)](https://cloud.tencent.com/document/api/#/#) -* [[DagInstances](https://cloud.tencent.com/document/api/1267/95230)](https://cloud.tencent.com/document/api/#/#) -* [[DeleteBaseline](https://cloud.tencent.com/document/api/1267/95229)](https://cloud.tencent.com/document/api/#/#) -* [[DeleteFile](https://cloud.tencent.com/document/api/1267/95250)](https://cloud.tencent.com/document/api/#/#) -* [[DeleteResourceFile](https://cloud.tencent.com/document/api/1267/95236)](https://cloud.tencent.com/document/api/#/#) -* [[DeleteWorkflowById](https://cloud.tencent.com/document/api/1267/95228)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeAllByFolderNew](https://cloud.tencent.com/document/api/1267/95227)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeAllTaskType](https://cloud.tencent.com/document/api/1267/95226)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeAllUsedVersionSon](https://cloud.tencent.com/document/api/1267/95225)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeBaselineAllTaskDag](https://cloud.tencent.com/document/api/1267/95248)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeBaselineById](https://cloud.tencent.com/document/api/1267/95247)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeBaselineInstanceDag](https://cloud.tencent.com/document/api/1267/95246)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeBaselineInstanceGantt](https://cloud.tencent.com/document/api/1267/95245)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeBaselineInstances](https://cloud.tencent.com/document/api/1267/95244)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeBaselines](https://cloud.tencent.com/document/api/1267/95243)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeBelongTo](https://cloud.tencent.com/document/api/1267/95224)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeDependOpsTaskList](https://cloud.tencent.com/document/api/1267/95223)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeDependOpsTasks](https://cloud.tencent.com/document/api/1267/95255)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeDependTaskLists](https://cloud.tencent.com/document/api/1267/95222)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeDiagnosticInfoByBaselineId](https://cloud.tencent.com/document/api/1267/95242)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeDrInstancePage](https://cloud.tencent.com/document/api/1267/95221)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeDrInstanceScriptContent](https://cloud.tencent.com/document/api/1267/95220)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeDrSonInstance](https://cloud.tencent.com/document/api/1267/95219)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeEvent](https://cloud.tencent.com/document/api/1267/95218)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeEventCases](https://cloud.tencent.com/document/api/1267/95217)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeEventConsumeTasks](https://cloud.tencent.com/document/api/1267/95216)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeEventDetail](https://cloud.tencent.com/document/api/1267/95215)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeEventIsAlarmTypes](https://cloud.tencent.com/document/api/1267/95214)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeEventTypes](https://cloud.tencent.com/document/api/1267/95213)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeEvents](https://cloud.tencent.com/document/api/1267/95212)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeFathers](https://cloud.tencent.com/document/api/1267/95211)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeInstanceByCycle](https://cloud.tencent.com/document/api/1267/95210)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeInstanceByCycleReport](https://cloud.tencent.com/document/api/1267/95209)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeInstanceLogDetail](https://cloud.tencent.com/document/api/1267/95235)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeInstanceLogFile](https://cloud.tencent.com/document/api/1267/95208)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeInstancesInfoWithTaskInfo](https://cloud.tencent.com/document/api/1267/95207)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeOperateOpsTaskDatasource](https://cloud.tencent.com/document/api/1267/95206)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeOperateOpsTaskDatasourceType](https://cloud.tencent.com/document/api/1267/95205)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeOperateOpsTasks](https://cloud.tencent.com/document/api/1267/95254)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeOpsInstanceLogList](https://cloud.tencent.com/document/api/1267/95204)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95203)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeOpsMakePlanTasks](https://cloud.tencent.com/document/api/1267/95202)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeOpsMakePlans](https://cloud.tencent.com/document/api/1267/95201)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeOpsWorkflows](https://cloud.tencent.com/document/api/1267/95200)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeScheduleInstance](https://cloud.tencent.com/document/api/1267/95241)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeScheduleInstances](https://cloud.tencent.com/document/api/1267/95199)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeSchedulerInstanceStatus](https://cloud.tencent.com/document/api/1267/95198)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeSchedulerRunTimeInstanceCntByStatus](https://cloud.tencent.com/document/api/1267/95197)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeSchedulerTaskCntByStatus](https://cloud.tencent.com/document/api/1267/95196)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeSchedulerTaskTypeCnt](https://cloud.tencent.com/document/api/1267/95195)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeSonInstances](https://cloud.tencent.com/document/api/1267/95194)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeStatisticInstanceStatusTrendOps](https://cloud.tencent.com/document/api/1267/95193)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeSuccessorOpsTaskInfos](https://cloud.tencent.com/document/api/1267/95253)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeTaskByCycle](https://cloud.tencent.com/document/api/1267/95192)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeTaskByCycleReport](https://cloud.tencent.com/document/api/1267/95191)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeTaskByStatusReport](https://cloud.tencent.com/document/api/1267/95190)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeTaskRunHistory](https://cloud.tencent.com/document/api/1267/95189)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeThirdTaskRunLog](https://cloud.tencent.com/document/api/1267/95188)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeWorkflowCanvasInfo](https://cloud.tencent.com/document/api/1267/95187)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeWorkflowExecuteById](https://cloud.tencent.com/document/api/1267/95186)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeWorkflowInfoById](https://cloud.tencent.com/document/api/1267/95185)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeWorkflowListByProjectId](https://cloud.tencent.com/document/api/1267/95184)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeWorkflowOpsCanvasInfo](https://cloud.tencent.com/document/api/1267/95183)](https://cloud.tencent.com/document/api/#/#) -* [[DescribeWorkflowTaskCount](https://cloud.tencent.com/document/api/1267/95182)](https://cloud.tencent.com/document/api/#/#) -* [[DiagnosePlus](https://cloud.tencent.com/document/api/1267/95181)](https://cloud.tencent.com/document/api/#/#) -* [[EditBaseline](https://cloud.tencent.com/document/api/1267/95240)](https://cloud.tencent.com/document/api/#/#) -* [[ForceSucScheduleInstances](https://cloud.tencent.com/document/api/1267/95180)](https://cloud.tencent.com/document/api/#/#) -* [[FreezeOpsTasks](https://cloud.tencent.com/document/api/1267/95252)](https://cloud.tencent.com/document/api/#/#) -* [[FreezeTasksByWorkflowIds](https://cloud.tencent.com/document/api/1267/95179)](https://cloud.tencent.com/document/api/#/#) -* [[KillOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95178)](https://cloud.tencent.com/document/api/#/#) -* [[KillScheduleInstances](https://cloud.tencent.com/document/api/1267/95177)](https://cloud.tencent.com/document/api/#/#) -* [[MakeUpOpsTasks](https://cloud.tencent.com/document/api/1267/95251)](https://cloud.tencent.com/document/api/#/#) -* [[MakeUpTasksByWorkflow](https://cloud.tencent.com/document/api/1267/95176)](https://cloud.tencent.com/document/api/#/#) -* [[ModifyBaselineAlarmStatus](https://cloud.tencent.com/document/api/1267/95175)](https://cloud.tencent.com/document/api/#/#) -* [[ModifyBaselineTaskAlarmStatus](https://cloud.tencent.com/document/api/1267/95174)](https://cloud.tencent.com/document/api/#/#) -* [[RerunOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95173)](https://cloud.tencent.com/document/api/#/#) -* [[RerunScheduleInstances](https://cloud.tencent.com/document/api/1267/95172)](https://cloud.tencent.com/document/api/#/#) -* [[RunTasksByMultiWorkflow](https://cloud.tencent.com/document/api/1267/95171)](https://cloud.tencent.com/document/api/#/#) -* [[StopBaseline](https://cloud.tencent.com/document/api/1267/95239)](https://cloud.tencent.com/document/api/#/#) -* [[SubmitBaseline](https://cloud.tencent.com/document/api/1267/95238)](https://cloud.tencent.com/document/api/#/#) -* [[UpdateWorkflowOwner](https://cloud.tencent.com/document/api/1267/95170)](https://cloud.tencent.com/document/api/#/#) +* [BatchDeleteOpsTasks](https://cloud.tencent.com/document/api/1267/95234) +* [BatchModifyOpsOwners](https://cloud.tencent.com/document/api/1267/95258) +* [BatchRunOpsTask](https://cloud.tencent.com/document/api/1267/95233) +* [BatchStopOpsTasks](https://cloud.tencent.com/document/api/1267/95257) +* [BatchStopWorkflowsByIds](https://cloud.tencent.com/document/api/1267/95232) +* [CountOpsInstanceState](https://cloud.tencent.com/document/api/1267/95256) +* [CreateBaseline](https://cloud.tencent.com/document/api/1267/95249) +* [CreateOpsMakePlan](https://cloud.tencent.com/document/api/1267/95231) +* [DagInstances](https://cloud.tencent.com/document/api/1267/95230) +* [DeleteBaseline](https://cloud.tencent.com/document/api/1267/95229) +* [DeleteFile](https://cloud.tencent.com/document/api/1267/95250) +* [DeleteResourceFile](https://cloud.tencent.com/document/api/1267/95236) +* [DeleteWorkflowById](https://cloud.tencent.com/document/api/1267/95228) +* [DescribeAllByFolderNew](https://cloud.tencent.com/document/api/1267/95227) +* [DescribeAllTaskType](https://cloud.tencent.com/document/api/1267/95226) +* [DescribeAllUsedVersionSon](https://cloud.tencent.com/document/api/1267/95225) +* [DescribeBaselineAllTaskDag](https://cloud.tencent.com/document/api/1267/95248) +* [DescribeBaselineById](https://cloud.tencent.com/document/api/1267/95247) +* [DescribeBaselineInstanceDag](https://cloud.tencent.com/document/api/1267/95246) +* [DescribeBaselineInstanceGantt](https://cloud.tencent.com/document/api/1267/95245) +* [DescribeBaselineInstances](https://cloud.tencent.com/document/api/1267/95244) +* [DescribeBaselines](https://cloud.tencent.com/document/api/1267/95243) +* [DescribeBelongTo](https://cloud.tencent.com/document/api/1267/95224) +* [DescribeDependOpsTaskList](https://cloud.tencent.com/document/api/1267/95223) +* [DescribeDependOpsTasks](https://cloud.tencent.com/document/api/1267/95255) +* [DescribeDependTaskLists](https://cloud.tencent.com/document/api/1267/95222) +* [DescribeDiagnosticInfoByBaselineId](https://cloud.tencent.com/document/api/1267/95242) +* [DescribeDrInstancePage](https://cloud.tencent.com/document/api/1267/95221) +* [DescribeDrInstanceScriptContent](https://cloud.tencent.com/document/api/1267/95220) +* [DescribeDrSonInstance](https://cloud.tencent.com/document/api/1267/95219) +* [DescribeEvent](https://cloud.tencent.com/document/api/1267/95218) +* [DescribeEventCases](https://cloud.tencent.com/document/api/1267/95217) +* [DescribeEventConsumeTasks](https://cloud.tencent.com/document/api/1267/95216) +* [DescribeEventDetail](https://cloud.tencent.com/document/api/1267/95215) +* [DescribeEventIsAlarmTypes](https://cloud.tencent.com/document/api/1267/95214) +* [DescribeEventTypes](https://cloud.tencent.com/document/api/1267/95213) +* [DescribeEvents](https://cloud.tencent.com/document/api/1267/95212) +* [DescribeFathers](https://cloud.tencent.com/document/api/1267/95211) +* [DescribeInstanceByCycle](https://cloud.tencent.com/document/api/1267/95210) +* [DescribeInstanceByCycleReport](https://cloud.tencent.com/document/api/1267/95209) +* [DescribeInstanceLogDetail](https://cloud.tencent.com/document/api/1267/95235) +* [DescribeInstanceLogFile](https://cloud.tencent.com/document/api/1267/95208) +* [DescribeInstancesInfoWithTaskInfo](https://cloud.tencent.com/document/api/1267/95207) +* [DescribeOperateOpsTaskDatasource](https://cloud.tencent.com/document/api/1267/95206) +* [DescribeOperateOpsTaskDatasourceType](https://cloud.tencent.com/document/api/1267/95205) +* [DescribeOperateOpsTasks](https://cloud.tencent.com/document/api/1267/95254) +* [DescribeOpsInstanceLogList](https://cloud.tencent.com/document/api/1267/95204) +* [DescribeOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95203) +* [DescribeOpsMakePlanTasks](https://cloud.tencent.com/document/api/1267/95202) +* [DescribeOpsMakePlans](https://cloud.tencent.com/document/api/1267/95201) +* [DescribeOpsWorkflows](https://cloud.tencent.com/document/api/1267/95200) +* [DescribeScheduleInstance](https://cloud.tencent.com/document/api/1267/95241) +* [DescribeScheduleInstances](https://cloud.tencent.com/document/api/1267/95199) +* [DescribeSchedulerInstanceStatus](https://cloud.tencent.com/document/api/1267/95198) +* [DescribeSchedulerRunTimeInstanceCntByStatus](https://cloud.tencent.com/document/api/1267/95197) +* [DescribeSchedulerTaskCntByStatus](https://cloud.tencent.com/document/api/1267/95196) +* [DescribeSchedulerTaskTypeCnt](https://cloud.tencent.com/document/api/1267/95195) +* [DescribeSonInstances](https://cloud.tencent.com/document/api/1267/95194) +* [DescribeStatisticInstanceStatusTrendOps](https://cloud.tencent.com/document/api/1267/95193) +* [DescribeSuccessorOpsTaskInfos](https://cloud.tencent.com/document/api/1267/95253) +* [DescribeTaskByCycle](https://cloud.tencent.com/document/api/1267/95192) +* [DescribeTaskByCycleReport](https://cloud.tencent.com/document/api/1267/95191) +* [DescribeTaskByStatusReport](https://cloud.tencent.com/document/api/1267/95190) +* [DescribeTaskRunHistory](https://cloud.tencent.com/document/api/1267/95189) +* [DescribeThirdTaskRunLog](https://cloud.tencent.com/document/api/1267/95188) +* [DescribeWorkflowCanvasInfo](https://cloud.tencent.com/document/api/1267/95187) +* [DescribeWorkflowExecuteById](https://cloud.tencent.com/document/api/1267/95186) +* [DescribeWorkflowInfoById](https://cloud.tencent.com/document/api/1267/95185) +* [DescribeWorkflowListByProjectId](https://cloud.tencent.com/document/api/1267/95184) +* [DescribeWorkflowOpsCanvasInfo](https://cloud.tencent.com/document/api/1267/95183) +* [DescribeWorkflowTaskCount](https://cloud.tencent.com/document/api/1267/95182) +* [DiagnosePlus](https://cloud.tencent.com/document/api/1267/95181) +* [EditBaseline](https://cloud.tencent.com/document/api/1267/95240) +* [ForceSucScheduleInstances](https://cloud.tencent.com/document/api/1267/95180) +* [FreezeOpsTasks](https://cloud.tencent.com/document/api/1267/95252) +* [FreezeTasksByWorkflowIds](https://cloud.tencent.com/document/api/1267/95179) +* [KillOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95178) +* [KillScheduleInstances](https://cloud.tencent.com/document/api/1267/95177) +* [MakeUpOpsTasks](https://cloud.tencent.com/document/api/1267/95251) +* [MakeUpTasksByWorkflow](https://cloud.tencent.com/document/api/1267/95176) +* [ModifyBaselineAlarmStatus](https://cloud.tencent.com/document/api/1267/95175) +* [ModifyBaselineTaskAlarmStatus](https://cloud.tencent.com/document/api/1267/95174) +* [RerunOpsMakePlanInstances](https://cloud.tencent.com/document/api/1267/95173) +* [RerunScheduleInstances](https://cloud.tencent.com/document/api/1267/95172) +* [RunTasksByMultiWorkflow](https://cloud.tencent.com/document/api/1267/95171) +* [StopBaseline](https://cloud.tencent.com/document/api/1267/95239) +* [SubmitBaseline](https://cloud.tencent.com/document/api/1267/95238) +* [UpdateWorkflowOwner](https://cloud.tencent.com/document/api/1267/95170) 新增数据结构: -* [[AlarmRuleDto](https://cloud.tencent.com/document/api/1267/76336#AlarmRuleDto)](https://cloud.tencent.com/document/api/1267/76336#[AlarmRuleDto](https://cloud.tencent.com/document/api/1267/76336#AlarmRuleDto)) -* [[BaselineDetailResponse](https://cloud.tencent.com/document/api/1267/76336#BaselineDetailResponse)](https://cloud.tencent.com/document/api/1267/76336#[BaselineDetailResponse](https://cloud.tencent.com/document/api/1267/76336#BaselineDetailResponse)) -* [[BaselineDto](https://cloud.tencent.com/document/api/1267/76336#BaselineDto)](https://cloud.tencent.com/document/api/1267/76336#[BaselineDto](https://cloud.tencent.com/document/api/1267/76336#BaselineDto)) -* [[BaselineInstanceVo](https://cloud.tencent.com/document/api/1267/76336#BaselineInstanceVo)](https://cloud.tencent.com/document/api/1267/76336#[BaselineInstanceVo](https://cloud.tencent.com/document/api/1267/76336#BaselineInstanceVo)) -* [[BaselineTaskDto](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskDto)](https://cloud.tencent.com/document/api/1267/76336#[BaselineTaskDto](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskDto)) -* [[BaselineTaskInfo](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskInfo)](https://cloud.tencent.com/document/api/1267/76336#[BaselineTaskInfo](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskInfo)) -* [[BaselineTaskInstanceDto](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskInstanceDto)](https://cloud.tencent.com/document/api/1267/76336#[BaselineTaskInstanceDto](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskInstanceDto)) -* [[BatchOperateResultOpsDto](https://cloud.tencent.com/document/api/1267/76336#BatchOperateResultOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[BatchOperateResultOpsDto](https://cloud.tencent.com/document/api/1267/76336#BatchOperateResultOpsDto)) -* [[BatchOperationOpsDto](https://cloud.tencent.com/document/api/1267/76336#BatchOperationOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[BatchOperationOpsDto](https://cloud.tencent.com/document/api/1267/76336#BatchOperationOpsDto)) -* [[BooleanResponse](https://cloud.tencent.com/document/api/1267/76336#BooleanResponse)](https://cloud.tencent.com/document/api/1267/76336#[BooleanResponse](https://cloud.tencent.com/document/api/1267/76336#BooleanResponse)) -* [[CollectionFolderOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionFolderOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[CollectionFolderOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionFolderOpsDto)) -* [[CollectionInstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionInstanceOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[CollectionInstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionInstanceOpsDto)) -* [[CollectionTaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionTaskOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[CollectionTaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionTaskOpsDto)) -* [[CommonIdOpsDto](https://cloud.tencent.com/document/api/1267/76336#CommonIdOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[CommonIdOpsDto](https://cloud.tencent.com/document/api/1267/76336#CommonIdOpsDto)) -* [[CreateAlarmRuleRequest](https://cloud.tencent.com/document/api/1267/76336#CreateAlarmRuleRequest)](https://cloud.tencent.com/document/api/1267/76336#[CreateAlarmRuleRequest](https://cloud.tencent.com/document/api/1267/76336#CreateAlarmRuleRequest)) -* [[CreateMakeDatetimeInfo](https://cloud.tencent.com/document/api/1267/76336#CreateMakeDatetimeInfo)](https://cloud.tencent.com/document/api/1267/76336#[CreateMakeDatetimeInfo](https://cloud.tencent.com/document/api/1267/76336#CreateMakeDatetimeInfo)) -* [[DatasourceTypeByTaskType](https://cloud.tencent.com/document/api/1267/76336#DatasourceTypeByTaskType)](https://cloud.tencent.com/document/api/1267/76336#[DatasourceTypeByTaskType](https://cloud.tencent.com/document/api/1267/76336#DatasourceTypeByTaskType)) -* [[DescribeBaselineResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeBaselineResponse)](https://cloud.tencent.com/document/api/1267/76336#[DescribeBaselineResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeBaselineResponse)) -* [[DescribeBaselineTaskDagResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeBaselineTaskDagResponse)](https://cloud.tencent.com/document/api/1267/76336#[DescribeBaselineTaskDagResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeBaselineTaskDagResponse)) -* [[DescribeDiagnosticInfoResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeDiagnosticInfoResponse)](https://cloud.tencent.com/document/api/1267/76336#[DescribeDiagnosticInfoResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeDiagnosticInfoResponse)) -* [[DrInstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#DrInstanceOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[DrInstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#DrInstanceOpsDto)) -* [[DrInstanceOpsDtoPage](https://cloud.tencent.com/document/api/1267/76336#DrInstanceOpsDtoPage)](https://cloud.tencent.com/document/api/1267/76336#[DrInstanceOpsDtoPage](https://cloud.tencent.com/document/api/1267/76336#DrInstanceOpsDtoPage)) -* [[EventCaseAuditLogOptDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseAuditLogOptDto)](https://cloud.tencent.com/document/api/1267/76336#[EventCaseAuditLogOptDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseAuditLogOptDto)) -* [[EventCaseAuditLogVOCollection](https://cloud.tencent.com/document/api/1267/76336#EventCaseAuditLogVOCollection)](https://cloud.tencent.com/document/api/1267/76336#[EventCaseAuditLogVOCollection](https://cloud.tencent.com/document/api/1267/76336#EventCaseAuditLogVOCollection)) -* [[EventCaseConsumeLogOptDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseConsumeLogOptDto)](https://cloud.tencent.com/document/api/1267/76336#[EventCaseConsumeLogOptDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseConsumeLogOptDto)) -* [[EventCaseConsumeLogOptDtoCollection](https://cloud.tencent.com/document/api/1267/76336#EventCaseConsumeLogOptDtoCollection)](https://cloud.tencent.com/document/api/1267/76336#[EventCaseConsumeLogOptDtoCollection](https://cloud.tencent.com/document/api/1267/76336#EventCaseConsumeLogOptDtoCollection)) -* [[EventCaseOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[EventCaseOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseOpsDto)) -* [[EventDto](https://cloud.tencent.com/document/api/1267/76336#EventDto)](https://cloud.tencent.com/document/api/1267/76336#[EventDto](https://cloud.tencent.com/document/api/1267/76336#EventDto)) -* [[EventListenerOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventListenerOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[EventListenerOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventListenerOpsDto)) -* [[EventOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[EventOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventOpsDto)) -* [[EventPage](https://cloud.tencent.com/document/api/1267/76336#EventPage)](https://cloud.tencent.com/document/api/1267/76336#[EventPage](https://cloud.tencent.com/document/api/1267/76336#EventPage)) -* [[FolderOpsDto](https://cloud.tencent.com/document/api/1267/76336#FolderOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[FolderOpsDto](https://cloud.tencent.com/document/api/1267/76336#FolderOpsDto)) -* [[InstanceApiOpsRequest](https://cloud.tencent.com/document/api/1267/76336#InstanceApiOpsRequest)](https://cloud.tencent.com/document/api/1267/76336#[InstanceApiOpsRequest](https://cloud.tencent.com/document/api/1267/76336#InstanceApiOpsRequest)) -* [[InstanceCondition](https://cloud.tencent.com/document/api/1267/76336#InstanceCondition)](https://cloud.tencent.com/document/api/1267/76336#[InstanceCondition](https://cloud.tencent.com/document/api/1267/76336#InstanceCondition)) -* [[InstanceDownloadLogInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceDownloadLogInfo)](https://cloud.tencent.com/document/api/1267/76336#[InstanceDownloadLogInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceDownloadLogInfo)) -* [[InstanceLogInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceLogInfo)](https://cloud.tencent.com/document/api/1267/76336#[InstanceLogInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceLogInfo)) -* [[InstanceLogInfoOpsDto](https://cloud.tencent.com/document/api/1267/76336#InstanceLogInfoOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[InstanceLogInfoOpsDto](https://cloud.tencent.com/document/api/1267/76336#InstanceLogInfoOpsDto)) -* [[InstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#InstanceOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[InstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#InstanceOpsDto)) -* [[InstanceOpsInfoPage](https://cloud.tencent.com/document/api/1267/76336#InstanceOpsInfoPage)](https://cloud.tencent.com/document/api/1267/76336#[InstanceOpsInfoPage](https://cloud.tencent.com/document/api/1267/76336#InstanceOpsInfoPage)) -* [[InstanceSearchCondition](https://cloud.tencent.com/document/api/1267/76336#InstanceSearchCondition)](https://cloud.tencent.com/document/api/1267/76336#[InstanceSearchCondition](https://cloud.tencent.com/document/api/1267/76336#InstanceSearchCondition)) -* [[InstanceStatisticInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceStatisticInfo)](https://cloud.tencent.com/document/api/1267/76336#[InstanceStatisticInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceStatisticInfo)) -* [[LinkOpsDto](https://cloud.tencent.com/document/api/1267/76336#LinkOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[LinkOpsDto](https://cloud.tencent.com/document/api/1267/76336#LinkOpsDto)) -* [[MakePlanInstanceOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanInstanceOpsDtoCollection)](https://cloud.tencent.com/document/api/1267/76336#[MakePlanInstanceOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanInstanceOpsDtoCollection)) -* [[MakePlanOpsDto](https://cloud.tencent.com/document/api/1267/76336#MakePlanOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[MakePlanOpsDto](https://cloud.tencent.com/document/api/1267/76336#MakePlanOpsDto)) -* [[MakePlanOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanOpsDtoCollection)](https://cloud.tencent.com/document/api/1267/76336#[MakePlanOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanOpsDtoCollection)) -* [[MakePlanTaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#MakePlanTaskOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[MakePlanTaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#MakePlanTaskOpsDto)) -* [[MakePlanTaskOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanTaskOpsDtoCollection)](https://cloud.tencent.com/document/api/1267/76336#[MakePlanTaskOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanTaskOpsDtoCollection)) -* [[ModifyAlarmRuleRequest](https://cloud.tencent.com/document/api/1267/76336#ModifyAlarmRuleRequest)](https://cloud.tencent.com/document/api/1267/76336#[ModifyAlarmRuleRequest](https://cloud.tencent.com/document/api/1267/76336#ModifyAlarmRuleRequest)) -* [[OperationOpsDto](https://cloud.tencent.com/document/api/1267/76336#OperationOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[OperationOpsDto](https://cloud.tencent.com/document/api/1267/76336#OperationOpsDto)) -* [[OpsTaskCanvasDto](https://cloud.tencent.com/document/api/1267/76336#OpsTaskCanvasDto)](https://cloud.tencent.com/document/api/1267/76336#[OpsTaskCanvasDto](https://cloud.tencent.com/document/api/1267/76336#OpsTaskCanvasDto)) -* [[OpsTaskCanvasInfoList](https://cloud.tencent.com/document/api/1267/76336#OpsTaskCanvasInfoList)](https://cloud.tencent.com/document/api/1267/76336#[OpsTaskCanvasInfoList](https://cloud.tencent.com/document/api/1267/76336#OpsTaskCanvasInfoList)) -* [[OpsTaskInfoPage](https://cloud.tencent.com/document/api/1267/76336#OpsTaskInfoPage)](https://cloud.tencent.com/document/api/1267/76336#[OpsTaskInfoPage](https://cloud.tencent.com/document/api/1267/76336#OpsTaskInfoPage)) -* [[OpsTaskLinkInfoDto](https://cloud.tencent.com/document/api/1267/76336#OpsTaskLinkInfoDto)](https://cloud.tencent.com/document/api/1267/76336#[OpsTaskLinkInfoDto](https://cloud.tencent.com/document/api/1267/76336#OpsTaskLinkInfoDto)) -* [[PairDto](https://cloud.tencent.com/document/api/1267/76336#PairDto)](https://cloud.tencent.com/document/api/1267/76336#[PairDto](https://cloud.tencent.com/document/api/1267/76336#PairDto)) -* [[ProjectBaseInfoOpsRequest](https://cloud.tencent.com/document/api/1267/76336#ProjectBaseInfoOpsRequest)](https://cloud.tencent.com/document/api/1267/76336#[ProjectBaseInfoOpsRequest](https://cloud.tencent.com/document/api/1267/76336#ProjectBaseInfoOpsRequest)) -* [[RuntimeInstanceCntTop](https://cloud.tencent.com/document/api/1267/76336#RuntimeInstanceCntTop)](https://cloud.tencent.com/document/api/1267/76336#[RuntimeInstanceCntTop](https://cloud.tencent.com/document/api/1267/76336#RuntimeInstanceCntTop)) -* [[ScreenInstanceInfo](https://cloud.tencent.com/document/api/1267/76336#ScreenInstanceInfo)](https://cloud.tencent.com/document/api/1267/76336#[ScreenInstanceInfo](https://cloud.tencent.com/document/api/1267/76336#ScreenInstanceInfo)) -* [[ScreenTaskInfo](https://cloud.tencent.com/document/api/1267/76336#ScreenTaskInfo)](https://cloud.tencent.com/document/api/1267/76336#[ScreenTaskInfo](https://cloud.tencent.com/document/api/1267/76336#ScreenTaskInfo)) -* [[SimpleDataSourceInfo](https://cloud.tencent.com/document/api/1267/76336#SimpleDataSourceInfo)](https://cloud.tencent.com/document/api/1267/76336#[SimpleDataSourceInfo](https://cloud.tencent.com/document/api/1267/76336#SimpleDataSourceInfo)) -* [[StrToStrMap](https://cloud.tencent.com/document/api/1267/76336#StrToStrMap)](https://cloud.tencent.com/document/api/1267/76336#[StrToStrMap](https://cloud.tencent.com/document/api/1267/76336#StrToStrMap)) -* [[StringListNode](https://cloud.tencent.com/document/api/1267/76336#StringListNode)](https://cloud.tencent.com/document/api/1267/76336#[StringListNode](https://cloud.tencent.com/document/api/1267/76336#StringListNode)) -* [[TaskByCycle](https://cloud.tencent.com/document/api/1267/76336#TaskByCycle)](https://cloud.tencent.com/document/api/1267/76336#[TaskByCycle](https://cloud.tencent.com/document/api/1267/76336#TaskByCycle)) -* [[TaskByStatus](https://cloud.tencent.com/document/api/1267/76336#TaskByStatus)](https://cloud.tencent.com/document/api/1267/76336#[TaskByStatus](https://cloud.tencent.com/document/api/1267/76336#TaskByStatus)) -* [[TaskInstanceCountDto](https://cloud.tencent.com/document/api/1267/76336#TaskInstanceCountDto)](https://cloud.tencent.com/document/api/1267/76336#[TaskInstanceCountDto](https://cloud.tencent.com/document/api/1267/76336#TaskInstanceCountDto)) -* [[TaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#TaskOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[TaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#TaskOpsDto)) -* [[TaskTypeCnt](https://cloud.tencent.com/document/api/1267/76336#TaskTypeCnt)](https://cloud.tencent.com/document/api/1267/76336#[TaskTypeCnt](https://cloud.tencent.com/document/api/1267/76336#TaskTypeCnt)) -* [[TaskTypeMap](https://cloud.tencent.com/document/api/1267/76336#TaskTypeMap)](https://cloud.tencent.com/document/api/1267/76336#[TaskTypeMap](https://cloud.tencent.com/document/api/1267/76336#TaskTypeMap)) -* [[TaskTypeOpsDto](https://cloud.tencent.com/document/api/1267/76336#TaskTypeOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[TaskTypeOpsDto](https://cloud.tencent.com/document/api/1267/76336#TaskTypeOpsDto)) -* [[WorkFlowExecuteDto](https://cloud.tencent.com/document/api/1267/76336#WorkFlowExecuteDto)](https://cloud.tencent.com/document/api/1267/76336#[WorkFlowExecuteDto](https://cloud.tencent.com/document/api/1267/76336#WorkFlowExecuteDto)) -* [[WorkFlowExecuteDtoByPage](https://cloud.tencent.com/document/api/1267/76336#WorkFlowExecuteDtoByPage)](https://cloud.tencent.com/document/api/1267/76336#[WorkFlowExecuteDtoByPage](https://cloud.tencent.com/document/api/1267/76336#WorkFlowExecuteDtoByPage)) -* [[WorkflowCanvasOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowCanvasOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[WorkflowCanvasOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowCanvasOpsDto)) -* [[WorkflowExtOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowExtOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[WorkflowExtOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowExtOpsDto)) -* [[WorkflowExtOpsDtoPage](https://cloud.tencent.com/document/api/1267/76336#WorkflowExtOpsDtoPage)](https://cloud.tencent.com/document/api/1267/76336#[WorkflowExtOpsDtoPage](https://cloud.tencent.com/document/api/1267/76336#WorkflowExtOpsDtoPage)) -* [[WorkflowSchedulerOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowSchedulerOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[WorkflowSchedulerOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowSchedulerOpsDto)) -* [[WorkflowTaskCountOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowTaskCountOpsDto)](https://cloud.tencent.com/document/api/1267/76336#[WorkflowTaskCountOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowTaskCountOpsDto)) +* [AlarmRuleDto](https://cloud.tencent.com/document/api/1267/76336#AlarmRuleDto) +* [BaselineDetailResponse](https://cloud.tencent.com/document/api/1267/76336#BaselineDetailResponse) +* [BaselineDto](https://cloud.tencent.com/document/api/1267/76336#BaselineDto) +* [BaselineInstanceVo](https://cloud.tencent.com/document/api/1267/76336#BaselineInstanceVo) +* [BaselineTaskDto](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskDto) +* [BaselineTaskInfo](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskInfo) +* [BaselineTaskInstanceDto](https://cloud.tencent.com/document/api/1267/76336#BaselineTaskInstanceDto) +* [BatchOperateResultOpsDto](https://cloud.tencent.com/document/api/1267/76336#BatchOperateResultOpsDto) +* [BatchOperationOpsDto](https://cloud.tencent.com/document/api/1267/76336#BatchOperationOpsDto) +* [BooleanResponse](https://cloud.tencent.com/document/api/1267/76336#BooleanResponse) +* [CollectionFolderOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionFolderOpsDto) +* [CollectionInstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionInstanceOpsDto) +* [CollectionTaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#CollectionTaskOpsDto) +* [CommonIdOpsDto](https://cloud.tencent.com/document/api/1267/76336#CommonIdOpsDto) +* [CreateAlarmRuleRequest](https://cloud.tencent.com/document/api/1267/76336#CreateAlarmRuleRequest) +* [CreateMakeDatetimeInfo](https://cloud.tencent.com/document/api/1267/76336#CreateMakeDatetimeInfo) +* [DatasourceTypeByTaskType](https://cloud.tencent.com/document/api/1267/76336#DatasourceTypeByTaskType) +* [DescribeBaselineResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeBaselineResponse) +* [DescribeBaselineTaskDagResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeBaselineTaskDagResponse) +* [DescribeDiagnosticInfoResponse](https://cloud.tencent.com/document/api/1267/76336#DescribeDiagnosticInfoResponse) +* [DrInstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#DrInstanceOpsDto) +* [DrInstanceOpsDtoPage](https://cloud.tencent.com/document/api/1267/76336#DrInstanceOpsDtoPage) +* [EventCaseAuditLogOptDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseAuditLogOptDto) +* [EventCaseAuditLogVOCollection](https://cloud.tencent.com/document/api/1267/76336#EventCaseAuditLogVOCollection) +* [EventCaseConsumeLogOptDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseConsumeLogOptDto) +* [EventCaseConsumeLogOptDtoCollection](https://cloud.tencent.com/document/api/1267/76336#EventCaseConsumeLogOptDtoCollection) +* [EventCaseOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventCaseOpsDto) +* [EventDto](https://cloud.tencent.com/document/api/1267/76336#EventDto) +* [EventListenerOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventListenerOpsDto) +* [EventOpsDto](https://cloud.tencent.com/document/api/1267/76336#EventOpsDto) +* [EventPage](https://cloud.tencent.com/document/api/1267/76336#EventPage) +* [FolderOpsDto](https://cloud.tencent.com/document/api/1267/76336#FolderOpsDto) +* [InstanceApiOpsRequest](https://cloud.tencent.com/document/api/1267/76336#InstanceApiOpsRequest) +* [InstanceCondition](https://cloud.tencent.com/document/api/1267/76336#InstanceCondition) +* [InstanceDownloadLogInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceDownloadLogInfo) +* [InstanceLogInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceLogInfo) +* [InstanceLogInfoOpsDto](https://cloud.tencent.com/document/api/1267/76336#InstanceLogInfoOpsDto) +* [InstanceOpsDto](https://cloud.tencent.com/document/api/1267/76336#InstanceOpsDto) +* [InstanceOpsInfoPage](https://cloud.tencent.com/document/api/1267/76336#InstanceOpsInfoPage) +* [InstanceSearchCondition](https://cloud.tencent.com/document/api/1267/76336#InstanceSearchCondition) +* [InstanceStatisticInfo](https://cloud.tencent.com/document/api/1267/76336#InstanceStatisticInfo) +* [LinkOpsDto](https://cloud.tencent.com/document/api/1267/76336#LinkOpsDto) +* [MakePlanInstanceOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanInstanceOpsDtoCollection) +* [MakePlanOpsDto](https://cloud.tencent.com/document/api/1267/76336#MakePlanOpsDto) +* [MakePlanOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanOpsDtoCollection) +* [MakePlanTaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#MakePlanTaskOpsDto) +* [MakePlanTaskOpsDtoCollection](https://cloud.tencent.com/document/api/1267/76336#MakePlanTaskOpsDtoCollection) +* [ModifyAlarmRuleRequest](https://cloud.tencent.com/document/api/1267/76336#ModifyAlarmRuleRequest) +* [OperationOpsDto](https://cloud.tencent.com/document/api/1267/76336#OperationOpsDto) +* [OpsTaskCanvasDto](https://cloud.tencent.com/document/api/1267/76336#OpsTaskCanvasDto) +* [OpsTaskCanvasInfoList](https://cloud.tencent.com/document/api/1267/76336#OpsTaskCanvasInfoList) +* [OpsTaskInfoPage](https://cloud.tencent.com/document/api/1267/76336#OpsTaskInfoPage) +* [OpsTaskLinkInfoDto](https://cloud.tencent.com/document/api/1267/76336#OpsTaskLinkInfoDto) +* [PairDto](https://cloud.tencent.com/document/api/1267/76336#PairDto) +* [ProjectBaseInfoOpsRequest](https://cloud.tencent.com/document/api/1267/76336#ProjectBaseInfoOpsRequest) +* [RuntimeInstanceCntTop](https://cloud.tencent.com/document/api/1267/76336#RuntimeInstanceCntTop) +* [ScreenInstanceInfo](https://cloud.tencent.com/document/api/1267/76336#ScreenInstanceInfo) +* [ScreenTaskInfo](https://cloud.tencent.com/document/api/1267/76336#ScreenTaskInfo) +* [SimpleDataSourceInfo](https://cloud.tencent.com/document/api/1267/76336#SimpleDataSourceInfo) +* [StrToStrMap](https://cloud.tencent.com/document/api/1267/76336#StrToStrMap) +* [StringListNode](https://cloud.tencent.com/document/api/1267/76336#StringListNode) +* [TaskByCycle](https://cloud.tencent.com/document/api/1267/76336#TaskByCycle) +* [TaskByStatus](https://cloud.tencent.com/document/api/1267/76336#TaskByStatus) +* [TaskInstanceCountDto](https://cloud.tencent.com/document/api/1267/76336#TaskInstanceCountDto) +* [TaskOpsDto](https://cloud.tencent.com/document/api/1267/76336#TaskOpsDto) +* [TaskTypeCnt](https://cloud.tencent.com/document/api/1267/76336#TaskTypeCnt) +* [TaskTypeMap](https://cloud.tencent.com/document/api/1267/76336#TaskTypeMap) +* [TaskTypeOpsDto](https://cloud.tencent.com/document/api/1267/76336#TaskTypeOpsDto) +* [WorkFlowExecuteDto](https://cloud.tencent.com/document/api/1267/76336#WorkFlowExecuteDto) +* [WorkFlowExecuteDtoByPage](https://cloud.tencent.com/document/api/1267/76336#WorkFlowExecuteDtoByPage) +* [WorkflowCanvasOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowCanvasOpsDto) +* [WorkflowExtOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowExtOpsDto) +* [WorkflowExtOpsDtoPage](https://cloud.tencent.com/document/api/1267/76336#WorkflowExtOpsDtoPage) +* [WorkflowSchedulerOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowSchedulerOpsDto) +* [WorkflowTaskCountOpsDto](https://cloud.tencent.com/document/api/1267/76336#WorkflowTaskCountOpsDto) ### 第 36 次发布 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/products.md b/vendor/tencentcloud/tencentcloud-sdk-php/products.md index 0f8154cdf..cb92c4e02 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/products.md +++ b/vendor/tencentcloud/tencentcloud-sdk-php/products.md @@ -6,102 +6,102 @@ | advisor | [云顾问](https://cloud.tencent.com/document/product/1264) | 2023-05-18 01:01:20 | | af | [借贷反欺诈](https://cloud.tencent.com/document/product/668) | 2023-07-18 01:05:51 | | afc | [定制建模](https://cloud.tencent.com/document/product/1029) | 2023-07-18 01:05:54 | -| aiart | [AI 绘画](https://cloud.tencent.com/document/product/1668) | 2023-05-18 01:01:31 | +| aiart | [AI 绘画](https://cloud.tencent.com/document/product/1668) | 2023-07-25 10:37:02 | | ame | [正版曲库直通车](https://cloud.tencent.com/document/product/1155) | 2023-05-26 01:01:42 | | ams | [音频内容安全](https://cloud.tencent.com/document/product/1219) | 2023-05-18 01:01:48 | | anicloud | [动效素材服务](https://cloud.tencent.com/document/product/1641) | 2023-05-18 01:01:53 | -| antiddos | [T-Sec-DDoS防护(Anti-DDoS)](https://cloud.tencent.com/document/product/1021) | 2023-07-20 01:06:15 | +| antiddos | [T-Sec-DDoS防护(Anti-DDoS)](https://cloud.tencent.com/document/product/297) | 2023-08-02 16:30:39 | | apcas | [汽车精准获客服务](https://cloud.tencent.com/document/product/1244) | 2022-04-04 06:05:36 | | ape | [正版图库直通车](https://cloud.tencent.com/document/product/1181) | 2022-04-04 06:05:40 | | api | [云 API](https://cloud.tencent.com/document/product/1278) | 2023-01-05 01:02:52 | -| apigateway | [API 网关](https://cloud.tencent.com/document/product/628) | 2023-07-20 01:09:29 | +| apigateway | [API 网关](https://cloud.tencent.com/document/product/628) | 2023-08-01 01:01:56 | | apm | [应用性能监控](https://cloud.tencent.com/document/product/1463) | 2023-07-18 01:07:24 | -| as | [弹性伸缩](https://cloud.tencent.com/document/product/377) | 2023-07-19 01:07:14 | -| asr | [语音识别](https://cloud.tencent.com/document/product/1093) | 2023-07-18 01:07:49 | +| as | [弹性伸缩](https://cloud.tencent.com/document/product/377) | 2023-08-04 01:06:13 | +| asr | [语音识别](https://cloud.tencent.com/document/product/1093) | 2023-08-08 01:06:35 | | asw | [应用与服务编排工作流](https://cloud.tencent.com/document/product/1272) | 2023-05-18 01:04:02 | | ba | [网站备案](https://cloud.tencent.com/document/product/243) | 2023-05-18 01:04:06 | | batch | [批量计算](https://cloud.tencent.com/document/product/599) | 2023-07-19 01:07:48 | | bda | [人体分析](https://cloud.tencent.com/document/product/1208) | 2023-06-26 01:08:49 | -| bi | [商业智能分析 BI](https://cloud.tencent.com/document/product/590) | 2023-07-17 01:03:44 | -| billing | [费用中心](https://cloud.tencent.com/document/product/555) | 2023-07-06 01:08:15 | +| bi | [商业智能分析 BI](https://cloud.tencent.com/document/product/590) | 2023-07-27 01:07:49 | +| billing | [费用中心](https://cloud.tencent.com/document/product/555) | 2023-07-25 10:39:16 | | bizlive | [商业直播](https://cloud.tencent.com/document/product) | 2020-03-10 01:08:07 | | bm | [黑石物理服务器CPM](https://cloud.tencent.com/document/product/386) | 2023-05-18 01:04:59 | -| bma | [品牌经营管家](https://cloud.tencent.com/document/product/1296) | 2023-05-18 01:05:33 | +| bma | [品牌经营管家](https://cloud.tencent.com/document/product/1296) | 2023-07-28 01:09:00 | | bmeip | [黑石弹性公网IP](https://cloud.tencent.com/document/product/1028) | 2023-05-18 01:05:44 | | bmlb | [黑石负载均衡](https://cloud.tencent.com/document/product/1027) | 2023-05-18 01:05:55 | | bmvpc | [黑石私有网络](https://cloud.tencent.com/document/product/1024) | 2023-05-18 01:06:15 | | bpaas | [商业流程服务](https://cloud.tencent.com/document/product/1083) | 2023-06-14 01:09:11 | -| bri | [业务风险情报](https://cloud.tencent.com/document/product/1064) | 2021-01-07 08:02:40 | +| bri | [业务风险情报](https://cloud.tencent.com/document/product/1064) | 2023-08-03 12:20:37 | | bsca | [二进制软件成分分析](https://cloud.tencent.com/document/product/1483) | 2023-05-18 01:06:40 | | btoe | [区块链可信取证](https://cloud.tencent.com/document/product/1259) | 2023-05-18 01:06:44 | -| cam | [访问管理](https://cloud.tencent.com/document/product/598) | 2023-07-19 01:09:39 | -| captcha | [验证码](https://cloud.tencent.com/document/product/1110) | 2023-05-18 01:07:27 | +| cam | [访问管理](https://cloud.tencent.com/document/product/598) | 2023-08-08 01:07:18 | +| captcha | [验证码](https://cloud.tencent.com/document/product/1110) | 2023-08-04 01:07:04 | | car | [应用云渲染](https://cloud.tencent.com/document/product/1547) | 2023-05-31 01:09:58 | | casb | [云访问安全代理](https://cloud.tencent.com/document/product/1303) | 2022-12-26 10:53:16 | | cat | [云拨测](https://cloud.tencent.com/document/product/280) | 2023-05-18 01:07:39 | -| cbs | [云硬盘](https://cloud.tencent.com/document/product/362) | 2023-07-03 01:06:30 | -| ccc | [云呼叫中心](https://cloud.tencent.com/document/product/679) | 2023-06-30 01:11:07 | -| cdb | [云数据库 MySQL](https://cloud.tencent.com/document/product/236) | 2023-07-20 01:13:27 | -| cdc | [本地专用集群](https://cloud.tencent.com/document/product/1346) | 2023-06-08 01:10:03 | -| cdn | [内容分发网络 CDN](https://cloud.tencent.com/document/product/228) | 2023-07-18 01:16:15 | +| cbs | [云硬盘](https://cloud.tencent.com/document/product/362) | 2023-08-04 01:07:16 | +| ccc | [云呼叫中心](https://cloud.tencent.com/document/product/679) | 2023-08-08 01:09:59 | +| cdb | [云数据库 MySQL](https://cloud.tencent.com/document/product/236) | 2023-08-07 01:07:06 | +| cdc | [本地专用集群](https://cloud.tencent.com/document/product/1346) | 2023-07-28 01:11:59 | +| cdn | [内容分发网络 CDN](https://cloud.tencent.com/document/product/228) | 2023-08-04 01:07:45 | | cds | [T-Sec-数据安全审计(DSA)](https://cloud.tencent.com/document/product/856) | 2023-05-18 01:10:41 | | cdwch | [云数据仓库 ClickHouse](https://cloud.tencent.com/document/product/1299) | 2023-07-20 01:14:55 | -| cfg | [混沌演练平台](https://cloud.tencent.com/document/product/1500) | 2023-06-29 01:09:00 | -| cfs | [文件存储](https://cloud.tencent.com/document/product/582) | 2023-07-14 01:07:56 | +| cfg | [混沌演练平台](https://cloud.tencent.com/document/product/1500) | 2023-08-07 01:07:52 | +| cfs | [文件存储](https://cloud.tencent.com/document/product/582) | 2023-07-27 01:09:08 | | cfw | [云防火墙](https://cloud.tencent.com/document/product/1132) | 2023-07-14 01:08:16 | | chdfs | [云 HDFS](https://cloud.tencent.com/document/product/1105) | 2023-05-31 01:12:53 | | ciam | [账号风控平台](https://cloud.tencent.com/document/product/1441) | 2023-07-06 01:13:25 | | cii | [智能保险助手](https://cloud.tencent.com/document/product/1368) | 2023-05-18 01:12:07 | | cim | [](https://cloud.tencent.com/document/product) | 2019-05-16 17:21:18 | | cis | [](https://cloud.tencent.com/document/product) | 2018-06-07 15:01:42 | -| ckafka | [消息队列 CKafka](https://cloud.tencent.com/document/product/597) | 2023-07-18 01:18:06 | -| clb | [负载均衡](https://cloud.tencent.com/document/product/214) | 2023-07-04 01:15:49 | +| ckafka | [消息队列 CKafka](https://cloud.tencent.com/document/product/597) | 2023-07-31 01:13:15 | +| clb | [负载均衡](https://cloud.tencent.com/document/product/214) | 2023-08-07 01:08:20 | | cloudaudit | [云审计](https://cloud.tencent.com/document/product/629) | 2023-05-18 01:13:28 | | cloudhsm | [云加密机](https://cloud.tencent.com/document/product/639) | 2023-05-18 01:13:36 | -| cloudstudio | [Cloud Studio(云端 IDE)](https://cloud.tencent.com/document/product/1039) | 2023-07-20 01:17:13 | -| cls | [日志服务](https://cloud.tencent.com/document/product/614) | 2023-07-20 01:17:22 | -| cme | [多媒体创作引擎](https://cloud.tencent.com/document/product/1156) | 2023-07-13 01:10:23 | -| cmq | [消息队列 CMQ](https://cloud.tencent.com/document/product/406) | 2023-05-18 01:14:51 | +| cloudstudio | [Cloud Studio(云端 IDE)](https://cloud.tencent.com/document/product/1039) | 2023-08-03 01:03:28 | +| cls | [日志服务](https://cloud.tencent.com/document/product/614) | 2023-08-08 01:11:32 | +| cme | [多媒体创作引擎](https://cloud.tencent.com/document/product/1156) | 2023-08-09 01:16:08 | +| cmq | [消息队列 CMQ](https://cloud.tencent.com/document/product/406) | 2023-08-03 01:03:52 | | cms | [内容安全](https://cloud.tencent.com/document/product/669) | 2023-07-11 01:11:56 | -| cpdp | [企业收付平台](https://cloud.tencent.com/document/product/1122) | 2023-07-10 01:16:33 | +| cpdp | [企业收付平台](https://cloud.tencent.com/document/product/1122) | 2023-07-31 01:15:43 | | cr | [金融联络机器人](https://cloud.tencent.com/document/product/656) | 2021-02-24 08:03:24 | -| csip | [云安全一体化平台](https://cloud.tencent.com/document/product/664) | 2023-07-18 01:21:16 | +| csip | [云安全一体化平台](https://cloud.tencent.com/document/product/664) | 2023-08-09 01:17:49 | | csxg | [5G入云服务](https://cloud.tencent.com/document/product/1687) | 2023-05-19 11:26:14 | -| cvm | [云服务器](https://cloud.tencent.com/document/product/213) | 2023-07-19 01:16:55 | -| cwp | [主机安全](https://cloud.tencent.com/document/product/296) | 2023-07-18 01:22:32 | +| cvm | [云服务器](https://cloud.tencent.com/document/product/213) | 2023-08-02 01:09:12 | +| cwp | [主机安全](https://cloud.tencent.com/document/product/296) | 2023-08-07 01:09:27 | | cws | [漏洞扫描服务](https://cloud.tencent.com/document/product) | 2019-11-22 12:16:15 | -| cynosdb | [TDSQL-C MySQL 版](https://cloud.tencent.com/document/product/1003) | 2023-07-20 01:21:05 | -| dasb | [T-Sec-堡垒机(BH)](https://cloud.tencent.com/document/product/1025) | 2023-07-07 01:21:45 | +| cynosdb | [TDSQL-C MySQL 版](https://cloud.tencent.com/document/product/1003) | 2023-08-08 01:14:23 | +| dasb | [T-Sec-堡垒机(BH)](https://cloud.tencent.com/document/product/1025) | 2023-08-08 01:15:01 | | dataintegration | [数据接入平台](https://cloud.tencent.com/document/product/1591) | 2022-07-26 15:32:15 | | dayu | [DDoS 高防包](https://cloud.tencent.com/document/product/1021) | 2023-05-18 01:20:11 | | dbbrain | [数据库智能管家 DBbrain](https://cloud.tencent.com/document/product/1130) | 2023-07-14 01:15:28 | | dbdc | [云数据库独享集群](https://cloud.tencent.com/document/product/1322) | 2023-05-18 01:21:33 | | dc | [专线接入](https://cloud.tencent.com/document/product/216) | 2023-05-18 01:21:37 | | dcdb | [TDSQL MySQL 版](https://cloud.tencent.com/document/product/557) | 2023-06-28 01:18:44 | -| dlc | [数据湖计算 DLC](https://cloud.tencent.com/document/product/1342) | 2023-07-20 01:23:15 | -| dnspod | [DNSPod](https://cloud.tencent.com/document/product/1427) | 2023-07-10 01:22:33 | -| domain | [域名注册](https://cloud.tencent.com/document/product/242) | 2023-07-18 01:27:10 | +| dlc | [数据湖计算 DLC](https://cloud.tencent.com/document/product/1342) | 2023-08-09 01:22:16 | +| dnspod | [DNSPod](https://cloud.tencent.com/document/product/1427) | 2023-08-01 01:18:18 | +| domain | [域名注册](https://cloud.tencent.com/document/product/242) | 2023-07-24 01:25:15 | | drm | [数字版权管理](https://cloud.tencent.com/document/product/1000) | 2023-05-18 01:23:31 | | ds | [文档服务](https://cloud.tencent.com/document/product/869) | 2023-05-18 01:23:36 | | dtf | [分布式事务](https://cloud.tencent.com/document/product/1224) | 2022-04-04 06:38:57 | -| dts | [数据传输服务](https://cloud.tencent.com/document/product/571) | 2023-07-06 01:22:17 | +| dts | [数据传输服务](https://cloud.tencent.com/document/product/571) | 2023-08-09 01:23:41 | | eb | [事件总线](https://cloud.tencent.com/document/product/1359) | 2023-05-18 01:24:14 | | ecc | [英文作文批改](https://cloud.tencent.com/document/product/1076) | 2023-05-18 01:24:28 | | ecdn | [全站加速网络](https://cloud.tencent.com/document/product/570) | 2023-05-18 01:24:35 | | ecm | [边缘计算机器](https://cloud.tencent.com/document/product/1108) | 2023-07-11 01:20:38 | | eiam | [数字身份管控平台(员工版)](https://cloud.tencent.com/document/product/1442) | 2023-05-18 01:25:40 | -| eis | [数据连接器](https://cloud.tencent.com/document/product/1270) | 2023-05-18 01:25:58 | -| emr | [弹性 MapReduce](https://cloud.tencent.com/document/product/589) | 2023-07-17 01:18:45 | +| eis | [数据连接器](https://cloud.tencent.com/document/product/1270) | 2023-08-08 01:16:41 | +| emr | [弹性 MapReduce](https://cloud.tencent.com/document/product/589) | 2023-08-01 01:21:59 | | es | [Elasticsearch Service](https://cloud.tencent.com/document/product/845) | 2023-07-12 01:24:00 | -| ess | [腾讯电子签企业版](https://cloud.tencent.com/document/product/1323) | 2023-07-20 01:26:17 | -| essbasic | [腾讯电子签(基础版)](https://cloud.tencent.com/document/product/1420) | 2023-07-19 01:24:28 | -| facefusion | [人脸融合](https://cloud.tencent.com/document/product/670) | 2023-07-11 01:24:18 | -| faceid | [人脸核身](https://cloud.tencent.com/document/product/1007) | 2023-07-20 01:26:59 | +| ess | [腾讯电子签企业版](https://cloud.tencent.com/document/product/1323) | 2023-08-09 01:26:01 | +| essbasic | [腾讯电子签(基础版)](https://cloud.tencent.com/document/product/1420) | 2023-08-09 01:26:35 | +| facefusion | [人脸融合](https://cloud.tencent.com/document/product/670) | 2023-07-27 01:13:31 | +| faceid | [人脸核身](https://cloud.tencent.com/document/product/1007) | 2023-08-01 01:24:47 | | fmu | [人脸试妆](https://cloud.tencent.com/document/product/1172) | 2023-07-14 14:55:45 | | ft | [人像变换](https://cloud.tencent.com/document/product/1202) | 2023-05-18 01:28:35 | -| gaap | [全球应用加速](https://cloud.tencent.com/document/product/608) | 2023-07-07 01:35:13 | -| gme | [游戏多媒体引擎](https://cloud.tencent.com/document/product/607) | 2023-07-13 01:21:39 | -| goosefs | [数据加速器 GooseFS](https://cloud.tencent.com/document/product/1424) | 2023-07-19 01:25:47 | +| gaap | [全球应用加速](https://cloud.tencent.com/document/product/608) | 2023-07-28 01:27:13 | +| gme | [游戏多媒体引擎](https://cloud.tencent.com/document/product/607) | 2023-08-07 01:12:20 | +| goosefs | [数据加速器 GooseFS](https://cloud.tencent.com/document/product/1424) | 2023-08-02 01:16:12 | | gpm | [游戏玩家匹配](https://cloud.tencent.com/document/product/1294) | 2022-07-11 06:12:36 | | gs | [云游戏](https://cloud.tencent.com/document/product/1162) | 2023-05-18 01:29:42 | | gse | [游戏服务器伸缩](https://cloud.tencent.com/document/product/1165) | 2022-07-11 06:12:44 | @@ -116,18 +116,19 @@ | iir | [智能识图](https://cloud.tencent.com/document/product/1217) | 2022-04-04 06:48:05 | | ims | [图片内容安全](https://cloud.tencent.com/document/product/1125) | 2023-05-18 01:31:36 | | iot | [加速物联网套件](https://cloud.tencent.com/document/product/568) | 2023-07-17 01:22:28 | -| iotcloud | [物联网通信](https://cloud.tencent.com/document/product/634) | 2023-06-14 01:27:08 | +| iotcloud | [物联网通信](https://cloud.tencent.com/document/product/634) | 2023-08-09 01:29:39 | | iotexplorer | [物联网开发平台](https://cloud.tencent.com/document/product/1081) | 2023-07-19 01:27:32 | | iottid | [物联网设备身份认证](https://cloud.tencent.com/document/product/1086) | 2023-05-18 01:33:02 | -| iotvideo | [物联网智能视频服务](https://cloud.tencent.com/document/product/1131) | 2023-06-29 01:26:57 | +| iotvideo | [物联网智能视频服务](https://cloud.tencent.com/document/product/1131) | 2023-08-09 01:31:19 | | iotvideoindustry | [物联网智能视频服务(行业版)](https://cloud.tencent.com/document/product/1361) | 2023-05-18 01:34:37 | | irp | [智能推荐平台](https://cloud.tencent.com/document/product/1541) | 2023-06-13 01:25:28 | +| iss | [智能视图计算平台](https://cloud.tencent.com/document/product/1344) | 2023-08-07 15:48:42 | | ivld | [媒体智能标签](https://cloud.tencent.com/document/product/1509) | 2023-05-18 01:35:21 | | keewidb | [云数据库 KeeWiDB](https://cloud.tencent.com/document/product/1520) | 2023-07-19 01:29:34 | | kms | [密钥管理系统](https://cloud.tencent.com/document/product/573) | 2023-05-18 01:35:58 | -| lcic | [低代码互动课堂](https://cloud.tencent.com/document/product/1639) | 2023-07-14 01:25:31 | -| lighthouse | [轻量应用服务器](https://cloud.tencent.com/document/product/1207) | 2023-07-19 01:30:20 | -| live | [云直播CSS](https://cloud.tencent.com/document/product/267) | 2023-07-19 01:30:48 | +| lcic | [低代码互动课堂](https://cloud.tencent.com/document/product/1639) | 2023-07-31 01:30:04 | +| lighthouse | [轻量应用服务器](https://cloud.tencent.com/document/product/1207) | 2023-07-25 11:04:43 | +| live | [云直播CSS](https://cloud.tencent.com/document/product/267) | 2023-08-09 01:34:19 | | lowcode | [云开发低码](https://cloud.tencent.com/document/product/1301) | 2022-04-04 06:56:51 | | lp | [登录保护](https://cloud.tencent.com/document/product/1190) | 2022-04-04 06:56:52 | | mall | [商场客留大数据](https://cloud.tencent.com/document/product/1707) | 2023-07-17 10:16:02 | @@ -136,68 +137,68 @@ | memcached | [云数据库Memcached](https://cloud.tencent.com/document/product/241) | 2023-05-26 01:41:20 | | mgobe | [游戏联机对战引擎](https://cloud.tencent.com/document/product/1038) | 2022-07-08 06:11:32 | | mmps | [小程序安全](https://cloud.tencent.com/document/product/1223) | 2023-05-18 01:39:20 | -| mna | [移动网络加速](https://cloud.tencent.com/document/product/1385) | 2023-05-25 01:46:28 | +| mna | [多网聚合加速](https://cloud.tencent.com/document/product/1385) | 2023-08-07 01:14:24 | | mongodb | [云数据库 MongoDB](https://cloud.tencent.com/document/product/240) | 2023-07-06 01:31:55 | -| monitor | [腾讯云可观测平台](https://cloud.tencent.com/document/product/248) | 2023-07-19 01:32:20 | -| mps | [媒体处理](https://cloud.tencent.com/document/product/862) | 2023-07-20 01:35:35 | +| monitor | [腾讯云可观测平台](https://cloud.tencent.com/document/product/248) | 2023-08-03 01:09:25 | +| mps | [媒体处理](https://cloud.tencent.com/document/product/862) | 2023-08-03 01:09:40 | | mrs | [医疗报告结构化](https://cloud.tencent.com/document/product/1314) | 2023-05-18 01:42:01 | -| ms | [移动应用安全](https://cloud.tencent.com/document/product/283) | 2023-06-15 01:29:09 | +| ms | [移动应用安全](https://cloud.tencent.com/document/product/283) | 2023-08-09 01:39:02 | | msp | [迁移服务平台](https://cloud.tencent.com/document/product/659) | 2023-05-18 01:42:21 | | mvj | [营销价值判断](https://cloud.tencent.com/document/product) | 2020-03-19 08:11:44 | -| nlp | [NLP 服务](https://cloud.tencent.com/document/product/271) | 2023-07-18 01:40:17 | +| nlp | [NLP 服务](https://cloud.tencent.com/document/product/271) | 2023-08-02 01:19:12 | | npp | [号码保护](https://cloud.tencent.com/document/product) | 2020-04-22 08:00:22 | -| oceanus | [流计算 Oceanus](https://cloud.tencent.com/document/product/849) | 2023-07-17 01:29:44 | -| ocr | [文字识别](https://cloud.tencent.com/document/product/866) | 2023-07-19 01:34:27 | +| oceanus | [流计算 Oceanus](https://cloud.tencent.com/document/product/849) | 2023-08-09 01:39:21 | +| ocr | [文字识别](https://cloud.tencent.com/document/product/866) | 2023-08-09 01:39:38 | | omics | [腾讯健康组学平台](https://cloud.tencent.com/document/product/1643) | 2023-07-20 01:37:20 | -| organization | [集团账号管理](https://cloud.tencent.com/document/product/850) | 2023-06-30 01:38:16 | -| partners | [渠道合作伙伴](https://cloud.tencent.com/document/product/563) | 2023-06-21 01:29:51 | +| organization | [集团账号管理](https://cloud.tencent.com/document/product/850) | 2023-08-09 01:40:29 | +| partners | [渠道合作伙伴](https://cloud.tencent.com/document/product/563) | 2023-07-20 18:40:49 | | pds | [私域安全](https://cloud.tencent.com/document/product/1473) | 2023-05-18 01:44:14 | -| postgres | [云数据库 PostgreSQL](https://cloud.tencent.com/document/product/409) | 2023-07-05 01:39:08 | +| postgres | [云数据库 PostgreSQL](https://cloud.tencent.com/document/product/409) | 2023-08-04 01:15:26 | | privatedns | [私有域解析 Private DNS](https://cloud.tencent.com/document/product/1338) | 2023-07-06 01:39:21 | -| pts | [云压测](https://cloud.tencent.com/document/product/1484) | 2023-07-07 01:45:35 | +| pts | [云压测](https://cloud.tencent.com/document/product/1484) | 2023-07-26 01:31:49 | | rce | [全栈式风控引擎](https://cloud.tencent.com/document/product/1343) | 2023-05-18 01:45:58 | -| redis | [云数据库Redis](https://cloud.tencent.com/document/product/239) | 2023-07-18 01:42:27 | -| region | [地域管理系统](https://cloud.tencent.com/document/product/1596) | 2023-07-07 01:46:17 | +| redis | [云数据库Redis](https://cloud.tencent.com/document/product/239) | 2023-08-03 01:10:44 | +| region | [地域管理系统](https://cloud.tencent.com/document/product/1596) | 2023-08-02 01:20:32 | | rkp | [风险探针](https://cloud.tencent.com/document/product/1169) | 2023-05-18 01:46:50 | | rp | [注册保护](https://cloud.tencent.com/document/product/1191) | 2022-04-04 07:04:06 | -| rum | [前端性能监控](https://cloud.tencent.com/document/product/1464) | 2023-05-18 01:46:54 | -| scf | [云函数](https://cloud.tencent.com/document/product/583) | 2023-07-20 01:39:23 | +| rum | [前端性能监控](https://cloud.tencent.com/document/product/1464) | 2023-08-09 01:43:06 | +| scf | [云函数](https://cloud.tencent.com/document/product/583) | 2023-08-04 01:16:09 | | ses | [邮件推送](https://cloud.tencent.com/document/product/1288) | 2023-06-28 01:37:26 | | smh | [智能媒资托管](https://cloud.tencent.com/document/product/1339) | 2023-07-11 01:37:49 | | smop | [腾讯安心用户运营平台](https://cloud.tencent.com/document/product/1310) | 2023-05-18 01:47:59 | | smpn | [营销号码安全](https://cloud.tencent.com/document/product/1127) | 2023-05-18 01:48:01 | -| sms | [短信](https://cloud.tencent.com/document/product/382) | 2023-06-28 01:37:53 | +| sms | [短信](https://cloud.tencent.com/document/product/382) | 2023-08-09 01:44:22 | | soe | [智聆口语评测](https://cloud.tencent.com/document/product/884) | 2023-07-10 01:39:48 | | solar | [智汇零售](https://cloud.tencent.com/document/product) | 2020-03-19 08:01:59 | -| sqlserver | [云数据库 SQL Server](https://cloud.tencent.com/document/product/238) | 2023-07-17 01:33:25 | -| ssa | [安全运营中心](https://cloud.tencent.com/document/product/664) | 2023-06-14 01:38:59 | -| ssl | [SSL 证书](https://cloud.tencent.com/document/product/400) | 2023-07-19 01:38:38 | +| sqlserver | [云数据库 SQL Server](https://cloud.tencent.com/document/product/238) | 2023-08-07 01:16:11 | +| ssa | [安全运营中心](https://cloud.tencent.com/document/product/664) | 2023-07-26 01:34:12 | +| ssl | [SSL 证书](https://cloud.tencent.com/document/product/400) | 2023-08-09 01:45:30 | | sslpod | [证书监控 SSLPod](https://cloud.tencent.com/document/product/1084) | 2023-05-18 01:49:36 | | ssm | [凭据管理系统](https://cloud.tencent.com/document/product/1140) | 2023-05-18 01:49:41 | | sts | [安全凭证服务](https://cloud.tencent.com/document/product/1312) | 2023-07-19 01:39:05 | | taf | [流量反欺诈](https://cloud.tencent.com/document/product/1031) | 2023-05-24 01:44:57 | -| tag | [标签](https://cloud.tencent.com/document/product/651) | 2023-06-14 01:39:43 | +| tag | [标签](https://cloud.tencent.com/document/product/651) | 2023-08-04 01:17:06 | | tan | [碳引擎](https://cloud.tencent.com/document/product/1498) | 2023-05-18 01:50:16 | | tat | [自动化助手](https://cloud.tencent.com/document/product/1340) | 2023-06-15 01:34:24 | | tav | [文件检测](https://cloud.tencent.com/document/product) | 2019-11-28 22:10:04 | -| tbaas | [腾讯云区块链服务平台 TBaaS](https://cloud.tencent.com/document/product/663) | 2023-07-20 01:41:44 | +| tbaas | [腾讯云区块链服务平台 TBaaS](https://cloud.tencent.com/document/product/663) | 2023-07-24 01:45:22 | | tbm | [](https://cloud.tencent.com/document/product) | 2019-03-29 14:49:11 | | tbp | [腾讯智能对话平台](https://cloud.tencent.com/document/product/1060) | 2023-06-06 01:55:04 | -| tcaplusdb | [游戏数据库 TcaplusDB](https://cloud.tencent.com/document/product/596) | 2023-06-20 01:48:17 | -| tcb | [云开发 CloudBase](https://cloud.tencent.com/document/product/876) | 2023-07-20 01:42:16 | +| tcaplusdb | [游戏数据库 TcaplusDB](https://cloud.tencent.com/document/product/596) | 2023-08-08 01:23:00 | +| tcb | [云开发 CloudBase](https://cloud.tencent.com/document/product/876) | 2023-07-21 01:39:45 | | tcbr | [云托管 CloudBase Run](https://cloud.tencent.com/document/product/1243) | 2023-05-18 01:51:15 | | tcex | [腾讯云释义](https://cloud.tencent.com/document/product/1266) | 2022-07-21 06:17:29 | -| tchd | [腾讯云健康看板](https://cloud.tencent.com/document/product/1688) | 2023-07-10 10:40:45 | +| tchd | [腾讯云健康看板](https://cloud.tencent.com/document/product/1688) | 2023-07-25 11:15:40 | | tci | [腾讯智学课堂分析](https://cloud.tencent.com/document/product) | 2020-08-24 08:06:03 | | tcm | [服务网格](https://cloud.tencent.com/document/product/1261) | 2023-06-06 01:55:42 | | tcr | [容器镜像服务](https://cloud.tencent.com/document/product/1141) | 2023-07-07 01:50:00 | -| tcss | [容器安全服务](https://cloud.tencent.com/document/product/1285) | 2023-07-06 01:44:39 | +| tcss | [容器安全服务](https://cloud.tencent.com/document/product/1285) | 2023-08-02 01:22:05 | | tdcpg | [TDSQL-C PostgreSQL 版](https://cloud.tencent.com/document/product/1556) | 2023-06-21 01:36:25 | -| tdid | [分布式身份](https://cloud.tencent.com/document/product/1439) | 2023-06-27 01:43:11 | -| tdmq | [消息队列 TDMQ](https://cloud.tencent.com/document/product/1179) | 2023-07-17 01:38:17 | +| tdid | [分布式身份](https://cloud.tencent.com/document/product/1439) | 2023-07-24 01:49:20 | +| tdmq | [消息队列 TDMQ](https://cloud.tencent.com/document/product/1179) | 2023-08-09 01:50:17 | | tds | [设备安全](https://cloud.tencent.com/document/product/1628) | 2023-05-18 01:55:50 | | tem | [弹性微服务](https://cloud.tencent.com/document/product/1371) | 2023-05-22 02:01:01 | -| teo | [边缘安全加速平台](https://cloud.tencent.com/document/product/1552) | 2023-07-17 01:39:10 | +| teo | [边缘安全加速平台](https://cloud.tencent.com/document/product/1552) | 2023-08-04 01:18:31 | | thpc | [高性能计算平台](https://cloud.tencent.com/document/product/1527) | 2023-07-07 01:53:45 | | tia | [智能钛机器学习](https://cloud.tencent.com/document/product/851) | 2021-10-21 11:12:52 | | tic | [资源编排 TIC](https://cloud.tencent.com/document/product/1213) | 2023-05-18 01:58:19 | @@ -205,30 +206,31 @@ | tics | [威胁情报云查服务](https://cloud.tencent.com/document/product/1013) | 2023-05-18 01:58:24 | | tiems | [腾讯云 TI 平台 TI-EMS ](https://cloud.tencent.com/document/product/1120) | 2022-07-19 06:19:39 | | tiia | [图像分析](https://cloud.tencent.com/document/product/865) | 2023-07-10 01:48:50 | -| tione | [TI-ONE 训练平台](https://cloud.tencent.com/document/product/851) | 2023-07-20 01:46:59 | -| tiw | [互动白板](https://cloud.tencent.com/document/product/1137) | 2023-06-08 02:02:46 | -| tke | [容器服务](https://cloud.tencent.com/document/product/457) | 2023-07-14 01:40:32 | +| tione | [TI-ONE 训练平台](https://cloud.tencent.com/document/product/851) | 2023-08-08 22:45:41 | +| tiw | [互动白板](https://cloud.tencent.com/document/product/1137) | 2023-08-03 01:13:41 | +| tke | [容器服务](https://cloud.tencent.com/document/product/457) | 2023-08-07 01:18:30 | | tkgdq | [腾讯知识图谱数据查询](https://cloud.tencent.com/document/product) | 2020-03-10 00:51:44 | | tms | [文本内容安全](https://cloud.tencent.com/document/product/1124) | 2023-05-18 02:01:07 | -| tmt | [机器翻译](https://cloud.tencent.com/document/product/551) | 2023-05-18 02:01:10 | +| tmt | [机器翻译](https://cloud.tencent.com/document/product/551) | 2023-07-28 01:54:14 | | tourism | [文旅客情平台](https://cloud.tencent.com/document/product/1684) | 2023-05-18 02:01:16 | | trdp | [流量风险决策平台](https://cloud.tencent.com/document/product/1604) | 2023-05-18 02:01:19 | +| trocket | [消息队列 RocketMQ 版](https://cloud.tencent.com/document/product/1493) | 2023-08-07 10:45:38 | | trp | [T-Sec-安心平台(RP)](https://cloud.tencent.com/document/product/1458) | 2023-07-10 01:51:20 | | trro | [远程实时操控](https://cloud.tencent.com/document/product/1584) | 2023-07-18 01:53:24 | -| trtc | [实时音视频](https://cloud.tencent.com/document/product/647) | 2023-07-20 01:49:03 | -| tse | [微服务引擎 TSE](https://cloud.tencent.com/document/product/1364) | 2023-07-19 01:46:53 | -| tsf | [微服务平台 TSF](https://cloud.tencent.com/document/product/649) | 2023-06-19 01:42:54 | +| trtc | [实时音视频](https://cloud.tencent.com/document/product/647) | 2023-08-04 01:19:38 | +| tse | [微服务引擎 TSE](https://cloud.tencent.com/document/product/1364) | 2023-08-07 01:19:09 | +| tsf | [微服务平台 TSF](https://cloud.tencent.com/document/product/649) | 2023-08-02 01:26:52 | | tsw | [微服务观测平台 TSW](https://cloud.tencent.com/document/product/1311) | 2023-05-18 02:04:00 | -| tts | [语音合成](https://cloud.tencent.com/document/product/1073) | 2023-07-11 01:50:46 | +| tts | [语音合成](https://cloud.tencent.com/document/product/1073) | 2023-08-01 01:49:43 | | ump | [客流数字化平台](https://cloud.tencent.com/document/product/1320) | 2023-05-18 02:04:06 | | vm | [视频内容安全](https://cloud.tencent.com/document/product/1265) | 2023-05-18 02:04:19 | | vms | [语音消息](https://cloud.tencent.com/document/product/1128) | 2023-05-18 02:04:23 | -| vod | [云点播](https://cloud.tencent.com/document/product/266) | 2023-07-20 01:50:53 | -| vpc | [私有网络](https://cloud.tencent.com/document/product/215) | 2023-07-20 01:52:08 | +| vod | [云点播](https://cloud.tencent.com/document/product/266) | 2023-08-04 01:20:16 | +| vpc | [私有网络](https://cloud.tencent.com/document/product/215) | 2023-08-09 01:58:05 | | vrs | [声音复刻](https://cloud.tencent.com/document/product/1283) | 2023-07-18 01:58:58 | -| waf | [Web 应用防火墙](https://cloud.tencent.com/document/product/627) | 2023-07-05 01:56:06 | +| waf | [Web 应用防火墙](https://cloud.tencent.com/document/product/627) | 2023-07-31 01:50:43 | | wav | [企业微信汽车行业版](https://cloud.tencent.com/document/product/1318) | 2023-07-18 01:59:28 | -| wedata | [数据开发治理平台 WeData](https://cloud.tencent.com/document/product/1267) | 2023-07-20 01:54:12 | +| wedata | [数据开发治理平台 WeData](https://cloud.tencent.com/document/product/1267) | 2023-08-09 02:00:26 | | wss | [SSL证书管理服务](https://cloud.tencent.com/document/product) | 2020-04-01 08:53:44 | | yinsuda | [音速达直播音乐版权引擎](https://cloud.tencent.com/document/product/1592) | 2023-06-22 02:06:43 | | youmall | [](https://cloud.tencent.com/document/product) | 2019-01-11 11:24:15 | diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/AiartClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/AiartClient.php index 0db30dc64..21afc7cfc 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/AiartClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/AiartClient.php @@ -30,7 +30,7 @@ use TencentCloud\Aiart\V20221229\Models as Models; 请求频率限制为1次/秒。 * @method Models\TextToImageResponse TextToImage(Models\TextToImageRequest $req) 智能文生图接口将根据输入的描述文本,智能生成与之相关的结果图。 -输入:512个字符以内的描述性文本,推荐使用中文。 +输入:256个字符以内的描述性文本,推荐使用中文。 输出:对应风格及分辨率的 AI 生成图。 可支持的风格详见 [智能文生图风格列表](https://cloud.tencent.com/document/product/1668/86249),请将列表中的“风格编号”传入 Styles 数组,建议选择一种风格。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/ImageToImageRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/ImageToImageRequest.php index fab3d7a3d..116ac4912 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/ImageToImageRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/ImageToImageRequest.php @@ -37,25 +37,23 @@ Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 图片限制:单边分辨率小于2000,转成 Base64 字符串后小于 5MB。 * @method string getPrompt() 获取文本描述。 -用于在输入图的基础上引导生成图效果,建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。推荐使用中文。最多支持512个 utf-8 字符。 -注意:如果不输入任何文本描述,可能导致较差的效果,建议根据期望的效果输入相应的文本描述。 +用于在输入图的基础上引导生成图效果,增加生成结果中出现描述内容的可能。 +推荐使用中文。最多支持256个 utf-8 字符。 * @method void setPrompt(string $Prompt) 设置文本描述。 -用于在输入图的基础上引导生成图效果,建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。推荐使用中文。最多支持512个 utf-8 字符。 -注意:如果不输入任何文本描述,可能导致较差的效果,建议根据期望的效果输入相应的文本描述。 +用于在输入图的基础上引导生成图效果,增加生成结果中出现描述内容的可能。 +推荐使用中文。最多支持256个 utf-8 字符。 * @method string getNegativePrompt() 获取反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 -推荐使用中文。最多可传512个 utf-8 字符。 +推荐使用中文。最多可传256个 utf-8 字符。 * @method void setNegativePrompt(string $NegativePrompt) 设置反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 -推荐使用中文。最多可传512个 utf-8 字符。 +推荐使用中文。最多可传256个 utf-8 字符。 * @method array getStyles() 获取绘画风格。 请在 [智能图生图风格列表](https://cloud.tencent.com/document/product/1668/86250) 中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用201(日系动漫风格)。 -如果想要探索风格列表之外的风格,也可以尝试在 Prompt 中输入其他的风格描述。 * @method void setStyles(array $Styles) 设置绘画风格。 请在 [智能图生图风格列表](https://cloud.tencent.com/document/product/1668/86250) 中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用201(日系动漫风格)。 -如果想要探索风格列表之外的风格,也可以尝试在 Prompt 中输入其他的风格描述。 * @method ResultConfig getResultConfig() 获取生成图结果的配置,包括输出图片分辨率和尺寸等。 * @method void setResultConfig(ResultConfig $ResultConfig) 设置生成图结果的配置,包括输出图片分辨率和尺寸等。 * @method integer getLogoAdd() 获取为生成结果图添加标识的开关,默认为1。 @@ -73,9 +71,11 @@ Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 * @method void setLogoParam(LogoParam $LogoParam) 设置标识内容设置。 默认在生成结果图右下角添加“图片由 AI 生成”字样,您可根据自身需要替换为其他的标识图片。 * @method float getStrength() 获取生成自由度。 -Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.65。 +Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.75。 * @method void setStrength(float $Strength) 设置生成自由度。 -Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.65。 +Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.75。 + * @method string getRspImgType() 获取返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 + * @method void setRspImgType(string $RspImgType) 设置返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 */ class ImageToImageRequest extends AbstractModel { @@ -97,15 +97,15 @@ Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 /** * @var string 文本描述。 -用于在输入图的基础上引导生成图效果,建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。推荐使用中文。最多支持512个 utf-8 字符。 -注意:如果不输入任何文本描述,可能导致较差的效果,建议根据期望的效果输入相应的文本描述。 +用于在输入图的基础上引导生成图效果,增加生成结果中出现描述内容的可能。 +推荐使用中文。最多支持256个 utf-8 字符。 */ public $Prompt; /** * @var string 反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 -推荐使用中文。最多可传512个 utf-8 字符。 +推荐使用中文。最多可传256个 utf-8 字符。 */ public $NegativePrompt; @@ -113,7 +113,6 @@ Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 * @var array 绘画风格。 请在 [智能图生图风格列表](https://cloud.tencent.com/document/product/1668/86250) 中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用201(日系动漫风格)。 -如果想要探索风格列表之外的风格,也可以尝试在 Prompt 中输入其他的风格描述。 */ public $Styles; @@ -139,10 +138,15 @@ Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 /** * @var float 生成自由度。 -Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.65。 +Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.75。 */ public $Strength; + /** + * @var string 返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 + */ + public $RspImgType; + /** * @param string $InputImage 输入图 Base64 数据。 算法将根据输入的图片,结合文本描述智能生成与之相关的图像。 @@ -153,15 +157,14 @@ Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 图片限制:单边分辨率小于2000,转成 Base64 字符串后小于 5MB。 * @param string $Prompt 文本描述。 -用于在输入图的基础上引导生成图效果,建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。推荐使用中文。最多支持512个 utf-8 字符。 -注意:如果不输入任何文本描述,可能导致较差的效果,建议根据期望的效果输入相应的文本描述。 +用于在输入图的基础上引导生成图效果,增加生成结果中出现描述内容的可能。 +推荐使用中文。最多支持256个 utf-8 字符。 * @param string $NegativePrompt 反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 -推荐使用中文。最多可传512个 utf-8 字符。 +推荐使用中文。最多可传256个 utf-8 字符。 * @param array $Styles 绘画风格。 请在 [智能图生图风格列表](https://cloud.tencent.com/document/product/1668/86250) 中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用201(日系动漫风格)。 -如果想要探索风格列表之外的风格,也可以尝试在 Prompt 中输入其他的风格描述。 * @param ResultConfig $ResultConfig 生成图结果的配置,包括输出图片分辨率和尺寸等。 * @param integer $LogoAdd 为生成结果图添加标识的开关,默认为1。 1:添加标识。 @@ -171,7 +174,8 @@ Base64 和 Url 必须提供一个,如果都提供以 Base64 为准。 * @param LogoParam $LogoParam 标识内容设置。 默认在生成结果图右下角添加“图片由 AI 生成”字样,您可根据自身需要替换为其他的标识图片。 * @param float $Strength 生成自由度。 -Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.65。 +Strength 值越小,生成图和原图越接近。取值范围0~1,不传默认为0.75。 + * @param string $RspImgType 返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 */ function __construct() { @@ -223,5 +227,9 @@ Strength 值越小,生成图和原图越接近。取值范围0~1,不传默 if (array_key_exists("Strength",$param) and $param["Strength"] !== null) { $this->Strength = $param["Strength"]; } + + if (array_key_exists("RspImgType",$param) and $param["RspImgType"] !== null) { + $this->RspImgType = $param["RspImgType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/ImageToImageResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/ImageToImageResponse.php index f02aad63a..bf370c279 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/ImageToImageResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/ImageToImageResponse.php @@ -20,15 +20,21 @@ use TencentCloud\Common\AbstractModel; /** * ImageToImage返回参数结构体 * - * @method string getResultImage() 获取返回的生成图 Base64 编码。 - * @method void setResultImage(string $ResultImage) 设置返回的生成图 Base64 编码。 + * @method string getResultImage() 获取根据入参 RspImgType 填入不同,返回不同的内容。 +如果传入 base64 则返回生成图 Base64 编码。 +如果传入 url 则返回的生成图 URL , 有效期1小时,请及时保存。 + * @method void setResultImage(string $ResultImage) 设置根据入参 RspImgType 填入不同,返回不同的内容。 +如果传入 base64 则返回生成图 Base64 编码。 +如果传入 url 则返回的生成图 URL , 有效期1小时,请及时保存。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class ImageToImageResponse extends AbstractModel { /** - * @var string 返回的生成图 Base64 编码。 + * @var string 根据入参 RspImgType 填入不同,返回不同的内容。 +如果传入 base64 则返回生成图 Base64 编码。 +如果传入 url 则返回的生成图 URL , 有效期1小时,请及时保存。 */ public $ResultImage; @@ -38,7 +44,9 @@ class ImageToImageResponse extends AbstractModel public $RequestId; /** - * @param string $ResultImage 返回的生成图 Base64 编码。 + * @param string $ResultImage 根据入参 RspImgType 填入不同,返回不同的内容。 +如果传入 base64 则返回生成图 Base64 编码。 +如果传入 url 则返回的生成图 URL , 有效期1小时,请及时保存。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/TextToImageRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/TextToImageRequest.php index 35cd43a3e..93d7c5287 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/TextToImageRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/TextToImageRequest.php @@ -22,24 +22,22 @@ use TencentCloud\Common\AbstractModel; * * @method string getPrompt() 获取文本描述。 算法将根据输入的文本智能生成与之相关的图像。建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。 -不能为空,推荐使用中文。最多可传512个 utf-8 字符。 +不能为空,推荐使用中文。最多可传256个 utf-8 字符。 * @method void setPrompt(string $Prompt) 设置文本描述。 算法将根据输入的文本智能生成与之相关的图像。建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。 -不能为空,推荐使用中文。最多可传512个 utf-8 字符。 +不能为空,推荐使用中文。最多可传256个 utf-8 字符。 * @method string getNegativePrompt() 获取反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 -推荐使用中文。最多可传512个 utf-8 字符。 +推荐使用中文。最多可传256个 utf-8 字符。 * @method void setNegativePrompt(string $NegativePrompt) 设置反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 -推荐使用中文。最多可传512个 utf-8 字符。 +推荐使用中文。最多可传256个 utf-8 字符。 * @method array getStyles() 获取绘画风格。 请在 [智能文生图风格列表](https://cloud.tencent.com/document/product/1668/86249) 中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用201(日系动漫风格)。 -如果想要探索风格列表之外的风格,也可以尝试在 Prompt 中输入其他的风格描述。 * @method void setStyles(array $Styles) 设置绘画风格。 请在 [智能文生图风格列表](https://cloud.tencent.com/document/product/1668/86249) 中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用201(日系动漫风格)。 -如果想要探索风格列表之外的风格,也可以尝试在 Prompt 中输入其他的风格描述。 * @method ResultConfig getResultConfig() 获取生成图结果的配置,包括输出图片分辨率和尺寸等。 * @method void setResultConfig(ResultConfig $ResultConfig) 设置生成图结果的配置,包括输出图片分辨率和尺寸等。 * @method integer getLogoAdd() 获取为生成结果图添加标识的开关,默认为1。 @@ -56,20 +54,22 @@ use TencentCloud\Common\AbstractModel; 默认在生成结果图右下角添加“图片由 AI 生成”字样,您可根据自身需要替换为其他的标识图片。 * @method void setLogoParam(LogoParam $LogoParam) 设置标识内容设置。 默认在生成结果图右下角添加“图片由 AI 生成”字样,您可根据自身需要替换为其他的标识图片。 + * @method string getRspImgType() 获取返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 + * @method void setRspImgType(string $RspImgType) 设置返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 */ class TextToImageRequest extends AbstractModel { /** * @var string 文本描述。 算法将根据输入的文本智能生成与之相关的图像。建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。 -不能为空,推荐使用中文。最多可传512个 utf-8 字符。 +不能为空,推荐使用中文。最多可传256个 utf-8 字符。 */ public $Prompt; /** * @var string 反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 -推荐使用中文。最多可传512个 utf-8 字符。 +推荐使用中文。最多可传256个 utf-8 字符。 */ public $NegativePrompt; @@ -77,7 +77,6 @@ class TextToImageRequest extends AbstractModel * @var array 绘画风格。 请在 [智能文生图风格列表](https://cloud.tencent.com/document/product/1668/86249) 中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用201(日系动漫风格)。 -如果想要探索风格列表之外的风格,也可以尝试在 Prompt 中输入其他的风格描述。 */ public $Styles; @@ -101,17 +100,21 @@ class TextToImageRequest extends AbstractModel */ public $LogoParam; + /** + * @var string 返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 + */ + public $RspImgType; + /** * @param string $Prompt 文本描述。 算法将根据输入的文本智能生成与之相关的图像。建议详细描述画面主体、细节、场景等,文本描述越丰富,生成效果越精美。 -不能为空,推荐使用中文。最多可传512个 utf-8 字符。 +不能为空,推荐使用中文。最多可传256个 utf-8 字符。 * @param string $NegativePrompt 反向文本描述。 用于一定程度上从反面引导模型生成的走向,减少生成结果中出现描述内容的可能,但不能完全杜绝。 -推荐使用中文。最多可传512个 utf-8 字符。 +推荐使用中文。最多可传256个 utf-8 字符。 * @param array $Styles 绘画风格。 请在 [智能文生图风格列表](https://cloud.tencent.com/document/product/1668/86249) 中选择期望的风格,传入风格编号。 推荐使用且只使用一种风格。不传默认使用201(日系动漫风格)。 -如果想要探索风格列表之外的风格,也可以尝试在 Prompt 中输入其他的风格描述。 * @param ResultConfig $ResultConfig 生成图结果的配置,包括输出图片分辨率和尺寸等。 * @param integer $LogoAdd 为生成结果图添加标识的开关,默认为1。 1:添加标识。 @@ -120,6 +123,7 @@ class TextToImageRequest extends AbstractModel 建议您使用显著标识来提示结果图使用了 AI 绘画技术,是 AI 生成的图片。 * @param LogoParam $LogoParam 标识内容设置。 默认在生成结果图右下角添加“图片由 AI 生成”字样,您可根据自身需要替换为其他的标识图片。 + * @param string $RspImgType 返回图像方式(base64 或 url) ,二选一,默认为 base64。url 有效期为1小时。 */ function __construct() { @@ -159,5 +163,9 @@ class TextToImageRequest extends AbstractModel $this->LogoParam = new LogoParam(); $this->LogoParam->deserialize($param["LogoParam"]); } + + if (array_key_exists("RspImgType",$param) and $param["RspImgType"] !== null) { + $this->RspImgType = $param["RspImgType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/TextToImageResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/TextToImageResponse.php index 56055a86d..f1eef55ba 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/TextToImageResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Aiart/V20221229/Models/TextToImageResponse.php @@ -20,15 +20,21 @@ use TencentCloud\Common\AbstractModel; /** * TextToImage返回参数结构体 * - * @method string getResultImage() 获取返回的生成图 Base64 编码。 - * @method void setResultImage(string $ResultImage) 设置返回的生成图 Base64 编码。 + * @method string getResultImage() 获取根据入参 RspImgType 填入不同,返回不同的内容。 +如果传入 base64 则返回生成图 Base64 编码。 +如果传入 url 则返回的生成图 URL , 有效期1小时,请及时保存。 + * @method void setResultImage(string $ResultImage) 设置根据入参 RspImgType 填入不同,返回不同的内容。 +如果传入 base64 则返回生成图 Base64 编码。 +如果传入 url 则返回的生成图 URL , 有效期1小时,请及时保存。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class TextToImageResponse extends AbstractModel { /** - * @var string 返回的生成图 Base64 编码。 + * @var string 根据入参 RspImgType 填入不同,返回不同的内容。 +如果传入 base64 则返回生成图 Base64 编码。 +如果传入 url 则返回的生成图 URL , 有效期1小时,请及时保存。 */ public $ResultImage; @@ -38,7 +44,9 @@ class TextToImageResponse extends AbstractModel public $RequestId; /** - * @param string $ResultImage 返回的生成图 Base64 编码。 + * @param string $ResultImage 根据入参 RspImgType 填入不同,返回不同的内容。 +如果传入 base64 则返回生成图 Base64 编码。 +如果传入 url 则返回的生成图 URL , 有效期1小时,请及时保存。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/AntiddosClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/AntiddosClient.php index 6eda78421..7c91d736b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/AntiddosClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/AntiddosClient.php @@ -63,6 +63,7 @@ use TencentCloud\Antiddos\V20200309\Models as Models; * @method Models\DescribeBasicDeviceStatusResponse DescribeBasicDeviceStatus(Models\DescribeBasicDeviceStatusRequest $req) 获取基础防护攻击状态 * @method Models\DescribeBgpBizTrendResponse DescribeBgpBizTrend(Models\DescribeBgpBizTrendRequest $req) 获取高防包流量折线图 * @method Models\DescribeBizHttpStatusResponse DescribeBizHttpStatus(Models\DescribeBizHttpStatusRequest $req) 获取业务流量状态码统计列表 + * @method Models\DescribeBizMonitorTrendResponse DescribeBizMonitorTrend(Models\DescribeBizMonitorTrendRequest $req) 获取高防IP业务监控流量曲线 * @method Models\DescribeBizTrendResponse DescribeBizTrend(Models\DescribeBizTrendRequest $req) 获取业务流量曲线 * @method Models\DescribeBlackWhiteIpListResponse DescribeBlackWhiteIpList(Models\DescribeBlackWhiteIpListRequest $req) 获取DDoS防护的IP黑白名单 * @method Models\DescribeCCLevelListResponse DescribeCCLevelList(Models\DescribeCCLevelListRequest $req) 获取边界防护CC防护等级列表 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/CreateBoundIPRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/CreateBoundIPRequest.php index e8b7c2cae..5118aab1c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/CreateBoundIPRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/CreateBoundIPRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * CreateBoundIP请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgp表示独享包;bgp-multip表示共享包) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgp表示独享包;bgp-multip表示共享包) + * @method string getBusiness() 获取DDoS防护子产品代号(bgp表示独享包;bgp-multip表示共享包) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgp表示独享包;bgp-multip表示共享包) * @method string getId() 获取资源实例ID * @method void setId(string $Id) 设置资源实例ID * @method array getBoundDevList() 获取绑定到资源实例的IP数组,当资源实例为高防包(独享包)时,数组只允许填1个IP;当没有要绑定的IP时可以为空数组;但是BoundDevList和UnBoundDevList至少有一个不为空; @@ -36,7 +36,7 @@ use TencentCloud\Common\AbstractModel; class CreateBoundIPRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgp表示独享包;bgp-multip表示共享包) + * @var string DDoS防护子产品代号(bgp表示独享包;bgp-multip表示共享包) */ public $Business; @@ -66,7 +66,7 @@ class CreateBoundIPRequest extends AbstractModel public $FilterRegion; /** - * @param string $Business 大禹子产品代号(bgp表示独享包;bgp-multip表示共享包) + * @param string $Business DDoS防护子产品代号(bgp表示独享包;bgp-multip表示共享包) * @param string $Id 资源实例ID * @param array $BoundDevList 绑定到资源实例的IP数组,当资源实例为高防包(独享包)时,数组只允许填1个IP;当没有要绑定的IP时可以为空数组;但是BoundDevList和UnBoundDevList至少有一个不为空; * @param array $UnBoundDevList 与资源实例解绑的IP数组,当资源实例为高防包(独享包)时,数组只允许填1个IP;当没有要解绑的IP时可以为空数组;但是BoundDevList和UnBoundDevList至少有一个不为空; diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/CreateNewL7RulesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/CreateNewL7RulesRequest.php index d7814ea1b..21970001e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/CreateNewL7RulesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/CreateNewL7RulesRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method array getRules() 获取规则列表 * @method void setRules(array $Rules) 设置规则列表 - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP) * @method array getIdList() 获取资源ID列表 * @method void setIdList(array $IdList) 设置资源ID列表 * @method array getVipList() 获取资源IP列表 @@ -37,7 +37,7 @@ class CreateNewL7RulesRequest extends AbstractModel public $Rules; /** - * @var string 大禹子产品代号(bgpip表示高防IP) + * @var string DDoS防护子产品代号(bgpip表示高防IP) */ public $Business; @@ -53,7 +53,7 @@ class CreateNewL7RulesRequest extends AbstractModel /** * @param array $Rules 规则列表 - * @param string $Business 大禹子产品代号(bgpip表示高防IP) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP) * @param array $IdList 资源ID列表 * @param array $VipList 资源IP列表 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBgpBizTrendRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBgpBizTrendRequest.php index 59b80343e..960b99689 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBgpBizTrendRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBgpBizTrendRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeBgpBizTrend请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgp-multip表示高防包) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgp-multip表示高防包) + * @method string getBusiness() 获取DDoS防护子产品代号(bgp-multip表示高防包) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgp-multip表示高防包) * @method string getStartTime() 获取统计开始时间。 例:“2020-09-22 00:00:00” * @method void setStartTime(string $StartTime) 设置统计开始时间。 例:“2020-09-22 00:00:00” * @method string getEndTime() 获取统计结束时间。 例:“2020-09-22 00:00:00” @@ -36,7 +36,7 @@ use TencentCloud\Common\AbstractModel; class DescribeBgpBizTrendRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgp-multip表示高防包) + * @var string DDoS防护子产品代号(bgp-multip表示高防包) */ public $Business; @@ -66,7 +66,7 @@ class DescribeBgpBizTrendRequest extends AbstractModel public $Flag; /** - * @param string $Business 大禹子产品代号(bgp-multip表示高防包) + * @param string $Business DDoS防护子产品代号(bgp-multip表示高防包) * @param string $StartTime 统计开始时间。 例:“2020-09-22 00:00:00” * @param string $EndTime 统计结束时间。 例:“2020-09-22 00:00:00” * @param string $MetricName 统计纬度,可取值intraffic, outtraffic, inpkg, outpkg diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizHttpStatusRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizHttpStatusRequest.php index ea14b3b49..0929e62b6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizHttpStatusRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizHttpStatusRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getStatistics() 获取统计方式,仅支持sum * @method void setStatistics(string $Statistics) 设置统计方式,仅支持sum - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP) * @method integer getPeriod() 获取统计周期,可取值60,300,1800,3600, 21600,86400,单位秒 * @method void setPeriod(integer $Period) 设置统计周期,可取值60,300,1800,3600, 21600,86400,单位秒 * @method string getStartTime() 获取统计开始时间。 如2020-02-01 12:04:12 @@ -45,7 +45,7 @@ class DescribeBizHttpStatusRequest extends AbstractModel public $Statistics; /** - * @var string 大禹子产品代号(bgpip表示高防IP) + * @var string DDoS防护子产品代号(bgpip表示高防IP) */ public $Business; @@ -81,7 +81,7 @@ class DescribeBizHttpStatusRequest extends AbstractModel /** * @param string $Statistics 统计方式,仅支持sum - * @param string $Business 大禹子产品代号(bgpip表示高防IP) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP) * @param integer $Period 统计周期,可取值60,300,1800,3600, 21600,86400,单位秒 * @param string $StartTime 统计开始时间。 如2020-02-01 12:04:12 * @param string $EndTime 统计结束时间。如2020-02-03 18:03:23 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizMonitorTrendRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizMonitorTrendRequest.php new file mode 100644 index 000000000..607acfa2b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizMonitorTrendRequest.php @@ -0,0 +1,113 @@ +Business = $param["Business"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("Id",$param) and $param["Id"] !== null) { + $this->Id = $param["Id"]; + } + + if (array_key_exists("MetricName",$param) and $param["MetricName"] !== null) { + $this->MetricName = $param["MetricName"]; + } + + if (array_key_exists("Period",$param) and $param["Period"] !== null) { + $this->Period = $param["Period"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizMonitorTrendResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizMonitorTrendResponse.php new file mode 100644 index 000000000..bec637c82 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizMonitorTrendResponse.php @@ -0,0 +1,93 @@ +DataList = $param["DataList"]; + } + + if (array_key_exists("MetricName",$param) and $param["MetricName"] !== null) { + $this->MetricName = $param["MetricName"]; + } + + if (array_key_exists("MaxData",$param) and $param["MaxData"] !== null) { + $this->MaxData = $param["MaxData"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizTrendRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizTrendRequest.php index db155eded..aa8db6f32 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizTrendRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeBizTrendRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getStatistics() 获取统计方式,可取值max, min, avg, sum, 如统计纬度是流量速率或包量速率,仅可取值max * @method void setStatistics(string $Statistics) 设置统计方式,可取值max, min, avg, sum, 如统计纬度是流量速率或包量速率,仅可取值max - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP) * @method integer getPeriod() 获取统计周期,可取值60,300,1800,3600,21600,86400,单位秒 * @method void setPeriod(integer $Period) 设置统计周期,可取值60,300,1800,3600,21600,86400,单位秒 * @method string getStartTime() 获取统计开始时间。 例:“2020-09-22 00:00:00” @@ -53,7 +53,7 @@ class DescribeBizTrendRequest extends AbstractModel public $Statistics; /** - * @var string 大禹子产品代号(bgpip表示高防IP) + * @var string DDoS防护子产品代号(bgpip表示高防IP) */ public $Business; @@ -101,7 +101,7 @@ domain:域名业务 /** * @param string $Statistics 统计方式,可取值max, min, avg, sum, 如统计纬度是流量速率或包量速率,仅可取值max - * @param string $Business 大禹子产品代号(bgpip表示高防IP) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP) * @param integer $Period 统计周期,可取值60,300,1800,3600,21600,86400,单位秒 * @param string $StartTime 统计开始时间。 例:“2020-09-22 00:00:00” * @param string $EndTime 统计结束时间。 例:“2020-09-22 00:00:00” diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCLevelListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCLevelListRequest.php index 21ef1f8f8..73a393045 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCLevelListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCLevelListRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeCCLevelList请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgp-multip表示高防包) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgp-multip表示高防包) + * @method string getBusiness() 获取DDoS防护子产品代号(bgp-multip表示高防包) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgp-multip表示高防包) * @method integer getOffset() 获取页起始偏移,取值为(页码-1)*一页条数 * @method void setOffset(integer $Offset) 设置页起始偏移,取值为(页码-1)*一页条数 * @method integer getLimit() 获取一页条数 @@ -32,7 +32,7 @@ use TencentCloud\Common\AbstractModel; class DescribeCCLevelListRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgp-multip表示高防包) + * @var string DDoS防护子产品代号(bgp-multip表示高防包) */ public $Business; @@ -52,7 +52,7 @@ class DescribeCCLevelListRequest extends AbstractModel public $InstanceId; /** - * @param string $Business 大禹子产品代号(bgp-multip表示高防包) + * @param string $Business DDoS防护子产品代号(bgp-multip表示高防包) * @param integer $Offset 页起始偏移,取值为(页码-1)*一页条数 * @param integer $Limit 一页条数 * @param string $InstanceId 指定实例Id diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCPrecisionPlyListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCPrecisionPlyListRequest.php index 2914e672b..f10ea3488 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCPrecisionPlyListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCPrecisionPlyListRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeCCPrecisionPlyList请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) * @method integer getOffset() 获取页起始偏移,取值为(页码-1)*一页条数 * @method void setOffset(integer $Offset) 设置页起始偏移,取值为(页码-1)*一页条数 * @method integer getLimit() 获取一页条数 @@ -38,7 +38,7 @@ use TencentCloud\Common\AbstractModel; class DescribeCCPrecisionPlyListRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) + * @var string DDoS防护子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) */ public $Business; @@ -73,7 +73,7 @@ class DescribeCCPrecisionPlyListRequest extends AbstractModel public $Protocol; /** - * @param string $Business 大禹子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) + * @param string $Business DDoS防护子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) * @param integer $Offset 页起始偏移,取值为(页码-1)*一页条数 * @param integer $Limit 一页条数 * @param string $InstanceId 指定特定实例Id diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCReqLimitPolicyListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCReqLimitPolicyListRequest.php index c4868aa27..37791b5b8 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCReqLimitPolicyListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCReqLimitPolicyListRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeCCReqLimitPolicyList请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgp-multip表示高防包,bgpip表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgp-multip表示高防包,bgpip表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgp-multip表示高防包,bgpip表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgp-multip表示高防包,bgpip表示高防IP) * @method integer getOffset() 获取页起始偏移,取值为(页码-1)*一页条数 * @method void setOffset(integer $Offset) 设置页起始偏移,取值为(页码-1)*一页条数 * @method integer getLimit() 获取一页条数 @@ -38,7 +38,7 @@ use TencentCloud\Common\AbstractModel; class DescribeCCReqLimitPolicyListRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgp-multip表示高防包,bgpip表示高防IP) + * @var string DDoS防护子产品代号(bgp-multip表示高防包,bgpip表示高防IP) */ public $Business; @@ -73,7 +73,7 @@ class DescribeCCReqLimitPolicyListRequest extends AbstractModel public $Protocol; /** - * @param string $Business 大禹子产品代号(bgp-multip表示高防包,bgpip表示高防IP) + * @param string $Business DDoS防护子产品代号(bgp-multip表示高防包,bgpip表示高防IP) * @param integer $Offset 页起始偏移,取值为(页码-1)*一页条数 * @param integer $Limit 一页条数 * @param string $InstanceId 指定实例Id diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCThresholdListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCThresholdListRequest.php index 5ed09ffde..7c68bc6fe 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCThresholdListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCThresholdListRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeCCThresholdList请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgp-multip表示高防包) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgp-multip表示高防包) + * @method string getBusiness() 获取DDoS防护子产品代号(bgp-multip表示高防包) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgp-multip表示高防包) * @method integer getOffset() 获取页起始偏移,取值为(页码-1)*一页条数 * @method void setOffset(integer $Offset) 设置页起始偏移,取值为(页码-1)*一页条数 * @method integer getLimit() 获取一页条数 @@ -32,7 +32,7 @@ use TencentCloud\Common\AbstractModel; class DescribeCCThresholdListRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgp-multip表示高防包) + * @var string DDoS防护子产品代号(bgp-multip表示高防包) */ public $Business; @@ -52,7 +52,7 @@ class DescribeCCThresholdListRequest extends AbstractModel public $InstanceId; /** - * @param string $Business 大禹子产品代号(bgp-multip表示高防包) + * @param string $Business DDoS防护子产品代号(bgp-multip表示高防包) * @param integer $Offset 页起始偏移,取值为(页码-1)*一页条数 * @param integer $Limit 一页条数 * @param string $InstanceId 指定实例Id diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCTrendRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCTrendRequest.php index de3ab258e..d1acde3a1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCTrendRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCCTrendRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeCCTrend请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版;basic表示DDoS基础防护) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版;basic表示DDoS基础防护) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版;basic表示DDoS基础防护) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版;basic表示DDoS基础防护) * @method string getIp() 获取资源的IP * @method void setIp(string $Ip) 设置资源的IP * @method integer getPeriod() 获取统计粒度,取值[300(5分钟),3600(小时),86400(天)] @@ -40,7 +40,7 @@ use TencentCloud\Common\AbstractModel; class DescribeCCTrendRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版;basic表示DDoS基础防护) + * @var string DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版;basic表示DDoS基础防护) */ public $Business; @@ -80,7 +80,7 @@ class DescribeCCTrendRequest extends AbstractModel public $Id; /** - * @param string $Business 大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版;basic表示DDoS基础防护) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版;basic表示DDoS基础防护) * @param string $Ip 资源的IP * @param integer $Period 统计粒度,取值[300(5分钟),3600(小时),86400(天)] * @param string $StartTime 统计开始时间 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCcBlackWhiteIpListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCcBlackWhiteIpListRequest.php index 876dd85ba..1a965651c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCcBlackWhiteIpListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCcBlackWhiteIpListRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeCcBlackWhiteIpList请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgp-multip:表示高防包;bgpip:表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgp-multip:表示高防包;bgpip:表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgp-multip:表示高防包;bgpip:表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgp-multip:表示高防包;bgpip:表示高防IP) * @method string getInstanceId() 获取指定特定实例Id * @method void setInstanceId(string $InstanceId) 设置指定特定实例Id * @method integer getOffset() 获取页起始偏移,取值为(页码-1)*一页条数 @@ -42,7 +42,7 @@ use TencentCloud\Common\AbstractModel; class DescribeCcBlackWhiteIpListRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgp-multip:表示高防包;bgpip:表示高防IP) + * @var string DDoS防护子产品代号(bgp-multip:表示高防包;bgpip:表示高防IP) */ public $Business; @@ -87,7 +87,7 @@ class DescribeCcBlackWhiteIpListRequest extends AbstractModel public $FilterType; /** - * @param string $Business 大禹子产品代号(bgp-multip:表示高防包;bgpip:表示高防IP) + * @param string $Business DDoS防护子产品代号(bgp-multip:表示高防包;bgpip:表示高防IP) * @param string $InstanceId 指定特定实例Id * @param integer $Offset 页起始偏移,取值为(页码-1)*一页条数 * @param integer $Limit 一页条数 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCcGeoIPBlockConfigListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCcGeoIPBlockConfigListRequest.php index b9d777966..c201bb70d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCcGeoIPBlockConfigListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeCcGeoIPBlockConfigListRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeCcGeoIPBlockConfigList请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) * @method integer getOffset() 获取页起始偏移,取值为(页码-1)*一页条数 * @method void setOffset(integer $Offset) 设置页起始偏移,取值为(页码-1)*一页条数 * @method integer getLimit() 获取一页条数 @@ -38,7 +38,7 @@ use TencentCloud\Common\AbstractModel; class DescribeCcGeoIPBlockConfigListRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) + * @var string DDoS防护子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) */ public $Business; @@ -73,7 +73,7 @@ class DescribeCcGeoIPBlockConfigListRequest extends AbstractModel public $Protocol; /** - * @param string $Business 大禹子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) + * @param string $Business DDoS防护子产品代号(bgpip-multip:表示高防包;bgpip:表示高防IP) * @param integer $Offset 页起始偏移,取值为(页码-1)*一页条数 * @param integer $Limit 一页条数 * @param string $InstanceId 指定特定实例ID diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeNewL7RulesErrHealthRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeNewL7RulesErrHealthRequest.php index c08f59d2c..f6bbcdf20 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeNewL7RulesErrHealthRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeNewL7RulesErrHealthRequest.php @@ -20,15 +20,15 @@ use TencentCloud\Common\AbstractModel; /** * DescribeNewL7RulesErrHealth请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP) * @method array getRuleIdList() 获取规则Id列表 * @method void setRuleIdList(array $RuleIdList) 设置规则Id列表 */ class DescribeNewL7RulesErrHealthRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgpip表示高防IP) + * @var string DDoS防护子产品代号(bgpip表示高防IP) */ public $Business; @@ -38,7 +38,7 @@ class DescribeNewL7RulesErrHealthRequest extends AbstractModel public $RuleIdList; /** - * @param string $Business 大禹子产品代号(bgpip表示高防IP) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP) * @param array $RuleIdList 规则Id列表 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeNewL7RulesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeNewL7RulesRequest.php index 38f7c6ab4..5e9157f8d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeNewL7RulesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeNewL7RulesRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeNewL7Rules请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP) * @method array getStatusList() 获取状态搜索,选填,取值[0(规则配置成功),1(规则配置生效中),2(规则配置失败),3(规则删除生效中),5(规则删除失败),6(规则等待配置),7(规则等待删除),8(规则待配置证书)] * @method void setStatusList(array $StatusList) 设置状态搜索,选填,取值[0(规则配置成功),1(规则配置生效中),2(规则配置失败),3(规则删除生效中),5(规则删除失败),6(规则等待配置),7(规则等待删除),8(规则待配置证书)] * @method string getDomain() 获取域名搜索,选填,当需要搜索域名请填写 @@ -42,7 +42,7 @@ use TencentCloud\Common\AbstractModel; class DescribeNewL7RulesRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgpip表示高防IP) + * @var string DDoS防护子产品代号(bgpip表示高防IP) */ public $Business; @@ -87,7 +87,7 @@ class DescribeNewL7RulesRequest extends AbstractModel public $Export; /** - * @param string $Business 大禹子产品代号(bgpip表示高防IP) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP) * @param array $StatusList 状态搜索,选填,取值[0(规则配置成功),1(规则配置生效中),2(规则配置失败),3(规则删除生效中),5(规则删除失败),6(规则等待配置),7(规则等待删除),8(规则待配置证书)] * @param string $Domain 域名搜索,选填,当需要搜索域名请填写 * @param string $Ip IP搜索,选填,当需要搜索IP请填写 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeOverviewCCTrendRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeOverviewCCTrendRequest.php index 95c0977fc..3a3ec9b5b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeOverviewCCTrendRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeOverviewCCTrendRequest.php @@ -28,8 +28,8 @@ use TencentCloud\Common\AbstractModel; * @method void setEndTime(string $EndTime) 设置统计结束时间 * @method string getMetricName() 获取指标,取值[inqps(总请求峰值,dropqps(攻击请求峰值)),incount(请求次数), dropcount(攻击次数)] * @method void setMetricName(string $MetricName) 设置指标,取值[inqps(总请求峰值,dropqps(攻击请求峰值)),incount(请求次数), dropcount(攻击次数)] - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP;bgp-multip表示共享包;basic表示DDoS基础防护) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP;bgp-multip表示共享包;basic表示DDoS基础防护) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP;bgp-multip表示共享包;basic表示DDoS基础防护) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP;bgp-multip表示共享包;basic表示DDoS基础防护) * @method array getIpList() 获取资源的IP * @method void setIpList(array $IpList) 设置资源的IP * @method string getId() 获取资源实例ID @@ -58,7 +58,7 @@ class DescribeOverviewCCTrendRequest extends AbstractModel public $MetricName; /** - * @var string 大禹子产品代号(bgpip表示高防IP;bgp-multip表示共享包;basic表示DDoS基础防护) + * @var string DDoS防护子产品代号(bgpip表示高防IP;bgp-multip表示共享包;basic表示DDoS基础防护) */ public $Business; @@ -77,7 +77,7 @@ class DescribeOverviewCCTrendRequest extends AbstractModel * @param string $StartTime 统计开始时间 * @param string $EndTime 统计结束时间 * @param string $MetricName 指标,取值[inqps(总请求峰值,dropqps(攻击请求峰值)),incount(请求次数), dropcount(攻击次数)] - * @param string $Business 大禹子产品代号(bgpip表示高防IP;bgp-multip表示共享包;basic表示DDoS基础防护) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP;bgp-multip表示共享包;basic表示DDoS基础防护) * @param array $IpList 资源的IP * @param string $Id 资源实例ID */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeOverviewDDoSTrendRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeOverviewDDoSTrendRequest.php index b0beef7e1..9f9e58581 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeOverviewDDoSTrendRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/DescribeOverviewDDoSTrendRequest.php @@ -28,8 +28,8 @@ use TencentCloud\Common\AbstractModel; * @method void setEndTime(string $EndTime) 设置统计结束时间 * @method string getMetricName() 获取指标,取值[bps(攻击流量带宽,pps(攻击包速率))] * @method void setMetricName(string $MetricName) 设置指标,取值[bps(攻击流量带宽,pps(攻击包速率))] - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP;bgp-multip表示高防包;basic表示DDoS基础防护) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP;bgp-multip表示高防包;basic表示DDoS基础防护) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP;bgp-multip表示高防包;basic表示DDoS基础防护) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP;bgp-multip表示高防包;basic表示DDoS基础防护) * @method array getIpList() 获取资源实例的IP列表 * @method void setIpList(array $IpList) 设置资源实例的IP列表 * @method string getId() 获取资源实例ID @@ -58,7 +58,7 @@ class DescribeOverviewDDoSTrendRequest extends AbstractModel public $MetricName; /** - * @var string 大禹子产品代号(bgpip表示高防IP;bgp-multip表示高防包;basic表示DDoS基础防护) + * @var string DDoS防护子产品代号(bgpip表示高防IP;bgp-multip表示高防包;basic表示DDoS基础防护) */ public $Business; @@ -77,7 +77,7 @@ class DescribeOverviewDDoSTrendRequest extends AbstractModel * @param string $StartTime 统计开始时间 * @param string $EndTime 统计结束时间 * @param string $MetricName 指标,取值[bps(攻击流量带宽,pps(攻击包速率))] - * @param string $Business 大禹子产品代号(bgpip表示高防IP;bgp-multip表示高防包;basic表示DDoS基础防护) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP;bgp-multip表示高防包;basic表示DDoS基础防护) * @param array $IpList 资源实例的IP列表 * @param string $Id 资源实例ID */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyDDoSLevelRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyDDoSLevelRequest.php index 4584df03d..b80fa4093 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyDDoSLevelRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyDDoSLevelRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getId() 获取资源ID * @method void setId(string $Id) 设置资源ID - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) * @method string getMethod() 获取=get表示读取防护等级;=set表示修改防护等级 * @method void setMethod(string $Method) 设置=get表示读取防护等级;=set表示修改防护等级 * @method string getDDoSLevel() 获取防护等级,取值[low,middle,high];当Method=set时必填 @@ -37,7 +37,7 @@ class ModifyDDoSLevelRequest extends AbstractModel public $Id; /** - * @var string 大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) + * @var string DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) */ public $Business; @@ -53,7 +53,7 @@ class ModifyDDoSLevelRequest extends AbstractModel /** * @param string $Id 资源ID - * @param string $Business 大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) * @param string $Method =get表示读取防护等级;=set表示修改防护等级 * @param string $DDoSLevel 防护等级,取值[low,middle,high];当Method=set时必填 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyDDoSThresholdRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyDDoSThresholdRequest.php index b1eab555a..a47abd99e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyDDoSThresholdRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyDDoSThresholdRequest.php @@ -26,8 +26,8 @@ use TencentCloud\Common\AbstractModel; 当设置值为0时,表示采用默认值; * @method string getId() 获取资源ID * @method void setId(string $Id) 设置资源ID - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) * @method integer getOtherThresholdFlag() 获取配置其他阈值标志位,1表示配置其他阈值 * @method void setOtherThresholdFlag(integer $OtherThresholdFlag) 设置配置其他阈值标志位,1表示配置其他阈值 * @method integer getSynFloodThreshold() 获取SYN FLOOD流量阈值 @@ -65,7 +65,7 @@ class ModifyDDoSThresholdRequest extends AbstractModel public $Id; /** - * @var string 大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) + * @var string DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) */ public $Business; @@ -128,7 +128,7 @@ class ModifyDDoSThresholdRequest extends AbstractModel * @param integer $Threshold DDoS清洗阈值,取值[0, 60, 80, 100, 150, 200, 250, 300, 400, 500, 700, 1000]; 当设置值为0时,表示采用默认值; * @param string $Id 资源ID - * @param string $Business 大禹子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP;bgp表示独享包;bgp-multip表示共享包;net表示高防IP专业版) * @param integer $OtherThresholdFlag 配置其他阈值标志位,1表示配置其他阈值 * @param integer $SynFloodThreshold SYN FLOOD流量阈值 * @param integer $SynFloodPktThreshold SYN FLOOD包量阈值 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyNewDomainRulesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyNewDomainRulesRequest.php index bcc3e0d38..5ea9a5ed1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyNewDomainRulesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Antiddos/V20200309/Models/ModifyNewDomainRulesRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * ModifyNewDomainRules请求参数结构体 * - * @method string getBusiness() 获取大禹子产品代号(bgpip表示高防IP) - * @method void setBusiness(string $Business) 设置大禹子产品代号(bgpip表示高防IP) + * @method string getBusiness() 获取DDoS防护子产品代号(bgpip表示高防IP) + * @method void setBusiness(string $Business) 设置DDoS防护子产品代号(bgpip表示高防IP) * @method string getId() 获取资源ID * @method void setId(string $Id) 设置资源ID * @method NewL7RuleEntry getRule() 获取域名转发规则 @@ -30,7 +30,7 @@ use TencentCloud\Common\AbstractModel; class ModifyNewDomainRulesRequest extends AbstractModel { /** - * @var string 大禹子产品代号(bgpip表示高防IP) + * @var string DDoS防护子产品代号(bgpip表示高防IP) */ public $Business; @@ -45,7 +45,7 @@ class ModifyNewDomainRulesRequest extends AbstractModel public $Rule; /** - * @param string $Business 大禹子产品代号(bgpip表示高防IP) + * @param string $Business DDoS防护子产品代号(bgpip表示高防IP) * @param string $Id 资源ID * @param NewL7RuleEntry $Rule 域名转发规则 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/ApigatewayClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/ApigatewayClient.php index fd2175c3c..b0303fb41 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/ApigatewayClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/ApigatewayClient.php @@ -113,9 +113,6 @@ API 网关可绑定自定义域名到服务,用于服务调用。此接口用 * @method Models\DetachPluginResponse DetachPlugin(Models\DetachPluginRequest $req) 解除插件与API绑定 * @method Models\DisableApiKeyResponse DisableApiKey(Models\DisableApiKeyRequest $req) 本接口(DisableApiKey)用于禁用一对 API 密钥。 * @method Models\EnableApiKeyResponse EnableApiKey(Models\EnableApiKeyRequest $req) 本接口(EnableApiKey)用于启动一对被禁用的 API 密钥。 - * @method Models\GenerateApiDocumentResponse GenerateApiDocument(Models\GenerateApiDocumentRequest $req) 接口已废弃 - -本接口(GenerateApiDocument)用于自动生成 API 文档和 SDK,一个服务的一个环境生成一份文档和 SDK。 * @method Models\ImportOpenApiResponse ImportOpenApi(Models\ImportOpenApiRequest $req) 本接口(ImportOpenApi)用于将OpenAPI规范定义的API导入到API网关。 * @method Models\ModifyAPIDocResponse ModifyAPIDoc(Models\ModifyAPIDocRequest $req) 修改 API 文档 * @method Models\ModifyApiResponse ModifyApi(Models\ModifyApiRequest $req) 本接口(ModifyApi)用于修改 API 接口,可调用此接口对已经配置的 API 接口进行编辑修改。修改后的 API 需要重新发布 API 所在的服务到对应环境方能生效。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/DocumentSDK.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/DocumentSDK.php deleted file mode 100644 index f42abf7c7..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/DocumentSDK.php +++ /dev/null @@ -1,65 +0,0 @@ -DocumentURL = $param["DocumentURL"]; - } - - if (array_key_exists("SdkURL",$param) and $param["SdkURL"] !== null) { - $this->SdkURL = $param["SdkURL"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/GenerateApiDocumentRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/GenerateApiDocumentRequest.php deleted file mode 100644 index 48df8a843..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/GenerateApiDocumentRequest.php +++ /dev/null @@ -1,77 +0,0 @@ -ServiceId = $param["ServiceId"]; - } - - if (array_key_exists("GenEnvironment",$param) and $param["GenEnvironment"] !== null) { - $this->GenEnvironment = $param["GenEnvironment"]; - } - - if (array_key_exists("GenLanguage",$param) and $param["GenLanguage"] !== null) { - $this->GenLanguage = $param["GenLanguage"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/As/V20180419/Models/UpgradeLaunchConfigurationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/As/V20180419/Models/UpgradeLaunchConfigurationRequest.php index 4b98633f7..70f32bf51 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/As/V20180419/Models/UpgradeLaunchConfigurationRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/As/V20180419/Models/UpgradeLaunchConfigurationRequest.php @@ -56,8 +56,8 @@ use TencentCloud\Common\AbstractModel; 如果 InstanceTypes 中一款机型不存在或者已下线,则无论 InstanceTypesCheckPolicy 采用何种取值,都会校验报错。 * @method InternetAccessible getInternetAccessible() 获取公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。 * @method void setInternetAccessible(InternetAccessible $InternetAccessible) 设置公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。 - * @method LoginSettings getLoginSettings() 获取实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。 - * @method void setLoginSettings(LoginSettings $LoginSettings) 设置实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。 + * @method LoginSettings getLoginSettings() 获取该参数已失效,请勿使用。升级启动配置接口无法修改或覆盖 LoginSettings 参数,升级后 LoginSettings 不会发生变化。 + * @method void setLoginSettings(LoginSettings $LoginSettings) 设置该参数已失效,请勿使用。升级启动配置接口无法修改或覆盖 LoginSettings 参数,升级后 LoginSettings 不会发生变化。 * @method integer getProjectId() 获取实例所属项目ID。不填为默认项目。 * @method void setProjectId(integer $ProjectId) 设置实例所属项目ID。不填为默认项目。 * @method array getSecurityGroupIds() 获取实例所属安全组。该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的`SecurityGroupId`字段来获取。若不指定该参数,则默认不绑定安全组。 @@ -146,7 +146,7 @@ class UpgradeLaunchConfigurationRequest extends AbstractModel public $InternetAccessible; /** - * @var LoginSettings 实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。 + * @var LoginSettings 该参数已失效,请勿使用。升级启动配置接口无法修改或覆盖 LoginSettings 参数,升级后 LoginSettings 不会发生变化。 */ public $LoginSettings; @@ -226,7 +226,7 @@ class UpgradeLaunchConfigurationRequest extends AbstractModel 实例类型不可用的常见原因包括该实例类型售罄、对应云盘售罄等。 如果 InstanceTypes 中一款机型不存在或者已下线,则无论 InstanceTypesCheckPolicy 采用何种取值,都会校验报错。 * @param InternetAccessible $InternetAccessible 公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。 - * @param LoginSettings $LoginSettings 实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。 + * @param LoginSettings $LoginSettings 该参数已失效,请勿使用。升级启动配置接口无法修改或覆盖 LoginSettings 参数,升级后 LoginSettings 不会发生变化。 * @param integer $ProjectId 实例所属项目ID。不填为默认项目。 * @param array $SecurityGroupIds 实例所属安全组。该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的`SecurityGroupId`字段来获取。若不指定该参数,则默认不绑定安全组。 * @param SystemDisk $SystemDisk 实例系统盘配置信息。若不指定该参数,则按照系统默认值进行分配。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/AsrClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/AsrClient.php index 4a10311d1..8ffbbe294 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/AsrClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/AsrClient.php @@ -69,6 +69,7 @@ use TencentCloud\Asr\V20190614\Models as Models; * @method Models\SentenceRecognitionResponse SentenceRecognition(Models\SentenceRecognitionRequest $req) 本接口用于对60秒之内的短音频文件进行识别。
• 支持中文普通话、英语、粤语、日语、越南语、马来语、印度尼西亚语、菲律宾语、泰语、葡萄牙语、土耳其语、阿拉伯语、上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话。
• 支持本地语音文件上传和语音URL上传两种请求方式,音频时长不能超过60s,音频文件大小不能超过3MB。
• 音频格式支持wav、pcm、ogg-opus、speex、silk、mp3、m4a、aac。
• 请求方法为 HTTP POST , Content-Type为"application/json; charset=utf-8"
• 签名方法参考 [公共参数](https://cloud.tencent.com/document/api/1093/35640) 中签名方法v3。
• 默认接口请求频率限制:30次/秒,如您有提高请求频率限制的需求,请[前往购买](https://buy.cloud.tencent.com/asr)。 * @method Models\SetVocabStateResponse SetVocabState(Models\SetVocabStateRequest $req) 用户通过该接口可以设置热词表的默认状态。初始状态为0,用户可设置状态为1,即为默认状态。默认状态表示用户在请求识别时,如不设置热词表ID,则默认使用状态为1的热词表。 * @method Models\UpdateAsrVocabResponse UpdateAsrVocab(Models\UpdateAsrVocabRequest $req) 用户通过本接口进行对应的词表信息更新。 + * @method Models\VoicePrintCountResponse VoicePrintCount(Models\VoicePrintCountRequest $req) 统计并返回注册的说话人id总数 * @method Models\VoicePrintDeleteResponse VoicePrintDelete(Models\VoicePrintDeleteRequest $req) 本接口用于以删除已经注册的说话人信息(删除之后,原有的说话人ID和说话人音频数据都会失效) * @method Models\VoicePrintEnrollResponse VoicePrintEnroll(Models\VoicePrintEnrollRequest $req) 说话人注册接口用于注册一个指定音频,生成一个唯一的说话人id,后续可通过说话人验证接口验证其它音频和已有的说话人ID匹配度,注册时可指定说话人昵称,方便标识说话人ID, 说话人昵称可重复配置。 (注: 一个appid最多可以注册1000个说话人ID,一个说话人ID仅支持一条音频注册,后续可通过更新接口进行更新) diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/CreateAsyncRecognitionTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/CreateAsyncRecognitionTaskRequest.php index cff829098..103dab164 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/CreateAsyncRecognitionTaskRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/CreateAsyncRecognitionTaskRequest.php @@ -30,6 +30,7 @@ use TencentCloud\Common\AbstractModel; • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; * @method void setEngineType(string $EngineType) 设置引擎模型类型。 • 16k_zh:中文普通话通用; • 16k_en:英语; @@ -40,6 +41,7 @@ use TencentCloud\Common\AbstractModel; • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; * @method string getUrl() 获取语音流地址,支持rtmp、rtsp等流媒体协议,以及各类基于http协议的直播流(不支持hls, m3u8) * @method void setUrl(string $Url) 设置语音流地址,支持rtmp、rtsp等流媒体协议,以及各类基于http协议的直播流(不支持hls, m3u8) * @method string getCallbackUrl() 获取支持HTTP和HTTPS协议,用于接收识别结果,您需要自行搭建公网可调用的服务。回调格式&内容详见:[语音流异步识别回调说明](https://cloud.tencent.com/document/product/1093/52633) @@ -74,6 +76,7 @@ class CreateAsyncRecognitionTaskRequest extends AbstractModel • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; */ public $EngineType; @@ -138,6 +141,7 @@ class CreateAsyncRecognitionTaskRequest extends AbstractModel • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; * @param string $Url 语音流地址,支持rtmp、rtsp等流媒体协议,以及各类基于http协议的直播流(不支持hls, m3u8) * @param string $CallbackUrl 支持HTTP和HTTPS协议,用于接收识别结果,您需要自行搭建公网可调用的服务。回调格式&内容详见:[语音流异步识别回调说明](https://cloud.tencent.com/document/product/1093/52633) * @param string $SignToken 用于生成回调通知中的签名 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/CreateRecTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/CreateRecTaskRequest.php index ac3a357e6..f61adeaee 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/CreateRecTaskRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/CreateRecTaskRequest.php @@ -41,6 +41,7 @@ use TencentCloud\Common\AbstractModel; • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; • 16k_zh_dialect:多方言,支持23种方言(上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话); * @method void setEngineModelType(string $EngineModelType) 设置引擎模型类型。注意:非电话场景请务必使用16k的引擎。 电话场景: @@ -63,6 +64,7 @@ use TencentCloud\Common\AbstractModel; • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; • 16k_zh_dialect:多方言,支持23种方言(上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话); * @method integer getChannelNum() 获取识别声道数。1:单声道(非电话场景,直接选择单声道即可,忽略音频声道数);2:双声道(仅支持8k_zh电话场景,双声道应分别对应通话双方)。注意:双声道的电话音频已物理分离说话人,无需再开启说话人分离功能。 * @method void setChannelNum(integer $ChannelNum) 设置识别声道数。1:单声道(非电话场景,直接选择单声道即可,忽略音频声道数);2:双声道(仅支持8k_zh电话场景,双声道应分别对应通话双方)。注意:双声道的电话音频已物理分离说话人,无需再开启说话人分离功能。 @@ -135,6 +137,7 @@ class CreateRecTaskRequest extends AbstractModel • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; • 16k_zh_dialect:多方言,支持23种方言(上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话); */ public $EngineModelType; @@ -264,6 +267,7 @@ class CreateRecTaskRequest extends AbstractModel • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; • 16k_zh_dialect:多方言,支持23种方言(上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话); * @param integer $ChannelNum 识别声道数。1:单声道(非电话场景,直接选择单声道即可,忽略音频声道数);2:双声道(仅支持8k_zh电话场景,双声道应分别对应通话双方)。注意:双声道的电话音频已物理分离说话人,无需再开启说话人分离功能。 * @param integer $ResTextFormat 识别结果返回形式。0: 识别结果文本(含分段时间戳); 1:词级别粒度的[详细识别结果](https://cloud.tencent.com/document/api/1093/37824#SentenceDetail)(不含标点,含语速值);2:词级别粒度的详细识别结果(包含标点、语速值);3: 标点符号分段,包含每段时间戳,特别适用于字幕场景(包含词级时间、标点、语速值)。4:【增值付费功能】对识别结果按照语义分段,并展示词级别粒度的详细识别结果,仅支持8k_zh、16k_zh引擎,需购买对应资源包使用(注意:如果账号后付费功能开启并使用此功能,将[自动计费](https://cloud.tencent.com/document/product/1093/35686)) diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/HotWord.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/HotWord.php index d47142782..8ea79220e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/HotWord.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/HotWord.php @@ -21,25 +21,33 @@ use TencentCloud\Common\AbstractModel; * 热词的词和权重 * * @method string getWord() 获取热词 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setWord(string $Word) 设置热词 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getWeight() 获取权重 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setWeight(integer $Weight) 设置权重 +注意:此字段可能返回 null,表示取不到有效值。 */ class HotWord extends AbstractModel { /** * @var string 热词 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Word; /** * @var integer 权重 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Weight; /** * @param string $Word 热词 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Weight 权重 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/SentenceRecognitionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/SentenceRecognitionRequest.php index 59566699a..624d13475 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/SentenceRecognitionRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/SentenceRecognitionRequest.php @@ -41,6 +41,7 @@ use TencentCloud\Common\AbstractModel; • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; • 16k_zh_dialect:多方言,支持23种方言(上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话); * @method void setEngSerViceType(string $EngSerViceType) 设置引擎模型类型。 电话场景: @@ -63,6 +64,7 @@ use TencentCloud\Common\AbstractModel; • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; • 16k_zh_dialect:多方言,支持23种方言(上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话); * @method integer getSourceType() 获取语音数据来源。0:语音 URL;1:语音数据(post body)。 * @method void setSourceType(integer $SourceType) 设置语音数据来源。0:语音 URL;1:语音数据(post body)。 @@ -94,12 +96,22 @@ use TencentCloud\Common\AbstractModel; * @method void setHotwordId(string $HotwordId) 设置热词id。用于调用对应的热词表,如果在调用语音识别服务时,不进行单独的热词id设置,自动生效默认热词;如果进行了单独的热词id设置,那么将生效单独设置的热词id。 * @method string getCustomizationId() 获取自学习模型 id。如设置了该参数,将生效对应的自学习模型。 * @method void setCustomizationId(string $CustomizationId) 设置自学习模型 id。如设置了该参数,将生效对应的自学习模型。 - * @method integer getReinforceHotword() 获取热词增强功能。1:开启后(仅支持8k_zh,16k_zh),将开启同音替换功能,同音字、词在热词中配置。举例:热词配置“蜜制”并开启增强功能后,与“蜜制”同拼音(mizhi)的“秘制”、“蜜汁”的识别结果会被强制替换成“蜜制”。因此建议客户根据自己的实际情况开启该功能。 - * @method void setReinforceHotword(integer $ReinforceHotword) 设置热词增强功能。1:开启后(仅支持8k_zh,16k_zh),将开启同音替换功能,同音字、词在热词中配置。举例:热词配置“蜜制”并开启增强功能后,与“蜜制”同拼音(mizhi)的“秘制”、“蜜汁”的识别结果会被强制替换成“蜜制”。因此建议客户根据自己的实际情况开启该功能。 - * @method string getHotwordList() 获取临时热词:用于提升识别准确率,临时热词规则:“热词|权重”,热词不超过30个字符(最多10个汉字),权重1-10,最多传入128个热词。举例:"腾讯云|10,语音识别|5,ASR|10"。 -“临时热词”和“热词id”的区别:热词id需要先在控制台或通过接口创建热词表,得到热词表id后才可以使用热词功能,本字段可以在每次请求时直接传入热词使用,但每次请求后云端不会保留相关的热词数据,需要客户自行维护相关数据 - * @method void setHotwordList(string $HotwordList) 设置临时热词:用于提升识别准确率,临时热词规则:“热词|权重”,热词不超过30个字符(最多10个汉字),权重1-10,最多传入128个热词。举例:"腾讯云|10,语音识别|5,ASR|10"。 -“临时热词”和“热词id”的区别:热词id需要先在控制台或通过接口创建热词表,得到热词表id后才可以使用热词功能,本字段可以在每次请求时直接传入热词使用,但每次请求后云端不会保留相关的热词数据,需要客户自行维护相关数据 + * @method integer getReinforceHotword() 获取热词增强功能。1:开启后(仅支持8k_zh,16k_zh),将开启同音替换功能,同音字、词在热词中配置。举例:热词配置“蜜制”并开启增强功能后,与“蜜制”同拼音(mizhi)的“秘制”的识别结果会被强制替换成“蜜制”。因此建议客户根据自己的实际情况开启该功能。 + * @method void setReinforceHotword(integer $ReinforceHotword) 设置热词增强功能。1:开启后(仅支持8k_zh,16k_zh),将开启同音替换功能,同音字、词在热词中配置。举例:热词配置“蜜制”并开启增强功能后,与“蜜制”同拼音(mizhi)的“秘制”的识别结果会被强制替换成“蜜制”。因此建议客户根据自己的实际情况开启该功能。 + * @method string getHotwordList() 获取临时热词表,该参数用于提升热词识别准确率。 +单个热词规则:"热词|权重",不超过30个字符(最多10个汉字),权重1-10; +临时热词表限制:多个热词用英文逗号分割,最多128个热词,参数示例:"腾讯云|10,语音识别|5,ASR|10"; +参数 hotword_list 与 hotword_id 区别: +hotword_id:需要先在控制台或接口创建热词表,获得对应hotword_id传入参数来使用热词功能; +hotword_list:每次请求时直接传入临时热词表来使用热词功能,云端不保留临时热词表; +注意:如果同时传入了 hotword_id 和 hotword_list,会优先使用 hotword_list。 + * @method void setHotwordList(string $HotwordList) 设置临时热词表,该参数用于提升热词识别准确率。 +单个热词规则:"热词|权重",不超过30个字符(最多10个汉字),权重1-10; +临时热词表限制:多个热词用英文逗号分割,最多128个热词,参数示例:"腾讯云|10,语音识别|5,ASR|10"; +参数 hotword_list 与 hotword_id 区别: +hotword_id:需要先在控制台或接口创建热词表,获得对应hotword_id传入参数来使用热词功能; +hotword_list:每次请求时直接传入临时热词表来使用热词功能,云端不保留临时热词表; +注意:如果同时传入了 hotword_id 和 hotword_list,会优先使用 hotword_list。 * @method integer getInputSampleRate() 获取支持pcm格式的8k音频在与引擎采样率不匹配的情况下升采样到16k后识别,能有效提升识别准确率。仅支持:8000。如:传入 8000 ,则pcm音频采样率为8k,当引擎选用16k_zh, 那么该8k采样率的pcm音频可以在16k_zh引擎下正常识别。 注:此参数仅适用于pcm格式音频,不传入值将维持默认状态,即默认调用的引擎采样率等于pcm音频采样率。 * @method void setInputSampleRate(integer $InputSampleRate) 设置支持pcm格式的8k音频在与引擎采样率不匹配的情况下升采样到16k后识别,能有效提升识别准确率。仅支持:8000。如:传入 8000 ,则pcm音频采样率为8k,当引擎选用16k_zh, 那么该8k采样率的pcm音频可以在16k_zh引擎下正常识别。 注:此参数仅适用于pcm格式音频,不传入值将维持默认状态,即默认调用的引擎采样率等于pcm音频采样率。 */ @@ -127,6 +139,7 @@ class SentenceRecognitionRequest extends AbstractModel • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; • 16k_zh_dialect:多方言,支持23种方言(上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话); */ public $EngSerViceType; @@ -210,13 +223,18 @@ class SentenceRecognitionRequest extends AbstractModel public $CustomizationId; /** - * @var integer 热词增强功能。1:开启后(仅支持8k_zh,16k_zh),将开启同音替换功能,同音字、词在热词中配置。举例:热词配置“蜜制”并开启增强功能后,与“蜜制”同拼音(mizhi)的“秘制”、“蜜汁”的识别结果会被强制替换成“蜜制”。因此建议客户根据自己的实际情况开启该功能。 + * @var integer 热词增强功能。1:开启后(仅支持8k_zh,16k_zh),将开启同音替换功能,同音字、词在热词中配置。举例:热词配置“蜜制”并开启增强功能后,与“蜜制”同拼音(mizhi)的“秘制”的识别结果会被强制替换成“蜜制”。因此建议客户根据自己的实际情况开启该功能。 */ public $ReinforceHotword; /** - * @var string 临时热词:用于提升识别准确率,临时热词规则:“热词|权重”,热词不超过30个字符(最多10个汉字),权重1-10,最多传入128个热词。举例:"腾讯云|10,语音识别|5,ASR|10"。 -“临时热词”和“热词id”的区别:热词id需要先在控制台或通过接口创建热词表,得到热词表id后才可以使用热词功能,本字段可以在每次请求时直接传入热词使用,但每次请求后云端不会保留相关的热词数据,需要客户自行维护相关数据 + * @var string 临时热词表,该参数用于提升热词识别准确率。 +单个热词规则:"热词|权重",不超过30个字符(最多10个汉字),权重1-10; +临时热词表限制:多个热词用英文逗号分割,最多128个热词,参数示例:"腾讯云|10,语音识别|5,ASR|10"; +参数 hotword_list 与 hotword_id 区别: +hotword_id:需要先在控制台或接口创建热词表,获得对应hotword_id传入参数来使用热词功能; +hotword_list:每次请求时直接传入临时热词表来使用热词功能,云端不保留临时热词表; +注意:如果同时传入了 hotword_id 和 hotword_list,会优先使用 hotword_list。 */ public $HotwordList; @@ -247,6 +265,7 @@ class SentenceRecognitionRequest extends AbstractModel • 16k_pt:葡萄牙语; • 16k_tr:土耳其语; • 16k_ar:阿拉伯语; +• 16k_es:西班牙语; • 16k_zh_dialect:多方言,支持23种方言(上海话、四川话、武汉话、贵阳话、昆明话、西安话、郑州话、太原话、兰州话、银川话、西宁话、南京话、合肥话、南昌话、长沙话、苏州话、杭州话、济南话、天津话、石家庄话、黑龙江话、吉林话、辽宁话); * @param integer $SourceType 语音数据来源。0:语音 URL;1:语音数据(post body)。 * @param string $VoiceFormat 识别音频的音频格式,支持wav、pcm、ogg-opus、speex、silk、mp3、m4a、aac、amr。 @@ -263,9 +282,14 @@ class SentenceRecognitionRequest extends AbstractModel * @param integer $ConvertNumMode 是否进行阿拉伯数字智能转换。0:不转换,直接输出中文数字,1:根据场景智能转换为阿拉伯数字。默认值为1。 * @param string $HotwordId 热词id。用于调用对应的热词表,如果在调用语音识别服务时,不进行单独的热词id设置,自动生效默认热词;如果进行了单独的热词id设置,那么将生效单独设置的热词id。 * @param string $CustomizationId 自学习模型 id。如设置了该参数,将生效对应的自学习模型。 - * @param integer $ReinforceHotword 热词增强功能。1:开启后(仅支持8k_zh,16k_zh),将开启同音替换功能,同音字、词在热词中配置。举例:热词配置“蜜制”并开启增强功能后,与“蜜制”同拼音(mizhi)的“秘制”、“蜜汁”的识别结果会被强制替换成“蜜制”。因此建议客户根据自己的实际情况开启该功能。 - * @param string $HotwordList 临时热词:用于提升识别准确率,临时热词规则:“热词|权重”,热词不超过30个字符(最多10个汉字),权重1-10,最多传入128个热词。举例:"腾讯云|10,语音识别|5,ASR|10"。 -“临时热词”和“热词id”的区别:热词id需要先在控制台或通过接口创建热词表,得到热词表id后才可以使用热词功能,本字段可以在每次请求时直接传入热词使用,但每次请求后云端不会保留相关的热词数据,需要客户自行维护相关数据 + * @param integer $ReinforceHotword 热词增强功能。1:开启后(仅支持8k_zh,16k_zh),将开启同音替换功能,同音字、词在热词中配置。举例:热词配置“蜜制”并开启增强功能后,与“蜜制”同拼音(mizhi)的“秘制”的识别结果会被强制替换成“蜜制”。因此建议客户根据自己的实际情况开启该功能。 + * @param string $HotwordList 临时热词表,该参数用于提升热词识别准确率。 +单个热词规则:"热词|权重",不超过30个字符(最多10个汉字),权重1-10; +临时热词表限制:多个热词用英文逗号分割,最多128个热词,参数示例:"腾讯云|10,语音识别|5,ASR|10"; +参数 hotword_list 与 hotword_id 区别: +hotword_id:需要先在控制台或接口创建热词表,获得对应hotword_id传入参数来使用热词功能; +hotword_list:每次请求时直接传入临时热词表来使用热词功能,云端不保留临时热词表; +注意:如果同时传入了 hotword_id 和 hotword_list,会优先使用 hotword_list。 * @param integer $InputSampleRate 支持pcm格式的8k音频在与引擎采样率不匹配的情况下升采样到16k后识别,能有效提升识别准确率。仅支持:8000。如:传入 8000 ,则pcm音频采样率为8k,当引擎选用16k_zh, 那么该8k采样率的pcm音频可以在16k_zh引擎下正常识别。 注:此参数仅适用于pcm格式音频,不传入值将维持默认状态,即默认调用的引擎采样率等于pcm音频采样率。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountData.php new file mode 100644 index 000000000..08c14b9c7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountData.php @@ -0,0 +1,57 @@ +Total = $param["Total"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountRequest.php similarity index 86% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumListRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountRequest.php index 6141cf0c3..6c06a7ec7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountRequest.php @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Asr\V20190614\Models; use TencentCloud\Common\AbstractModel; /** - * GetConsortiumList请求参数结构体 + * VoicePrintCount请求参数结构体 * */ -class GetConsortiumListRequest extends AbstractModel +class VoicePrintCountRequest extends AbstractModel { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/GenerateApiDocumentResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountResponse.php similarity index 73% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/GenerateApiDocumentResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountResponse.php index c641687ec..6eba9e651 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Apigateway/V20180808/Models/GenerateApiDocumentResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Asr/V20190614/Models/VoicePrintCountResponse.php @@ -14,23 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Apigateway\V20180808\Models; +namespace TencentCloud\Asr\V20190614\Models; use TencentCloud\Common\AbstractModel; /** - * GenerateApiDocument返回参数结构体 + * VoicePrintCount返回参数结构体 * - * @method DocumentSDK getResult() 获取api文档&sdk链接。 - * @method void setResult(DocumentSDK $Result) 设置api文档&sdk链接。 + * @method VoicePrintCountData getData() 获取统计数据 + * @method void setData(VoicePrintCountData $Data) 设置统计数据 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class GenerateApiDocumentResponse extends AbstractModel +class VoicePrintCountResponse extends AbstractModel { /** - * @var DocumentSDK api文档&sdk链接。 + * @var VoicePrintCountData 统计数据 */ - public $Result; + public $Data; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -38,7 +38,7 @@ class GenerateApiDocumentResponse extends AbstractModel public $RequestId; /** - * @param DocumentSDK $Result api文档&sdk链接。 + * @param VoicePrintCountData $Data 统计数据 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -54,9 +54,9 @@ class GenerateApiDocumentResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Result",$param) and $param["Result"] !== null) { - $this->Result = new DocumentSDK(); - $this->Result->deserialize($param["Result"]); + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = new VoicePrintCountData(); + $this->Data->deserialize($param["Data"]); } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Autoscaling/V20180419/Models/UpgradeLaunchConfigurationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Autoscaling/V20180419/Models/UpgradeLaunchConfigurationRequest.php index 4a3ab9179..0f61eef5f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Autoscaling/V20180419/Models/UpgradeLaunchConfigurationRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Autoscaling/V20180419/Models/UpgradeLaunchConfigurationRequest.php @@ -56,8 +56,8 @@ use TencentCloud\Common\AbstractModel; 如果 InstanceTypes 中一款机型不存在或者已下线,则无论 InstanceTypesCheckPolicy 采用何种取值,都会校验报错。 * @method InternetAccessible getInternetAccessible() 获取公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。 * @method void setInternetAccessible(InternetAccessible $InternetAccessible) 设置公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。 - * @method LoginSettings getLoginSettings() 获取实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。 - * @method void setLoginSettings(LoginSettings $LoginSettings) 设置实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。 + * @method LoginSettings getLoginSettings() 获取该参数已失效,请勿使用。升级启动配置接口无法修改或覆盖 LoginSettings 参数,升级后 LoginSettings 不会发生变化。 + * @method void setLoginSettings(LoginSettings $LoginSettings) 设置该参数已失效,请勿使用。升级启动配置接口无法修改或覆盖 LoginSettings 参数,升级后 LoginSettings 不会发生变化。 * @method integer getProjectId() 获取实例所属项目ID。不填为默认项目。 * @method void setProjectId(integer $ProjectId) 设置实例所属项目ID。不填为默认项目。 * @method array getSecurityGroupIds() 获取实例所属安全组。该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的`SecurityGroupId`字段来获取。若不指定该参数,则默认不绑定安全组。 @@ -146,7 +146,7 @@ class UpgradeLaunchConfigurationRequest extends AbstractModel public $InternetAccessible; /** - * @var LoginSettings 实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。 + * @var LoginSettings 该参数已失效,请勿使用。升级启动配置接口无法修改或覆盖 LoginSettings 参数,升级后 LoginSettings 不会发生变化。 */ public $LoginSettings; @@ -226,7 +226,7 @@ class UpgradeLaunchConfigurationRequest extends AbstractModel 实例类型不可用的常见原因包括该实例类型售罄、对应云盘售罄等。 如果 InstanceTypes 中一款机型不存在或者已下线,则无论 InstanceTypesCheckPolicy 采用何种取值,都会校验报错。 * @param InternetAccessible $InternetAccessible 公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。 - * @param LoginSettings $LoginSettings 实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。 + * @param LoginSettings $LoginSettings 该参数已失效,请勿使用。升级启动配置接口无法修改或覆盖 LoginSettings 参数,升级后 LoginSettings 不会发生变化。 * @param integer $ProjectId 实例所属项目ID。不填为默认项目。 * @param array $SecurityGroupIds 实例所属安全组。该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的`SecurityGroupId`字段来获取。若不指定该参数,则默认不绑定安全组。 * @param SystemDisk $SystemDisk 实例系统盘配置信息。若不指定该参数,则按照系统默认值进行分配。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Bma/V20221115/Models/FakeURLData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Bma/V20221115/Models/FakeURLData.php index 127562391..814c91cdc 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Bma/V20221115/Models/FakeURLData.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Bma/V20221115/Models/FakeURLData.php @@ -44,13 +44,13 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setHeat(integer $Heat) 设置热度 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getBlockStatus() 获取协助处置状态:0-未处置 1-处置中 2-处置成功 3-处置失败 + * @method integer getBlockStatus() 获取拦截处置状态:0-未处置 1-处置中 2-处置成功 3-处置失败 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setBlockStatus(integer $BlockStatus) 设置协助处置状态:0-未处置 1-处置中 2-处置成功 3-处置失败 + * @method void setBlockStatus(integer $BlockStatus) 设置拦截处置状态:0-未处置 1-处置中 2-处置成功 3-处置失败 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getBlockNote() 获取协助处置状态说明 + * @method string getBlockNote() 获取拦截处置状态说明 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setBlockNote(string $BlockNote) 设置协助处置状态说明 + * @method void setBlockNote(string $BlockNote) 设置拦截处置状态说明 注意:此字段可能返回 null,表示取不到有效值。 * @method integer getOfflineStatus() 获取关停状态:0-未关停 1-关停中 2-关停成功 3-关停失败 4-重复上架 注意:此字段可能返回 null,表示取不到有效值。 @@ -107,6 +107,10 @@ use TencentCloud\Common\AbstractModel; * @method integer getAccountStatus() 获取账户资源状态:0-不可用 1-可用 注意:此字段可能返回 null,表示取不到有效值。 * @method void setAccountStatus(integer $AccountStatus) 设置账户资源状态:0-不可用 1-可用 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getAuditStatus() 获取审核状态:0-未审核 1-审核中 2-审核成功 3-审核失败 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setAuditStatus(integer $AuditStatus) 设置审核状态:0-未审核 1-审核中 2-审核成功 3-审核失败 注意:此字段可能返回 null,表示取不到有效值。 */ class FakeURLData extends AbstractModel @@ -148,13 +152,13 @@ class FakeURLData extends AbstractModel public $Heat; /** - * @var integer 协助处置状态:0-未处置 1-处置中 2-处置成功 3-处置失败 + * @var integer 拦截处置状态:0-未处置 1-处置中 2-处置成功 3-处置失败 注意:此字段可能返回 null,表示取不到有效值。 */ public $BlockStatus; /** - * @var string 协助处置状态说明 + * @var string 拦截处置状态说明 注意:此字段可能返回 null,表示取不到有效值。 */ public $BlockNote; @@ -243,6 +247,12 @@ class FakeURLData extends AbstractModel */ public $AccountStatus; + /** + * @var integer 审核状态:0-未审核 1-审核中 2-审核成功 3-审核失败 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $AuditStatus; + /** * @param integer $FakeURLId 仿冒网址id 注意:此字段可能返回 null,表示取不到有效值。 @@ -256,9 +266,9 @@ class FakeURLData extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Heat 热度 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $BlockStatus 协助处置状态:0-未处置 1-处置中 2-处置成功 3-处置失败 + * @param integer $BlockStatus 拦截处置状态:0-未处置 1-处置中 2-处置成功 3-处置失败 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $BlockNote 协助处置状态说明 + * @param string $BlockNote 拦截处置状态说明 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $OfflineStatus 关停状态:0-未关停 1-关停中 2-关停成功 3-关停失败 4-重复上架 注意:此字段可能返回 null,表示取不到有效值。 @@ -287,6 +297,8 @@ class FakeURLData extends AbstractModel * @param string $Snapshot 网址截图 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $AccountStatus 账户资源状态:0-不可用 1-可用 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $AuditStatus 审核状态:0-未审核 1-审核中 2-审核成功 3-审核失败 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -389,5 +401,9 @@ class FakeURLData extends AbstractModel if (array_key_exists("AccountStatus",$param) and $param["AccountStatus"] !== null) { $this->AccountStatus = $param["AccountStatus"]; } + + if (array_key_exists("AuditStatus",$param) and $param["AuditStatus"] !== null) { + $this->AuditStatus = $param["AuditStatus"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Bri/V20190328/Models/BRIRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Bri/V20190328/Models/BRIRequest.php index 2b10b226e..a7b071b58 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Bri/V20190328/Models/BRIRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Bri/V20190328/Models/BRIRequest.php @@ -37,9 +37,7 @@ use TencentCloud\Common\AbstractModel; * @method string getScene() 获取业务场景 (1-注册, 2-登录, 3-发消息) * @method void setScene(string $Scene) 设置业务场景 (1-注册, 2-登录, 3-发消息) * @method string getPhoneNumber() 获取电话号码 (业务名为bri_num时必填) -注意:此字段可能返回 null,表示取不到有效值。 * @method void setPhoneNumber(string $PhoneNumber) 设置电话号码 (业务名为bri_num时必填) -注意:此字段可能返回 null,表示取不到有效值。 * @method integer getFileSize() 获取Apk文件大小 (业务名为bri_apk时必填,除非已填FileMd5) * @method void setFileSize(integer $FileSize) 设置Apk文件大小 (业务名为bri_apk时必填,除非已填FileMd5) * @method string getIp() 获取点分格式的IP (业务名为bri_ip时必填) @@ -50,6 +48,8 @@ use TencentCloud\Common\AbstractModel; * @method void setWechat(string $Wechat) 设置微信号 (业务名为bri_social时必填, 除非已填QQ) * @method string getWechatTag() 获取微信号的可疑标签 * @method void setWechatTag(string $WechatTag) 设置微信号的可疑标签 + * @method string getSubAppid() 获取子客户ID + * @method void setSubAppid(string $SubAppid) 设置子客户ID */ class BRIRequest extends AbstractModel { @@ -95,7 +95,6 @@ class BRIRequest extends AbstractModel /** * @var string 电话号码 (业务名为bri_num时必填) -注意:此字段可能返回 null,表示取不到有效值。 */ public $PhoneNumber; @@ -124,6 +123,11 @@ class BRIRequest extends AbstractModel */ public $WechatTag; + /** + * @var string 子客户ID + */ + public $SubAppid; + /** * @param string $Service 业务名, 必须是以下六个业务名之一(bri_num,bri_dev,bri_ip_bri_apk,bri_url,bri_social) * @param string $QQ QQ号 (业务名为bri_social时必填, 除非已填Wechat) @@ -134,12 +138,12 @@ class BRIRequest extends AbstractModel * @param string $FileMd5 Apk文件Md5 (业务名为bri_apk时必填,除非已填PackageName,CertMd5,FileSize) * @param string $Scene 业务场景 (1-注册, 2-登录, 3-发消息) * @param string $PhoneNumber 电话号码 (业务名为bri_num时必填) -注意:此字段可能返回 null,表示取不到有效值。 * @param integer $FileSize Apk文件大小 (业务名为bri_apk时必填,除非已填FileMd5) * @param string $Ip 点分格式的IP (业务名为bri_ip时必填) * @param string $Imei 安卓设备的Imei (业务名为bri_dev时必填) * @param string $Wechat 微信号 (业务名为bri_social时必填, 除非已填QQ) * @param string $WechatTag 微信号的可疑标签 + * @param string $SubAppid 子客户ID */ function __construct() { @@ -209,5 +213,9 @@ class BRIRequest extends AbstractModel if (array_key_exists("WechatTag",$param) and $param["WechatTag"] !== null) { $this->WechatTag = $param["WechatTag"]; } + + if (array_key_exists("SubAppid",$param) and $param["SubAppid"] !== null) { + $this->SubAppid = $param["SubAppid"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cam/V20190116/Models/ListAttachedGroupPoliciesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cam/V20190116/Models/ListAttachedGroupPoliciesResponse.php index 79930f56d..99cbe06ee 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cam/V20190116/Models/ListAttachedGroupPoliciesResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cam/V20190116/Models/ListAttachedGroupPoliciesResponse.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * ListAttachedGroupPolicies返回参数结构体 * - * @method integer getTotalNum() 获取策略总数 - * @method void setTotalNum(integer $TotalNum) 设置策略总数 + * @method integer getTotalNum() 获取策略总数。取值范围大于等于0。 + * @method void setTotalNum(integer $TotalNum) 设置策略总数。取值范围大于等于0。 * @method array getList() 获取策略列表 * @method void setList(array $List) 设置策略列表 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -30,7 +30,7 @@ use TencentCloud\Common\AbstractModel; class ListAttachedGroupPoliciesResponse extends AbstractModel { /** - * @var integer 策略总数 + * @var integer 策略总数。取值范围大于等于0。 */ public $TotalNum; @@ -45,7 +45,7 @@ class ListAttachedGroupPoliciesResponse extends AbstractModel public $RequestId; /** - * @param integer $TotalNum 策略总数 + * @param integer $TotalNum 策略总数。取值范围大于等于0。 * @param array $List 策略列表 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cam/V20190116/Models/UpdateUserOIDCConfigRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cam/V20190116/Models/UpdateUserOIDCConfigRequest.php index d9addfd31..631eb467b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cam/V20190116/Models/UpdateUserOIDCConfigRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cam/V20190116/Models/UpdateUserOIDCConfigRequest.php @@ -21,85 +21,85 @@ use TencentCloud\Common\AbstractModel; * UpdateUserOIDCConfig请求参数结构体 * * @method string getIdentityUrl() 获取身份提供商URL。OpenID Connect身份提供商标识。 -对应企业IdP提供的Openid-configuration中"issuer"字段的值。 +对应企业IdP提供的Openid-configuration中"issuer"字段的值,该URL必须以https开头,符合标准URL格式,不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。 * @method void setIdentityUrl(string $IdentityUrl) 设置身份提供商URL。OpenID Connect身份提供商标识。 -对应企业IdP提供的Openid-configuration中"issuer"字段的值。 - * @method string getIdentityKey() 获取签名公钥,需要base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的帐号安全,建议您定期轮换签名公钥。 - * @method void setIdentityKey(string $IdentityKey) 设置签名公钥,需要base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的帐号安全,建议您定期轮换签名公钥。 - * @method string getClientId() 获取客户端ID,在OpenID Connect身份提供商注册的客户端ID。 - * @method void setClientId(string $ClientId) 设置客户端ID,在OpenID Connect身份提供商注册的客户端ID。 - * @method string getAuthorizationEndpoint() 获取授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值。 - * @method void setAuthorizationEndpoint(string $AuthorizationEndpoint) 设置授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值。 - * @method string getResponseType() 获取授权请求Response type,固定值id_token。 - * @method void setResponseType(string $ResponseType) 设置授权请求Response type,固定值id_token。 - * @method string getResponseMode() 获取授权请求Response mode。授权请求返回模式,form_post和fragment两种可选模式,推荐选择form_post模式。 - * @method void setResponseMode(string $ResponseMode) 设置授权请求Response mode。授权请求返回模式,form_post和fragment两种可选模式,推荐选择form_post模式。 - * @method string getMappingFiled() 获取映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段 - * @method void setMappingFiled(string $MappingFiled) 设置映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段 - * @method array getScope() 获取授权请求Scope。openid; email;profile。授权请求信息范围。默认必选openid。 - * @method void setScope(array $Scope) 设置授权请求Scope。openid; email;profile。授权请求信息范围。默认必选openid。 - * @method string getDescription() 获取描述 - * @method void setDescription(string $Description) 设置描述 +对应企业IdP提供的Openid-configuration中"issuer"字段的值,该URL必须以https开头,符合标准URL格式,不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。 + * @method string getIdentityKey() 获取RSA签名公钥,JWKS格式,需要进行base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的账号安全,建议您定期轮换签名公钥。 + * @method void setIdentityKey(string $IdentityKey) 设置RSA签名公钥,JWKS格式,需要进行base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的账号安全,建议您定期轮换签名公钥。 + * @method string getClientId() 获取客户端ID,在OpenID Connect身份提供商注册的客户端ID,允许英文字母、数字、特殊字符.-_:/,不能以特殊字符.-_:/开头,单个客户端ID最大64个字符。 + * @method void setClientId(string $ClientId) 设置客户端ID,在OpenID Connect身份提供商注册的客户端ID,允许英文字母、数字、特殊字符.-_:/,不能以特殊字符.-_:/开头,单个客户端ID最大64个字符。 + * @method string getAuthorizationEndpoint() 获取授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值,该URL必须以https开头,符合标准URL格式,不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。 + * @method void setAuthorizationEndpoint(string $AuthorizationEndpoint) 设置授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值,该URL必须以https开头,符合标准URL格式,不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。 + * @method string getResponseType() 获取授权请求Response type,有code,id_token,固定值id_token。 + * @method void setResponseType(string $ResponseType) 设置授权请求Response type,有code,id_token,固定值id_token。 + * @method string getResponseMode() 获取授权请求Response mode。授权请求返回模式,有form_post和fragment两种可选模式,推荐选择form_post模式。 + * @method void setResponseMode(string $ResponseMode) 设置授权请求Response mode。授权请求返回模式,有form_post和fragment两种可选模式,推荐选择form_post模式。 + * @method string getMappingFiled() 获取映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段,仅支持英文字母、数宇、汉字、符号@、&_[]-的组合,1-255个中文或英文字符 + * @method void setMappingFiled(string $MappingFiled) 设置映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段,仅支持英文字母、数宇、汉字、符号@、&_[]-的组合,1-255个中文或英文字符 + * @method array getScope() 获取授权请求Scope。有openid; email;profile三种。代表授权请求信息范围openid表示请求访问用户的身份信息,email表示请求访问用户的电子邮件地址,profile表示请求访问用户的基本信息。默认必选openid。 + * @method void setScope(array $Scope) 设置授权请求Scope。有openid; email;profile三种。代表授权请求信息范围openid表示请求访问用户的身份信息,email表示请求访问用户的电子邮件地址,profile表示请求访问用户的基本信息。默认必选openid。 + * @method string getDescription() 获取描述,长度为1~255个英文或中文字符,默认值为空。 + * @method void setDescription(string $Description) 设置描述,长度为1~255个英文或中文字符,默认值为空。 */ class UpdateUserOIDCConfigRequest extends AbstractModel { /** * @var string 身份提供商URL。OpenID Connect身份提供商标识。 -对应企业IdP提供的Openid-configuration中"issuer"字段的值。 +对应企业IdP提供的Openid-configuration中"issuer"字段的值,该URL必须以https开头,符合标准URL格式,不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。 */ public $IdentityUrl; /** - * @var string 签名公钥,需要base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的帐号安全,建议您定期轮换签名公钥。 + * @var string RSA签名公钥,JWKS格式,需要进行base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的账号安全,建议您定期轮换签名公钥。 */ public $IdentityKey; /** - * @var string 客户端ID,在OpenID Connect身份提供商注册的客户端ID。 + * @var string 客户端ID,在OpenID Connect身份提供商注册的客户端ID,允许英文字母、数字、特殊字符.-_:/,不能以特殊字符.-_:/开头,单个客户端ID最大64个字符。 */ public $ClientId; /** - * @var string 授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值。 + * @var string 授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值,该URL必须以https开头,符合标准URL格式,不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。 */ public $AuthorizationEndpoint; /** - * @var string 授权请求Response type,固定值id_token。 + * @var string 授权请求Response type,有code,id_token,固定值id_token。 */ public $ResponseType; /** - * @var string 授权请求Response mode。授权请求返回模式,form_post和fragment两种可选模式,推荐选择form_post模式。 + * @var string 授权请求Response mode。授权请求返回模式,有form_post和fragment两种可选模式,推荐选择form_post模式。 */ public $ResponseMode; /** - * @var string 映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段 + * @var string 映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段,仅支持英文字母、数宇、汉字、符号@、&_[]-的组合,1-255个中文或英文字符 */ public $MappingFiled; /** - * @var array 授权请求Scope。openid; email;profile。授权请求信息范围。默认必选openid。 + * @var array 授权请求Scope。有openid; email;profile三种。代表授权请求信息范围openid表示请求访问用户的身份信息,email表示请求访问用户的电子邮件地址,profile表示请求访问用户的基本信息。默认必选openid。 */ public $Scope; /** - * @var string 描述 + * @var string 描述,长度为1~255个英文或中文字符,默认值为空。 */ public $Description; /** * @param string $IdentityUrl 身份提供商URL。OpenID Connect身份提供商标识。 -对应企业IdP提供的Openid-configuration中"issuer"字段的值。 - * @param string $IdentityKey 签名公钥,需要base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的帐号安全,建议您定期轮换签名公钥。 - * @param string $ClientId 客户端ID,在OpenID Connect身份提供商注册的客户端ID。 - * @param string $AuthorizationEndpoint 授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值。 - * @param string $ResponseType 授权请求Response type,固定值id_token。 - * @param string $ResponseMode 授权请求Response mode。授权请求返回模式,form_post和fragment两种可选模式,推荐选择form_post模式。 - * @param string $MappingFiled 映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段 - * @param array $Scope 授权请求Scope。openid; email;profile。授权请求信息范围。默认必选openid。 - * @param string $Description 描述 +对应企业IdP提供的Openid-configuration中"issuer"字段的值,该URL必须以https开头,符合标准URL格式,不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。 + * @param string $IdentityKey RSA签名公钥,JWKS格式,需要进行base64_encode。验证OpenID Connect身份提供商ID Token签名的公钥。为了您的账号安全,建议您定期轮换签名公钥。 + * @param string $ClientId 客户端ID,在OpenID Connect身份提供商注册的客户端ID,允许英文字母、数字、特殊字符.-_:/,不能以特殊字符.-_:/开头,单个客户端ID最大64个字符。 + * @param string $AuthorizationEndpoint 授权请求Endpoint,OpenID Connect身份提供商授权地址。对应企业IdP提供的Openid-configuration中"authorization_endpoint"字段的值,该URL必须以https开头,符合标准URL格式,不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。 + * @param string $ResponseType 授权请求Response type,有code,id_token,固定值id_token。 + * @param string $ResponseMode 授权请求Response mode。授权请求返回模式,有form_post和fragment两种可选模式,推荐选择form_post模式。 + * @param string $MappingFiled 映射字段名称。IdP的id_token中哪一个字段映射到子用户的用户名,通常是sub或者name字段,仅支持英文字母、数宇、汉字、符号@、&_[]-的组合,1-255个中文或英文字符 + * @param array $Scope 授权请求Scope。有openid; email;profile三种。代表授权请求信息范围openid表示请求访问用户的身份信息,email表示请求访问用户的电子邮件地址,profile表示请求访问用户的基本信息。默认必选openid。 + * @param string $Description 描述,长度为1~255个英文或中文字符,默认值为空。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/CbsClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/CbsClient.php index ce6fb8f05..f6dfdd7f8 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/CbsClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/CbsClient.php @@ -78,9 +78,6 @@ use TencentCloud\Cbs\V20170312\Models as Models; 根据备份点ID、创建备份点的云硬盘ID、创建备份点的云硬盘类型等对结果进行过滤,不同条件之间为与(AND)的关系,过滤信息详细请见过滤器Filter。 如果参数为空,返回当前用户一定数量(Limit所指定的数量,默认为20)的备份点列表。 * @method Models\DescribeDiskConfigQuotaResponse DescribeDiskConfigQuota(Models\DescribeDiskConfigQuotaRequest $req) 本接口(DescribeDiskConfigQuota)用于查询云硬盘配额。 - * @method Models\DescribeDiskOperationLogsResponse DescribeDiskOperationLogs(Models\DescribeDiskOperationLogsRequest $req) 接口已废弃,切换至云审计接口。见https://tapd.woa.com/pro/prong/stories/view/1010114221880719007 - -查询云盘操作日志功能已迁移至LookUpEvents接口(https://cloud.tencent.com/document/product/629/12359),本接口(DescribeDiskOperationLogs)即将下线,后续不再提供调用,请知悉。 * @method Models\DescribeDiskStoragePoolResponse DescribeDiskStoragePool(Models\DescribeDiskStoragePoolRequest $req) 本接口(DescribeDiskStoragePool)查询用户的云硬盘独享集群列表。 * 可以根据独享集群ID(CdcId)、可用区(zone)等信息来查询和过滤云硬盘独享集群详细信息,不同的过滤条件之间为与(AND)的关系,过滤信息详细请见过滤器`Filter`。 @@ -92,10 +89,6 @@ use TencentCloud\Cbs\V20170312\Models as Models; * @method Models\DescribeInstancesDiskNumResponse DescribeInstancesDiskNum(Models\DescribeInstancesDiskNumRequest $req) 本接口(DescribeInstancesDiskNum)用于查询实例已挂载云硬盘数量。 * 支持批量操作,当传入多个云服务器实例ID,返回结果会分别列出每个云服务器挂载的云硬盘数量。 - * @method Models\DescribeSnapshotOperationLogsResponse DescribeSnapshotOperationLogs(Models\DescribeSnapshotOperationLogsRequest $req) 接口已废弃,切换至云审计接口。见https://tapd.woa.com/pro/prong/stories/view/1010114221880719007 - -查询快照操作日志功能已迁移至LookUpEvents接口(https://cloud.tencent.com/document/product/629/12359),本接口(DescribeSnapshotOperationLogs)即将下线,后续不再提供调用,请知悉。 - * @method Models\DescribeSnapshotSharePermissionResponse DescribeSnapshotSharePermission(Models\DescribeSnapshotSharePermissionRequest $req) 本接口(DescribeSnapshotSharePermission)用于查询快照的分享信息。 * @method Models\DescribeSnapshotsResponse DescribeSnapshots(Models\DescribeSnapshotsRequest $req) 本接口(DescribeSnapshots)用于查询快照的详细信息。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeDiskOperationLogsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeDiskOperationLogsRequest.php deleted file mode 100644 index a8ef4f5f3..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeDiskOperationLogsRequest.php +++ /dev/null @@ -1,86 +0,0 @@ -disk-id - Array of String - 是否必填:是 - 按云盘ID过滤,每个请求最多可指定10个云盘ID。 - * @method void setFilters(array $Filters) 设置过滤条件。支持以下条件: -
  • disk-id - Array of String - 是否必填:是 - 按云盘ID过滤,每个请求最多可指定10个云盘ID。 - * @method string getEndTime() 获取要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - * @method void setEndTime(string $EndTime) 设置要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - * @method string getBeginTime() 获取要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - * @method void setBeginTime(string $BeginTime) 设置要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - */ -class DescribeDiskOperationLogsRequest extends AbstractModel -{ - /** - * @var array 过滤条件。支持以下条件: -
  • disk-id - Array of String - 是否必填:是 - 按云盘ID过滤,每个请求最多可指定10个云盘ID。 - */ - public $Filters; - - /** - * @var string 要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - */ - public $EndTime; - - /** - * @var string 要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - */ - public $BeginTime; - - /** - * @param array $Filters 过滤条件。支持以下条件: -
  • disk-id - Array of String - 是否必填:是 - 按云盘ID过滤,每个请求最多可指定10个云盘ID。 - * @param string $EndTime 要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - * @param string $BeginTime 要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - */ - function __construct() - { - - } - - /** - * For internal only. DO NOT USE IT. - */ - public function deserialize($param) - { - if ($param === null) { - return; - } - if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { - $this->Filters = []; - foreach ($param["Filters"] as $key => $value){ - $obj = new Filter(); - $obj->deserialize($value); - array_push($this->Filters, $obj); - } - } - - if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { - $this->EndTime = $param["EndTime"]; - } - - if (array_key_exists("BeginTime",$param) and $param["BeginTime"] !== null) { - $this->BeginTime = $param["BeginTime"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeSnapshotOperationLogsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeSnapshotOperationLogsRequest.php deleted file mode 100644 index a77e9c28f..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeSnapshotOperationLogsRequest.php +++ /dev/null @@ -1,86 +0,0 @@ -snapshot-id - Array of String - 是否必填:是 - 按快照ID过滤,每个请求最多可指定10个快照ID。 - * @method void setFilters(array $Filters) 设置过滤条件。支持以下条件: -
  • snapshot-id - Array of String - 是否必填:是 - 按快照ID过滤,每个请求最多可指定10个快照ID。 - * @method string getEndTime() 获取要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - * @method void setEndTime(string $EndTime) 设置要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - * @method string getBeginTime() 获取要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - * @method void setBeginTime(string $BeginTime) 设置要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - */ -class DescribeSnapshotOperationLogsRequest extends AbstractModel -{ - /** - * @var array 过滤条件。支持以下条件: -
  • snapshot-id - Array of String - 是否必填:是 - 按快照ID过滤,每个请求最多可指定10个快照ID。 - */ - public $Filters; - - /** - * @var string 要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - */ - public $EndTime; - - /** - * @var string 要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - */ - public $BeginTime; - - /** - * @param array $Filters 过滤条件。支持以下条件: -
  • snapshot-id - Array of String - 是否必填:是 - 按快照ID过滤,每个请求最多可指定10个快照ID。 - * @param string $EndTime 要查询的操作日志的截止时间,例如:“2019-11-22 23:59:59" - * @param string $BeginTime 要查询的操作日志的起始时间,例如:“2019-11-22 00:00:00" - */ - function __construct() - { - - } - - /** - * For internal only. DO NOT USE IT. - */ - public function deserialize($param) - { - if ($param === null) { - return; - } - if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { - $this->Filters = []; - foreach ($param["Filters"] as $key => $value){ - $obj = new Filter(); - $obj->deserialize($value); - array_push($this->Filters, $obj); - } - } - - if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { - $this->EndTime = $param["EndTime"]; - } - - if (array_key_exists("BeginTime",$param) and $param["BeginTime"] !== null) { - $this->BeginTime = $param["BeginTime"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeSnapshotOperationLogsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeSnapshotOperationLogsResponse.php deleted file mode 100644 index 846a95740..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeSnapshotOperationLogsResponse.php +++ /dev/null @@ -1,70 +0,0 @@ -SnapshotOperationLogSet = []; - foreach ($param["SnapshotOperationLogSet"] as $key => $value){ - $obj = new SnapshotOperationLog(); - $obj->deserialize($value); - array_push($this->SnapshotOperationLogSet, $obj); - } - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DiskOperationLog.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DiskOperationLog.php deleted file mode 100644 index c1df7b12f..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DiskOperationLog.php +++ /dev/null @@ -1,161 +0,0 @@ -OperationState = $param["OperationState"]; - } - - if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { - $this->StartTime = $param["StartTime"]; - } - - if (array_key_exists("Operator",$param) and $param["Operator"] !== null) { - $this->Operator = $param["Operator"]; - } - - if (array_key_exists("Operation",$param) and $param["Operation"] !== null) { - $this->Operation = $param["Operation"]; - } - - if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { - $this->EndTime = $param["EndTime"]; - } - - if (array_key_exists("DiskId",$param) and $param["DiskId"] !== null) { - $this->DiskId = $param["DiskId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/Filter.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/Filter.php index cf45a9c72..c4ef69326 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/Filter.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/Filter.php @@ -20,26 +20,26 @@ use TencentCloud\Common\AbstractModel; /** * 描述键值对过滤器,用于条件过滤查询。 * - * @method array getValues() 获取一个或者多个过滤值。 - * @method void setValues(array $Values) 设置一个或者多个过滤值。 * @method string getName() 获取过滤键的名称。 * @method void setName(string $Name) 设置过滤键的名称。 + * @method array getValues() 获取一个或者多个过滤值。 + * @method void setValues(array $Values) 设置一个或者多个过滤值。 */ class Filter extends AbstractModel { - /** - * @var array 一个或者多个过滤值。 - */ - public $Values; - /** * @var string 过滤键的名称。 */ public $Name; /** - * @param array $Values 一个或者多个过滤值。 + * @var array 一个或者多个过滤值。 + */ + public $Values; + + /** * @param string $Name 过滤键的名称。 + * @param array $Values 一个或者多个过滤值。 */ function __construct() { @@ -54,12 +54,12 @@ class Filter extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Values",$param) and $param["Values"] !== null) { - $this->Values = $param["Values"]; - } - if (array_key_exists("Name",$param) and $param["Name"] !== null) { $this->Name = $param["Name"]; } + + if (array_key_exists("Values",$param) and $param["Values"] !== null) { + $this->Values = $param["Values"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/SnapshotOperationLog.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/SnapshotOperationLog.php deleted file mode 100644 index d38ca9dc7..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/SnapshotOperationLog.php +++ /dev/null @@ -1,157 +0,0 @@ -OperationState = $param["OperationState"]; - } - - if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { - $this->StartTime = $param["StartTime"]; - } - - if (array_key_exists("Operator",$param) and $param["Operator"] !== null) { - $this->Operator = $param["Operator"]; - } - - if (array_key_exists("SnapshotId",$param) and $param["SnapshotId"] !== null) { - $this->SnapshotId = $param["SnapshotId"]; - } - - if (array_key_exists("Operation",$param) and $param["Operation"] !== null) { - $this->Operation = $param["Operation"]; - } - - if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { - $this->EndTime = $param["EndTime"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/CccClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/CccClient.php index df91145da..87833f823 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/CccClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/CccClient.php @@ -25,6 +25,7 @@ use TencentCloud\Ccc\V20200210\Models as Models; /** * @method Models\BindNumberCallOutSkillGroupResponse BindNumberCallOutSkillGroup(Models\BindNumberCallOutSkillGroupRequest $req) 绑定号码外呼技能组 * @method Models\BindStaffSkillGroupListResponse BindStaffSkillGroupList(Models\BindStaffSkillGroupListRequest $req) 绑定坐席所属技能组 + * @method Models\CreateAdminURLResponse CreateAdminURL(Models\CreateAdminURLRequest $req) 创建管理端访问链接 * @method Models\CreateAutoCalloutTaskResponse CreateAutoCalloutTask(Models\CreateAutoCalloutTaskRequest $req) 创建自动外呼任务 * @method Models\CreateCCCSkillGroupResponse CreateCCCSkillGroup(Models\CreateCCCSkillGroupRequest $req) 创建技能组 * @method Models\CreateCallOutSessionResponse CreateCallOutSession(Models\CreateCallOutSessionRequest $req) 创建外呼会话,当前仅支持双呼,即先使用平台号码呼出到坐席手机上,坐席接听后,然后再外呼用户,而且由于运营商频率限制,坐席手机号必须先加白名单,避免频控导致外呼失败。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/CreateAdminURLRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/CreateAdminURLRequest.php new file mode 100644 index 000000000..6885c149c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/CreateAdminURLRequest.php @@ -0,0 +1,65 @@ +SdkAppId = $param["SdkAppId"]; + } + + if (array_key_exists("SeatUserId",$param) and $param["SeatUserId"] !== null) { + $this->SeatUserId = $param["SeatUserId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/CreateAdminURLResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/CreateAdminURLResponse.php new file mode 100644 index 000000000..537b05e60 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/CreateAdminURLResponse.php @@ -0,0 +1,65 @@ +URL = $param["URL"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/SdkAppIdBuyInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/SdkAppIdBuyInfo.php index 9a54b365a..70c1e81aa 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/SdkAppIdBuyInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/SdkAppIdBuyInfo.php @@ -30,6 +30,10 @@ use TencentCloud\Common\AbstractModel; * @method void setStaffBuyList(array $StaffBuyList) 设置坐席购买列表 (还在有效期内) * @method array getPhoneNumBuyList() 获取号码购买列表 * @method void setPhoneNumBuyList(array $PhoneNumBuyList) 设置号码购买列表 + * @method integer getSipBuyNum() 获取办公电话购买数(还在有效期内) +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSipBuyNum(integer $SipBuyNum) 设置办公电话购买数(还在有效期内) +注意:此字段可能返回 null,表示取不到有效值。 */ class SdkAppIdBuyInfo extends AbstractModel { @@ -58,12 +62,20 @@ class SdkAppIdBuyInfo extends AbstractModel */ public $PhoneNumBuyList; + /** + * @var integer 办公电话购买数(还在有效期内) +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SipBuyNum; + /** * @param integer $SdkAppId 应用ID * @param string $Name 应用名称 * @param integer $StaffBuyNum 坐席购买数(还在有效期内) * @param array $StaffBuyList 坐席购买列表 (还在有效期内) * @param array $PhoneNumBuyList 号码购买列表 + * @param integer $SipBuyNum 办公电话购买数(还在有效期内) +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { @@ -107,5 +119,9 @@ class SdkAppIdBuyInfo extends AbstractModel array_push($this->PhoneNumBuyList, $obj); } } + + if (array_key_exists("SipBuyNum",$param) and $param["SipBuyNum"] !== null) { + $this->SipBuyNum = $param["SipBuyNum"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/StaffBuyInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/StaffBuyInfo.php index 611a899a3..7c5586d5f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/StaffBuyInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ccc/V20200210/Models/StaffBuyInfo.php @@ -26,6 +26,10 @@ use TencentCloud\Common\AbstractModel; * @method void setBuyTime(integer $BuyTime) 设置购买时间戳 * @method integer getEndTime() 获取截止时间戳 * @method void setEndTime(integer $EndTime) 设置截止时间戳 + * @method integer getSipNum() 获取购买办公电话数量 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSipNum(integer $SipNum) 设置购买办公电话数量 +注意:此字段可能返回 null,表示取不到有效值。 */ class StaffBuyInfo extends AbstractModel { @@ -44,10 +48,18 @@ class StaffBuyInfo extends AbstractModel */ public $EndTime; + /** + * @var integer 购买办公电话数量 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SipNum; + /** * @param integer $Num 购买坐席数量 * @param integer $BuyTime 购买时间戳 * @param integer $EndTime 截止时间戳 + * @param integer $SipNum 购买办公电话数量 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { @@ -73,5 +85,9 @@ class StaffBuyInfo extends AbstractModel if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { $this->EndTime = $param["EndTime"]; } + + if (array_key_exists("SipNum",$param) and $param["SipNum"] !== null) { + $this->SipNum = $param["SipNum"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/CdbClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/CdbClient.php index 99c09a885..c4d425521 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/CdbClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/CdbClient.php @@ -96,12 +96,10 @@ use TencentCloud\Cdb\V20170320\Models as Models; * @method Models\DescribeBackupsResponse DescribeBackups(Models\DescribeBackupsRequest $req) 本接口(DescribeBackups)用于查询云数据库实例的备份数据。 * @method Models\DescribeBinlogBackupOverviewResponse DescribeBinlogBackupOverview(Models\DescribeBinlogBackupOverviewRequest $req) 本接口(DescribeBinlogBackupOverview)用于查询用户在当前地域总的日志备份概览。 * @method Models\DescribeBinlogsResponse DescribeBinlogs(Models\DescribeBinlogsRequest $req) 本接口(DescribeBinlogs)用于查询云数据库实例的 binlog 文件列表。 - * @method Models\DescribeCDBProxyResponse DescribeCDBProxy(Models\DescribeCDBProxyRequest $req) 接口已经废弃,请使用+DescribeCdbProxyInfo+进行替换。 - -查询数据库代理(待下线,替换接口QueryCDBProxy) * @method Models\DescribeCdbProxyInfoResponse DescribeCdbProxyInfo(Models\DescribeCdbProxyInfoRequest $req) 查询数据库代理详情信息 * @method Models\DescribeCdbZoneConfigResponse DescribeCdbZoneConfig(Models\DescribeCdbZoneConfigRequest $req) 本接口(DescribeCdbZoneConfig)用于查询云数据库各地域可售卖的规格配置。 * @method Models\DescribeCloneListResponse DescribeCloneList(Models\DescribeCloneListRequest $req) 本接口(DescribeCloneList) 用于查询用户实例的克隆任务列表。 + * @method Models\DescribeCpuExpandStrategyResponse DescribeCpuExpandStrategy(Models\DescribeCpuExpandStrategyRequest $req) 通过该 API 可以查询实例的 CPU 弹性扩容策略 * @method Models\DescribeDBFeaturesResponse DescribeDBFeatures(Models\DescribeDBFeaturesRequest $req) 本接口(DescribeDBFeatures)用于查询云数据库版本属性,包括是否支持数据库加密、数据库审计等功能。 * @method Models\DescribeDBImportRecordsResponse DescribeDBImportRecords(Models\DescribeDBImportRecordsRequest $req) 本接口(DescribeDBImportRecords)用于查询云数据库导入任务操作日志。 * @method Models\DescribeDBInstanceCharsetResponse DescribeDBInstanceCharset(Models\DescribeDBInstanceCharsetRequest $req) 本接口(DescribeDBInstanceCharset)用于查询云数据库实例的字符集,获取字符集的名称。 @@ -128,9 +126,6 @@ use TencentCloud\Cdb\V20170320\Models as Models; * @method Models\DescribeParamTemplateInfoResponse DescribeParamTemplateInfo(Models\DescribeParamTemplateInfoRequest $req) 该接口(DescribeParamTemplateInfo)用于查询参数模板详情,全地域公共参数Region均为ap-guangzhou。 * @method Models\DescribeParamTemplatesResponse DescribeParamTemplates(Models\DescribeParamTemplatesRequest $req) 该接口(DescribeParamTemplates)查询参数模板列表,全地域公共参数Region均为ap-guangzhou。 * @method Models\DescribeProjectSecurityGroupsResponse DescribeProjectSecurityGroups(Models\DescribeProjectSecurityGroupsRequest $req) 本接口(DescribeProjectSecurityGroups)用于查询项目的安全组详情。 - * @method Models\DescribeProxyConnectionPoolConfResponse DescribeProxyConnectionPoolConf(Models\DescribeProxyConnectionPoolConfRequest $req) 当前接口已经废弃,请使用+DescribeCdbProxyInfo+替代。 - -获取数据库代理连接池相关规格配置 * @method Models\DescribeProxyCustomConfResponse DescribeProxyCustomConf(Models\DescribeProxyCustomConfRequest $req) 查询代理规格配置 * @method Models\DescribeProxySupportParamResponse DescribeProxySupportParam(Models\DescribeProxySupportParamRequest $req) 查询实例支持代理版本和参数 * @method Models\DescribeRemoteBackupConfigResponse DescribeRemoteBackupConfig(Models\DescribeRemoteBackupConfigRequest $req) 本接口(DescribeRemoteBackupConfig)用于查询数据库异地备份配置信息。 @@ -167,12 +162,6 @@ use TencentCloud\Cdb\V20170320\Models as Models; * @method Models\ModifyBackupConfigResponse ModifyBackupConfig(Models\ModifyBackupConfigRequest $req) 本接口(ModifyBackupConfig)用于修改数据库备份配置信息。 * @method Models\ModifyBackupDownloadRestrictionResponse ModifyBackupDownloadRestriction(Models\ModifyBackupDownloadRestrictionRequest $req) 该接口用于修改用户当前地域的备份文件限制下载来源,可以设置内外网均可下载、仅内网可下载,或内网指定的vpc、ip可以下载。 * @method Models\ModifyBackupEncryptionStatusResponse ModifyBackupEncryptionStatus(Models\ModifyBackupEncryptionStatusRequest $req) 本接口(ModifyBackupEncryptionStatus)用于设置实例备份文件是否加密。 - * @method Models\ModifyCDBProxyConnectionPoolResponse ModifyCDBProxyConnectionPool(Models\ModifyCDBProxyConnectionPoolRequest $req) 当前接口已经废弃,请使用+AdjustCdbProxyAddress+进行替代。 - -请求该接口配置数据库连接池;支持的连接池配置请求DescribeProxyConnectionPoolConf接口获取。 - * @method Models\ModifyCDBProxyVipVPortResponse ModifyCDBProxyVipVPort(Models\ModifyCDBProxyVipVPortRequest $req) 当前接口已经废弃,请使用+ModifyCdbProxyAddressVipAndVPort+进行替代。 - -修改数据库代理VIP或端口 * @method Models\ModifyCdbProxyAddressDescResponse ModifyCdbProxyAddressDesc(Models\ModifyCdbProxyAddressDescRequest $req) 修改代理地址描述信息 * @method Models\ModifyCdbProxyAddressVipAndVPortResponse ModifyCdbProxyAddressVipAndVPort(Models\ModifyCdbProxyAddressVipAndVPortRequest $req) 修改数据库代理地址VPC信息 * @method Models\ModifyCdbProxyParamResponse ModifyCdbProxyParam(Models\ModifyCdbProxyParamRequest $req) 配置数据库代理参数 @@ -210,9 +199,6 @@ use TencentCloud\Cdb\V20170320\Models as Models; * @method Models\OpenWanServiceResponse OpenWanService(Models\OpenWanServiceRequest $req) 本接口(OpenWanService)用于开通实例外网访问。 注意,实例开通外网访问之前,需要先将实例进行 [实例初始化](https://cloud.tencent.com/document/api/236/15873) 操作。 - * @method Models\QueryCDBProxyResponse QueryCDBProxy(Models\QueryCDBProxyRequest $req) 当前接口已经废弃,请使用+DescribeCdbProxyInfo+进行替代。 - -查询代理详情 * @method Models\ReleaseIsolatedDBInstancesResponse ReleaseIsolatedDBInstances(Models\ReleaseIsolatedDBInstancesRequest $req) 本接口(ReleaseIsolatedDBInstances)用于恢复已隔离云数据库实例。 * @method Models\ReloadBalanceProxyNodeResponse ReloadBalanceProxyNode(Models\ReloadBalanceProxyNodeRequest $req) 重新负载均衡数据库代理 * @method Models\RenewDBInstanceResponse RenewDBInstance(Models\RenewDBInstanceRequest $req) 本接口(RenewDBInstance)用于续费云数据库实例,支持付费模式为包年包月的实例。按量计费实例可通过该接口续费为包年包月的实例。 @@ -223,7 +209,9 @@ use TencentCloud\Cdb\V20170320\Models as Models; 1、本接口只支持主实例进行重启操作; 2、实例状态必须为正常,并且没有其他异步任务在执行中。 * @method Models\StartBatchRollbackResponse StartBatchRollback(Models\StartBatchRollbackRequest $req) 该接口(StartBatchRollback)用于批量回档云数据库实例的库表。 + * @method Models\StartCpuExpandResponse StartCpuExpand(Models\StartCpuExpandRequest $req) 通过该API,可以开启CPU弹性扩容,包括一次性的手动扩容以及自动弹性扩容。 * @method Models\StartReplicationResponse StartReplication(Models\StartReplicationRequest $req) 开启 RO 复制,从主实例同步数据。 + * @method Models\StopCpuExpandResponse StopCpuExpand(Models\StopCpuExpandRequest $req) 通过该API,可以关闭 CPU 弹性扩容。 * @method Models\StopDBImportJobResponse StopDBImportJob(Models\StopDBImportJobRequest $req) 本接口(StopDBImportJob)用于终止数据导入任务。 * @method Models\StopReplicationResponse StopReplication(Models\StopReplicationRequest $req) 停止 RO 复制,中断从主实例同步数据。 * @method Models\StopRollbackResponse StopRollback(Models\StopRollbackRequest $req) 本接口(StopRollback) 用于撤销实例正在进行的回档任务,该接口返回一个异步任务id。 撤销结果可以通过 DescribeAsyncRequestInfo 查询任务的执行情况。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/BaseGroupInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/BaseGroupInfo.php deleted file mode 100644 index be97ffe96..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/BaseGroupInfo.php +++ /dev/null @@ -1,169 +0,0 @@ -ProxyGroupId = $param["ProxyGroupId"]; - } - - if (array_key_exists("NodeCount",$param) and $param["NodeCount"] !== null) { - $this->NodeCount = $param["NodeCount"]; - } - - if (array_key_exists("Status",$param) and $param["Status"] !== null) { - $this->Status = $param["Status"]; - } - - if (array_key_exists("Region",$param) and $param["Region"] !== null) { - $this->Region = $param["Region"]; - } - - if (array_key_exists("Zone",$param) and $param["Zone"] !== null) { - $this->Zone = $param["Zone"]; - } - - if (array_key_exists("OpenRW",$param) and $param["OpenRW"] !== null) { - $this->OpenRW = $param["OpenRW"]; - } - - if (array_key_exists("CurrentProxyVersion",$param) and $param["CurrentProxyVersion"] !== null) { - $this->CurrentProxyVersion = $param["CurrentProxyVersion"]; - } - - if (array_key_exists("SupportUpgradeProxyVersion",$param) and $param["SupportUpgradeProxyVersion"] !== null) { - $this->SupportUpgradeProxyVersion = $param["SupportUpgradeProxyVersion"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/CreateDBInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/CreateDBInstanceRequest.php index cde72273d..096eca676 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/CreateDBInstanceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/CreateDBInstanceRequest.php @@ -42,10 +42,10 @@ use TencentCloud\Common\AbstractModel; * @method void setInstanceRole(string $InstanceRole) 设置实例类型,默认为 master,支持值包括:master - 表示主实例,dr - 表示灾备实例,ro - 表示只读实例。 * @method string getMasterInstanceId() 获取实例 ID,购买只读实例时必填,该字段表示只读实例的主实例ID,请使用 [查询实例列表](https://cloud.tencent.com/document/api/236/15872) 接口查询云数据库实例 ID。 * @method void setMasterInstanceId(string $MasterInstanceId) 设置实例 ID,购买只读实例时必填,该字段表示只读实例的主实例ID,请使用 [查询实例列表](https://cloud.tencent.com/document/api/236/15872) 接口查询云数据库实例 ID。 - * @method string getEngineVersion() 获取MySQL 版本,值包括:5.5、5.6 和 5.7,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/api/236/17229) 接口获取可创建的实例版本。 - * @method void setEngineVersion(string $EngineVersion) 设置MySQL 版本,值包括:5.5、5.6 和 5.7,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/api/236/17229) 接口获取可创建的实例版本。 - * @method string getPassword() 获取设置 root 帐号密码,密码规则:8 - 64 个字符,至少包含字母、数字、字符(支持的字符:_+-&=!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义。 - * @method void setPassword(string $Password) 设置设置 root 帐号密码,密码规则:8 - 64 个字符,至少包含字母、数字、字符(支持的字符:_+-&=!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义。 + * @method string getEngineVersion() 获取MySQL 版本,值包括:5.5、5.6 、5.7和8.0,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/api/236/17229) 接口获取可创建的实例版本。 + * @method void setEngineVersion(string $EngineVersion) 设置MySQL 版本,值包括:5.5、5.6 、5.7和8.0,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/api/236/17229) 接口获取可创建的实例版本。 + * @method string getPassword() 获取设置 root 账号密码,密码规则:8 - 64 个字符,至少包含字母、数字、字符(支持的字符:_+-&=!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义。 + * @method void setPassword(string $Password) 设置设置 root 账号密码,密码规则:8 - 64 个字符,至少包含字母、数字、字符(支持的字符:_+-&=!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义。 * @method integer getProtectMode() 获取数据复制方式,默认为 0,支持值包括:0 - 表示异步复制,1 - 表示半同步复制,2 - 表示强同步复制。 * @method void setProtectMode(integer $ProtectMode) 设置数据复制方式,默认为 0,支持值包括:0 - 表示异步复制,1 - 表示半同步复制,2 - 表示强同步复制。 * @method integer getDeployMode() 获取多可用区域,默认为 0,支持值包括:0 - 表示单可用区,1 - 表示多可用区。 @@ -76,8 +76,8 @@ use TencentCloud\Common\AbstractModel; * @method void setDeviceType(string $DeviceType) 设置实例隔离类型。支持值包括: "UNIVERSAL" - 通用型实例, "EXCLUSIVE" - 独享型实例, "BASIC" - 基础版实例。 不指定则默认为通用型实例。 * @method integer getParamTemplateId() 获取参数模板id。 * @method void setParamTemplateId(integer $ParamTemplateId) 设置参数模板id。 - * @method array getAlarmPolicyList() 获取告警策略id数组。云监控DescribeAlarmPolicy接口返回的OriginId。 - * @method void setAlarmPolicyList(array $AlarmPolicyList) 设置告警策略id数组。云监控DescribeAlarmPolicy接口返回的OriginId。 + * @method array getAlarmPolicyList() 获取告警策略id数组。腾讯云可观测平台DescribeAlarmPolicy接口返回的OriginId。 + * @method void setAlarmPolicyList(array $AlarmPolicyList) 设置告警策略id数组。腾讯云可观测平台DescribeAlarmPolicy接口返回的OriginId。 * @method integer getInstanceNodes() 获取实例节点数。对于 RO 和 基础版实例, 该值默认为1。 如果需要购买三节点实例, 请将该值设置为3 或指定 BackupZone 参数。当购买主实例,且未指定该参数和 BackupZone 参数时,该值默认是 2, 即购买两节点实例。 * @method void setInstanceNodes(integer $InstanceNodes) 设置实例节点数。对于 RO 和 基础版实例, 该值默认为1。 如果需要购买三节点实例, 请将该值设置为3 或指定 BackupZone 参数。当购买主实例,且未指定该参数和 BackupZone 参数时,该值默认是 2, 即购买两节点实例。 * @method integer getCpu() 获取实例cpu核数, 如果不传将根据memory指定的内存值自动填充对应的cpu值。 @@ -155,12 +155,12 @@ class CreateDBInstanceRequest extends AbstractModel public $MasterInstanceId; /** - * @var string MySQL 版本,值包括:5.5、5.6 和 5.7,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/api/236/17229) 接口获取可创建的实例版本。 + * @var string MySQL 版本,值包括:5.5、5.6 、5.7和8.0,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/api/236/17229) 接口获取可创建的实例版本。 */ public $EngineVersion; /** - * @var string 设置 root 帐号密码,密码规则:8 - 64 个字符,至少包含字母、数字、字符(支持的字符:_+-&=!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义。 + * @var string 设置 root 账号密码,密码规则:8 - 64 个字符,至少包含字母、数字、字符(支持的字符:_+-&=!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义。 */ public $Password; @@ -240,7 +240,7 @@ class CreateDBInstanceRequest extends AbstractModel public $ParamTemplateId; /** - * @var array 告警策略id数组。云监控DescribeAlarmPolicy接口返回的OriginId。 + * @var array 告警策略id数组。腾讯云可观测平台DescribeAlarmPolicy接口返回的OriginId。 */ public $AlarmPolicyList; @@ -301,8 +301,8 @@ class CreateDBInstanceRequest extends AbstractModel * @param integer $Port 自定义端口,端口支持范围:[ 1024-65535 ]。 * @param string $InstanceRole 实例类型,默认为 master,支持值包括:master - 表示主实例,dr - 表示灾备实例,ro - 表示只读实例。 * @param string $MasterInstanceId 实例 ID,购买只读实例时必填,该字段表示只读实例的主实例ID,请使用 [查询实例列表](https://cloud.tencent.com/document/api/236/15872) 接口查询云数据库实例 ID。 - * @param string $EngineVersion MySQL 版本,值包括:5.5、5.6 和 5.7,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/api/236/17229) 接口获取可创建的实例版本。 - * @param string $Password 设置 root 帐号密码,密码规则:8 - 64 个字符,至少包含字母、数字、字符(支持的字符:_+-&=!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义。 + * @param string $EngineVersion MySQL 版本,值包括:5.5、5.6 、5.7和8.0,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/api/236/17229) 接口获取可创建的实例版本。 + * @param string $Password 设置 root 账号密码,密码规则:8 - 64 个字符,至少包含字母、数字、字符(支持的字符:_+-&=!@#$%^*())中的两种,购买主实例时可指定该参数,购买只读实例或者灾备实例时指定该参数无意义。 * @param integer $ProtectMode 数据复制方式,默认为 0,支持值包括:0 - 表示异步复制,1 - 表示半同步复制,2 - 表示强同步复制。 * @param integer $DeployMode 多可用区域,默认为 0,支持值包括:0 - 表示单可用区,1 - 表示多可用区。 * @param string $SlaveZone 备库 1 的可用区信息,默认为 Zone 的值。 @@ -318,7 +318,7 @@ class CreateDBInstanceRequest extends AbstractModel * @param string $ClientToken 用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间在48小时内唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。 * @param string $DeviceType 实例隔离类型。支持值包括: "UNIVERSAL" - 通用型实例, "EXCLUSIVE" - 独享型实例, "BASIC" - 基础版实例。 不指定则默认为通用型实例。 * @param integer $ParamTemplateId 参数模板id。 - * @param array $AlarmPolicyList 告警策略id数组。云监控DescribeAlarmPolicy接口返回的OriginId。 + * @param array $AlarmPolicyList 告警策略id数组。腾讯云可观测平台DescribeAlarmPolicy接口返回的OriginId。 * @param integer $InstanceNodes 实例节点数。对于 RO 和 基础版实例, 该值默认为1。 如果需要购买三节点实例, 请将该值设置为3 或指定 BackupZone 参数。当购买主实例,且未指定该参数和 BackupZone 参数时,该值默认是 2, 即购买两节点实例。 * @param integer $Cpu 实例cpu核数, 如果不传将根据memory指定的内存值自动填充对应的cpu值。 * @param integer $AutoSyncFlag 是否自动发起灾备同步功能。该参数仅对购买灾备实例生效。 可选值为:0 - 不自动发起灾备同步;1 - 自动发起灾备同步。该值默认为0。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/CreateDBInstanceResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/CreateDBInstanceResponse.php index 798b3230e..78df84aba 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/CreateDBInstanceResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/CreateDBInstanceResponse.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * CreateDBInstance返回参数结构体 * - * @method array getDealIds() 获取短订单 ID。 - * @method void setDealIds(array $DealIds) 设置短订单 ID。 + * @method array getDealIds() 获取计费子订单 ID。 + * @method void setDealIds(array $DealIds) 设置计费子订单 ID。 * @method array getInstanceIds() 获取实例 ID 列表。 * @method void setInstanceIds(array $InstanceIds) 设置实例 ID 列表。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -30,7 +30,7 @@ use TencentCloud\Common\AbstractModel; class CreateDBInstanceResponse extends AbstractModel { /** - * @var array 短订单 ID。 + * @var array 计费子订单 ID。 */ public $DealIds; @@ -45,7 +45,7 @@ class CreateDBInstanceResponse extends AbstractModel public $RequestId; /** - * @param array $DealIds 短订单 ID。 + * @param array $DealIds 计费子订单 ID。 * @param array $InstanceIds 实例 ID 列表。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCDBProxyResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCDBProxyResponse.php deleted file mode 100644 index 5b160b033..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCDBProxyResponse.php +++ /dev/null @@ -1,175 +0,0 @@ -BaseGroup = new BaseGroupInfo(); - $this->BaseGroup->deserialize($param["BaseGroup"]); - } - - if (array_key_exists("Address",$param) and $param["Address"] !== null) { - $this->Address = new Address(); - $this->Address->deserialize($param["Address"]); - } - - if (array_key_exists("ProxyNode",$param) and $param["ProxyNode"] !== null) { - $this->ProxyNode = new ProxyNodeInfo(); - $this->ProxyNode->deserialize($param["ProxyNode"]); - } - - if (array_key_exists("RWInstInfo",$param) and $param["RWInstInfo"] !== null) { - $this->RWInstInfo = new RWInfo(); - $this->RWInstInfo->deserialize($param["RWInstInfo"]); - } - - if (array_key_exists("ConnectionPoolInfo",$param) and $param["ConnectionPoolInfo"] !== null) { - $this->ConnectionPoolInfo = new ConnectionPoolInfo(); - $this->ConnectionPoolInfo->deserialize($param["ConnectionPoolInfo"]); - } - - if (array_key_exists("Count",$param) and $param["Count"] !== null) { - $this->Count = $param["Count"]; - } - - if (array_key_exists("ProxyGroup",$param) and $param["ProxyGroup"] !== null) { - $this->ProxyGroup = []; - foreach ($param["ProxyGroup"] as $key => $value){ - $obj = new ProxyGroup(); - $obj->deserialize($value); - array_push($this->ProxyGroup, $obj); - } - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumClusterListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCpuExpandStrategyRequest.php similarity index 64% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumClusterListRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCpuExpandStrategyRequest.php index 13c51cbb7..9a041054d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumClusterListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCpuExpandStrategyRequest.php @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Cdb\V20170320\Models; use TencentCloud\Common\AbstractModel; /** - * GetConsortiumClusterList请求参数结构体 + * DescribeCpuExpandStrategy请求参数结构体 * - * @method integer getConsortiumId() 获取联盟id - * @method void setConsortiumId(integer $ConsortiumId) 设置联盟id + * @method string getInstanceId() 获取实例 ID 。 + * @method void setInstanceId(string $InstanceId) 设置实例 ID 。 */ -class GetConsortiumClusterListRequest extends AbstractModel +class DescribeCpuExpandStrategyRequest extends AbstractModel { /** - * @var integer 联盟id + * @var string 实例 ID 。 */ - public $ConsortiumId; + public $InstanceId; /** - * @param integer $ConsortiumId 联盟id + * @param string $InstanceId 实例 ID 。 */ function __construct() { @@ -46,8 +46,8 @@ class GetConsortiumClusterListRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("ConsortiumId",$param) and $param["ConsortiumId"] !== null) { - $this->ConsortiumId = $param["ConsortiumId"]; + if (array_key_exists("InstanceId",$param) and $param["InstanceId"] !== null) { + $this->InstanceId = $param["InstanceId"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCpuExpandStrategyResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCpuExpandStrategyResponse.php new file mode 100644 index 000000000..de077bf9a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCpuExpandStrategyResponse.php @@ -0,0 +1,101 @@ +Type = $param["Type"]; + } + + if (array_key_exists("ExpandCpu",$param) and $param["ExpandCpu"] !== null) { + $this->ExpandCpu = $param["ExpandCpu"]; + } + + if (array_key_exists("AutoStrategy",$param) and $param["AutoStrategy"] !== null) { + $this->AutoStrategy = $param["AutoStrategy"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyConnectionPoolRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyConnectionPoolRequest.php deleted file mode 100644 index 9ec929a42..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyConnectionPoolRequest.php +++ /dev/null @@ -1,97 +0,0 @@ -ProxyGroupId = $param["ProxyGroupId"]; - } - - if (array_key_exists("OpenConnectionPool",$param) and $param["OpenConnectionPool"] !== null) { - $this->OpenConnectionPool = $param["OpenConnectionPool"]; - } - - if (array_key_exists("ConnectionPoolType",$param) and $param["ConnectionPoolType"] !== null) { - $this->ConnectionPoolType = $param["ConnectionPoolType"]; - } - - if (array_key_exists("PoolConnectionTimeOut",$param) and $param["PoolConnectionTimeOut"] !== null) { - $this->PoolConnectionTimeOut = $param["PoolConnectionTimeOut"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyVipVPortRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyVipVPortRequest.php deleted file mode 100644 index 884b7f881..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyVipVPortRequest.php +++ /dev/null @@ -1,113 +0,0 @@ -ProxyGroupId = $param["ProxyGroupId"]; - } - - if (array_key_exists("UniqVpcId",$param) and $param["UniqVpcId"] !== null) { - $this->UniqVpcId = $param["UniqVpcId"]; - } - - if (array_key_exists("UniqSubnetId",$param) and $param["UniqSubnetId"] !== null) { - $this->UniqSubnetId = $param["UniqSubnetId"]; - } - - if (array_key_exists("DstIp",$param) and $param["DstIp"] !== null) { - $this->DstIp = $param["DstIp"]; - } - - if (array_key_exists("DstPort",$param) and $param["DstPort"] !== null) { - $this->DstPort = $param["DstPort"]; - } - - if (array_key_exists("ReleaseDuration",$param) and $param["ReleaseDuration"] !== null) { - $this->ReleaseDuration = $param["ReleaseDuration"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/PoolConf.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/PoolConf.php deleted file mode 100644 index 116a9807b..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/PoolConf.php +++ /dev/null @@ -1,89 +0,0 @@ -ConnectionPoolType = $param["ConnectionPoolType"]; - } - - if (array_key_exists("MaxPoolConnectionTimeOut",$param) and $param["MaxPoolConnectionTimeOut"] !== null) { - $this->MaxPoolConnectionTimeOut = $param["MaxPoolConnectionTimeOut"]; - } - - if (array_key_exists("MinPoolConnectionTimeOut",$param) and $param["MinPoolConnectionTimeOut"] !== null) { - $this->MinPoolConnectionTimeOut = $param["MinPoolConnectionTimeOut"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyGroup.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyGroup.php deleted file mode 100644 index 42d8c041c..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyGroup.php +++ /dev/null @@ -1,134 +0,0 @@ -BaseGroup = new BaseGroupInfo(); - $this->BaseGroup->deserialize($param["BaseGroup"]); - } - - if (array_key_exists("Address",$param) and $param["Address"] !== null) { - $this->Address = []; - foreach ($param["Address"] as $key => $value){ - $obj = new Address(); - $obj->deserialize($value); - array_push($this->Address, $obj); - } - } - - if (array_key_exists("ConnectionPoolInfo",$param) and $param["ConnectionPoolInfo"] !== null) { - $this->ConnectionPoolInfo = new ConnectionPoolInfo(); - $this->ConnectionPoolInfo->deserialize($param["ConnectionPoolInfo"]); - } - - if (array_key_exists("ProxyNode",$param) and $param["ProxyNode"] !== null) { - $this->ProxyNode = []; - foreach ($param["ProxyNode"] as $key => $value){ - $obj = new ProxyNodeInfo(); - $obj->deserialize($value); - array_push($this->ProxyNode, $obj); - } - } - - if (array_key_exists("RWInstInfo",$param) and $param["RWInstInfo"] !== null) { - $this->RWInstInfo = new RWInfo(); - $this->RWInstInfo->deserialize($param["RWInstInfo"]); - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyGroups.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyGroups.php deleted file mode 100644 index 86ac8b459..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyGroups.php +++ /dev/null @@ -1,134 +0,0 @@ -BaseGroup = new BaseGroupInfo(); - $this->BaseGroup->deserialize($param["BaseGroup"]); - } - - if (array_key_exists("Address",$param) and $param["Address"] !== null) { - $this->Address = []; - foreach ($param["Address"] as $key => $value){ - $obj = new Address(); - $obj->deserialize($value); - array_push($this->Address, $obj); - } - } - - if (array_key_exists("ConnectionPoolInfo",$param) and $param["ConnectionPoolInfo"] !== null) { - $this->ConnectionPoolInfo = new ConnectionPoolInfo(); - $this->ConnectionPoolInfo->deserialize($param["ConnectionPoolInfo"]); - } - - if (array_key_exists("ProxyNode",$param) and $param["ProxyNode"] !== null) { - $this->ProxyNode = []; - foreach ($param["ProxyNode"] as $key => $value){ - $obj = new ProxyNodeInfo(); - $obj->deserialize($value); - array_push($this->ProxyNode, $obj); - } - } - - if (array_key_exists("RWInstInfo",$param) and $param["RWInstInfo"] !== null) { - $this->RWInstInfo = new RWInfos(); - $this->RWInstInfo->deserialize($param["RWInstInfo"]); - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyNodeInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyNodeInfo.php deleted file mode 100644 index 81841eb39..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ProxyNodeInfo.php +++ /dev/null @@ -1,145 +0,0 @@ -ProxyNodeId = $param["ProxyNodeId"]; - } - - if (array_key_exists("ProxyNodeConnections",$param) and $param["ProxyNodeConnections"] !== null) { - $this->ProxyNodeConnections = $param["ProxyNodeConnections"]; - } - - if (array_key_exists("ProxyNodeCpu",$param) and $param["ProxyNodeCpu"] !== null) { - $this->ProxyNodeCpu = $param["ProxyNodeCpu"]; - } - - if (array_key_exists("ProxyNodeMem",$param) and $param["ProxyNodeMem"] !== null) { - $this->ProxyNodeMem = $param["ProxyNodeMem"]; - } - - if (array_key_exists("ProxyStatus",$param) and $param["ProxyStatus"] !== null) { - $this->ProxyStatus = $param["ProxyStatus"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInfo.php deleted file mode 100644 index 38736d70f..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInfo.php +++ /dev/null @@ -1,174 +0,0 @@ -InstCount = $param["InstCount"]; - } - - if (array_key_exists("WeightMode",$param) and $param["WeightMode"] !== null) { - $this->WeightMode = $param["WeightMode"]; - } - - if (array_key_exists("IsKickOut",$param) and $param["IsKickOut"] !== null) { - $this->IsKickOut = $param["IsKickOut"]; - } - - if (array_key_exists("MinCount",$param) and $param["MinCount"] !== null) { - $this->MinCount = $param["MinCount"]; - } - - if (array_key_exists("MaxDelay",$param) and $param["MaxDelay"] !== null) { - $this->MaxDelay = $param["MaxDelay"]; - } - - if (array_key_exists("FailOver",$param) and $param["FailOver"] !== null) { - $this->FailOver = $param["FailOver"]; - } - - if (array_key_exists("AutoAddRo",$param) and $param["AutoAddRo"] !== null) { - $this->AutoAddRo = $param["AutoAddRo"]; - } - - if (array_key_exists("RWInstInfo",$param) and $param["RWInstInfo"] !== null) { - $this->RWInstInfo = new RWInstanceInfo(); - $this->RWInstInfo->deserialize($param["RWInstInfo"]); - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInfos.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInfos.php deleted file mode 100644 index fffa3183d..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInfos.php +++ /dev/null @@ -1,178 +0,0 @@ -InstCount = $param["InstCount"]; - } - - if (array_key_exists("WeightMode",$param) and $param["WeightMode"] !== null) { - $this->WeightMode = $param["WeightMode"]; - } - - if (array_key_exists("IsKickOut",$param) and $param["IsKickOut"] !== null) { - $this->IsKickOut = $param["IsKickOut"]; - } - - if (array_key_exists("MinCount",$param) and $param["MinCount"] !== null) { - $this->MinCount = $param["MinCount"]; - } - - if (array_key_exists("MaxDelay",$param) and $param["MaxDelay"] !== null) { - $this->MaxDelay = $param["MaxDelay"]; - } - - if (array_key_exists("FailOver",$param) and $param["FailOver"] !== null) { - $this->FailOver = $param["FailOver"]; - } - - if (array_key_exists("AutoAddRo",$param) and $param["AutoAddRo"] !== null) { - $this->AutoAddRo = $param["AutoAddRo"]; - } - - if (array_key_exists("RWInstInfo",$param) and $param["RWInstInfo"] !== null) { - $this->RWInstInfo = []; - foreach ($param["RWInstInfo"] as $key => $value){ - $obj = new RWInstanceInfo(); - $obj->deserialize($value); - array_push($this->RWInstInfo, $obj); - } - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInstanceInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StartCpuExpandRequest.php similarity index 91% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInstanceInfo.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StartCpuExpandRequest.php index 0a281c5a8..7f34e7e45 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/RWInstanceInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StartCpuExpandRequest.php @@ -18,11 +18,11 @@ namespace TencentCloud\Cdb\V20170320\Models; use TencentCloud\Common\AbstractModel; /** - * 代理实例信息 + * StartCpuExpand请求参数结构体 * */ -class RWInstanceInfo extends AbstractModel +class StartCpuExpandRequest extends AbstractModel { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StartCpuExpandResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StartCpuExpandResponse.php new file mode 100644 index 000000000..40d571529 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StartCpuExpandResponse.php @@ -0,0 +1,65 @@ +AsyncRequestId = $param["AsyncRequestId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StopCpuExpandRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StopCpuExpandRequest.php new file mode 100644 index 000000000..f6a9ab115 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StopCpuExpandRequest.php @@ -0,0 +1,53 @@ +InstanceId = $param["InstanceId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeDiskOperationLogsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StopCpuExpandResponse.php similarity index 65% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeDiskOperationLogsResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StopCpuExpandResponse.php index 1b7814829..fc69d190d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cbs/V20170312/Models/DescribeDiskOperationLogsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/StopCpuExpandResponse.php @@ -14,23 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cbs\V20170312\Models; +namespace TencentCloud\Cdb\V20170320\Models; use TencentCloud\Common\AbstractModel; /** - * DescribeDiskOperationLogs返回参数结构体 + * StopCpuExpand返回参数结构体 * - * @method array getDiskOperationLogSet() 获取云盘的操作日志列表。 - * @method void setDiskOperationLogSet(array $DiskOperationLogSet) 设置云盘的操作日志列表。 + * @method string getAsyncRequestId() 获取异步任务 ID 。可以调用DescribeAsyncRequest 传入该 ID ,进行任务执行进度的查询 + * @method void setAsyncRequestId(string $AsyncRequestId) 设置异步任务 ID 。可以调用DescribeAsyncRequest 传入该 ID ,进行任务执行进度的查询 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class DescribeDiskOperationLogsResponse extends AbstractModel +class StopCpuExpandResponse extends AbstractModel { /** - * @var array 云盘的操作日志列表。 + * @var string 异步任务 ID 。可以调用DescribeAsyncRequest 传入该 ID ,进行任务执行进度的查询 */ - public $DiskOperationLogSet; + public $AsyncRequestId; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -38,7 +38,7 @@ class DescribeDiskOperationLogsResponse extends AbstractModel public $RequestId; /** - * @param array $DiskOperationLogSet 云盘的操作日志列表。 + * @param string $AsyncRequestId 异步任务 ID 。可以调用DescribeAsyncRequest 传入该 ID ,进行任务执行进度的查询 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -54,13 +54,8 @@ class DescribeDiskOperationLogsResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("DiskOperationLogSet",$param) and $param["DiskOperationLogSet"] !== null) { - $this->DiskOperationLogSet = []; - foreach ($param["DiskOperationLogSet"] as $key => $value){ - $obj = new DiskOperationLog(); - $obj->deserialize($value); - array_push($this->DiskOperationLogSet, $obj); - } + if (array_key_exists("AsyncRequestId",$param) and $param["AsyncRequestId"] !== null) { + $this->AsyncRequestId = $param["AsyncRequestId"]; } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/AdvancedScdnAclRule.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/AdvancedScdnAclRule.php index 4f6b27b0e..3ee547ed7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/AdvancedScdnAclRule.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/AdvancedScdnAclRule.php @@ -133,7 +133,6 @@ head:自定义请求头 安圭拉:AI 梵蒂冈:VA 斯洛伐克:SK -俄罗斯:RU 英国:GB 捷克共和国:CZ 乌克兰:UA @@ -348,7 +347,6 @@ head:自定义请求头 安圭拉:AI 梵蒂冈:VA 斯洛伐克:SK -俄罗斯:RU 英国:GB 捷克共和国:CZ 乌克兰:UA @@ -604,7 +602,6 @@ head:自定义请求头 安圭拉:AI 梵蒂冈:VA 斯洛伐克:SK -俄罗斯:RU 英国:GB 捷克共和国:CZ 乌克兰:UA @@ -858,7 +855,6 @@ head:自定义请求头 安圭拉:AI 梵蒂冈:VA 斯洛伐克:SK -俄罗斯:RU 英国:GB 捷克共和国:CZ 乌克兰:UA diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/DescribePushTasksRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/DescribePushTasksRequest.php index d0cc96214..af2913ffc 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/DescribePushTasksRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/DescribePushTasksRequest.php @@ -34,11 +34,11 @@ TaskId 和起始时间必须指定一项 * @method void setOffset(integer $Offset) 设置分页查询偏移量,默认为 0 * @method integer getLimit() 获取分页查询限制数目,默认为 20 * @method void setLimit(integer $Limit) 设置分页查询限制数目,默认为 20 - * @method string getArea() 获取指定地区查询预热纪录 + * @method string getArea() 获取指定地区查询预热记录 mainland:境内 overseas:境外 global:全球 - * @method void setArea(string $Area) 设置指定地区查询预热纪录 + * @method void setArea(string $Area) 设置指定地区查询预热记录 mainland:境内 overseas:境外 global:全球 @@ -87,7 +87,7 @@ TaskId 和起始时间必须指定一项 public $Limit; /** - * @var string 指定地区查询预热纪录 + * @var string 指定地区查询预热记录 mainland:境内 overseas:境外 global:全球 @@ -111,7 +111,7 @@ TaskId 和起始时间必须指定一项 * @param string $Keyword 查询关键字,请输入域名或 http(s):// 开头完整 URL * @param integer $Offset 分页查询偏移量,默认为 0 * @param integer $Limit 分页查询限制数目,默认为 20 - * @param string $Area 指定地区查询预热纪录 + * @param string $Area 指定地区查询预热记录 mainland:境内 overseas:境外 global:全球 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/ListTopDataRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/ListTopDataRequest.php index d7a171dc0..e5309ca59 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/ListTopDataRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdn/V20180606/Models/ListTopDataRequest.php @@ -20,21 +20,17 @@ use TencentCloud\Common\AbstractModel; /** * ListTopData请求参数结构体 * - * @method string getStartTime() 获取查询起始日期:yyyy-MM-dd HH:mm:ss -仅支持按天粒度的数据查询,取入参中的天信息作为起始日期 -返回大于等于起始日期当天 00:00:00 点产生的数据,如 StartTime为2018-09-04 10:40:00,返回数据的起始时间为2018-09-04 00:00:00 + * @method string getStartTime() 获取查询起始时间:yyyy-MM-dd HH:mm:ss +仅支持按分钟粒度的数据查询,按入参抹去秒位作为起始时间,如 StartTime为2018-09-04 10:40:23,返回数据的起始时间为2018-09-04 10:40:00 仅支持 90 天内数据查询 - * @method void setStartTime(string $StartTime) 设置查询起始日期:yyyy-MM-dd HH:mm:ss -仅支持按天粒度的数据查询,取入参中的天信息作为起始日期 -返回大于等于起始日期当天 00:00:00 点产生的数据,如 StartTime为2018-09-04 10:40:00,返回数据的起始时间为2018-09-04 00:00:00 + * @method void setStartTime(string $StartTime) 设置查询起始时间:yyyy-MM-dd HH:mm:ss +仅支持按分钟粒度的数据查询,按入参抹去秒位作为起始时间,如 StartTime为2018-09-04 10:40:23,返回数据的起始时间为2018-09-04 10:40:00 仅支持 90 天内数据查询 - * @method string getEndTime() 获取查询结束日期:yyyy-MM-dd HH:mm:ss -仅支持按天粒度的数据查询,取入参中的天信息作为结束日期 -返回小于等于结束日期当天 23:59:59 产生的数据,如EndTime为2018-09-05 22:40:00,返回数据的结束时间为2018-09-05 23:59:59 + * @method string getEndTime() 获取查询结束时间:yyyy-MM-dd HH:mm:ss +仅支持按天粒度的数据查询,取入参中的天信息作为结束日期 返回小于等于结束日期当天 23:59:59 产生的数据,如EndTime为2018-09-05 22:40:00,返回数据的结束时间为2018-09-05 23:59:59 EndTime 需要大于等于 StartTime - * @method void setEndTime(string $EndTime) 设置查询结束日期:yyyy-MM-dd HH:mm:ss -仅支持按天粒度的数据查询,取入参中的天信息作为结束日期 -返回小于等于结束日期当天 23:59:59 产生的数据,如EndTime为2018-09-05 22:40:00,返回数据的结束时间为2018-09-05 23:59:59 + * @method void setEndTime(string $EndTime) 设置查询结束时间:yyyy-MM-dd HH:mm:ss +仅支持按天粒度的数据查询,取入参中的天信息作为结束日期 返回小于等于结束日期当天 23:59:59 产生的数据,如EndTime为2018-09-05 22:40:00,返回数据的结束时间为2018-09-05 23:59:59 EndTime 需要大于等于 StartTime * @method string getMetric() 获取排序对象,支持以下几种形式: url:访问 URL 排序(无参数的URL),支持的 Filter 为 flux、request @@ -110,17 +106,15 @@ client:指定查询客户端地区(用户请求终端所在地区)数据 class ListTopDataRequest extends AbstractModel { /** - * @var string 查询起始日期:yyyy-MM-dd HH:mm:ss -仅支持按天粒度的数据查询,取入参中的天信息作为起始日期 -返回大于等于起始日期当天 00:00:00 点产生的数据,如 StartTime为2018-09-04 10:40:00,返回数据的起始时间为2018-09-04 00:00:00 + * @var string 查询起始时间:yyyy-MM-dd HH:mm:ss +仅支持按分钟粒度的数据查询,按入参抹去秒位作为起始时间,如 StartTime为2018-09-04 10:40:23,返回数据的起始时间为2018-09-04 10:40:00 仅支持 90 天内数据查询 */ public $StartTime; /** - * @var string 查询结束日期:yyyy-MM-dd HH:mm:ss -仅支持按天粒度的数据查询,取入参中的天信息作为结束日期 -返回小于等于结束日期当天 23:59:59 产生的数据,如EndTime为2018-09-05 22:40:00,返回数据的结束时间为2018-09-05 23:59:59 + * @var string 查询结束时间:yyyy-MM-dd HH:mm:ss +仅支持按天粒度的数据查询,取入参中的天信息作为结束日期 返回小于等于结束日期当天 23:59:59 产生的数据,如EndTime为2018-09-05 22:40:00,返回数据的结束时间为2018-09-05 23:59:59 EndTime 需要大于等于 StartTime */ public $EndTime; @@ -201,13 +195,11 @@ client:指定查询客户端地区(用户请求终端所在地区)数据 public $Limit; /** - * @param string $StartTime 查询起始日期:yyyy-MM-dd HH:mm:ss -仅支持按天粒度的数据查询,取入参中的天信息作为起始日期 -返回大于等于起始日期当天 00:00:00 点产生的数据,如 StartTime为2018-09-04 10:40:00,返回数据的起始时间为2018-09-04 00:00:00 + * @param string $StartTime 查询起始时间:yyyy-MM-dd HH:mm:ss +仅支持按分钟粒度的数据查询,按入参抹去秒位作为起始时间,如 StartTime为2018-09-04 10:40:23,返回数据的起始时间为2018-09-04 10:40:00 仅支持 90 天内数据查询 - * @param string $EndTime 查询结束日期:yyyy-MM-dd HH:mm:ss -仅支持按天粒度的数据查询,取入参中的天信息作为结束日期 -返回小于等于结束日期当天 23:59:59 产生的数据,如EndTime为2018-09-05 22:40:00,返回数据的结束时间为2018-09-05 23:59:59 + * @param string $EndTime 查询结束时间:yyyy-MM-dd HH:mm:ss +仅支持按天粒度的数据查询,取入参中的天信息作为结束日期 返回小于等于结束日期当天 23:59:59 产生的数据,如EndTime为2018-09-05 22:40:00,返回数据的结束时间为2018-09-05 23:59:59 EndTime 需要大于等于 StartTime * @param string $Metric 排序对象,支持以下几种形式: url:访问 URL 排序(无参数的URL),支持的 Filter 为 flux、request diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/ActionFilter.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/ActionFilter.php new file mode 100644 index 000000000..eb64a5bf9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/ActionFilter.php @@ -0,0 +1,65 @@ +Keyword = $param["Keyword"]; + } + + if (array_key_exists("Values",$param) and $param["Values"] !== null) { + $this->Values = $param["Values"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/DescribeTaskListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/DescribeTaskListRequest.php index e1769bddb..0d5923962 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/DescribeTaskListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/DescribeTaskListRequest.php @@ -36,6 +36,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTaskEndTime(string $TaskEndTime) 设置结束时间,固定格式%Y-%m-%d %H:%M:%S * @method array getTags() 获取标签对 * @method void setTags(array $Tags) 设置标签对 + * @method array getFilters() 获取筛选条件 + * @method void setFilters(array $Filters) 设置筛选条件 */ class DescribeTaskListRequest extends AbstractModel { @@ -79,6 +81,11 @@ class DescribeTaskListRequest extends AbstractModel */ public $Tags; + /** + * @var array 筛选条件 + */ + public $Filters; + /** * @param integer $Limit 分页Limit * @param integer $Offset 分页Offset @@ -88,6 +95,7 @@ class DescribeTaskListRequest extends AbstractModel * @param string $TaskStartTime 开始时间,固定格式%Y-%m-%d %H:%M:%S * @param string $TaskEndTime 结束时间,固定格式%Y-%m-%d %H:%M:%S * @param array $Tags 标签对 + * @param array $Filters 筛选条件 */ function __construct() { @@ -138,5 +146,14 @@ class DescribeTaskListRequest extends AbstractModel array_push($this->Tags, $obj); } } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new ActionFilter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/DescribeTemplateListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/DescribeTemplateListRequest.php index 1e5696a2b..05732a534 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/DescribeTemplateListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfg/V20210820/Models/DescribeTemplateListRequest.php @@ -36,6 +36,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTemplateSource(integer $TemplateSource) 设置经验来源 0-自建 1-专家推荐 * @method array getTemplateIdList() 获取经验ID * @method void setTemplateIdList(array $TemplateIdList) 设置经验ID + * @method array getFilters() 获取过滤参数 + * @method void setFilters(array $Filters) 设置过滤参数 */ class DescribeTemplateListRequest extends AbstractModel { @@ -79,6 +81,11 @@ class DescribeTemplateListRequest extends AbstractModel */ public $TemplateIdList; + /** + * @var array 过滤参数 + */ + public $Filters; + /** * @param integer $Limit 分页Limit, 最大值100 * @param integer $Offset 分页Offset @@ -88,6 +95,7 @@ class DescribeTemplateListRequest extends AbstractModel * @param array $Tags 标签对 * @param integer $TemplateSource 经验来源 0-自建 1-专家推荐 * @param array $TemplateIdList 经验ID + * @param array $Filters 过滤参数 */ function __construct() { @@ -138,5 +146,14 @@ class DescribeTemplateListRequest extends AbstractModel if (array_key_exists("TemplateIdList",$param) and $param["TemplateIdList"] !== null) { $this->TemplateIdList = $param["TemplateIdList"]; } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new ActionFilter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfs/V20190719/Models/DescribeCfsFileSystemsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfs/V20190719/Models/DescribeCfsFileSystemsRequest.php index fa34604e2..6742e3e48 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfs/V20190719/Models/DescribeCfsFileSystemsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cfs/V20190719/Models/DescribeCfsFileSystemsRequest.php @@ -26,6 +26,10 @@ use TencentCloud\Common\AbstractModel; * @method void setVpcId(string $VpcId) 设置私有网络(VPC) ID * @method string getSubnetId() 获取子网 ID * @method void setSubnetId(string $SubnetId) 设置子网 ID + * @method integer getOffset() 获取Offset 分页码 + * @method void setOffset(integer $Offset) 设置Offset 分页码 + * @method integer getLimit() 获取Limit 页面大小 + * @method void setLimit(integer $Limit) 设置Limit 页面大小 */ class DescribeCfsFileSystemsRequest extends AbstractModel { @@ -44,10 +48,22 @@ class DescribeCfsFileSystemsRequest extends AbstractModel */ public $SubnetId; + /** + * @var integer Offset 分页码 + */ + public $Offset; + + /** + * @var integer Limit 页面大小 + */ + public $Limit; + /** * @param string $FileSystemId 文件系统 ID * @param string $VpcId 私有网络(VPC) ID * @param string $SubnetId 子网 ID + * @param integer $Offset Offset 分页码 + * @param integer $Limit Limit 页面大小 */ function __construct() { @@ -73,5 +89,13 @@ class DescribeCfsFileSystemsRequest extends AbstractModel if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { $this->SubnetId = $param["SubnetId"]; } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/CkafkaClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/CkafkaClient.php index 0012f59ad..179be73a8 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/CkafkaClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/CkafkaClient.php @@ -93,6 +93,7 @@ use TencentCloud\Ckafka\V20190819\Models as Models; * @method Models\FetchMessageByOffsetResponse FetchMessageByOffset(Models\FetchMessageByOffsetRequest $req) 根据指定offset位置的消息 * @method Models\FetchMessageListByOffsetResponse FetchMessageListByOffset(Models\FetchMessageListByOffsetRequest $req) 根据位点查询消息列表 * @method Models\InquireCkafkaPriceResponse InquireCkafkaPrice(Models\InquireCkafkaPriceRequest $req) Ckafka实例购买/续费询价 + * @method Models\InstanceScalingDownResponse InstanceScalingDown(Models\InstanceScalingDownRequest $req) 按量实例缩容 * @method Models\ModifyAclRuleResponse ModifyAclRule(Models\ModifyAclRuleRequest $req) 修改AC策略,目前只支持预设规则的是否应用到新增topic这一项的修改 * @method Models\ModifyConnectResourceResponse ModifyConnectResource(Models\ModifyConnectResourceRequest $req) 编辑Datahub连接源 * @method Models\ModifyDatahubTaskResponse ModifyDatahubTask(Models\ModifyDatahubTaskRequest $req) 修改Datahub任务 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/CreateAclRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/CreateAclRequest.php index 54fc8c730..b6ec5d6eb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/CreateAclRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/CreateAclRequest.php @@ -30,8 +30,8 @@ use TencentCloud\Common\AbstractModel; * @method void setPermissionType(integer $PermissionType) 设置权限类型,(2:DENY,3:ALLOW),当前ckakfa支持ALLOW(相当于白名单),其它用于后续兼容开源kafka的acl时使用 * @method string getResourceName() 获取资源名称,和resourceType相关,如当resourceType为TOPIC时,则该字段表示topic名称,当resourceType为GROUP时,该字段表示group名称,当resourceType为CLUSTER时,该字段可为空。 * @method void setResourceName(string $ResourceName) 设置资源名称,和resourceType相关,如当resourceType为TOPIC时,则该字段表示topic名称,当resourceType为GROUP时,该字段表示group名称,当resourceType为CLUSTER时,该字段可为空。 - * @method string getHost() 获取默认为\*,表示任何host都可以访问,当前ckafka不支持host为\*,但是后面开源kafka的产品化会直接支持 - * @method void setHost(string $Host) 设置默认为\*,表示任何host都可以访问,当前ckafka不支持host为\*,但是后面开源kafka的产品化会直接支持 + * @method string getHost() 获取默认为*,表示任何host都可以访问。支持填写IP或网段,支持“;”分隔。 + * @method void setHost(string $Host) 设置默认为*,表示任何host都可以访问。支持填写IP或网段,支持“;”分隔。 * @method string getPrincipal() 获取用户列表,默认为User:*,表示任何user都可以访问,当前用户只能是用户列表中包含的用户。传入时需要加 User: 前缀,如用户A则传入User:A。 * @method void setPrincipal(string $Principal) 设置用户列表,默认为User:*,表示任何user都可以访问,当前用户只能是用户列表中包含的用户。传入时需要加 User: 前缀,如用户A则传入User:A。 * @method string getResourceNameList() 获取资源名称列表,Json字符串格式。ResourceName和resourceNameList只能指定其中一个。 @@ -65,7 +65,7 @@ class CreateAclRequest extends AbstractModel public $ResourceName; /** - * @var string 默认为\*,表示任何host都可以访问,当前ckafka不支持host为\*,但是后面开源kafka的产品化会直接支持 + * @var string 默认为*,表示任何host都可以访问。支持填写IP或网段,支持“;”分隔。 */ public $Host; @@ -85,7 +85,7 @@ class CreateAclRequest extends AbstractModel * @param integer $Operation Acl操作方式,(2:ALL,3:READ,4:WRITE,5:CREATE,6:DELETE,7:ALTER,8:DESCRIBE,9:CLUSTER_ACTION,10:DESCRIBE_CONFIGS,11:ALTER_CONFIGS,12:IDEMPOTENT_WRITE) * @param integer $PermissionType 权限类型,(2:DENY,3:ALLOW),当前ckakfa支持ALLOW(相当于白名单),其它用于后续兼容开源kafka的acl时使用 * @param string $ResourceName 资源名称,和resourceType相关,如当resourceType为TOPIC时,则该字段表示topic名称,当resourceType为GROUP时,该字段表示group名称,当resourceType为CLUSTER时,该字段可为空。 - * @param string $Host 默认为\*,表示任何host都可以访问,当前ckafka不支持host为\*,但是后面开源kafka的产品化会直接支持 + * @param string $Host 默认为*,表示任何host都可以访问。支持填写IP或网段,支持“;”分隔。 * @param string $Principal 用户列表,默认为User:*,表示任何user都可以访问,当前用户只能是用户列表中包含的用户。传入时需要加 User: 前缀,如用户A则传入User:A。 * @param string $ResourceNameList 资源名称列表,Json字符串格式。ResourceName和resourceNameList只能指定其中一个。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/InstanceScalingDownRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/InstanceScalingDownRequest.php new file mode 100644 index 000000000..d14528452 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/InstanceScalingDownRequest.php @@ -0,0 +1,105 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("UpgradeStrategy",$param) and $param["UpgradeStrategy"] !== null) { + $this->UpgradeStrategy = $param["UpgradeStrategy"]; + } + + if (array_key_exists("DiskSize",$param) and $param["DiskSize"] !== null) { + $this->DiskSize = $param["DiskSize"]; + } + + if (array_key_exists("BandWidth",$param) and $param["BandWidth"] !== null) { + $this->BandWidth = $param["BandWidth"]; + } + + if (array_key_exists("Partition",$param) and $param["Partition"] !== null) { + $this->Partition = $param["Partition"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/InstanceScalingDownResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/InstanceScalingDownResponse.php new file mode 100644 index 000000000..a9635f94e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/InstanceScalingDownResponse.php @@ -0,0 +1,70 @@ +Result = new ScalingDownResp(); + $this->Result->deserialize($param["Result"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/ScalingDownResp.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/ScalingDownResp.php new file mode 100644 index 000000000..02d234e67 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ckafka/V20190819/Models/ScalingDownResp.php @@ -0,0 +1,57 @@ +DealNames = $param["DealNames"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/ClbClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/ClbClient.php index dc08377ac..6f0e05c73 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/ClbClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/ClbClient.php @@ -34,11 +34,21 @@ use TencentCloud\Clb\V20180317\Models as Models; * @method Models\CloneLoadBalancerResponse CloneLoadBalancer(Models\CloneLoadBalancerRequest $req) 克隆负载均衡实例,根据指定的负载均衡实例,复制出相同规则和绑定关系的负载均衡实例。克隆接口为异步操作,克隆的数据以调用CloneLoadBalancer时为准,如果调用CloneLoadBalancer后克隆CLB发生变化,变化规则不会克隆。 限制说明: -不支持基础网络和传统型负载均衡、IPv6和NAT64 -不支持包年包月CLB -不支持监听器为 QUIC、端口段 -不支持后端类型为 目标组、SCF云函数 -个性化配置、重定向配置、安全组默认放通开关 将不会被克隆,须手工配置 +实例属性维度限制 + 仅支持克隆按量计费实例,不支持包年包月实例。 + 不支持克隆未关联实例计费项的 CLB。 + 不支持克隆传统型负载均衡实例和高防 CLB。 + 不支持克隆基础网络类型的实例。 + 不支持克隆 IPv6、IPv6 NAT64 版本以及混绑的实例。 + 个性化配置、重定向配置、安全组默认放通开关的配置将不会被克隆,需重新配置。 + 执行克隆操作前,请确保实例上没有使用已过期证书,否则会导致克隆失败。 +监听器维度限制 + 不支持克隆监听器为 QUIC 类型和端口段的实例。 + 不支持监听器为 TCP_SSL 的内网型负载均衡的实例。 + 不支持克隆七层监听器没有转发规则的实例。 + 当实例的监听器个数超过50个时,不支持克隆。 +后端服务维度限制 + 不支持克隆绑定的后端服务类型为目标组和 SCF 云函数的实例。 通过接口调用: BGP带宽包必须传带宽包id @@ -105,7 +115,6 @@ BGP带宽包必须传带宽包id * @method Models\DescribeLoadBalancerOverviewResponse DescribeLoadBalancerOverview(Models\DescribeLoadBalancerOverviewRequest $req) 查询运行中、隔离中、即将到期和负载均衡总数。 * @method Models\DescribeLoadBalancerTrafficResponse DescribeLoadBalancerTraffic(Models\DescribeLoadBalancerTrafficRequest $req) 查询账号下的高流量负载均衡,返回前10个负载均衡。如果是子账号登录,只返回子账号有权限的负载均衡。 * @method Models\DescribeLoadBalancersResponse DescribeLoadBalancers(Models\DescribeLoadBalancersRequest $req) 查询一个地域的负载均衡实例列表。 - * @method Models\DescribeLoadBalancersDetailResponse DescribeLoadBalancersDetail(Models\DescribeLoadBalancersDetailRequest $req) 查询负载均衡的详细信息,包括监听器,规则及后端目标。 * @method Models\DescribeQuotaResponse DescribeQuota(Models\DescribeQuotaRequest $req) 查询用户当前地域下的各项配额 * @method Models\DescribeResourcesResponse DescribeResources(Models\DescribeResourcesRequest $req) 查询用户在当前地域支持可用区列表和资源列表。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CloneLoadBalancerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CloneLoadBalancerRequest.php index 3717de59a..ae1e54588 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CloneLoadBalancerRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CloneLoadBalancerRequest.php @@ -40,8 +40,8 @@ use TencentCloud\Common\AbstractModel; * @method void setZoneId(string $ZoneId) 设置仅适用于公网负载均衡。可用区ID,指定可用区以创建负载均衡实例。如:ap-guangzhou-1。 * @method InternetAccessible getInternetAccessible() 获取仅适用于公网负载均衡。负载均衡的网络计费模式。 * @method void setInternetAccessible(InternetAccessible $InternetAccessible) 设置仅适用于公网负载均衡。负载均衡的网络计费模式。 - * @method string getVipIsp() 获取仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 DescribeSingleIsp 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 - * @method void setVipIsp(string $VipIsp) 设置仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 DescribeSingleIsp 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 + * @method string getVipIsp() 获取仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 + * @method void setVipIsp(string $VipIsp) 设置仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 * @method string getVip() 获取指定Vip申请负载均衡。 * @method void setVip(string $Vip) 设置指定Vip申请负载均衡。 * @method array getTags() 获取购买负载均衡同时,给负载均衡打上标签。 @@ -106,7 +106,7 @@ class CloneLoadBalancerRequest extends AbstractModel public $InternetAccessible; /** - * @var string 仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 DescribeSingleIsp 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 + * @var string 仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 */ public $VipIsp; @@ -176,7 +176,7 @@ class CloneLoadBalancerRequest extends AbstractModel 注:备可用区是主可用区故障后,需要承载流量的可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主/备可用区的列表。 * @param string $ZoneId 仅适用于公网负载均衡。可用区ID,指定可用区以创建负载均衡实例。如:ap-guangzhou-1。 * @param InternetAccessible $InternetAccessible 仅适用于公网负载均衡。负载均衡的网络计费模式。 - * @param string $VipIsp 仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 DescribeSingleIsp 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 + * @param string $VipIsp 仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 * @param string $Vip 指定Vip申请负载均衡。 * @param array $Tags 购买负载均衡同时,给负载均衡打上标签。 * @param ExclusiveCluster $ExclusiveCluster 独占集群信息。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CreateListenerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CreateListenerRequest.php index 43b537baa..6274f47f9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CreateListenerRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CreateListenerRequest.php @@ -28,16 +28,16 @@ use TencentCloud\Common\AbstractModel; * @method void setProtocol(string $Protocol) 设置监听器协议: TCP | UDP | HTTP | HTTPS | TCP_SSL | QUIC。 * @method array getListenerNames() 获取要创建的监听器名称列表,名称与Ports数组按序一一对应,如不需立即命名,则无需提供此参数。 * @method void setListenerNames(array $ListenerNames) 设置要创建的监听器名称列表,名称与Ports数组按序一一对应,如不需立即命名,则无需提供此参数。 - * @method HealthCheck getHealthCheck() 获取健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL监听器。 - * @method void setHealthCheck(HealthCheck $HealthCheck) 设置健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL监听器。 + * @method HealthCheck getHealthCheck() 获取健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 + * @method void setHealthCheck(HealthCheck $HealthCheck) 设置健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 * @method CertificateInput getCertificate() 获取证书相关信息,此参数仅适用于TCP_SSL监听器和未开启SNI特性的HTTPS监听器。此参数和MultiCertInfo不能同时传入。 * @method void setCertificate(CertificateInput $Certificate) 设置证书相关信息,此参数仅适用于TCP_SSL监听器和未开启SNI特性的HTTPS监听器。此参数和MultiCertInfo不能同时传入。 * @method integer getSessionExpireTime() 获取会话保持时间,单位:秒。可选值:30~3600,默认 0,表示不开启。此参数仅适用于TCP/UDP监听器。 * @method void setSessionExpireTime(integer $SessionExpireTime) 设置会话保持时间,单位:秒。可选值:30~3600,默认 0,表示不开启。此参数仅适用于TCP/UDP监听器。 * @method string getScheduler() 获取监听器转发的方式。可选值:WRR、LEAST_CONN -分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL监听器。 +分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 * @method void setScheduler(string $Scheduler) 设置监听器转发的方式。可选值:WRR、LEAST_CONN -分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL监听器。 +分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 * @method integer getSniSwitch() 获取是否开启SNI特性,此参数仅适用于HTTPS监听器。 * @method void setSniSwitch(integer $SniSwitch) 设置是否开启SNI特性,此参数仅适用于HTTPS监听器。 * @method string getTargetType() 获取后端目标类型,NODE表示绑定普通节点,TARGETGROUP表示绑定目标组。 @@ -82,7 +82,7 @@ class CreateListenerRequest extends AbstractModel public $ListenerNames; /** - * @var HealthCheck 健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL监听器。 + * @var HealthCheck 健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 */ public $HealthCheck; @@ -98,7 +98,7 @@ class CreateListenerRequest extends AbstractModel /** * @var string 监听器转发的方式。可选值:WRR、LEAST_CONN -分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL监听器。 +分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 */ public $Scheduler; @@ -157,11 +157,11 @@ class CreateListenerRequest extends AbstractModel * @param array $Ports 要将监听器创建到哪些端口,每个端口对应一个新的监听器。 * @param string $Protocol 监听器协议: TCP | UDP | HTTP | HTTPS | TCP_SSL | QUIC。 * @param array $ListenerNames 要创建的监听器名称列表,名称与Ports数组按序一一对应,如不需立即命名,则无需提供此参数。 - * @param HealthCheck $HealthCheck 健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL监听器。 + * @param HealthCheck $HealthCheck 健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 * @param CertificateInput $Certificate 证书相关信息,此参数仅适用于TCP_SSL监听器和未开启SNI特性的HTTPS监听器。此参数和MultiCertInfo不能同时传入。 * @param integer $SessionExpireTime 会话保持时间,单位:秒。可选值:30~3600,默认 0,表示不开启。此参数仅适用于TCP/UDP监听器。 * @param string $Scheduler 监听器转发的方式。可选值:WRR、LEAST_CONN -分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL监听器。 +分别表示按权重轮询、最小连接数, 默认为 WRR。此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 * @param integer $SniSwitch 是否开启SNI特性,此参数仅适用于HTTPS监听器。 * @param string $TargetType 后端目标类型,NODE表示绑定普通节点,TARGETGROUP表示绑定目标组。 * @param string $SessionType 会话保持类型。不传或传NORMAL表示默认会话保持类型。QUIC_CID 表示根据Quic Connection ID做会话保持。QUIC_CID只支持UDP协议。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CreateLoadBalancerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CreateLoadBalancerRequest.php index 966a8a91c..d4173880e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CreateLoadBalancerRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/CreateLoadBalancerRequest.php @@ -34,22 +34,22 @@ OPEN:公网属性, INTERNAL:内网属性。 * @method void setVpcId(string $VpcId) 设置负载均衡后端目标设备所属的网络 ID,如vpc-12345678,可以通过 [DescribeVpcEx](https://cloud.tencent.com/document/product/215/1372) 接口获取。 不填此参数则默认为DefaultVPC。创建内网负载均衡实例时,此参数必填。 * @method string getSubnetId() 获取在私有网络内购买内网负载均衡实例的情况下,必须指定子网 ID,内网负载均衡实例的 VIP 将从这个子网中产生。创建内网负载均衡实例时,此参数必填。 * @method void setSubnetId(string $SubnetId) 设置在私有网络内购买内网负载均衡实例的情况下,必须指定子网 ID,内网负载均衡实例的 VIP 将从这个子网中产生。创建内网负载均衡实例时,此参数必填。 - * @method integer getProjectId() 获取负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/product/378/4400) 接口获取。不填此参数则视为默认项目。 - * @method void setProjectId(integer $ProjectId) 设置负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/product/378/4400) 接口获取。不填此参数则视为默认项目。 + * @method integer getProjectId() 获取负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/api/651/78725) 接口获取。不填此参数则视为默认项目。 + * @method void setProjectId(integer $ProjectId) 设置负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/api/651/78725) 接口获取。不填此参数则视为默认项目。 * @method string getAddressIPVersion() 获取仅适用于公网负载均衡。IP版本,可取值:IPV4、IPV6、IPv6FullChain,不区分大小写,默认值 IPV4。说明:取值为IPV6表示为IPV6 NAT64版本;取值为IPv6FullChain,表示为IPv6版本。 * @method void setAddressIPVersion(string $AddressIPVersion) 设置仅适用于公网负载均衡。IP版本,可取值:IPV4、IPV6、IPv6FullChain,不区分大小写,默认值 IPV4。说明:取值为IPV6表示为IPV6 NAT64版本;取值为IPv6FullChain,表示为IPv6版本。 * @method integer getNumber() 获取创建负载均衡的个数,默认值 1。 * @method void setNumber(integer $Number) 设置创建负载均衡的个数,默认值 1。 * @method string getMasterZoneId() 获取仅适用于公网负载均衡。设置跨可用区容灾时的主可用区ID,例如 100001 或 ap-guangzhou-1 -注:主可用区是需要承载流量的可用区,备可用区默认不承载流量,主可用区不可用时才使用备可用区,平台将为您自动选择最佳备可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主可用区的列表。 +注:主可用区是需要承载流量的可用区,备可用区默认不承载流量,主可用区不可用时才使用备可用区。目前仅广州、上海、南京、北京、中国香港、首尔地域的 IPv4 版本的 CLB 支持主备可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主可用区的列表。 * @method void setMasterZoneId(string $MasterZoneId) 设置仅适用于公网负载均衡。设置跨可用区容灾时的主可用区ID,例如 100001 或 ap-guangzhou-1 -注:主可用区是需要承载流量的可用区,备可用区默认不承载流量,主可用区不可用时才使用备可用区,平台将为您自动选择最佳备可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主可用区的列表。 +注:主可用区是需要承载流量的可用区,备可用区默认不承载流量,主可用区不可用时才使用备可用区。目前仅广州、上海、南京、北京、中国香港、首尔地域的 IPv4 版本的 CLB 支持主备可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主可用区的列表。 * @method string getZoneId() 获取仅适用于公网负载均衡。可用区ID,指定可用区以创建负载均衡实例。如:ap-guangzhou-1。 * @method void setZoneId(string $ZoneId) 设置仅适用于公网负载均衡。可用区ID,指定可用区以创建负载均衡实例。如:ap-guangzhou-1。 * @method InternetAccessible getInternetAccessible() 获取仅对内网属性的性能容量型实例和公网属性的所有实例生效。 * @method void setInternetAccessible(InternetAccessible $InternetAccessible) 设置仅对内网属性的性能容量型实例和公网属性的所有实例生效。 - * @method string getVipIsp() 获取仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 DescribeSingleIsp 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 - * @method void setVipIsp(string $VipIsp) 设置仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 DescribeSingleIsp 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 + * @method string getVipIsp() 获取仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 + * @method void setVipIsp(string $VipIsp) 设置仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 * @method array getTags() 获取购买负载均衡的同时,给负载均衡打上标签,最大支持20个标签键值对。 * @method void setTags(array $Tags) 设置购买负载均衡的同时,给负载均衡打上标签,最大支持20个标签键值对。 * @method string getVip() 获取指定VIP申请负载均衡。此参数选填,不填写此参数时自动分配VIP。IPv4和IPv6类型支持此参数,IPv6 NAT64类型不支持。 @@ -61,13 +61,11 @@ OPEN:公网属性, INTERNAL:内网属性。 * @method ExclusiveCluster getExclusiveCluster() 获取独占型实例信息。若创建独占型的内网负载均衡实例,则此参数必填。 * @method void setExclusiveCluster(ExclusiveCluster $ExclusiveCluster) 设置独占型实例信息。若创建独占型的内网负载均衡实例,则此参数必填。 * @method string getSlaType() 获取创建性能容量型实例。 -
    • 若需要创建性能容量型实例,则此参数必填,且取值为:SLA,表示创建按量计费模式下的默认规格的性能容量型实例。 -
      • 默认为普通规格的性能容量型实例,SLA对应超强型1规格。 -
      • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。超大型规格的性能容量型正在内测中,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    • 若需要创建共享型实例,则无需填写此参数。
    +
    • 若需要创建性能容量型实例,则此参数必填,且取值为:SLA,表示超强型1规格。 +
      • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。如需超大型规格的性能容量型,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    • 若需要创建共享型实例,则无需填写此参数。
    * @method void setSlaType(string $SlaType) 设置创建性能容量型实例。 -
    • 若需要创建性能容量型实例,则此参数必填,且取值为:SLA,表示创建按量计费模式下的默认规格的性能容量型实例。 -
      • 默认为普通规格的性能容量型实例,SLA对应超强型1规格。 -
      • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。超大型规格的性能容量型正在内测中,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    • 若需要创建共享型实例,则无需填写此参数。
    +
    • 若需要创建性能容量型实例,则此参数必填,且取值为:SLA,表示超强型1规格。 +
      • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。如需超大型规格的性能容量型,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    • 若需要创建共享型实例,则无需填写此参数。
    * @method string getClientToken() 获取用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。 * @method void setClientToken(string $ClientToken) 设置用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。 * @method boolean getSnatPro() 获取是否支持绑定跨地域/跨Vpc绑定IP的功能。 @@ -117,7 +115,7 @@ OPEN:公网属性, INTERNAL:内网属性。 public $SubnetId; /** - * @var integer 负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/product/378/4400) 接口获取。不填此参数则视为默认项目。 + * @var integer 负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/api/651/78725) 接口获取。不填此参数则视为默认项目。 */ public $ProjectId; @@ -133,7 +131,7 @@ OPEN:公网属性, INTERNAL:内网属性。 /** * @var string 仅适用于公网负载均衡。设置跨可用区容灾时的主可用区ID,例如 100001 或 ap-guangzhou-1 -注:主可用区是需要承载流量的可用区,备可用区默认不承载流量,主可用区不可用时才使用备可用区,平台将为您自动选择最佳备可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主可用区的列表。 +注:主可用区是需要承载流量的可用区,备可用区默认不承载流量,主可用区不可用时才使用备可用区。目前仅广州、上海、南京、北京、中国香港、首尔地域的 IPv4 版本的 CLB 支持主备可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主可用区的列表。 */ public $MasterZoneId; @@ -148,7 +146,7 @@ OPEN:公网属性, INTERNAL:内网属性。 public $InternetAccessible; /** - * @var string 仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 DescribeSingleIsp 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 + * @var string 仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 */ public $VipIsp; @@ -175,9 +173,8 @@ OPEN:公网属性, INTERNAL:内网属性。 /** * @var string 创建性能容量型实例。 -
    • 若需要创建性能容量型实例,则此参数必填,且取值为:SLA,表示创建按量计费模式下的默认规格的性能容量型实例。 -
      • 默认为普通规格的性能容量型实例,SLA对应超强型1规格。 -
      • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。超大型规格的性能容量型正在内测中,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    • 若需要创建共享型实例,则无需填写此参数。
    +
    • 若需要创建性能容量型实例,则此参数必填,且取值为:SLA,表示超强型1规格。 +
      • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。如需超大型规格的性能容量型,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    • 若需要创建共享型实例,则无需填写此参数。
    */ public $SlaType; @@ -230,23 +227,22 @@ OPEN:公网属性, INTERNAL:内网属性。 注意:如果名称与系统中已有负载均衡实例的名称相同,则系统将会自动生成此次创建的负载均衡实例的名称。 * @param string $VpcId 负载均衡后端目标设备所属的网络 ID,如vpc-12345678,可以通过 [DescribeVpcEx](https://cloud.tencent.com/document/product/215/1372) 接口获取。 不填此参数则默认为DefaultVPC。创建内网负载均衡实例时,此参数必填。 * @param string $SubnetId 在私有网络内购买内网负载均衡实例的情况下,必须指定子网 ID,内网负载均衡实例的 VIP 将从这个子网中产生。创建内网负载均衡实例时,此参数必填。 - * @param integer $ProjectId 负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/product/378/4400) 接口获取。不填此参数则视为默认项目。 + * @param integer $ProjectId 负载均衡实例所属的项目 ID,可以通过 [DescribeProject](https://cloud.tencent.com/document/api/651/78725) 接口获取。不填此参数则视为默认项目。 * @param string $AddressIPVersion 仅适用于公网负载均衡。IP版本,可取值:IPV4、IPV6、IPv6FullChain,不区分大小写,默认值 IPV4。说明:取值为IPV6表示为IPV6 NAT64版本;取值为IPv6FullChain,表示为IPv6版本。 * @param integer $Number 创建负载均衡的个数,默认值 1。 * @param string $MasterZoneId 仅适用于公网负载均衡。设置跨可用区容灾时的主可用区ID,例如 100001 或 ap-guangzhou-1 -注:主可用区是需要承载流量的可用区,备可用区默认不承载流量,主可用区不可用时才使用备可用区,平台将为您自动选择最佳备可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主可用区的列表。 +注:主可用区是需要承载流量的可用区,备可用区默认不承载流量,主可用区不可用时才使用备可用区。目前仅广州、上海、南京、北京、中国香港、首尔地域的 IPv4 版本的 CLB 支持主备可用区。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域的主可用区的列表。 * @param string $ZoneId 仅适用于公网负载均衡。可用区ID,指定可用区以创建负载均衡实例。如:ap-guangzhou-1。 * @param InternetAccessible $InternetAccessible 仅对内网属性的性能容量型实例和公网属性的所有实例生效。 - * @param string $VipIsp 仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 DescribeSingleIsp 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 + * @param string $VipIsp 仅适用于公网负载均衡。CMCC | CTCC | CUCC,分别对应 移动 | 电信 | 联通,如果不指定本参数,则默认使用BGP。可通过 [DescribeResources](https://cloud.tencent.com/document/api/214/70213) 接口查询一个地域所支持的Isp。如果指定运营商,则网络计费模式只能使用按带宽包计费(BANDWIDTH_PACKAGE)。 * @param array $Tags 购买负载均衡的同时,给负载均衡打上标签,最大支持20个标签键值对。 * @param string $Vip 指定VIP申请负载均衡。此参数选填,不填写此参数时自动分配VIP。IPv4和IPv6类型支持此参数,IPv6 NAT64类型不支持。 注意:当指定VIP创建内网实例、或公网IPv6 BGP实例时,若VIP不属于指定VPC子网的网段内时,会创建失败;若VIP已被占用,也会创建失败。 * @param string $BandwidthPackageId 带宽包ID,指定此参数时,网络计费方式(InternetAccessible.InternetChargeType)只支持按带宽包计费(BANDWIDTH_PACKAGE)。 * @param ExclusiveCluster $ExclusiveCluster 独占型实例信息。若创建独占型的内网负载均衡实例,则此参数必填。 * @param string $SlaType 创建性能容量型实例。 -
    • 若需要创建性能容量型实例,则此参数必填,且取值为:SLA,表示创建按量计费模式下的默认规格的性能容量型实例。 -
      • 默认为普通规格的性能容量型实例,SLA对应超强型1规格。 -
      • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。超大型规格的性能容量型正在内测中,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    • 若需要创建共享型实例,则无需填写此参数。
    +
    • 若需要创建性能容量型实例,则此参数必填,且取值为:SLA,表示超强型1规格。 +
      • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。如需超大型规格的性能容量型,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    • 若需要创建共享型实例,则无需填写此参数。
    * @param string $ClientToken 用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。 * @param boolean $SnatPro 是否支持绑定跨地域/跨Vpc绑定IP的功能。 * @param array $SnatIps 开启绑定跨地域/跨Vpc绑定IP的功能后,创建SnatIp。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/DescribeListenersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/DescribeListenersRequest.php index 4c4b5f80f..4d3bae74a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/DescribeListenersRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/DescribeListenersRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setLoadBalancerId(string $LoadBalancerId) 设置负载均衡实例 ID。 * @method array getListenerIds() 获取要查询的负载均衡监听器 ID 数组,最大为100个。 * @method void setListenerIds(array $ListenerIds) 设置要查询的负载均衡监听器 ID 数组,最大为100个。 - * @method string getProtocol() 获取要查询的监听器协议类型,取值 TCP | UDP | HTTP | HTTPS | TCP_SSL。 - * @method void setProtocol(string $Protocol) 设置要查询的监听器协议类型,取值 TCP | UDP | HTTP | HTTPS | TCP_SSL。 + * @method string getProtocol() 获取要查询的监听器协议类型,取值 TCP | UDP | HTTP | HTTPS | TCP_SSL | QUIC。 + * @method void setProtocol(string $Protocol) 设置要查询的监听器协议类型,取值 TCP | UDP | HTTP | HTTPS | TCP_SSL | QUIC。 * @method integer getPort() 获取要查询的监听器的端口。 * @method void setPort(integer $Port) 设置要查询的监听器的端口。 */ @@ -42,7 +42,7 @@ class DescribeListenersRequest extends AbstractModel public $ListenerIds; /** - * @var string 要查询的监听器协议类型,取值 TCP | UDP | HTTP | HTTPS | TCP_SSL。 + * @var string 要查询的监听器协议类型,取值 TCP | UDP | HTTP | HTTPS | TCP_SSL | QUIC。 */ public $Protocol; @@ -54,7 +54,7 @@ class DescribeListenersRequest extends AbstractModel /** * @param string $LoadBalancerId 负载均衡实例 ID。 * @param array $ListenerIds 要查询的负载均衡监听器 ID 数组,最大为100个。 - * @param string $Protocol 要查询的监听器协议类型,取值 TCP | UDP | HTTP | HTTPS | TCP_SSL。 + * @param string $Protocol 要查询的监听器协议类型,取值 TCP | UDP | HTTP | HTTPS | TCP_SSL | QUIC。 * @param integer $Port 要查询的监听器的端口。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/DescribeLoadBalancersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/DescribeLoadBalancersRequest.php index 49aa061af..f3e3e00bb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/DescribeLoadBalancersRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/DescribeLoadBalancersRequest.php @@ -30,8 +30,8 @@ OPEN:公网属性, INTERNAL:内网属性。 * @method void setForward(integer $Forward) 设置负载均衡实例的类型。1:通用的负载均衡实例,0:传统型负载均衡实例。如果不传此参数,则查询所有类型的负载均衡实例。 * @method string getLoadBalancerName() 获取负载均衡实例的名称。 * @method void setLoadBalancerName(string $LoadBalancerName) 设置负载均衡实例的名称。 - * @method string getDomain() 获取腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义。 - * @method void setDomain(string $Domain) 设置腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义。 + * @method string getDomain() 获取腾讯云为负载均衡实例分配的域名。 + * @method void setDomain(string $Domain) 设置腾讯云为负载均衡实例分配的域名。 * @method array getLoadBalancerVips() 获取负载均衡实例的 VIP 地址,支持多个。 * @method void setLoadBalancerVips(array $LoadBalancerVips) 设置负载均衡实例的 VIP 地址,支持多个。 * @method array getBackendPublicIps() 获取负载均衡绑定的后端服务的外网 IP,只支持查询云服务器的公网 IP。 @@ -105,7 +105,7 @@ OPEN:公网属性, INTERNAL:内网属性。 public $LoadBalancerName; /** - * @var string 腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义。 + * @var string 腾讯云为负载均衡实例分配的域名。 */ public $Domain; @@ -195,7 +195,7 @@ OPEN:公网属性, INTERNAL:内网属性。 OPEN:公网属性, INTERNAL:内网属性。 * @param integer $Forward 负载均衡实例的类型。1:通用的负载均衡实例,0:传统型负载均衡实例。如果不传此参数,则查询所有类型的负载均衡实例。 * @param string $LoadBalancerName 负载均衡实例的名称。 - * @param string $Domain 腾讯云为负载均衡实例分配的域名,本参数仅对传统型公网负载均衡才有意义。 + * @param string $Domain 腾讯云为负载均衡实例分配的域名。 * @param array $LoadBalancerVips 负载均衡实例的 VIP 地址,支持多个。 * @param array $BackendPublicIps 负载均衡绑定的后端服务的外网 IP,只支持查询云服务器的公网 IP。 * @param array $BackendPrivateIps 负载均衡绑定的后端服务的内网 IP,只支持查询云服务器的内网 IP。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/HealthCheck.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/HealthCheck.php index 027fd231a..0623e9f92 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/HealthCheck.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/HealthCheck.php @@ -51,9 +51,9 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setHttpCheckPath(string $HttpCheckPath) 设置健康检查路径(仅适用于HTTP/HTTPS转发规则、TCP监听器的HTTP健康检查方式)。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getHttpCheckDomain() 获取健康检查域名(仅适用于HTTP/HTTPS监听器和TCP监听器的HTTP健康检查方式。针对TCP监听器,当使用HTTP健康检查方式时,建议该参数配置为必填项)。 + * @method string getHttpCheckDomain() 获取健康检查域名(仅适用于HTTP/HTTPS监听器和TCP监听器的HTTP健康检查方式。针对TCP监听器,当使用HTTP健康检查方式时,该参数为必填项)。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setHttpCheckDomain(string $HttpCheckDomain) 设置健康检查域名(仅适用于HTTP/HTTPS监听器和TCP监听器的HTTP健康检查方式。针对TCP监听器,当使用HTTP健康检查方式时,建议该参数配置为必填项)。 + * @method void setHttpCheckDomain(string $HttpCheckDomain) 设置健康检查域名(仅适用于HTTP/HTTPS监听器和TCP监听器的HTTP健康检查方式。针对TCP监听器,当使用HTTP健康检查方式时,该参数为必填项)。 注意:此字段可能返回 null,表示取不到有效值。 * @method string getHttpCheckMethod() 获取健康检查方法(仅适用于HTTP/HTTPS转发规则、TCP监听器的HTTP健康检查方式),默认值:HEAD,可选值HEAD或GET。 注意:此字段可能返回 null,表示取不到有效值。 @@ -75,17 +75,17 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setRecvContext(string $RecvContext) 设置自定义探测相关参数。健康检查协议CheckType的值取CUSTOM时,必填此字段,代表健康检查返回的结果,只允许ASCII可见字符,最大长度限制500。(仅适用于TCP/UDP监听器)。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getCheckType() 获取自定义探测相关参数。健康检查使用的协议:TCP | HTTP | CUSTOM(仅适用于TCP/UDP监听器,其中UDP监听器只支持CUSTOM;如果使用自定义健康检查功能,则必传)。 + * @method string getCheckType() 获取健康检查使用的协议。取值 TCP | HTTP | HTTPS | GRPC | PING | CUSTOM,UDP监听器支持PING/CUSTOM,TCP监听器支持TCP/HTTP/CUSTOM,TCP_SSL/QUIC监听器支持TCP/HTTP,HTTP规则支持HTTP/GRPC,HTTPS规则支持HTTP/HTTPS/GRPC。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setCheckType(string $CheckType) 设置自定义探测相关参数。健康检查使用的协议:TCP | HTTP | CUSTOM(仅适用于TCP/UDP监听器,其中UDP监听器只支持CUSTOM;如果使用自定义健康检查功能,则必传)。 + * @method void setCheckType(string $CheckType) 设置健康检查使用的协议。取值 TCP | HTTP | HTTPS | GRPC | PING | CUSTOM,UDP监听器支持PING/CUSTOM,TCP监听器支持TCP/HTTP/CUSTOM,TCP_SSL/QUIC监听器支持TCP/HTTP,HTTP规则支持HTTP/GRPC,HTTPS规则支持HTTP/HTTPS/GRPC。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getHttpVersion() 获取自定义探测相关参数。健康检查协议CheckType的值取HTTP时,必传此字段,代表后端服务的HTTP版本:HTTP/1.0、HTTP/1.1;(仅适用于TCP监听器) + * @method string getHttpVersion() 获取HTTP版本。健康检查协议CheckType的值取HTTP时,必传此字段,代表后端服务的HTTP版本:HTTP/1.0、HTTP/1.1;(仅适用于TCP监听器) 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setHttpVersion(string $HttpVersion) 设置自定义探测相关参数。健康检查协议CheckType的值取HTTP时,必传此字段,代表后端服务的HTTP版本:HTTP/1.0、HTTP/1.1;(仅适用于TCP监听器) + * @method void setHttpVersion(string $HttpVersion) 设置HTTP版本。健康检查协议CheckType的值取HTTP时,必传此字段,代表后端服务的HTTP版本:HTTP/1.0、HTTP/1.1;(仅适用于TCP监听器) 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getSourceIpType() 获取自定义探测相关参数。健康检查源IP类型:0(使用LB的VIP作为源IP),1(使用100.64网段IP作为源IP),默认值:0 + * @method integer getSourceIpType() 获取健康检查源IP类型:0(使用LB的VIP作为源IP),1(使用100.64网段IP作为源IP),默认值:0 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setSourceIpType(integer $SourceIpType) 设置自定义探测相关参数。健康检查源IP类型:0(使用LB的VIP作为源IP),1(使用100.64网段IP作为源IP),默认值:0 + * @method void setSourceIpType(integer $SourceIpType) 设置健康检查源IP类型:0(使用LB的VIP作为源IP),1(使用100.64网段IP作为源IP),默认值:0 注意:此字段可能返回 null,表示取不到有效值。 * @method string getExtendedCode() 获取GRPC健康检查状态码(仅适用于后端转发协议为GRPC的规则)。默认值为 12,可输入值为数值、多个数值、或者范围,例如 20 或 20,25 或 0-99 注意:此字段可能返回 null,表示取不到有效值。 @@ -138,7 +138,7 @@ class HealthCheck extends AbstractModel public $HttpCheckPath; /** - * @var string 健康检查域名(仅适用于HTTP/HTTPS监听器和TCP监听器的HTTP健康检查方式。针对TCP监听器,当使用HTTP健康检查方式时,建议该参数配置为必填项)。 + * @var string 健康检查域名(仅适用于HTTP/HTTPS监听器和TCP监听器的HTTP健康检查方式。针对TCP监听器,当使用HTTP健康检查方式时,该参数为必填项)。 注意:此字段可能返回 null,表示取不到有效值。 */ public $HttpCheckDomain; @@ -174,19 +174,19 @@ class HealthCheck extends AbstractModel public $RecvContext; /** - * @var string 自定义探测相关参数。健康检查使用的协议:TCP | HTTP | CUSTOM(仅适用于TCP/UDP监听器,其中UDP监听器只支持CUSTOM;如果使用自定义健康检查功能,则必传)。 + * @var string 健康检查使用的协议。取值 TCP | HTTP | HTTPS | GRPC | PING | CUSTOM,UDP监听器支持PING/CUSTOM,TCP监听器支持TCP/HTTP/CUSTOM,TCP_SSL/QUIC监听器支持TCP/HTTP,HTTP规则支持HTTP/GRPC,HTTPS规则支持HTTP/HTTPS/GRPC。 注意:此字段可能返回 null,表示取不到有效值。 */ public $CheckType; /** - * @var string 自定义探测相关参数。健康检查协议CheckType的值取HTTP时,必传此字段,代表后端服务的HTTP版本:HTTP/1.0、HTTP/1.1;(仅适用于TCP监听器) + * @var string HTTP版本。健康检查协议CheckType的值取HTTP时,必传此字段,代表后端服务的HTTP版本:HTTP/1.0、HTTP/1.1;(仅适用于TCP监听器) 注意:此字段可能返回 null,表示取不到有效值。 */ public $HttpVersion; /** - * @var integer 自定义探测相关参数。健康检查源IP类型:0(使用LB的VIP作为源IP),1(使用100.64网段IP作为源IP),默认值:0 + * @var integer 健康检查源IP类型:0(使用LB的VIP作为源IP),1(使用100.64网段IP作为源IP),默认值:0 注意:此字段可能返回 null,表示取不到有效值。 */ public $SourceIpType; @@ -213,7 +213,7 @@ class HealthCheck extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param string $HttpCheckPath 健康检查路径(仅适用于HTTP/HTTPS转发规则、TCP监听器的HTTP健康检查方式)。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $HttpCheckDomain 健康检查域名(仅适用于HTTP/HTTPS监听器和TCP监听器的HTTP健康检查方式。针对TCP监听器,当使用HTTP健康检查方式时,建议该参数配置为必填项)。 + * @param string $HttpCheckDomain 健康检查域名(仅适用于HTTP/HTTPS监听器和TCP监听器的HTTP健康检查方式。针对TCP监听器,当使用HTTP健康检查方式时,该参数为必填项)。 注意:此字段可能返回 null,表示取不到有效值。 * @param string $HttpCheckMethod 健康检查方法(仅适用于HTTP/HTTPS转发规则、TCP监听器的HTTP健康检查方式),默认值:HEAD,可选值HEAD或GET。 注意:此字段可能返回 null,表示取不到有效值。 @@ -225,11 +225,11 @@ class HealthCheck extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RecvContext 自定义探测相关参数。健康检查协议CheckType的值取CUSTOM时,必填此字段,代表健康检查返回的结果,只允许ASCII可见字符,最大长度限制500。(仅适用于TCP/UDP监听器)。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $CheckType 自定义探测相关参数。健康检查使用的协议:TCP | HTTP | CUSTOM(仅适用于TCP/UDP监听器,其中UDP监听器只支持CUSTOM;如果使用自定义健康检查功能,则必传)。 + * @param string $CheckType 健康检查使用的协议。取值 TCP | HTTP | HTTPS | GRPC | PING | CUSTOM,UDP监听器支持PING/CUSTOM,TCP监听器支持TCP/HTTP/CUSTOM,TCP_SSL/QUIC监听器支持TCP/HTTP,HTTP规则支持HTTP/GRPC,HTTPS规则支持HTTP/HTTPS/GRPC。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $HttpVersion 自定义探测相关参数。健康检查协议CheckType的值取HTTP时,必传此字段,代表后端服务的HTTP版本:HTTP/1.0、HTTP/1.1;(仅适用于TCP监听器) + * @param string $HttpVersion HTTP版本。健康检查协议CheckType的值取HTTP时,必传此字段,代表后端服务的HTTP版本:HTTP/1.0、HTTP/1.1;(仅适用于TCP监听器) 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $SourceIpType 自定义探测相关参数。健康检查源IP类型:0(使用LB的VIP作为源IP),1(使用100.64网段IP作为源IP),默认值:0 + * @param integer $SourceIpType 健康检查源IP类型:0(使用LB的VIP作为源IP),1(使用100.64网段IP作为源IP),默认值:0 注意:此字段可能返回 null,表示取不到有效值。 * @param string $ExtendedCode GRPC健康检查状态码(仅适用于后端转发协议为GRPC的规则)。默认值为 12,可输入值为数值、多个数值、或者范围,例如 20 或 20,25 或 0-99 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/ModifyListenerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/ModifyListenerRequest.php index f75c9909e..7e5d69ae6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/ModifyListenerRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/ModifyListenerRequest.php @@ -28,10 +28,10 @@ use TencentCloud\Common\AbstractModel; * @method void setListenerName(string $ListenerName) 设置新的监听器名称。 * @method integer getSessionExpireTime() 获取会话保持时间,单位:秒。可选值:30~3600,默认 0,表示不开启。此参数仅适用于TCP/UDP监听器。 * @method void setSessionExpireTime(integer $SessionExpireTime) 设置会话保持时间,单位:秒。可选值:30~3600,默认 0,表示不开启。此参数仅适用于TCP/UDP监听器。 - * @method HealthCheck getHealthCheck() 获取健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL监听器。 - * @method void setHealthCheck(HealthCheck $HealthCheck) 设置健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL监听器。 - * @method CertificateInput getCertificate() 获取证书相关信息,此参数仅适用于HTTPS/TCP_SSL监听器;此参数和MultiCertInfo不能同时传入。 - * @method void setCertificate(CertificateInput $Certificate) 设置证书相关信息,此参数仅适用于HTTPS/TCP_SSL监听器;此参数和MultiCertInfo不能同时传入。 + * @method HealthCheck getHealthCheck() 获取健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 + * @method void setHealthCheck(HealthCheck $HealthCheck) 设置健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 + * @method CertificateInput getCertificate() 获取证书相关信息,此参数仅适用于HTTPS/TCP_SSL/QUIC监听器;此参数和MultiCertInfo不能同时传入。 + * @method void setCertificate(CertificateInput $Certificate) 设置证书相关信息,此参数仅适用于HTTPS/TCP_SSL/QUIC监听器;此参数和MultiCertInfo不能同时传入。 * @method string getScheduler() 获取监听器转发的方式。可选值:WRR、LEAST_CONN 分别表示按权重轮询、最小连接数, 默认为 WRR。 * @method void setScheduler(string $Scheduler) 设置监听器转发的方式。可选值:WRR、LEAST_CONN @@ -78,12 +78,12 @@ class ModifyListenerRequest extends AbstractModel public $SessionExpireTime; /** - * @var HealthCheck 健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL监听器。 + * @var HealthCheck 健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 */ public $HealthCheck; /** - * @var CertificateInput 证书相关信息,此参数仅适用于HTTPS/TCP_SSL监听器;此参数和MultiCertInfo不能同时传入。 + * @var CertificateInput 证书相关信息,此参数仅适用于HTTPS/TCP_SSL/QUIC监听器;此参数和MultiCertInfo不能同时传入。 */ public $Certificate; @@ -143,8 +143,8 @@ class ModifyListenerRequest extends AbstractModel * @param string $ListenerId 负载均衡监听器ID。 * @param string $ListenerName 新的监听器名称。 * @param integer $SessionExpireTime 会话保持时间,单位:秒。可选值:30~3600,默认 0,表示不开启。此参数仅适用于TCP/UDP监听器。 - * @param HealthCheck $HealthCheck 健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL监听器。 - * @param CertificateInput $Certificate 证书相关信息,此参数仅适用于HTTPS/TCP_SSL监听器;此参数和MultiCertInfo不能同时传入。 + * @param HealthCheck $HealthCheck 健康检查相关参数,此参数仅适用于TCP/UDP/TCP_SSL/QUIC监听器。 + * @param CertificateInput $Certificate 证书相关信息,此参数仅适用于HTTPS/TCP_SSL/QUIC监听器;此参数和MultiCertInfo不能同时传入。 * @param string $Scheduler 监听器转发的方式。可选值:WRR、LEAST_CONN 分别表示按权重轮询、最小连接数, 默认为 WRR。 * @param integer $SniSwitch 是否开启SNI特性,此参数仅适用于HTTPS监听器。注意:未开启SNI的监听器可以开启SNI;已开启SNI的监听器不能关闭SNI。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/RewriteLocationMap.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/RewriteLocationMap.php index 9390b8136..a8d718925 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/RewriteLocationMap.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/RewriteLocationMap.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getSourceLocationId() 获取源转发规则ID * @method void setSourceLocationId(string $SourceLocationId) 设置源转发规则ID - * @method string getTargetLocationId() 获取重定向至的目标转发规则ID - * @method void setTargetLocationId(string $TargetLocationId) 设置重定向至的目标转发规则ID + * @method string getTargetLocationId() 获取重定向目标转发规则的ID + * @method void setTargetLocationId(string $TargetLocationId) 设置重定向目标转发规则的ID * @method integer getRewriteCode() 获取重定向状态码,可取值301,302,307 * @method void setRewriteCode(integer $RewriteCode) 设置重定向状态码,可取值301,302,307 * @method boolean getTakeUrl() 获取重定向是否携带匹配的url,配置RewriteCode时必填 @@ -39,7 +39,7 @@ class RewriteLocationMap extends AbstractModel public $SourceLocationId; /** - * @var string 重定向至的目标转发规则ID + * @var string 重定向目标转发规则的ID */ public $TargetLocationId; @@ -60,7 +60,7 @@ class RewriteLocationMap extends AbstractModel /** * @param string $SourceLocationId 源转发规则ID - * @param string $TargetLocationId 重定向至的目标转发规则ID + * @param string $TargetLocationId 重定向目标转发规则的ID * @param integer $RewriteCode 重定向状态码,可取值301,302,307 * @param boolean $TakeUrl 重定向是否携带匹配的url,配置RewriteCode时必填 * @param string $SourceDomain 源转发的域名,必须是SourceLocationId对应的域名,配置RewriteCode时必填 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/RuleInput.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/RuleInput.php index 6d70c3369..127829b49 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/RuleInput.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/RuleInput.php @@ -34,8 +34,8 @@ use TencentCloud\Common\AbstractModel; 分别表示按权重轮询、最小连接数、按IP哈希, 默认为 WRR。 * @method void setScheduler(string $Scheduler) 设置规则的请求转发方式,可选值:WRR、LEAST_CONN、IP_HASH 分别表示按权重轮询、最小连接数、按IP哈希, 默认为 WRR。 - * @method string getForwardType() 获取负载均衡与后端服务之间的转发协议,目前支持 HTTP/HTTPS/TRPC,TRPC暂未对外开放。 - * @method void setForwardType(string $ForwardType) 设置负载均衡与后端服务之间的转发协议,目前支持 HTTP/HTTPS/TRPC,TRPC暂未对外开放。 + * @method string getForwardType() 获取负载均衡与后端服务之间的转发协议,目前支持 HTTP/HTTPS/GRPC/TRPC,TRPC暂未对外开放,默认HTTP。 + * @method void setForwardType(string $ForwardType) 设置负载均衡与后端服务之间的转发协议,目前支持 HTTP/HTTPS/GRPC/TRPC,TRPC暂未对外开放,默认HTTP。 * @method boolean getDefaultServer() 获取是否将该域名设为默认域名,注意,一个监听器下只能设置一个默认域名。 * @method void setDefaultServer(boolean $DefaultServer) 设置是否将该域名设为默认域名,注意,一个监听器下只能设置一个默认域名。 * @method boolean getHttp2() 获取是否开启Http2,注意,只有HTTPS域名才能开启Http2。 @@ -87,7 +87,7 @@ class RuleInput extends AbstractModel public $Scheduler; /** - * @var string 负载均衡与后端服务之间的转发协议,目前支持 HTTP/HTTPS/TRPC,TRPC暂未对外开放。 + * @var string 负载均衡与后端服务之间的转发协议,目前支持 HTTP/HTTPS/GRPC/TRPC,TRPC暂未对外开放,默认HTTP。 */ public $ForwardType; @@ -139,7 +139,7 @@ class RuleInput extends AbstractModel * @param CertificateInput $Certificate 证书信息;此参数和MultiCertInfo不能同时传入。 * @param string $Scheduler 规则的请求转发方式,可选值:WRR、LEAST_CONN、IP_HASH 分别表示按权重轮询、最小连接数、按IP哈希, 默认为 WRR。 - * @param string $ForwardType 负载均衡与后端服务之间的转发协议,目前支持 HTTP/HTTPS/TRPC,TRPC暂未对外开放。 + * @param string $ForwardType 负载均衡与后端服务之间的转发协议,目前支持 HTTP/HTTPS/GRPC/TRPC,TRPC暂未对外开放,默认HTTP。 * @param boolean $DefaultServer 是否将该域名设为默认域名,注意,一个监听器下只能设置一个默认域名。 * @param boolean $Http2 是否开启Http2,注意,只有HTTPS域名才能开启Http2。 * @param string $TargetType 后端目标类型,NODE表示绑定普通节点,TARGETGROUP表示绑定目标组 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/SlaUpdateParam.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/SlaUpdateParam.php index cd4bae23b..6679fed0e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/SlaUpdateParam.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Clb/V20180317/Models/SlaUpdateParam.php @@ -22,12 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method string getLoadBalancerId() 获取lb的字符串ID * @method void setLoadBalancerId(string $LoadBalancerId) 设置lb的字符串ID - * @method string getSlaType() 获取升级为性能容量型,固定取值为SLA。SLA表示升级为默认规格的性能容量型实例。 -
    • 当您开通了普通规格的性能容量型时,SLA对应超强型1规格。普通规格的性能容量型正在内测中,请提交 [内测申请](https://cloud.tencent.com/apply/p/hf45esx99lf)。
    • -
    • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。超大型规格的性能容量型正在内测中,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    - * @method void setSlaType(string $SlaType) 设置升级为性能容量型,固定取值为SLA。SLA表示升级为默认规格的性能容量型实例。 -
    • 当您开通了普通规格的性能容量型时,SLA对应超强型1规格。普通规格的性能容量型正在内测中,请提交 [内测申请](https://cloud.tencent.com/apply/p/hf45esx99lf)。
    • -
    • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。超大型规格的性能容量型正在内测中,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    + * @method string getSlaType() 获取升级为性能容量型,固定取值为SLA。SLA表示超强型1规格。 +当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。如需超大型规格的性能容量型,请提交[工单申请](https://console.cloud.tencent.com/workorder/category)。 + * @method void setSlaType(string $SlaType) 设置升级为性能容量型,固定取值为SLA。SLA表示超强型1规格。 +当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。如需超大型规格的性能容量型,请提交[工单申请](https://console.cloud.tencent.com/workorder/category)。 */ class SlaUpdateParam extends AbstractModel { @@ -37,17 +35,15 @@ class SlaUpdateParam extends AbstractModel public $LoadBalancerId; /** - * @var string 升级为性能容量型,固定取值为SLA。SLA表示升级为默认规格的性能容量型实例。 -
    • 当您开通了普通规格的性能容量型时,SLA对应超强型1规格。普通规格的性能容量型正在内测中,请提交 [内测申请](https://cloud.tencent.com/apply/p/hf45esx99lf)。
    • -
    • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。超大型规格的性能容量型正在内测中,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    + * @var string 升级为性能容量型,固定取值为SLA。SLA表示超强型1规格。 +当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。如需超大型规格的性能容量型,请提交[工单申请](https://console.cloud.tencent.com/workorder/category)。 */ public $SlaType; /** * @param string $LoadBalancerId lb的字符串ID - * @param string $SlaType 升级为性能容量型,固定取值为SLA。SLA表示升级为默认规格的性能容量型实例。 -
    • 当您开通了普通规格的性能容量型时,SLA对应超强型1规格。普通规格的性能容量型正在内测中,请提交 [内测申请](https://cloud.tencent.com/apply/p/hf45esx99lf)。
    • -
    • 当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。超大型规格的性能容量型正在内测中,请提交 [工单申请](https://console.cloud.tencent.com/workorder/category)。
    + * @param string $SlaType 升级为性能容量型,固定取值为SLA。SLA表示超强型1规格。 +当您开通了超大型规格的性能容量型时,SLA对应超强型4规格。如需超大型规格的性能容量型,请提交[工单申请](https://console.cloud.tencent.com/workorder/category)。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cloudstudio/V20230508/Models/CreateWorkspaceTokenRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cloudstudio/V20230508/Models/CreateWorkspaceTokenRequest.php index 76baad0d4..ef084d512 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cloudstudio/V20230508/Models/CreateWorkspaceTokenRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cloudstudio/V20230508/Models/CreateWorkspaceTokenRequest.php @@ -24,6 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setSpaceKey(string $SpaceKey) 设置工作空间 SpaceKey * @method integer getTokenExpiredLimitSec() 获取token过期时间,单位是秒,默认 3600 * @method void setTokenExpiredLimitSec(integer $TokenExpiredLimitSec) 设置token过期时间,单位是秒,默认 3600 + * @method array getPolicies() 获取token 授权策略,可选值为 workspace-run-only, all。默认为 all + * @method void setPolicies(array $Policies) 设置token 授权策略,可选值为 workspace-run-only, all。默认为 all */ class CreateWorkspaceTokenRequest extends AbstractModel { @@ -37,9 +39,15 @@ class CreateWorkspaceTokenRequest extends AbstractModel */ public $TokenExpiredLimitSec; + /** + * @var array token 授权策略,可选值为 workspace-run-only, all。默认为 all + */ + public $Policies; + /** * @param string $SpaceKey 工作空间 SpaceKey * @param integer $TokenExpiredLimitSec token过期时间,单位是秒,默认 3600 + * @param array $Policies token 授权策略,可选值为 workspace-run-only, all。默认为 all */ function __construct() { @@ -61,5 +69,9 @@ class CreateWorkspaceTokenRequest extends AbstractModel if (array_key_exists("TokenExpiredLimitSec",$param) and $param["TokenExpiredLimitSec"] !== null) { $this->TokenExpiredLimitSec = $param["TokenExpiredLimitSec"]; } + + if (array_key_exists("Policies",$param) and $param["Policies"] !== null) { + $this->Policies = $param["Policies"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/ClsClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/ClsClient.php index 6ea1e6671..a155d09d6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/ClsClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/ClsClient.php @@ -55,6 +55,7 @@ use TencentCloud\Cls\V20201016\Models as Models; * @method Models\DeleteLogsetResponse DeleteLogset(Models\DeleteLogsetRequest $req) 本接口用于删除日志集。 * @method Models\DeleteMachineGroupResponse DeleteMachineGroup(Models\DeleteMachineGroupRequest $req) 删除机器组 * @method Models\DeleteMachineGroupInfoResponse DeleteMachineGroupInfo(Models\DeleteMachineGroupInfoRequest $req) 用于删除机器组信息 + * @method Models\DeleteScheduledSqlResponse DeleteScheduledSql(Models\DeleteScheduledSqlRequest $req) 本接口用于删除ScheduledSql任务 * @method Models\DeleteShipperResponse DeleteShipper(Models\DeleteShipperRequest $req) 删除投递COS任务 * @method Models\DeleteTopicResponse DeleteTopic(Models\DeleteTopicRequest $req) 本接口用于删除日志主题。 * @method Models\DescribeAlarmNoticesResponse DescribeAlarmNotices(Models\DescribeAlarmNoticesRequest $req) 该接口用于获取通知渠道组列表 @@ -65,10 +66,13 @@ use TencentCloud\Cls\V20201016\Models as Models; * @method Models\DescribeConfigsResponse DescribeConfigs(Models\DescribeConfigsRequest $req) 获取采集规则配置 * @method Models\DescribeConsumerResponse DescribeConsumer(Models\DescribeConsumerRequest $req) 本接口用于获取投递配置 * @method Models\DescribeCosRechargesResponse DescribeCosRecharges(Models\DescribeCosRechargesRequest $req) 本接口用于获取cos导入配置 + * @method Models\DescribeDashboardsResponse DescribeDashboards(Models\DescribeDashboardsRequest $req) 本接口用于获取仪表盘 * @method Models\DescribeDataTransformInfoResponse DescribeDataTransformInfo(Models\DescribeDataTransformInfoRequest $req) 本接口用于获取数据加工任务列表基本信息 * @method Models\DescribeExportsResponse DescribeExports(Models\DescribeExportsRequest $req) 本接口用于获取日志下载任务列表 * @method Models\DescribeIndexResponse DescribeIndex(Models\DescribeIndexRequest $req) 本接口用于获取索引配置信息 + * @method Models\DescribeKafkaConsumerResponse DescribeKafkaConsumer(Models\DescribeKafkaConsumerRequest $req) 获取Kafka协议消费信息 * @method Models\DescribeKafkaRechargesResponse DescribeKafkaRecharges(Models\DescribeKafkaRechargesRequest $req) 本接口用于获取Kafka数据订阅任务 + * @method Models\DescribeKafkaUserResponse DescribeKafkaUser(Models\DescribeKafkaUserRequest $req) 本接口用于获取kafka用户信息 * @method Models\DescribeLogContextResponse DescribeLogContext(Models\DescribeLogContextRequest $req) 本接口用于搜索日志上下文附近的内容 * @method Models\DescribeLogHistogramResponse DescribeLogHistogram(Models\DescribeLogHistogramRequest $req) 本接口用于构建日志数量直方图 * @method Models\DescribeLogsetsResponse DescribeLogsets(Models\DescribeLogsetsRequest $req) 本接口用于获取日志集信息列表。 @@ -76,6 +80,7 @@ use TencentCloud\Cls\V20201016\Models as Models; * @method Models\DescribeMachineGroupsResponse DescribeMachineGroups(Models\DescribeMachineGroupsRequest $req) 获取机器组信息列表 * @method Models\DescribeMachinesResponse DescribeMachines(Models\DescribeMachinesRequest $req) 获取制定机器组下的机器状态 * @method Models\DescribePartitionsResponse DescribePartitions(Models\DescribePartitionsRequest $req) 本接口用于获取主题分区列表。 + * @method Models\DescribeScheduledSqlInfoResponse DescribeScheduledSqlInfo(Models\DescribeScheduledSqlInfoRequest $req) 本接口用于获取ScheduledSql任务列表 * @method Models\DescribeShipperTasksResponse DescribeShipperTasks(Models\DescribeShipperTasksRequest $req) 获取投递任务列表 * @method Models\DescribeShippersResponse DescribeShippers(Models\DescribeShippersRequest $req) 获取投递到COS的任务配置信息 * @method Models\DescribeTopicsResponse DescribeTopics(Models\DescribeTopicsRequest $req) 本接口用于获取日志主题列表,支持分页 @@ -90,9 +95,11 @@ use TencentCloud\Cls\V20201016\Models as Models; * @method Models\ModifyDataTransformResponse ModifyDataTransform(Models\ModifyDataTransformRequest $req) 本接口用于修改数据加工任务 * @method Models\ModifyIndexResponse ModifyIndex(Models\ModifyIndexRequest $req) 本接口用于修改索引配置,该接口除受默认接口请求频率限制外,针对单个日志主题,并发数不能超过1,即同一时间同一个日志主题只能有一个正在执行的索引配置修改操作。 + * @method Models\ModifyKafkaConsumerResponse ModifyKafkaConsumer(Models\ModifyKafkaConsumerRequest $req) 修改Kafka协议消费信息 * @method Models\ModifyKafkaRechargeResponse ModifyKafkaRecharge(Models\ModifyKafkaRechargeRequest $req) 本接口用于修改Kafka数据订阅任务 * @method Models\ModifyLogsetResponse ModifyLogset(Models\ModifyLogsetRequest $req) 本接口用于修改日志集信息 * @method Models\ModifyMachineGroupResponse ModifyMachineGroup(Models\ModifyMachineGroupRequest $req) 修改机器组 + * @method Models\ModifyScheduledSqlResponse ModifyScheduledSql(Models\ModifyScheduledSqlRequest $req) 本接口用于修改ScheduledSql任务 * @method Models\ModifyShipperResponse ModifyShipper(Models\ModifyShipperRequest $req) 修改现有的投递规则,客户如果使用此接口,需要自行处理CLS对指定bucket的写权限。 * @method Models\ModifyTopicResponse ModifyTopic(Models\ModifyTopicRequest $req) 本接口用于修改日志主题。 * @method Models\OpenKafkaConsumerResponse OpenKafkaConsumer(Models\OpenKafkaConsumerRequest $req) 打开Kafka协议消费功能 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CloseKafkaConsumerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CloseKafkaConsumerRequest.php index 3e200d2fa..a214ded49 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CloseKafkaConsumerRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CloseKafkaConsumerRequest.php @@ -20,18 +20,18 @@ use TencentCloud\Common\AbstractModel; /** * CloseKafkaConsumer请求参数结构体 * - * @method string getFromTopicId() 获取CLS对应的topic标识 - * @method void setFromTopicId(string $FromTopicId) 设置CLS对应的topic标识 + * @method string getFromTopicId() 获取日志主题ID + * @method void setFromTopicId(string $FromTopicId) 设置日志主题ID */ class CloseKafkaConsumerRequest extends AbstractModel { /** - * @var string CLS对应的topic标识 + * @var string 日志主题ID */ public $FromTopicId; /** - * @param string $FromTopicId CLS对应的topic标识 + * @param string $FromTopicId 日志主题ID */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ConfigExtraInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ConfigExtraInfo.php index a61534c32..db58ce9ee 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ConfigExtraInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ConfigExtraInfo.php @@ -81,6 +81,18 @@ use TencentCloud\Common\AbstractModel; * @method string getTopicName() 获取日志主题name 注意:此字段可能返回 null,表示取不到有效值。 * @method void setTopicName(string $TopicName) 设置日志主题name +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getAdvancedConfig() 获取高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setAdvancedConfig(string $AdvancedConfig) 设置高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} 注意:此字段可能返回 null,表示取不到有效值。 */ class ConfigExtraInfo extends AbstractModel @@ -192,6 +204,16 @@ class ConfigExtraInfo extends AbstractModel */ public $TopicName; + /** + * @var string 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $AdvancedConfig; + /** * @param string $ConfigExtraId 采集规则扩展配置ID * @param string $Name 采集规则名称 @@ -223,6 +245,12 @@ class ConfigExtraInfo extends AbstractModel * @param string $LogsetName 日志集name 注意:此字段可能返回 null,表示取不到有效值。 * @param string $TopicName 日志主题name +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $AdvancedConfig 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -322,5 +350,9 @@ class ConfigExtraInfo extends AbstractModel if (array_key_exists("TopicName",$param) and $param["TopicName"] !== null) { $this->TopicName = $param["TopicName"]; } + + if (array_key_exists("AdvancedConfig",$param) and $param["AdvancedConfig"] !== null) { + $this->AdvancedConfig = $param["AdvancedConfig"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ConfigInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ConfigInfo.php index 903b8fcfe..5c3d5bbfe 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ConfigInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ConfigInfo.php @@ -57,6 +57,18 @@ use TencentCloud\Common\AbstractModel; * @method string getUserDefineRule() 获取用户自定义解析字符串 注意:此字段可能返回 null,表示取不到有效值。 * @method void setUserDefineRule(string $UserDefineRule) 设置用户自定义解析字符串 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getAdvancedConfig() 获取高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setAdvancedConfig(string $AdvancedConfig) 设置高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} 注意:此字段可能返回 null,表示取不到有效值。 */ class ConfigInfo extends AbstractModel @@ -124,6 +136,16 @@ class ConfigInfo extends AbstractModel */ public $UserDefineRule; + /** + * @var string 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $AdvancedConfig; + /** * @param string $ConfigId 采集规则配置ID * @param string $Name 采集规则配置名称 @@ -143,6 +165,12 @@ class ConfigInfo extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param string $CreateTime 创建时间 * @param string $UserDefineRule 用户自定义解析字符串 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $AdvancedConfig 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -207,5 +235,9 @@ class ConfigInfo extends AbstractModel if (array_key_exists("UserDefineRule",$param) and $param["UserDefineRule"] !== null) { $this->UserDefineRule = $param["UserDefineRule"]; } + + if (array_key_exists("AdvancedConfig",$param) and $param["AdvancedConfig"] !== null) { + $this->AdvancedConfig = $param["AdvancedConfig"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateConfigExtraRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateConfigExtraRequest.php index 9f413639a..c4a77142f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateConfigExtraRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateConfigExtraRequest.php @@ -54,6 +54,16 @@ use TencentCloud\Common\AbstractModel; * @method void setGroupId(string $GroupId) 设置绑定的机器组id * @method array getGroupIds() 获取绑定的机器组id列表 * @method void setGroupIds(array $GroupIds) 设置绑定的机器组id列表 + * @method string getAdvancedConfig() 获取高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} + * @method void setAdvancedConfig(string $AdvancedConfig) 设置高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ class CreateConfigExtraRequest extends AbstractModel { @@ -142,6 +152,15 @@ class CreateConfigExtraRequest extends AbstractModel */ public $GroupIds; + /** + * @var string 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} + */ + public $AdvancedConfig; + /** * @param string $Name 采集配置规程名称,最长63个字符,只能包含小写字符、数字及分隔符(“-”),且必须以小写字符开头,数字或小写字符结尾 * @param string $TopicId 日志主题id @@ -160,6 +179,11 @@ class CreateConfigExtraRequest extends AbstractModel * @param string $UserDefineRule 用户自定义采集规则,Json格式序列化的字符串 * @param string $GroupId 绑定的机器组id * @param array $GroupIds 绑定的机器组id列表 + * @param string $AdvancedConfig 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ function __construct() { @@ -250,5 +274,9 @@ class CreateConfigExtraRequest extends AbstractModel if (array_key_exists("GroupIds",$param) and $param["GroupIds"] !== null) { $this->GroupIds = $param["GroupIds"]; } + + if (array_key_exists("AdvancedConfig",$param) and $param["AdvancedConfig"] !== null) { + $this->AdvancedConfig = $param["AdvancedConfig"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateConfigRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateConfigRequest.php index b354a90b7..02c7003b1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateConfigRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateConfigRequest.php @@ -34,8 +34,16 @@ use TencentCloud\Common\AbstractModel; * @method void setExcludePaths(array $ExcludePaths) 设置采集黑名单路径列表 * @method string getUserDefineRule() 获取用户自定义采集规则,Json格式序列化的字符串 * @method void setUserDefineRule(string $UserDefineRule) 设置用户自定义采集规则,Json格式序列化的字符串 - * @method string getAdvancedConfig() 获取高级采集配置 - * @method void setAdvancedConfig(string $AdvancedConfig) 设置高级采集配置 + * @method string getAdvancedConfig() 获取高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} + * @method void setAdvancedConfig(string $AdvancedConfig) 设置高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ class CreateConfigRequest extends AbstractModel { @@ -75,7 +83,11 @@ class CreateConfigRequest extends AbstractModel public $UserDefineRule; /** - * @var string 高级采集配置 + * @var string 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ public $AdvancedConfig; @@ -87,7 +99,11 @@ class CreateConfigRequest extends AbstractModel * @param ExtractRuleInfo $ExtractRule 提取规则,如果设置了ExtractRule,则必须设置LogType * @param array $ExcludePaths 采集黑名单路径列表 * @param string $UserDefineRule 用户自定义采集规则,Json格式序列化的字符串 - * @param string $AdvancedConfig 高级采集配置 + * @param string $AdvancedConfig 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateMachineGroupRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateMachineGroupRequest.php index 9bf7ea86c..602864de6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateMachineGroupRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateMachineGroupRequest.php @@ -36,6 +36,8 @@ use TencentCloud\Common\AbstractModel; * @method void setServiceLogging(boolean $ServiceLogging) 设置是否开启服务日志,用于记录因Loglistener 服务自身产生的log,开启后,会创建内部日志集cls_service_logging和日志主题loglistener_status,loglistener_alarm,loglistener_business,不产生计费 * @method array getMetaTags() 获取机器组元数据信息列表 * @method void setMetaTags(array $MetaTags) 设置机器组元数据信息列表 + * @method integer getOSType() 获取系统类型,默认0,0:Linux,1: windows + * @method void setOSType(integer $OSType) 设置系统类型,默认0,0:Linux,1: windows */ class CreateMachineGroupRequest extends AbstractModel { @@ -79,6 +81,11 @@ class CreateMachineGroupRequest extends AbstractModel */ public $MetaTags; + /** + * @var integer 系统类型,默认0,0:Linux,1: windows + */ + public $OSType; + /** * @param string $GroupName 机器组名字,不能重复 * @param MachineGroupTypeInfo $MachineGroupType 创建机器组类型,Type为ip,Values中为Ip字符串列表创建机器组,Type为label, Values中为标签字符串列表创建机器组 @@ -88,6 +95,7 @@ class CreateMachineGroupRequest extends AbstractModel * @param string $UpdateEndTime 升级结束时间,建议业务低峰期升级LogListener * @param boolean $ServiceLogging 是否开启服务日志,用于记录因Loglistener 服务自身产生的log,开启后,会创建内部日志集cls_service_logging和日志主题loglistener_status,loglistener_alarm,loglistener_business,不产生计费 * @param array $MetaTags 机器组元数据信息列表 + * @param integer $OSType 系统类型,默认0,0:Linux,1: windows */ function __construct() { @@ -144,5 +152,9 @@ class CreateMachineGroupRequest extends AbstractModel array_push($this->MetaTags, $obj); } } + + if (array_key_exists("OSType",$param) and $param["OSType"] !== null) { + $this->OSType = $param["OSType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateScheduledSqlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateScheduledSqlRequest.php index dab221ced..26e98a18a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateScheduledSqlRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/CreateScheduledSqlRequest.php @@ -24,28 +24,28 @@ use TencentCloud\Common\AbstractModel; * @method void setSrcTopicId(string $SrcTopicId) 设置源日志主题 * @method string getName() 获取任务名称 * @method void setName(string $Name) 设置任务名称 - * @method integer getEnableFlag() 获取任务启动状态. 1正常开启, 2关闭 - * @method void setEnableFlag(integer $EnableFlag) 设置任务启动状态. 1正常开启, 2关闭 - * @method ScheduledSqlResouceInfo getDstResource() 获取加工任务目的topic_id以及别名 - * @method void setDstResource(ScheduledSqlResouceInfo $DstResource) 设置加工任务目的topic_id以及别名 - * @method string getScheduledSqlContent() 获取ScheduledSQL语句 - * @method void setScheduledSqlContent(string $ScheduledSqlContent) 设置ScheduledSQL语句 + * @method integer getEnableFlag() 获取任务启动状态. 1开启, 2关闭 + * @method void setEnableFlag(integer $EnableFlag) 设置任务启动状态. 1开启, 2关闭 + * @method ScheduledSqlResouceInfo getDstResource() 获取定时SQL分析目标日志主题 + * @method void setDstResource(ScheduledSqlResouceInfo $DstResource) 设置定时SQL分析目标日志主题 + * @method string getScheduledSqlContent() 获取查询语句 + * @method void setScheduledSqlContent(string $ScheduledSqlContent) 设置查询语句 * @method integer getProcessStartTime() 获取调度开始时间,Unix时间戳,单位ms * @method void setProcessStartTime(integer $ProcessStartTime) 设置调度开始时间,Unix时间戳,单位ms - * @method integer getProcessType() 获取调度类型,1:持续运行 2:指定调度结束时间 - * @method void setProcessType(integer $ProcessType) 设置调度类型,1:持续运行 2:指定调度结束时间 + * @method integer getProcessType() 获取调度类型,1:持续运行 2:指定时间范围 + * @method void setProcessType(integer $ProcessType) 设置调度类型,1:持续运行 2:指定时间范围 * @method integer getProcessPeriod() 获取调度周期(分钟) * @method void setProcessPeriod(integer $ProcessPeriod) 设置调度周期(分钟) - * @method string getProcessTimeWindow() 获取调度时间窗口 - * @method void setProcessTimeWindow(string $ProcessTimeWindow) 设置调度时间窗口 + * @method string getProcessTimeWindow() 获取单次查询的时间窗口 + * @method void setProcessTimeWindow(string $ProcessTimeWindow) 设置单次查询的时间窗口 * @method integer getProcessDelay() 获取执行延迟(秒) * @method void setProcessDelay(integer $ProcessDelay) 设置执行延迟(秒) * @method string getSrcTopicRegion() 获取源topicId的地域信息 * @method void setSrcTopicRegion(string $SrcTopicRegion) 设置源topicId的地域信息 * @method integer getProcessEndTime() 获取调度结束时间,当ProcessType=2时为必传字段, Unix时间戳,单位ms * @method void setProcessEndTime(integer $ProcessEndTime) 设置调度结束时间,当ProcessType=2时为必传字段, Unix时间戳,单位ms - * @method integer getSyntaxRule() 获取语法规则。 默认值为0。0:Lucene语法,1:CQL语法 - * @method void setSyntaxRule(integer $SyntaxRule) 设置语法规则。 默认值为0。0:Lucene语法,1:CQL语法 + * @method integer getSyntaxRule() 获取查询语法规则。 默认值为0。0:Lucene语法,1:CQL语法 + * @method void setSyntaxRule(integer $SyntaxRule) 设置查询语法规则。 默认值为0。0:Lucene语法,1:CQL语法 */ class CreateScheduledSqlRequest extends AbstractModel { @@ -60,17 +60,17 @@ class CreateScheduledSqlRequest extends AbstractModel public $Name; /** - * @var integer 任务启动状态. 1正常开启, 2关闭 + * @var integer 任务启动状态. 1开启, 2关闭 */ public $EnableFlag; /** - * @var ScheduledSqlResouceInfo 加工任务目的topic_id以及别名 + * @var ScheduledSqlResouceInfo 定时SQL分析目标日志主题 */ public $DstResource; /** - * @var string ScheduledSQL语句 + * @var string 查询语句 */ public $ScheduledSqlContent; @@ -80,7 +80,7 @@ class CreateScheduledSqlRequest extends AbstractModel public $ProcessStartTime; /** - * @var integer 调度类型,1:持续运行 2:指定调度结束时间 + * @var integer 调度类型,1:持续运行 2:指定时间范围 */ public $ProcessType; @@ -90,7 +90,7 @@ class CreateScheduledSqlRequest extends AbstractModel public $ProcessPeriod; /** - * @var string 调度时间窗口 + * @var string 单次查询的时间窗口 */ public $ProcessTimeWindow; @@ -110,24 +110,24 @@ class CreateScheduledSqlRequest extends AbstractModel public $ProcessEndTime; /** - * @var integer 语法规则。 默认值为0。0:Lucene语法,1:CQL语法 + * @var integer 查询语法规则。 默认值为0。0:Lucene语法,1:CQL语法 */ public $SyntaxRule; /** * @param string $SrcTopicId 源日志主题 * @param string $Name 任务名称 - * @param integer $EnableFlag 任务启动状态. 1正常开启, 2关闭 - * @param ScheduledSqlResouceInfo $DstResource 加工任务目的topic_id以及别名 - * @param string $ScheduledSqlContent ScheduledSQL语句 + * @param integer $EnableFlag 任务启动状态. 1开启, 2关闭 + * @param ScheduledSqlResouceInfo $DstResource 定时SQL分析目标日志主题 + * @param string $ScheduledSqlContent 查询语句 * @param integer $ProcessStartTime 调度开始时间,Unix时间戳,单位ms - * @param integer $ProcessType 调度类型,1:持续运行 2:指定调度结束时间 + * @param integer $ProcessType 调度类型,1:持续运行 2:指定时间范围 * @param integer $ProcessPeriod 调度周期(分钟) - * @param string $ProcessTimeWindow 调度时间窗口 + * @param string $ProcessTimeWindow 单次查询的时间窗口 * @param integer $ProcessDelay 执行延迟(秒) * @param string $SrcTopicRegion 源topicId的地域信息 * @param integer $ProcessEndTime 调度结束时间,当ProcessType=2时为必传字段, Unix时间戳,单位ms - * @param integer $SyntaxRule 语法规则。 默认值为0。0:Lucene语法,1:CQL语法 + * @param integer $SyntaxRule 查询语法规则。 默认值为0。0:Lucene语法,1:CQL语法 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DashboardInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DashboardInfo.php new file mode 100644 index 000000000..be6bb4b08 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DashboardInfo.php @@ -0,0 +1,215 @@ +DashboardId = $param["DashboardId"]; + } + + if (array_key_exists("DashboardName",$param) and $param["DashboardName"] !== null) { + $this->DashboardName = $param["DashboardName"]; + } + + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = $param["Data"]; + } + + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { + $this->CreateTime = $param["CreateTime"]; + } + + if (array_key_exists("AssumerUin",$param) and $param["AssumerUin"] !== null) { + $this->AssumerUin = $param["AssumerUin"]; + } + + if (array_key_exists("RoleName",$param) and $param["RoleName"] !== null) { + $this->RoleName = $param["RoleName"]; + } + + if (array_key_exists("AssumerName",$param) and $param["AssumerName"] !== null) { + $this->AssumerName = $param["AssumerName"]; + } + + if (array_key_exists("Tags",$param) and $param["Tags"] !== null) { + $this->Tags = []; + foreach ($param["Tags"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->Tags, $obj); + } + } + + if (array_key_exists("DashboardRegion",$param) and $param["DashboardRegion"] !== null) { + $this->DashboardRegion = $param["DashboardRegion"]; + } + + if (array_key_exists("UpdateTime",$param) and $param["UpdateTime"] !== null) { + $this->UpdateTime = $param["UpdateTime"]; + } + + if (array_key_exists("DashboardTopicInfos",$param) and $param["DashboardTopicInfos"] !== null) { + $this->DashboardTopicInfos = []; + foreach ($param["DashboardTopicInfos"] as $key => $value){ + $obj = new DashboardTopicInfo(); + $obj->deserialize($value); + array_push($this->DashboardTopicInfos, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DashboardTopicInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DashboardTopicInfo.php new file mode 100644 index 000000000..89943939a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DashboardTopicInfo.php @@ -0,0 +1,65 @@ +TopicId = $param["TopicId"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DeleteScheduledSqlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DeleteScheduledSqlRequest.php new file mode 100644 index 000000000..c765da387 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DeleteScheduledSqlRequest.php @@ -0,0 +1,65 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("SrcTopicId",$param) and $param["SrcTopicId"] !== null) { + $this->SrcTopicId = $param["SrcTopicId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DeleteScheduledSqlResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DeleteScheduledSqlResponse.php new file mode 100644 index 000000000..34f993090 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DeleteScheduledSqlResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeDashboardsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeDashboardsRequest.php new file mode 100644 index 000000000..3f11d1f03 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeDashboardsRequest.php @@ -0,0 +1,247 @@ +
  • dashboardId + +按照【仪表盘id】进行过滤。 +类型:String + +必选:否 + +
  • dashboardName + +按照【仪表盘名字】进行模糊搜索过滤。 +类型:String + +必选:否 + +
  • dashboardRegion + +按照【仪表盘地域】进行过滤,为了兼容老的仪表盘,通过云API创建的仪表盘没有地域属性 +类型:String + +必选:否 + +
  • tagKey + +按照【标签键】进行过滤。 + +类型:String + +必选:否 + +
  • tag:tagKey + +按照【标签键值对】进行过滤。tag-key使用具体的标签键进行替换。使用请参考示例2。 + +类型:String + +必选:否 + +每次请求的Filters的上限为10,Filter.Values的上限为100。 + * @method void setFilters(array $Filters) 设置
  • dashboardId + +按照【仪表盘id】进行过滤。 +类型:String + +必选:否 + +
  • dashboardName + +按照【仪表盘名字】进行模糊搜索过滤。 +类型:String + +必选:否 + +
  • dashboardRegion + +按照【仪表盘地域】进行过滤,为了兼容老的仪表盘,通过云API创建的仪表盘没有地域属性 +类型:String + +必选:否 + +
  • tagKey + +按照【标签键】进行过滤。 + +类型:String + +必选:否 + +
  • tag:tagKey + +按照【标签键值对】进行过滤。tag-key使用具体的标签键进行替换。使用请参考示例2。 + +类型:String + +必选:否 + +每次请求的Filters的上限为10,Filter.Values的上限为100。 + * @method array getTopicIdRegionFilter() 获取按照topicId和regionId过滤。 + * @method void setTopicIdRegionFilter(array $TopicIdRegionFilter) 设置按照topicId和regionId过滤。 + */ +class DescribeDashboardsRequest extends AbstractModel +{ + /** + * @var integer 分页的偏移量,默认值为0。 + */ + public $Offset; + + /** + * @var integer 分页单页限制数目,默认值为20,最大值100。 + */ + public $Limit; + + /** + * @var array
  • dashboardId + +按照【仪表盘id】进行过滤。 +类型:String + +必选:否 + +
  • dashboardName + +按照【仪表盘名字】进行模糊搜索过滤。 +类型:String + +必选:否 + +
  • dashboardRegion + +按照【仪表盘地域】进行过滤,为了兼容老的仪表盘,通过云API创建的仪表盘没有地域属性 +类型:String + +必选:否 + +
  • tagKey + +按照【标签键】进行过滤。 + +类型:String + +必选:否 + +
  • tag:tagKey + +按照【标签键值对】进行过滤。tag-key使用具体的标签键进行替换。使用请参考示例2。 + +类型:String + +必选:否 + +每次请求的Filters的上限为10,Filter.Values的上限为100。 + */ + public $Filters; + + /** + * @var array 按照topicId和regionId过滤。 + */ + public $TopicIdRegionFilter; + + /** + * @param integer $Offset 分页的偏移量,默认值为0。 + * @param integer $Limit 分页单页限制数目,默认值为20,最大值100。 + * @param array $Filters
  • dashboardId + +按照【仪表盘id】进行过滤。 +类型:String + +必选:否 + +
  • dashboardName + +按照【仪表盘名字】进行模糊搜索过滤。 +类型:String + +必选:否 + +
  • dashboardRegion + +按照【仪表盘地域】进行过滤,为了兼容老的仪表盘,通过云API创建的仪表盘没有地域属性 +类型:String + +必选:否 + +
  • tagKey + +按照【标签键】进行过滤。 + +类型:String + +必选:否 + +
  • tag:tagKey + +按照【标签键值对】进行过滤。tag-key使用具体的标签键进行替换。使用请参考示例2。 + +类型:String + +必选:否 + +每次请求的Filters的上限为10,Filter.Values的上限为100。 + * @param array $TopicIdRegionFilter 按照topicId和regionId过滤。 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new Filter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } + + if (array_key_exists("TopicIdRegionFilter",$param) and $param["TopicIdRegionFilter"] !== null) { + $this->TopicIdRegionFilter = []; + foreach ($param["TopicIdRegionFilter"] as $key => $value){ + $obj = new TopicIdAndRegion(); + $obj->deserialize($value); + array_push($this->TopicIdRegionFilter, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeDashboardsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeDashboardsResponse.php new file mode 100644 index 000000000..e8010368e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeDashboardsResponse.php @@ -0,0 +1,82 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("DashboardInfos",$param) and $param["DashboardInfos"] !== null) { + $this->DashboardInfos = []; + foreach ($param["DashboardInfos"] as $key => $value){ + $obj = new DashboardInfo(); + $obj->deserialize($value); + array_push($this->DashboardInfos, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaConsumerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaConsumerRequest.php new file mode 100644 index 000000000..6cff0ba7b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaConsumerRequest.php @@ -0,0 +1,53 @@ +FromTopicId = $param["FromTopicId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaConsumerResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaConsumerResponse.php new file mode 100644 index 000000000..60846c1b1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaConsumerResponse.php @@ -0,0 +1,102 @@ +Status = $param["Status"]; + } + + if (array_key_exists("TopicID",$param) and $param["TopicID"] !== null) { + $this->TopicID = $param["TopicID"]; + } + + if (array_key_exists("Compression",$param) and $param["Compression"] !== null) { + $this->Compression = $param["Compression"]; + } + + if (array_key_exists("ConsumerContent",$param) and $param["ConsumerContent"] !== null) { + $this->ConsumerContent = new KafkaConsumerContent(); + $this->ConsumerContent->deserialize($param["ConsumerContent"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaUserRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaUserRequest.php new file mode 100644 index 000000000..198d9ce03 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaUserRequest.php @@ -0,0 +1,53 @@ +UserName = $param["UserName"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SimilarWordsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaUserResponse.php similarity index 76% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SimilarWordsResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaUserResponse.php index 5fc3941b6..ca9c312b1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SimilarWordsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeKafkaUserResponse.php @@ -14,23 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Cls\V20201016\Models; use TencentCloud\Common\AbstractModel; /** - * SimilarWords返回参数结构体 + * DescribeKafkaUser返回参数结构体 * - * @method array getSimilarWords() 获取相似词数组 - * @method void setSimilarWords(array $SimilarWords) 设置相似词数组 + * @method string getUserName() 获取kafka消费用户名 + * @method void setUserName(string $UserName) 设置kafka消费用户名 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class SimilarWordsResponse extends AbstractModel +class DescribeKafkaUserResponse extends AbstractModel { /** - * @var array 相似词数组 + * @var string kafka消费用户名 */ - public $SimilarWords; + public $UserName; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -38,7 +38,7 @@ class SimilarWordsResponse extends AbstractModel public $RequestId; /** - * @param array $SimilarWords 相似词数组 + * @param string $UserName kafka消费用户名 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -54,8 +54,8 @@ class SimilarWordsResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("SimilarWords",$param) and $param["SimilarWords"] !== null) { - $this->SimilarWords = $param["SimilarWords"]; + if (array_key_exists("UserName",$param) and $param["UserName"] !== null) { + $this->UserName = $param["UserName"]; } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeMachineGroupsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeMachineGroupsRequest.php index 2ed13359d..1a2335d85 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeMachineGroupsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeMachineGroupsRequest.php @@ -30,6 +30,11 @@ machineGroupId - 类型:String - 必选:否 +osType +- 按照【操作系统类型】进行过滤。 +- 类型:Int +- 必选:否 + tagKey - 按照【标签键】进行过滤。 - 类型:String @@ -51,6 +56,11 @@ machineGroupId - 类型:String - 必选:否 +osType +- 按照【操作系统类型】进行过滤。 +- 类型:Int +- 必选:否 + tagKey - 按照【标签键】进行过滤。 - 类型:String @@ -80,6 +90,11 @@ machineGroupId - 类型:String - 必选:否 +osType +- 按照【操作系统类型】进行过滤。 +- 类型:Int +- 必选:否 + tagKey - 按照【标签键】进行过滤。 - 类型:String @@ -115,6 +130,11 @@ machineGroupId - 类型:String - 必选:否 +osType +- 按照【操作系统类型】进行过滤。 +- 类型:Int +- 必选:否 + tagKey - 按照【标签键】进行过滤。 - 类型:String diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeScheduledSqlInfoRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeScheduledSqlInfoRequest.php new file mode 100644 index 000000000..b4a31d379 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeScheduledSqlInfoRequest.php @@ -0,0 +1,89 @@ +Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("TaskId",$param) and $param["TaskId"] !== null) { + $this->TaskId = $param["TaskId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeScheduledSqlInfoResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeScheduledSqlInfoResponse.php new file mode 100644 index 000000000..d8f58512d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/DescribeScheduledSqlInfoResponse.php @@ -0,0 +1,82 @@ +ScheduledSqlTaskInfos = []; + foreach ($param["ScheduledSqlTaskInfos"] as $key => $value){ + $obj = new ScheduledSqlTaskInfo(); + $obj->deserialize($value); + array_push($this->ScheduledSqlTaskInfos, $obj); + } + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/EventLog.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/EventLog.php new file mode 100644 index 000000000..5d8c1ecb7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/EventLog.php @@ -0,0 +1,93 @@ +EventChannel = $param["EventChannel"]; + } + + if (array_key_exists("TimeType",$param) and $param["TimeType"] !== null) { + $this->TimeType = $param["TimeType"]; + } + + if (array_key_exists("Timestamp",$param) and $param["Timestamp"] !== null) { + $this->Timestamp = $param["Timestamp"]; + } + + if (array_key_exists("EventIDs",$param) and $param["EventIDs"] !== null) { + $this->EventIDs = $param["EventIDs"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ExtractRuleInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ExtractRuleInfo.php index 804b4a47d..86cd3c467 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ExtractRuleInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ExtractRuleInfo.php @@ -98,6 +98,8 @@ auto:自动匹配rfc3164或者rfc5424其中一种协议 注意:此字段可能返回 null,表示取不到有效值。 * @method array getMetaTags() 获取用户自定义元数据信息,MetadataType为2时必填 * @method void setMetaTags(array $MetaTags) 设置用户自定义元数据信息,MetadataType为2时必填 + * @method array getEventLogRules() 获取windows事件日志采集 + * @method void setEventLogRules(array $EventLogRules) 设置windows事件日志采集 */ class ExtractRuleInfo extends AbstractModel { @@ -212,6 +214,11 @@ auto:自动匹配rfc3164或者rfc5424其中一种协议 */ public $MetaTags; + /** + * @var array windows事件日志采集 + */ + public $EventLogRules; + /** * @param string $TimeKey 时间字段的key名字,time_key和time_format必须成对出现 注意:此字段可能返回 null,表示取不到有效值。 @@ -252,6 +259,7 @@ auto:自动匹配rfc3164或者rfc5424其中一种协议 * @param string $PathRegex 采集配置路径正则表达式,MetadataType为3时必填 注意:此字段可能返回 null,表示取不到有效值。 * @param array $MetaTags 用户自定义元数据信息,MetadataType为2时必填 + * @param array $EventLogRules windows事件日志采集 */ function __construct() { @@ -347,5 +355,14 @@ auto:自动匹配rfc3164或者rfc5424其中一种协议 array_push($this->MetaTags, $obj); } } + + if (array_key_exists("EventLogRules",$param) and $param["EventLogRules"] !== null) { + $this->EventLogRules = []; + foreach ($param["EventLogRules"] as $key => $value){ + $obj = new EventLog(); + $obj->deserialize($value); + array_push($this->EventLogRules, $obj); + } + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/MachineGroupInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/MachineGroupInfo.php index 466f3502f..f68dd8a48 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/MachineGroupInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/MachineGroupInfo.php @@ -50,6 +50,8 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method array getMetaTags() 获取机器组元数据信息列表 * @method void setMetaTags(array $MetaTags) 设置机器组元数据信息列表 + * @method integer getOSType() 获取操作系统类型,0: Linux,1: windows + * @method void setOSType(integer $OSType) 设置操作系统类型,0: Linux,1: windows */ class MachineGroupInfo extends AbstractModel { @@ -108,6 +110,11 @@ class MachineGroupInfo extends AbstractModel */ public $MetaTags; + /** + * @var integer 操作系统类型,0: Linux,1: windows + */ + public $OSType; + /** * @param string $GroupId 机器组ID * @param string $GroupName 机器组名称 @@ -124,6 +131,7 @@ class MachineGroupInfo extends AbstractModel * @param boolean $ServiceLogging 是否开启服务日志,用于记录因Loglistener 服务自身产生的log,开启后,会创建内部日志集cls_service_logging和日志主题loglistener_status,loglistener_alarm,loglistener_business,不产生计费 注意:此字段可能返回 null,表示取不到有效值。 * @param array $MetaTags 机器组元数据信息列表 + * @param integer $OSType 操作系统类型,0: Linux,1: windows */ function __construct() { @@ -188,5 +196,9 @@ class MachineGroupInfo extends AbstractModel array_push($this->MetaTags, $obj); } } + + if (array_key_exists("OSType",$param) and $param["OSType"] !== null) { + $this->OSType = $param["OSType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyConfigExtraRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyConfigExtraRequest.php index b4cabcf14..78682ddc2 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyConfigExtraRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyConfigExtraRequest.php @@ -54,6 +54,16 @@ use TencentCloud\Common\AbstractModel; * @method void setLogsetName(string $LogsetName) 设置日志集name * @method string getTopicName() 获取日志主题name * @method void setTopicName(string $TopicName) 设置日志主题name + * @method string getAdvancedConfig() 获取高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} + * @method void setAdvancedConfig(string $AdvancedConfig) 设置高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ class ModifyConfigExtraRequest extends AbstractModel { @@ -142,6 +152,15 @@ class ModifyConfigExtraRequest extends AbstractModel */ public $TopicName; + /** + * @var string 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} + */ + public $AdvancedConfig; + /** * @param string $ConfigExtraId 采集配置扩展信息id * @param string $Name 采集配置规程名称,最长63个字符,只能包含小写字符、数字及分隔符(“-”),且必须以小写字符开头,数字或小写字符结尾 @@ -160,6 +179,11 @@ class ModifyConfigExtraRequest extends AbstractModel * @param string $LogsetId 日志集ID * @param string $LogsetName 日志集name * @param string $TopicName 日志主题name + * @param string $AdvancedConfig 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ function __construct() { @@ -250,5 +274,9 @@ class ModifyConfigExtraRequest extends AbstractModel if (array_key_exists("TopicName",$param) and $param["TopicName"] !== null) { $this->TopicName = $param["TopicName"]; } + + if (array_key_exists("AdvancedConfig",$param) and $param["AdvancedConfig"] !== null) { + $this->AdvancedConfig = $param["AdvancedConfig"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyConfigRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyConfigRequest.php index 4413408e3..8edfa465f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyConfigRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyConfigRequest.php @@ -36,6 +36,16 @@ use TencentCloud\Common\AbstractModel; * @method void setOutput(string $Output) 设置采集配置关联的日志主题(TopicId) * @method string getUserDefineRule() 获取用户自定义解析字符串,Json格式序列化的字符串 * @method void setUserDefineRule(string $UserDefineRule) 设置用户自定义解析字符串,Json格式序列化的字符串 + * @method string getAdvancedConfig() 获取高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} + * @method void setAdvancedConfig(string $AdvancedConfig) 设置高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ class ModifyConfigRequest extends AbstractModel { @@ -79,6 +89,15 @@ class ModifyConfigRequest extends AbstractModel */ public $UserDefineRule; + /** + * @var string 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} + */ + public $AdvancedConfig; + /** * @param string $ConfigId 采集规则配置ID * @param string $Name 采集规则配置名称 @@ -88,6 +107,11 @@ class ModifyConfigRequest extends AbstractModel * @param array $ExcludePaths 采集黑名单路径列表 * @param string $Output 采集配置关联的日志主题(TopicId) * @param string $UserDefineRule 用户自定义解析字符串,Json格式序列化的字符串 + * @param string $AdvancedConfig 高级采集配置。 Json字符串, Key/Value定义为如下: +- ClsAgentFileTimeout(超时属性), 取值范围: 大于等于0的整数, 0为不超时 +- ClsAgentMaxDepth(最大目录深度),取值范围: 大于等于0的整数 +- ClsAgentParseFailMerge(合并解析失败日志),取值范围: true或false +样例:{"ClsAgentFileTimeout":0,"ClsAgentMaxDepth":10,"ClsAgentParseFailMerge":true} */ function __construct() { @@ -139,5 +163,9 @@ class ModifyConfigRequest extends AbstractModel if (array_key_exists("UserDefineRule",$param) and $param["UserDefineRule"] !== null) { $this->UserDefineRule = $param["UserDefineRule"]; } + + if (array_key_exists("AdvancedConfig",$param) and $param["AdvancedConfig"] !== null) { + $this->AdvancedConfig = $param["AdvancedConfig"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyKafkaConsumerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyKafkaConsumerRequest.php new file mode 100644 index 000000000..d29a600b0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyKafkaConsumerRequest.php @@ -0,0 +1,78 @@ +FromTopicId = $param["FromTopicId"]; + } + + if (array_key_exists("Compression",$param) and $param["Compression"] !== null) { + $this->Compression = $param["Compression"]; + } + + if (array_key_exists("ConsumerContent",$param) and $param["ConsumerContent"] !== null) { + $this->ConsumerContent = new KafkaConsumerContent(); + $this->ConsumerContent->deserialize($param["ConsumerContent"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyKafkaConsumerResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyKafkaConsumerResponse.php new file mode 100644 index 000000000..f10ca4091 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyKafkaConsumerResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyScheduledSqlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyScheduledSqlRequest.php new file mode 100644 index 000000000..94c02f0ae --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyScheduledSqlRequest.php @@ -0,0 +1,174 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("SrcTopicId",$param) and $param["SrcTopicId"] !== null) { + $this->SrcTopicId = $param["SrcTopicId"]; + } + + if (array_key_exists("EnableFlag",$param) and $param["EnableFlag"] !== null) { + $this->EnableFlag = $param["EnableFlag"]; + } + + if (array_key_exists("DstResource",$param) and $param["DstResource"] !== null) { + $this->DstResource = new ScheduledSqlResouceInfo(); + $this->DstResource->deserialize($param["DstResource"]); + } + + if (array_key_exists("ScheduledSqlContent",$param) and $param["ScheduledSqlContent"] !== null) { + $this->ScheduledSqlContent = $param["ScheduledSqlContent"]; + } + + if (array_key_exists("ProcessPeriod",$param) and $param["ProcessPeriod"] !== null) { + $this->ProcessPeriod = $param["ProcessPeriod"]; + } + + if (array_key_exists("ProcessTimeWindow",$param) and $param["ProcessTimeWindow"] !== null) { + $this->ProcessTimeWindow = $param["ProcessTimeWindow"]; + } + + if (array_key_exists("ProcessDelay",$param) and $param["ProcessDelay"] !== null) { + $this->ProcessDelay = $param["ProcessDelay"]; + } + + if (array_key_exists("SrcTopicRegion",$param) and $param["SrcTopicRegion"] !== null) { + $this->SrcTopicRegion = $param["SrcTopicRegion"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("SyntaxRule",$param) and $param["SyntaxRule"] !== null) { + $this->SyntaxRule = $param["SyntaxRule"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyScheduledSqlResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyScheduledSqlResponse.php new file mode 100644 index 000000000..833ad9fdc --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ModifyScheduledSqlResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/OpenKafkaConsumerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/OpenKafkaConsumerRequest.php index 79255aad9..86b4e221c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/OpenKafkaConsumerRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/OpenKafkaConsumerRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * OpenKafkaConsumer请求参数结构体 * - * @method string getFromTopicId() 获取CLS控制台创建的TopicId - * @method void setFromTopicId(string $FromTopicId) 设置CLS控制台创建的TopicId + * @method string getFromTopicId() 获取日志主题ID + * @method void setFromTopicId(string $FromTopicId) 设置日志主题ID * @method integer getCompression() 获取压缩方式[0:NONE;2:SNAPPY;3:LZ4] * @method void setCompression(integer $Compression) 设置压缩方式[0:NONE;2:SNAPPY;3:LZ4] * @method KafkaConsumerContent getConsumerContent() 获取kafka协议消费数据格式 @@ -30,7 +30,7 @@ use TencentCloud\Common\AbstractModel; class OpenKafkaConsumerRequest extends AbstractModel { /** - * @var string CLS控制台创建的TopicId + * @var string 日志主题ID */ public $FromTopicId; @@ -45,7 +45,7 @@ class OpenKafkaConsumerRequest extends AbstractModel public $ConsumerContent; /** - * @param string $FromTopicId CLS控制台创建的TopicId + * @param string $FromTopicId 日志主题ID * @param integer $Compression 压缩方式[0:NONE;2:SNAPPY;3:LZ4] * @param KafkaConsumerContent $ConsumerContent kafka协议消费数据格式 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/OpenKafkaConsumerResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/OpenKafkaConsumerResponse.php index 313aae3f3..c4584bebd 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/OpenKafkaConsumerResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/OpenKafkaConsumerResponse.php @@ -20,15 +20,15 @@ use TencentCloud\Common\AbstractModel; /** * OpenKafkaConsumer返回参数结构体 * - * @method string getTopicID() 获取待消费TopicId - * @method void setTopicID(string $TopicID) 设置待消费TopicId + * @method string getTopicID() 获取KafkaConsumer 消费时使用的Topic参数 + * @method void setTopicID(string $TopicID) 设置KafkaConsumer 消费时使用的Topic参数 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class OpenKafkaConsumerResponse extends AbstractModel { /** - * @var string 待消费TopicId + * @var string KafkaConsumer 消费时使用的Topic参数 */ public $TopicID; @@ -38,7 +38,7 @@ class OpenKafkaConsumerResponse extends AbstractModel public $RequestId; /** - * @param string $TopicID 待消费TopicId + * @param string $TopicID KafkaConsumer 消费时使用的Topic参数 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ScheduledSqlResouceInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ScheduledSqlResouceInfo.php index 77bce3d69..bf148bdf1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ScheduledSqlResouceInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ScheduledSqlResouceInfo.php @@ -22,8 +22,12 @@ use TencentCloud\Common\AbstractModel; * * @method string getTopicId() 获取目标主题id * @method void setTopicId(string $TopicId) 设置目标主题id - * @method string getRegion() 获取topic的地域信息 - * @method void setRegion(string $Region) 设置topic的地域信息 + * @method string getRegion() 获取主题的地域信息 + * @method void setRegion(string $Region) 设置主题的地域信息 + * @method integer getBizType() 获取主题类型:0为日志主题,1为指标主题 + * @method void setBizType(integer $BizType) 设置主题类型:0为日志主题,1为指标主题 + * @method string getMetricName() 获取指标名称 + * @method void setMetricName(string $MetricName) 设置指标名称 */ class ScheduledSqlResouceInfo extends AbstractModel { @@ -33,13 +37,25 @@ class ScheduledSqlResouceInfo extends AbstractModel public $TopicId; /** - * @var string topic的地域信息 + * @var string 主题的地域信息 */ public $Region; + /** + * @var integer 主题类型:0为日志主题,1为指标主题 + */ + public $BizType; + + /** + * @var string 指标名称 + */ + public $MetricName; + /** * @param string $TopicId 目标主题id - * @param string $Region topic的地域信息 + * @param string $Region 主题的地域信息 + * @param integer $BizType 主题类型:0为日志主题,1为指标主题 + * @param string $MetricName 指标名称 */ function __construct() { @@ -61,5 +77,13 @@ class ScheduledSqlResouceInfo extends AbstractModel if (array_key_exists("Region",$param) and $param["Region"] !== null) { $this->Region = $param["Region"]; } + + if (array_key_exists("BizType",$param) and $param["BizType"] !== null) { + $this->BizType = $param["BizType"]; + } + + if (array_key_exists("MetricName",$param) and $param["MetricName"] !== null) { + $this->MetricName = $param["MetricName"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ScheduledSqlTaskInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ScheduledSqlTaskInfo.php new file mode 100644 index 000000000..cd8e9c16d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/ScheduledSqlTaskInfo.php @@ -0,0 +1,270 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("SrcTopicId",$param) and $param["SrcTopicId"] !== null) { + $this->SrcTopicId = $param["SrcTopicId"]; + } + + if (array_key_exists("SrcTopicName",$param) and $param["SrcTopicName"] !== null) { + $this->SrcTopicName = $param["SrcTopicName"]; + } + + if (array_key_exists("DstResource",$param) and $param["DstResource"] !== null) { + $this->DstResource = new ScheduledSqlResouceInfo(); + $this->DstResource->deserialize($param["DstResource"]); + } + + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { + $this->CreateTime = $param["CreateTime"]; + } + + if (array_key_exists("UpdateTime",$param) and $param["UpdateTime"] !== null) { + $this->UpdateTime = $param["UpdateTime"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("EnableFlag",$param) and $param["EnableFlag"] !== null) { + $this->EnableFlag = $param["EnableFlag"]; + } + + if (array_key_exists("ScheduledSqlContent",$param) and $param["ScheduledSqlContent"] !== null) { + $this->ScheduledSqlContent = $param["ScheduledSqlContent"]; + } + + if (array_key_exists("ProcessStartTime",$param) and $param["ProcessStartTime"] !== null) { + $this->ProcessStartTime = $param["ProcessStartTime"]; + } + + if (array_key_exists("ProcessType",$param) and $param["ProcessType"] !== null) { + $this->ProcessType = $param["ProcessType"]; + } + + if (array_key_exists("ProcessEndTime",$param) and $param["ProcessEndTime"] !== null) { + $this->ProcessEndTime = $param["ProcessEndTime"]; + } + + if (array_key_exists("ProcessPeriod",$param) and $param["ProcessPeriod"] !== null) { + $this->ProcessPeriod = $param["ProcessPeriod"]; + } + + if (array_key_exists("ProcessTimeWindow",$param) and $param["ProcessTimeWindow"] !== null) { + $this->ProcessTimeWindow = $param["ProcessTimeWindow"]; + } + + if (array_key_exists("ProcessDelay",$param) and $param["ProcessDelay"] !== null) { + $this->ProcessDelay = $param["ProcessDelay"]; + } + + if (array_key_exists("SrcTopicRegion",$param) and $param["SrcTopicRegion"] !== null) { + $this->SrcTopicRegion = $param["SrcTopicRegion"]; + } + + if (array_key_exists("SyntaxRule",$param) and $param["SyntaxRule"] !== null) { + $this->SyntaxRule = $param["SyntaxRule"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/TopicIdAndRegion.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/TopicIdAndRegion.php new file mode 100644 index 000000000..d5a02e84e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cls/V20201016/Models/TopicIdAndRegion.php @@ -0,0 +1,69 @@ +TopicId = $param["TopicId"]; + } + + if (array_key_exists("RegionId",$param) and $param["RegionId"] !== null) { + $this->RegionId = $param["RegionId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/AuthorizationInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/AuthorizationInfo.php index 4f1f5e6a6..3b2d86252 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/AuthorizationInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/AuthorizationInfo.php @@ -23,12 +23,12 @@ use TencentCloud\Common\AbstractModel; * @method Entity getAuthorizee() 获取被授权者实体。 * @method void setAuthorizee(Entity $Authorizee) 设置被授权者实体。 * @method array getPermissionSet() 获取详细授权值。 取值有: -
  • R:可读,可以浏览素材,但不能使用该素材(将其添加到 Project),或复制到自己的媒资库中
  • +
  • R:可读,可以浏览素材,但不能使用该素材(将其添加到 Project),或复制到自己的媒资库中。
  • X:可用,可以使用该素材(将其添加到 Project),但不能将其复制到自己的媒资库中,意味着被授权者无法将该资源进一步扩散给其他个人或团队。
  • C:可复制,既可以使用该素材(将其添加到 Project),也可以将其复制到自己的媒资库中。
  • W:可修改、删除媒资。
  • * @method void setPermissionSet(array $PermissionSet) 设置详细授权值。 取值有: -
  • R:可读,可以浏览素材,但不能使用该素材(将其添加到 Project),或复制到自己的媒资库中
  • +
  • R:可读,可以浏览素材,但不能使用该素材(将其添加到 Project),或复制到自己的媒资库中。
  • X:可用,可以使用该素材(将其添加到 Project),但不能将其复制到自己的媒资库中,意味着被授权者无法将该资源进一步扩散给其他个人或团队。
  • C:可复制,既可以使用该素材(将其添加到 Project),也可以将其复制到自己的媒资库中。
  • W:可修改、删除媒资。
  • @@ -42,7 +42,7 @@ class AuthorizationInfo extends AbstractModel /** * @var array 详细授权值。 取值有: -
  • R:可读,可以浏览素材,但不能使用该素材(将其添加到 Project),或复制到自己的媒资库中
  • +
  • R:可读,可以浏览素材,但不能使用该素材(将其添加到 Project),或复制到自己的媒资库中。
  • X:可用,可以使用该素材(将其添加到 Project),但不能将其复制到自己的媒资库中,意味着被授权者无法将该资源进一步扩散给其他个人或团队。
  • C:可复制,既可以使用该素材(将其添加到 Project),也可以将其复制到自己的媒资库中。
  • W:可修改、删除媒资。
  • @@ -52,7 +52,7 @@ class AuthorizationInfo extends AbstractModel /** * @param Entity $Authorizee 被授权者实体。 * @param array $PermissionSet 详细授权值。 取值有: -
  • R:可读,可以浏览素材,但不能使用该素材(将其添加到 Project),或复制到自己的媒资库中
  • +
  • R:可读,可以浏览素材,但不能使用该素材(将其添加到 Project),或复制到自己的媒资库中。
  • X:可用,可以使用该素材(将其添加到 Project),但不能将其复制到自己的媒资库中,意味着被授权者无法将该资源进一步扩散给其他个人或团队。
  • C:可复制,既可以使用该素材(将其添加到 Project),也可以将其复制到自己的媒资库中。
  • W:可修改、删除媒资。
  • diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/MediaCastOutputMediaSetting.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/MediaCastOutputMediaSetting.php index a651dd5f7..7797ae9bf 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/MediaCastOutputMediaSetting.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/MediaCastOutputMediaSetting.php @@ -22,6 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method MediaCastVideoSetting getVideoSetting() 获取视频配置。 * @method void setVideoSetting(MediaCastVideoSetting $VideoSetting) 设置视频配置。 + * @method boolean getFollowSourceInfo() 获取视频配置是否和第一个输入源的视频配置相同,默认值:false。如果 FollowSourceInfo 的值为 true,忽略 VideoSetting 参数。 + * @method void setFollowSourceInfo(boolean $FollowSourceInfo) 设置视频配置是否和第一个输入源的视频配置相同,默认值:false。如果 FollowSourceInfo 的值为 true,忽略 VideoSetting 参数。 */ class MediaCastOutputMediaSetting extends AbstractModel { @@ -30,8 +32,14 @@ class MediaCastOutputMediaSetting extends AbstractModel */ public $VideoSetting; + /** + * @var boolean 视频配置是否和第一个输入源的视频配置相同,默认值:false。如果 FollowSourceInfo 的值为 true,忽略 VideoSetting 参数。 + */ + public $FollowSourceInfo; + /** * @param MediaCastVideoSetting $VideoSetting 视频配置。 + * @param boolean $FollowSourceInfo 视频配置是否和第一个输入源的视频配置相同,默认值:false。如果 FollowSourceInfo 的值为 true,忽略 VideoSetting 参数。 */ function __construct() { @@ -50,5 +58,9 @@ class MediaCastOutputMediaSetting extends AbstractModel $this->VideoSetting = new MediaCastVideoSetting(); $this->VideoSetting->deserialize($param["VideoSetting"]); } + + if (array_key_exists("FollowSourceInfo",$param) and $param["FollowSourceInfo"] !== null) { + $this->FollowSourceInfo = $param["FollowSourceInfo"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/MediaCastProjectInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/MediaCastProjectInfo.php index 617fd81ec..01e37c974 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/MediaCastProjectInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cme/V20191029/Models/MediaCastProjectInfo.php @@ -38,6 +38,8 @@ use TencentCloud\Common\AbstractModel; * @method void setStartTime(string $StartTime) 设置项目启动时间。采用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。 * @method string getStopTime() 获取项目结束时间。采用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。如果项目还在运行中,该字段为空。 * @method void setStopTime(string $StopTime) 设置项目结束时间。采用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。如果项目还在运行中,该字段为空。 + * @method float getDuration() 获取推流时长,单位:秒。项目结束后,返回上次项目运行时的推流时长。如果项目是 Working 状态,返回的时长是0。 + * @method void setDuration(float $Duration) 设置推流时长,单位:秒。项目结束后,返回上次项目运行时的推流时长。如果项目是 Working 状态,返回的时长是0。 */ class MediaCastProjectInfo extends AbstractModel { @@ -78,6 +80,11 @@ class MediaCastProjectInfo extends AbstractModel */ public $StopTime; + /** + * @var float 推流时长,单位:秒。项目结束后,返回上次项目运行时的推流时长。如果项目是 Working 状态,返回的时长是0。 + */ + public $Duration; + /** * @param string $Status 点播转直播项目状态,取值有:
  • Working :运行中;
  • @@ -88,6 +95,7 @@ class MediaCastProjectInfo extends AbstractModel * @param MediaCastPlaySetting $PlaySetting 播放参数。 * @param string $StartTime 项目启动时间。采用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。 * @param string $StopTime 项目结束时间。采用 [ISO 日期格式](https://cloud.tencent.com/document/product/266/11732#I)。如果项目还在运行中,该字段为空。 + * @param float $Duration 推流时长,单位:秒。项目结束后,返回上次项目运行时的推流时长。如果项目是 Working 状态,返回的时长是0。 */ function __construct() { @@ -141,5 +149,9 @@ class MediaCastProjectInfo extends AbstractModel if (array_key_exists("StopTime",$param) and $param["StopTime"] !== null) { $this->StopTime = $param["StopTime"]; } + + if (array_key_exists("Duration",$param) and $param["Duration"] !== null) { + $this->Duration = $param["Duration"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/AbstractClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/AbstractClient.php index 4a41196ca..94d060e20 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/AbstractClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/AbstractClient.php @@ -23,6 +23,8 @@ use \ReflectionClass; use TencentCloud\Common\Http\HttpConnection; use TencentCloud\Common\Profile\ClientProfile; use TencentCloud\Common\Profile\HttpProfile; +use TencentCloud\Common\Profile\RegionBreakerProfile; +use TencentCloud\Common\CircuitBreaker; use TencentCloud\Common\Exception\TencentCloudSDKException; @@ -35,7 +37,7 @@ abstract class AbstractClient /** * @var string SDK版本 */ - public static $SDK_VERSION = "SDK_PHP_3.0.935"; + public static $SDK_VERSION = "SDK_PHP_3.0.950"; /** * @var integer http响应码200 @@ -53,7 +55,9 @@ abstract class AbstractClient * @var ClientProfile 会话配置信息类 */ private $profile; - + + private $regionBreakerProfile; + private $circuitBreaker; /** * @var string 产品地域 */ @@ -63,6 +67,7 @@ abstract class AbstractClient * @var string 请求路径 */ private $path; + /** * @var string sdk版本号 @@ -97,11 +102,19 @@ abstract class AbstractClient } else { $this->profile = new ClientProfile(); } - + + $this->getRefreshedEndpoint(); $this->sdkVersion = AbstractClient::$SDK_VERSION; $this->apiVersion = $version; + + if ($this->profile->enableRegionBreaker) { + if (is_null($this->profile->getRegionBreakerProfile())) { + throw new TencentCloudSDKException("ClientError", "RegionBreakerProfile have not been set yet."); + } + $this->circuitBreaker = new CircuitBreaker($this->profile->getRegionBreakerProfile()); + } if (version_compare(phpversion(), $this->PHP_VERSION_MINIMUM, '<') && $profile->getCheckPHPVersion()) { throw new TencentCloudSDKException("ClientError", "PHP version must >= ".$this->PHP_VERSION_MINIMUM.", your current is ".phpversion()); @@ -172,7 +185,13 @@ abstract class AbstractClient */ public function __call($action, $request) { - return $this->doRequestWithOptions($action, $request[0], array()); + if ($this->profile->enableRegionBreaker) { + return $this->doRequestWithOptionsOnRegionBreaker($action, $request[0], array()); + } + else { + return $this->doRequestWithOptions($action, $request[0], array()); + } + } /** @@ -287,6 +306,51 @@ abstract class AbstractClient } } } + + protected function doRequestWithOptionsOnRegionBreaker($action, $request, $options) + { + try { + $endpoint = $this->profile->getRegionBreakerProfile()->masterEndpoint; + list($generation, $need_break) = $this->circuitBreaker->beforeRequests(); + if ($need_break) { + $endpoint = $this->profile->getRegionBreakerProfile()->slaveEndpoint; + } + $this->profile->getHttpProfile()->setEndpoint($endpoint); + $responseData = null; + $serializeRequest = $request->serialize(); + $method = $this->getPrivateMethod($request, "arrayMerge"); + $serializeRequest = $method->invoke($request, $serializeRequest); + switch ($this->profile->getSignMethod()) { + case ClientProfile::$SIGN_HMAC_SHA1: + case ClientProfile::$SIGN_HMAC_SHA256: + $responseData = $this->doRequest($action, $serializeRequest); + break; + case ClientProfile::$SIGN_TC3_SHA256: + $responseData = $this->doRequestWithTC3($action, $request, $options, array(), ""); + break; + default: + throw new TencentCloudSDKException("ClientError", "Invalid sign method"); + break; + } + if ($responseData->getStatusCode() !== AbstractClient::$HTTP_RSP_OK) { + throw new TencentCloudSDKException($responseData->getReasonPhrase(), $responseData->getBody()); + } + $tmpResp = json_decode($responseData->getBody(), true)["Response"]; + if (array_key_exists("Error", $tmpResp)) { + $this->circuitBreaker->afterRequests($generation, True); + throw new TencentCloudSDKException($tmpResp["Error"]["Code"], $tmpResp["Error"]["Message"], $tmpResp["RequestId"]); + } + $this->circuitBreaker->afterRequests($generation, True); + return $this->returnResponse($action, $tmpResp); + } catch (\Exception $e) { + $this->circuitBreaker->afterRequests($generation, False); + if (!($e instanceof TencentCloudSDKException)) { + throw new TencentCloudSDKException("", $e->getMessage()); + } else { + throw $e; + } + } + } private function doRequest($action, $request) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/CircuitBreaker.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/CircuitBreaker.php new file mode 100644 index 000000000..85cf40c09 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/CircuitBreaker.php @@ -0,0 +1,155 @@ +total++; + $this->consecutiveSuccesses++; + $this->consecutiveFailures = 0; + } + + public function onFailure() + { + $this->total++; + $this->failures++; + $this->consecutiveFailures++; + $this->consecutiveSuccesses = 0; + } + + public function clear() + { + $this->failures = 0; + $this->total = 0; + $this->consecutiveSuccesses = 0; + $this->consecutiveFailures = 0; + } + + public function getFailureRate() + { + if ($this->total == 0) { + return 0.0; + } + return floatval($this->failures) / $this->total; + } +} + +class CircuitBreaker +{ + public $breakerSetting; + public $counter; + public $state; + public $expiry; + public $generation; + + public function __construct($breakerSetting) + { + $this->breakerSetting = $breakerSetting; + $this->counter = new Counter(); + $this->state = STATE_CLOSED; + $this->expiry = time() + $breakerSetting->windowInterval; + $this->generation = 0; + } + + public function readyToOpen() + { + return ($this->counter->failures >= $this->breakerSetting->maxFailNum && + $this->counter->getFailureRate() >= $this->breakerSetting->maxFailPercent) || + $this->counter->consecutiveFailures >= 5; + } + + public function currentState($now) + { + if ($this->state == STATE_CLOSED) { + if ($this->expiry <= $now) { + $this->toNewGeneration($now); + } + } elseif ($this->state == STATE_OPEN) { + if ($this->expiry <= $now) { + + $this->switchState(STATE_HALF_OPEN, $now); + } + } + return array($this->state, $this->generation); + } + + public function switchState($newState, $now) + { + if ($this->state == $newState) { + return; + } + $this->state = $newState; + $this->toNewGeneration($now); + } + + public function toNewGeneration($now) + { + $this->generation = ($this->generation + 1) % 10; + $this->counter->clear(); + if ($this->state == STATE_CLOSED) { + $this->expiry = $now + $this->breakerSetting->windowInterval; + } elseif ($this->state == STATE_OPEN) { + $this->expiry = $now + $this->breakerSetting->timeout; + } else { // STATE_HALF_OPEN + $this->expiry = time(); + } + } + + public function beforeRequests() + { + $now = time(); + list($state, $generation) = $this->currentState($now); + if ($state == STATE_OPEN) { + return array($generation, true); + } + return array($generation, false); + } + + public function afterRequests($before, $success) + { + $now = time(); + list($state, $generation) = $this->currentState($now); + if ($generation != $before) { + return; + } + if ($success) { + $this->onSuccess($state, $now); + } else { + $this->onFailure($state, $now); + } + } + + public function onSuccess($state, $now) + { + if ($state == STATE_CLOSED) { + $this->counter->onSuccess(); + } elseif ($state == STATE_HALF_OPEN) { + $this->counter->onSuccess(); + if ($this->counter->total - $this->counter->failures >= $this->breakerSetting->maxRequests) { + $this->switchState(STATE_CLOSED, $now); + } + } + } + + public function onFailure($state, $now) + { + if ($state == STATE_CLOSED) { + $this->counter->onFailure(); + if ($this->readyToOpen()) { + $this->switchState(STATE_OPEN, $now); + } + } elseif ($state == STATE_HALF_OPEN) { + $this->counter->onFailure(); + $this->switchState(STATE_OPEN, $now); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/Profile/ClientProfile.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/Profile/ClientProfile.php index 113db1d70..8cac10529 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/Profile/ClientProfile.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Common/Profile/ClientProfile.php @@ -18,6 +18,8 @@ namespace TencentCloud\Common\Profile; +use TencentCloud\Common\Exception\TencentCloudSDKException; + /** * client可选参数类 * Class ClientProfile @@ -50,7 +52,12 @@ class ClientProfile * @var string English */ public static $EN_US = "en-US"; - + + /** + * @var boolean 开启地域容器 + */ + public $enableRegionBreaker; + /** * @var HttpProfile http相关参数 */ @@ -75,19 +82,27 @@ class ClientProfile * @var string */ private $language; - + + /** + * @var RegionBreakerProfile 地域容灾相关参数 + */ + private $regionBreakerProfile; /** * ClientProfile constructor. * @param string $signMethod 签名算法,目前支持SHA256,SHA1 * @param HttpProfile $httpProfile http参数类 + * @param boolean $enableRegionBreaker 开启地域容灾 + * @param RegionBreakerProfile $regionBreakerProfile 地域容灾相关参数 */ - public function __construct($signMethod = null, $httpProfile = null) + public function __construct($signMethod = null, $httpProfile = null, $enableRegionBreaker = false, $regionBreakerProfile = null) { $this->signMethod = $signMethod ? $signMethod : ClientProfile::$SIGN_TC3_SHA256; $this->httpProfile = $httpProfile ? $httpProfile : new HttpProfile(); $this->unsignedPayload = false; - $this->checkPHPVersion = true; + $this->checkPHPVersion = true; + $this->enableRegionBreaker = $enableRegionBreaker; + $this->regionBreakerProfile = $regionBreakerProfile; //$this->language = ClientProfile::$ZH_CN; } @@ -158,7 +173,21 @@ class ClientProfile { $this->language = $language; } - + + public function getRegionBreakerProfile() + { + return $this->regionBreakerProfile; + } + + /** + * 设置地域容灾相关参数 + * @param RegionBreakerProfile $regionBreakerProfile 地域容灾相关参数 + */ + public function setRegionBreakerProfile($regionBreakerProfile) + { + $this->regionBreakerProfile = $regionBreakerProfile; + } + /** * 获取http选项实例 * @return null|HttpProfile http选项实例 @@ -168,3 +197,31 @@ class ClientProfile return $this->httpProfile; } } + +class RegionBreakerProfile { + + public function __construct($masterEndpoint, + $slaveEndpoint, + $maxFailNum = 5, + $maxFailPercent = 0.75, + $windowInterval = 60*5, + $timeout = 60, + $maxRequests = 5) { + if (empty($masterEndpoint) || !(substr($masterEndpoint, -20) === '.tencentcloudapi.com')) { + throw new TencentCloudSDKException("", 'masterEndpoint must be provided and end with ".tencentcloudapi.com"'); + } + if (empty($slaveEndpoint) || !(substr($slaveEndpoint, -20) === '.tencentcloudapi.com')) { + throw new TencentCloudSDKException("", 'slaveEndpoint must be provided and end with ".tencentcloudapi.com"'); + } + $this->masterEndpoint = $masterEndpoint; + $this->slaveEndpoint = $slaveEndpoint; + $this->maxFailNum = $maxFailNum; + $this->maxFailPercent = $maxFailPercent; + if ($this->maxFailPercent < 0 || $this->maxFailPercent > 1) { + throw new TencentCloudSDKException("", "ClientError: max fail percent must be set between 0 and 1"); + } + $this->windowInterval = $windowInterval; + $this->timeout = $timeout; + $this->maxRequests = $maxRequests; + } +} \ No newline at end of file diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/CsipClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/CsipClient.php index 11eba993d..25efbf2ab 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/CsipClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/CsipClient.php @@ -32,6 +32,7 @@ use TencentCloud\Csip\V20221121\Models as Models; * @method Models\DescribeDbAssetInfoResponse DescribeDbAssetInfo(Models\DescribeDbAssetInfoRequest $req) db资产详情 * @method Models\DescribeDbAssetsResponse DescribeDbAssets(Models\DescribeDbAssetsRequest $req) 资产列表 * @method Models\DescribeDomainAssetsResponse DescribeDomainAssets(Models\DescribeDomainAssetsRequest $req) 域名列表 + * @method Models\DescribeListenerListResponse DescribeListenerList(Models\DescribeListenerListRequest $req) 查询clb监听器列表 * @method Models\DescribePublicIpAssetsResponse DescribePublicIpAssets(Models\DescribePublicIpAssetsRequest $req) ip公网列表 * @method Models\DescribeRiskCenterAssetViewPortRiskListResponse DescribeRiskCenterAssetViewPortRiskList(Models\DescribeRiskCenterAssetViewPortRiskListRequest $req) 获取资产视角的端口风险列表 * @method Models\DescribeRiskCenterAssetViewVULRiskListResponse DescribeRiskCenterAssetViewVULRiskList(Models\DescribeRiskCenterAssetViewVULRiskListRequest $req) 获取资产视角的漏洞风险列表 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/AssetClusterPod.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/AssetClusterPod.php index 44e5c9c9c..e7284f47d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/AssetClusterPod.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/AssetClusterPod.php @@ -85,6 +85,10 @@ use TencentCloud\Common\AbstractModel; * @method integer getIsCore() 获取是否核心:1:核心,2:非核心 注意:此字段可能返回 null,表示取不到有效值。 * @method void setIsCore(integer $IsCore) 设置是否核心:1:核心,2:非核心 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsNewAsset() 获取是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsNewAsset(integer $IsNewAsset) 设置是否新资产 1新 注意:此字段可能返回 null,表示取不到有效值。 */ class AssetClusterPod extends AbstractModel @@ -198,6 +202,12 @@ class AssetClusterPod extends AbstractModel */ public $IsCore; + /** + * @var integer 是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsNewAsset; + /** * @param integer $AppId 租户id * @param string $Uin 租户uin @@ -231,6 +241,8 @@ class AssetClusterPod extends AbstractModel * @param string $PrivateIp 内网ip 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $IsCore 是否核心:1:核心,2:非核心 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsNewAsset 是否新资产 1新 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -321,5 +333,9 @@ class AssetClusterPod extends AbstractModel if (array_key_exists("IsCore",$param) and $param["IsCore"] !== null) { $this->IsCore = $param["IsCore"]; } + + if (array_key_exists("IsNewAsset",$param) and $param["IsNewAsset"] !== null) { + $this->IsNewAsset = $param["IsNewAsset"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CVMAssetVO.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CVMAssetVO.php index 5b6bd0a4d..8052ce298 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CVMAssetVO.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CVMAssetVO.php @@ -219,6 +219,10 @@ use TencentCloud\Common\AbstractModel; * @method integer getBASAgentStatus() 获取模拟攻击工具状态。0代表未安装,1代表已安装,2代表已离线 注意:此字段可能返回 null,表示取不到有效值。 * @method void setBASAgentStatus(integer $BASAgentStatus) 设置模拟攻击工具状态。0代表未安装,1代表已安装,2代表已离线 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsNewAsset() 获取1新资产;0 非新资产 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsNewAsset(integer $IsNewAsset) 设置1新资产;0 非新资产 注意:此字段可能返回 null,表示取不到有效值。 */ class CVMAssetVO extends AbstractModel @@ -523,6 +527,12 @@ class CVMAssetVO extends AbstractModel */ public $BASAgentStatus; + /** + * @var integer 1新资产;0 非新资产 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsNewAsset; + /** * @param string $AssetId 资产id 注意:此字段可能返回 null,表示取不到有效值。 @@ -623,6 +633,8 @@ class CVMAssetVO extends AbstractModel * @param integer $RiskExposure 风险服务暴露 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $BASAgentStatus 模拟攻击工具状态。0代表未安装,1代表已安装,2代表已离线 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsNewAsset 1新资产;0 非新资产 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -842,5 +854,9 @@ class CVMAssetVO extends AbstractModel if (array_key_exists("BASAgentStatus",$param) and $param["BASAgentStatus"] !== null) { $this->BASAgentStatus = $param["BASAgentStatus"]; } + + if (array_key_exists("IsNewAsset",$param) and $param["IsNewAsset"] !== null) { + $this->IsNewAsset = $param["IsNewAsset"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/ClbListenerListInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/ClbListenerListInfo.php new file mode 100644 index 000000000..63375f915 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/ClbListenerListInfo.php @@ -0,0 +1,233 @@ +ListenerId = $param["ListenerId"]; + } + + if (array_key_exists("ListenerName",$param) and $param["ListenerName"] !== null) { + $this->ListenerName = $param["ListenerName"]; + } + + if (array_key_exists("LoadBalancerId",$param) and $param["LoadBalancerId"] !== null) { + $this->LoadBalancerId = $param["LoadBalancerId"]; + } + + if (array_key_exists("LoadBalancerName",$param) and $param["LoadBalancerName"] !== null) { + $this->LoadBalancerName = $param["LoadBalancerName"]; + } + + if (array_key_exists("Protocol",$param) and $param["Protocol"] !== null) { + $this->Protocol = $param["Protocol"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } + + if (array_key_exists("Vip",$param) and $param["Vip"] !== null) { + $this->Vip = $param["Vip"]; + } + + if (array_key_exists("VPort",$param) and $param["VPort"] !== null) { + $this->VPort = $param["VPort"]; + } + + if (array_key_exists("Zone",$param) and $param["Zone"] !== null) { + $this->Zone = $param["Zone"]; + } + + if (array_key_exists("NumericalVpcId",$param) and $param["NumericalVpcId"] !== null) { + $this->NumericalVpcId = $param["NumericalVpcId"]; + } + + if (array_key_exists("LoadBalancerType",$param) and $param["LoadBalancerType"] !== null) { + $this->LoadBalancerType = $param["LoadBalancerType"]; + } + + if (array_key_exists("Domain",$param) and $param["Domain"] !== null) { + $this->Domain = $param["Domain"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CreateRiskCenterScanTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CreateRiskCenterScanTaskRequest.php index 61b404357..160f80a14 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CreateRiskCenterScanTaskRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CreateRiskCenterScanTaskRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTaskName(string $TaskName) 设置任务名称 * @method integer getScanAssetType() 获取0-全扫,1-指定资产扫,2-排除资产扫,3-手动填写扫;1和2则Assets字段必填,3则SelfDefiningAssets必填 * @method void setScanAssetType(integer $ScanAssetType) 设置0-全扫,1-指定资产扫,2-排除资产扫,3-手动填写扫;1和2则Assets字段必填,3则SelfDefiningAssets必填 - * @method array getScanItem() 获取扫描项目;port/poc/weakpass/webcontent/configrisk - * @method void setScanItem(array $ScanItem) 设置扫描项目;port/poc/weakpass/webcontent/configrisk + * @method array getScanItem() 获取扫描项目;port/poc/weakpass/webcontent/configrisk/exposedserver + * @method void setScanItem(array $ScanItem) 设置扫描项目;port/poc/weakpass/webcontent/configrisk/exposedserver * @method integer getScanPlanType() 获取0-周期任务,1-立即扫描,2-定时扫描,3-自定义;0,2,3则ScanPlanContent必填 * @method void setScanPlanType(integer $ScanPlanType) 设置0-周期任务,1-立即扫描,2-定时扫描,3-自定义;0,2,3则ScanPlanContent必填 * @method array getAssets() 获取扫描资产信息列表 @@ -52,7 +52,7 @@ class CreateRiskCenterScanTaskRequest extends AbstractModel public $ScanAssetType; /** - * @var array 扫描项目;port/poc/weakpass/webcontent/configrisk + * @var array 扫描项目;port/poc/weakpass/webcontent/configrisk/exposedserver */ public $ScanItem; @@ -89,7 +89,7 @@ class CreateRiskCenterScanTaskRequest extends AbstractModel /** * @param string $TaskName 任务名称 * @param integer $ScanAssetType 0-全扫,1-指定资产扫,2-排除资产扫,3-手动填写扫;1和2则Assets字段必填,3则SelfDefiningAssets必填 - * @param array $ScanItem 扫描项目;port/poc/weakpass/webcontent/configrisk + * @param array $ScanItem 扫描项目;port/poc/weakpass/webcontent/configrisk/exposedserver * @param integer $ScanPlanType 0-周期任务,1-立即扫描,2-定时扫描,3-自定义;0,2,3则ScanPlanContent必填 * @param array $Assets 扫描资产信息列表 * @param string $ScanPlanContent 扫描计划详情 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CreateRiskCenterScanTaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CreateRiskCenterScanTaskResponse.php index fe7560728..fc6b69ad0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CreateRiskCenterScanTaskResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/CreateRiskCenterScanTaskResponse.php @@ -22,6 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method string getTaskId() 获取任务id * @method void setTaskId(string $TaskId) 设置任务id + * @method integer getStatus() 获取0,任务创建成功;小于0失败;-1为存在资产未认证 + * @method void setStatus(integer $Status) 设置0,任务创建成功;小于0失败;-1为存在资产未认证 + * @method array getUnAuthAsset() 获取未认证资产列表 + * @method void setUnAuthAsset(array $UnAuthAsset) 设置未认证资产列表 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -32,6 +36,16 @@ class CreateRiskCenterScanTaskResponse extends AbstractModel */ public $TaskId; + /** + * @var integer 0,任务创建成功;小于0失败;-1为存在资产未认证 + */ + public $Status; + + /** + * @var array 未认证资产列表 + */ + public $UnAuthAsset; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -39,6 +53,8 @@ class CreateRiskCenterScanTaskResponse extends AbstractModel /** * @param string $TaskId 任务id + * @param integer $Status 0,任务创建成功;小于0失败;-1为存在资产未认证 + * @param array $UnAuthAsset 未认证资产列表 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -58,6 +74,14 @@ class CreateRiskCenterScanTaskResponse extends AbstractModel $this->TaskId = $param["TaskId"]; } + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("UnAuthAsset",$param) and $param["UnAuthAsset"] !== null) { + $this->UnAuthAsset = $param["UnAuthAsset"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DBAssetVO.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DBAssetVO.php index ec8a93617..8c80a9435 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DBAssetVO.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DBAssetVO.php @@ -107,6 +107,10 @@ use TencentCloud\Common\AbstractModel; * @method integer getIsCore() 获取是否核心 注意:此字段可能返回 null,表示取不到有效值。 * @method void setIsCore(integer $IsCore) 设置是否核心 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsNewAsset() 获取是否新资产: 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsNewAsset(integer $IsNewAsset) 设置是否新资产: 1新 注意:此字段可能返回 null,表示取不到有效值。 */ class DBAssetVO extends AbstractModel @@ -243,6 +247,12 @@ class DBAssetVO extends AbstractModel */ public $IsCore; + /** + * @var integer 是否新资产: 1新 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsNewAsset; + /** * @param string $AssetId 资产id 注意:此字段可能返回 null,表示取不到有效值。 @@ -287,6 +297,8 @@ class DBAssetVO extends AbstractModel * @param integer $Status 状态 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $IsCore 是否核心 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsNewAsset 是否新资产: 1新 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -394,5 +406,9 @@ class DBAssetVO extends AbstractModel if (array_key_exists("IsCore",$param) and $param["IsCore"] !== null) { $this->IsCore = $param["IsCore"]; } + + if (array_key_exists("IsNewAsset",$param) and $param["IsNewAsset"] !== null) { + $this->IsNewAsset = $param["IsNewAsset"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteDictRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DescribeListenerListRequest.php similarity index 65% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteDictRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DescribeListenerListRequest.php index 74f983096..b2b473986 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteDictRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DescribeListenerListRequest.php @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Csip\V20221121\Models; use TencentCloud\Common\AbstractModel; /** - * DeleteDict请求参数结构体 + * DescribeListenerList请求参数结构体 * - * @method string getDictId() 获取要删除的自定义词库ID。 - * @method void setDictId(string $DictId) 设置要删除的自定义词库ID。 + * @method Filter getFilter() 获取- + * @method void setFilter(Filter $Filter) 设置- */ -class DeleteDictRequest extends AbstractModel +class DescribeListenerListRequest extends AbstractModel { /** - * @var string 要删除的自定义词库ID。 + * @var Filter - */ - public $DictId; + public $Filter; /** - * @param string $DictId 要删除的自定义词库ID。 + * @param Filter $Filter - */ function __construct() { @@ -46,8 +46,9 @@ class DeleteDictRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("DictId",$param) and $param["DictId"] !== null) { - $this->DictId = $param["DictId"]; + if (array_key_exists("Filter",$param) and $param["Filter"] !== null) { + $this->Filter = new Filter(); + $this->Filter->deserialize($param["Filter"]); } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/QueryCDBProxyResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DescribeListenerListResponse.php similarity index 71% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/QueryCDBProxyResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DescribeListenerListResponse.php index 9390f0b02..0d25526cd 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/QueryCDBProxyResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DescribeListenerListResponse.php @@ -14,36 +14,36 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Csip\V20221121\Models; use TencentCloud\Common\AbstractModel; /** - * QueryCDBProxy返回参数结构体 + * DescribeListenerList返回参数结构体 * - * @method integer getCount() 获取代理数量 + * @method integer getTotal() 获取总数 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setCount(integer $Count) 设置代理数量 + * @method void setTotal(integer $Total) 设置总数 注意:此字段可能返回 null,表示取不到有效值。 - * @method array getProxyGroup() 获取代理信息 + * @method array getData() 获取监听器列表 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setProxyGroup(array $ProxyGroup) 设置代理信息 + * @method void setData(array $Data) 设置监听器列表 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class QueryCDBProxyResponse extends AbstractModel +class DescribeListenerListResponse extends AbstractModel { /** - * @var integer 代理数量 + * @var integer 总数 注意:此字段可能返回 null,表示取不到有效值。 */ - public $Count; + public $Total; /** - * @var array 代理信息 + * @var array 监听器列表 注意:此字段可能返回 null,表示取不到有效值。 */ - public $ProxyGroup; + public $Data; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -51,9 +51,9 @@ class QueryCDBProxyResponse extends AbstractModel public $RequestId; /** - * @param integer $Count 代理数量 + * @param integer $Total 总数 注意:此字段可能返回 null,表示取不到有效值。 - * @param array $ProxyGroup 代理信息 + * @param array $Data 监听器列表 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -70,16 +70,16 @@ class QueryCDBProxyResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Count",$param) and $param["Count"] !== null) { - $this->Count = $param["Count"]; + if (array_key_exists("Total",$param) and $param["Total"] !== null) { + $this->Total = $param["Total"]; } - if (array_key_exists("ProxyGroup",$param) and $param["ProxyGroup"] !== null) { - $this->ProxyGroup = []; - foreach ($param["ProxyGroup"] as $key => $value){ - $obj = new ProxyGroups(); + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new ClbListenerListInfo(); $obj->deserialize($value); - array_push($this->ProxyGroup, $obj); + array_push($this->Data, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DomainAssetVO.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DomainAssetVO.php index e6669e47f..15c612155 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DomainAssetVO.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/DomainAssetVO.php @@ -155,6 +155,22 @@ use TencentCloud\Common\AbstractModel; * @method integer getServiceRisk() 获取风险服务暴露数量 注意:此字段可能返回 null,表示取不到有效值。 * @method void setServiceRisk(integer $ServiceRisk) 设置风险服务暴露数量 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsNewAsset() 获取是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsNewAsset(integer $IsNewAsset) 设置是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getVerifyDomain() 获取待确认资产的随机三级域名 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setVerifyDomain(string $VerifyDomain) 设置待确认资产的随机三级域名 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getVerifyTXTRecord() 获取待确认资产的TXT记录内容 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setVerifyTXTRecord(string $VerifyTXTRecord) 设置待确认资产的TXT记录内容 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getVerifyStatus() 获取待确认资产的认证状态,0-待认证,1-认证成功,2-认证中,3-txt认证失败,4-人工认证失败 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setVerifyStatus(integer $VerifyStatus) 设置待确认资产的认证状态,0-待认证,1-认证成功,2-认证中,3-txt认证失败,4-人工认证失败 注意:此字段可能返回 null,表示取不到有效值。 */ class DomainAssetVO extends AbstractModel @@ -363,6 +379,30 @@ class DomainAssetVO extends AbstractModel */ public $ServiceRisk; + /** + * @var integer 是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsNewAsset; + + /** + * @var string 待确认资产的随机三级域名 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $VerifyDomain; + + /** + * @var string 待确认资产的TXT记录内容 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $VerifyTXTRecord; + + /** + * @var integer 待确认资产的认证状态,0-待认证,1-认证成功,2-认证中,3-txt认证失败,4-人工认证失败 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $VerifyStatus; + /** * @param array $AssetId 资产id 注意:此字段可能返回 null,表示取不到有效值。 @@ -431,6 +471,14 @@ class DomainAssetVO extends AbstractModel * @param integer $WebAttack web攻击 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $ServiceRisk 风险服务暴露数量 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsNewAsset 是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $VerifyDomain 待确认资产的随机三级域名 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $VerifyTXTRecord 待确认资产的TXT记录内容 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $VerifyStatus 待确认资产的认证状态,0-待认证,1-认证成功,2-认证中,3-txt认证失败,4-人工认证失败 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -586,5 +634,21 @@ class DomainAssetVO extends AbstractModel if (array_key_exists("ServiceRisk",$param) and $param["ServiceRisk"] !== null) { $this->ServiceRisk = $param["ServiceRisk"]; } + + if (array_key_exists("IsNewAsset",$param) and $param["IsNewAsset"] !== null) { + $this->IsNewAsset = $param["IsNewAsset"]; + } + + if (array_key_exists("VerifyDomain",$param) and $param["VerifyDomain"] !== null) { + $this->VerifyDomain = $param["VerifyDomain"]; + } + + if (array_key_exists("VerifyTXTRecord",$param) and $param["VerifyTXTRecord"] !== null) { + $this->VerifyTXTRecord = $param["VerifyTXTRecord"]; + } + + if (array_key_exists("VerifyStatus",$param) and $param["VerifyStatus"] !== null) { + $this->VerifyStatus = $param["VerifyStatus"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/IpAssetListVO.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/IpAssetListVO.php index f4bc148d8..62b4ab4c7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/IpAssetListVO.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/IpAssetListVO.php @@ -151,6 +151,14 @@ use TencentCloud\Common\AbstractModel; * @method integer getRiskExposure() 获取风险服务暴露 注意:此字段可能返回 null,表示取不到有效值。 * @method void setRiskExposure(integer $RiskExposure) 设置风险服务暴露 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsNewAsset() 获取是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsNewAsset(integer $IsNewAsset) 设置是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getVerifyStatus() 获取资产认证状态,0-待认证,1-认证成功,2-认证中,3+-认证失败 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setVerifyStatus(integer $VerifyStatus) 设置资产认证状态,0-待认证,1-认证成功,2-认证中,3+-认证失败 注意:此字段可能返回 null,表示取不到有效值。 */ class IpAssetListVO extends AbstractModel @@ -353,6 +361,18 @@ class IpAssetListVO extends AbstractModel */ public $RiskExposure; + /** + * @var integer 是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsNewAsset; + + /** + * @var integer 资产认证状态,0-待认证,1-认证成功,2-认证中,3+-认证失败 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $VerifyStatus; + /** * @param string $AssetId 资产id 注意:此字段可能返回 null,表示取不到有效值。 @@ -419,6 +439,10 @@ class IpAssetListVO extends AbstractModel * @param string $MemberId memberid信息 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $RiskExposure 风险服务暴露 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsNewAsset 是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $VerifyStatus 资产认证状态,0-待认证,1-认证成功,2-认证中,3+-认证失败 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -570,5 +594,13 @@ class IpAssetListVO extends AbstractModel if (array_key_exists("RiskExposure",$param) and $param["RiskExposure"] !== null) { $this->RiskExposure = $param["RiskExposure"]; } + + if (array_key_exists("IsNewAsset",$param) and $param["IsNewAsset"] !== null) { + $this->IsNewAsset = $param["IsNewAsset"]; + } + + if (array_key_exists("VerifyStatus",$param) and $param["VerifyStatus"] !== null) { + $this->VerifyStatus = $param["VerifyStatus"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/SubnetAsset.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/SubnetAsset.php index 57514a47a..3136fb3d0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/SubnetAsset.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/SubnetAsset.php @@ -59,6 +59,10 @@ use TencentCloud\Common\AbstractModel; * @method integer getIsCore() 获取是否核心 注意:此字段可能返回 null,表示取不到有效值。 * @method void setIsCore(integer $IsCore) 设置是否核心 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsNewAsset() 获取是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsNewAsset(integer $IsNewAsset) 设置是否新资产 1新 注意:此字段可能返回 null,表示取不到有效值。 */ class SubnetAsset extends AbstractModel @@ -155,6 +159,12 @@ class SubnetAsset extends AbstractModel */ public $IsCore; + /** + * @var integer 是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsNewAsset; + /** * @param string $AppId appid * @param string $Uin uin @@ -175,6 +185,8 @@ class SubnetAsset extends AbstractModel * @param integer $ScanTask 任务数 * @param string $LastScanTime 最后扫描时间 * @param integer $IsCore 是否核心 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsNewAsset 是否新资产 1新 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -266,5 +278,9 @@ class SubnetAsset extends AbstractModel if (array_key_exists("IsCore",$param) and $param["IsCore"] !== null) { $this->IsCore = $param["IsCore"]; } + + if (array_key_exists("IsNewAsset",$param) and $param["IsNewAsset"] !== null) { + $this->IsNewAsset = $param["IsNewAsset"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/Vpc.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/Vpc.php index dfc201243..d36667282 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/Vpc.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/Vpc.php @@ -50,6 +50,14 @@ use TencentCloud\Common\AbstractModel; * @method void setUin(string $Uin) 设置uin * @method string getNick() 获取昵称 * @method void setNick(string $Nick) 设置昵称 + * @method integer getIsNewAsset() 获取是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsNewAsset(integer $IsNewAsset) 设置是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsCore() 获取是否核心资产1是 2不是 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsCore(integer $IsCore) 设置是否核心资产1是 2不是 +注意:此字段可能返回 null,表示取不到有效值。 */ class Vpc extends AbstractModel { @@ -120,6 +128,18 @@ class Vpc extends AbstractModel */ public $Nick; + /** + * @var integer 是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsNewAsset; + + /** + * @var integer 是否核心资产1是 2不是 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsCore; + /** * @param integer $Subnet 子网(只支持32位) * @param integer $ConnectedVpc 互通vpc(只支持32位) @@ -136,6 +156,10 @@ class Vpc extends AbstractModel * @param string $AppId appid * @param string $Uin uin * @param string $Nick 昵称 + * @param integer $IsNewAsset 是否新资产 1新 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsCore 是否核心资产1是 2不是 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { @@ -206,5 +230,13 @@ class Vpc extends AbstractModel if (array_key_exists("Nick",$param) and $param["Nick"] !== null) { $this->Nick = $param["Nick"]; } + + if (array_key_exists("IsNewAsset",$param) and $param["IsNewAsset"] !== null) { + $this->IsNewAsset = $param["IsNewAsset"]; + } + + if (array_key_exists("IsCore",$param) and $param["IsCore"] !== null) { + $this->IsCore = $param["IsCore"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/WhereFilter.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/WhereFilter.php index 8e34ad1ac..59466bd19 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/WhereFilter.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Csip/V20221121/Models/WhereFilter.php @@ -24,8 +24,13 @@ use TencentCloud\Common\AbstractModel; * @method void setName(string $Name) 设置过滤的项 * @method array getValues() 获取过滤的值 * @method void setValues(array $Values) 设置过滤的值 - * @method integer getOperatorType() 获取精确匹配填 7 模糊匹配填9 , 兼容 中台定的结构 - * @method void setOperatorType(integer $OperatorType) 设置精确匹配填 7 模糊匹配填9 , 兼容 中台定的结构 + * @method integer getOperatorType() 获取中台定义: +1等于 2大于 3小于 4大于等于 5小于等于 6不等于 9模糊匹配 13非模糊匹配 14按位与 +精确匹配填 7 模糊匹配填9 兼容 中台定的结构 + + * @method void setOperatorType(integer $OperatorType) 设置中台定义: +1等于 2大于 3小于 4大于等于 5小于等于 6不等于 9模糊匹配 13非模糊匹配 14按位与 +精确匹配填 7 模糊匹配填9 兼容 中台定的结构 */ class WhereFilter extends AbstractModel { @@ -40,14 +45,19 @@ class WhereFilter extends AbstractModel public $Values; /** - * @var integer 精确匹配填 7 模糊匹配填9 , 兼容 中台定的结构 + * @var integer 中台定义: +1等于 2大于 3小于 4大于等于 5小于等于 6不等于 9模糊匹配 13非模糊匹配 14按位与 +精确匹配填 7 模糊匹配填9 兼容 中台定的结构 + */ public $OperatorType; /** * @param string $Name 过滤的项 * @param array $Values 过滤的值 - * @param integer $OperatorType 精确匹配填 7 模糊匹配填9 , 兼容 中台定的结构 + * @param integer $OperatorType 中台定义: +1等于 2大于 3小于 4大于等于 5小于等于 6不等于 9模糊匹配 13非模糊匹配 14按位与 +精确匹配填 7 模糊匹配填9 兼容 中台定的结构 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cwp/V20180228/Models/LicenseDetail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cwp/V20180228/Models/LicenseDetail.php index d49240522..4cfe5778d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cwp/V20180228/Models/LicenseDetail.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cwp/V20180228/Models/LicenseDetail.php @@ -53,6 +53,10 @@ use TencentCloud\Common\AbstractModel; * @method array getTags() 获取平台标签 注意:此字段可能返回 null,表示取不到有效值。 * @method void setTags(array $Tags) 设置平台标签 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getFreezeNum() 获取冻结数,当为0时 为未冻结,非0 则表示冻结授权数额 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setFreezeNum(integer $FreezeNum) 设置冻结数,当为0时 为未冻结,非0 则表示冻结授权数额 注意:此字段可能返回 null,表示取不到有效值。 */ class LicenseDetail extends AbstractModel @@ -134,6 +138,12 @@ class LicenseDetail extends AbstractModel */ public $Tags; + /** + * @var integer 冻结数,当为0时 为未冻结,非0 则表示冻结授权数额 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $FreezeNum; + /** * @param integer $LicenseId 授权ID * @param integer $LicenseType 授权类型,0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月 @@ -151,6 +161,8 @@ class LicenseDetail extends AbstractModel * @param integer $SourceType 是否试用订单. * @param string $Alias 资源别名 * @param array $Tags 平台标签 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $FreezeNum 冻结数,当为0时 为未冻结,非0 则表示冻结授权数额 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -230,5 +242,9 @@ class LicenseDetail extends AbstractModel array_push($this->Tags, $obj); } } + + if (array_key_exists("FreezeNum",$param) and $param["FreezeNum"] !== null) { + $this->FreezeNum = $param["FreezeNum"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/CynosdbClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/CynosdbClient.php index 40862ab58..6bd6a7f35 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/CynosdbClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/CynosdbClient.php @@ -129,6 +129,7 @@ use TencentCloud\Cynosdb\V20190107\Models as Models; * @method Models\OfflineInstanceResponse OfflineInstance(Models\OfflineInstanceRequest $req) 下线实例 * @method Models\OpenAuditServiceResponse OpenAuditService(Models\OpenAuditServiceRequest $req) TDSQL-C for MySQL实例开通审计服务 * @method Models\OpenClusterPasswordComplexityResponse OpenClusterPasswordComplexity(Models\OpenClusterPasswordComplexityRequest $req) 本接口(OpenClusterPasswordComplexity)用于开启集群密码复杂度 + * @method Models\OpenClusterReadOnlyInstanceGroupAccessResponse OpenClusterReadOnlyInstanceGroupAccess(Models\OpenClusterReadOnlyInstanceGroupAccessRequest $req) 开启只读实例组接入 * @method Models\OpenReadOnlyInstanceExclusiveAccessResponse OpenReadOnlyInstanceExclusiveAccess(Models\OpenReadOnlyInstanceExclusiveAccessRequest $req) 开通只读实例独有访问接入组 * @method Models\OpenWanResponse OpenWan(Models\OpenWanRequest $req) 本接口(OpenWan)用于开通外网 * @method Models\PauseServerlessResponse PauseServerless(Models\PauseServerlessRequest $req) 暂停serverless集群 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/Addr.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/Addr.php index c45677e8e..5902004da 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/Addr.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/Addr.php @@ -20,15 +20,15 @@ use TencentCloud\Common\AbstractModel; /** * 数据库地址 * - * @method string getIP() 获取IP - * @method void setIP(string $IP) 设置IP + * @method string getIP() 获取IP地址 + * @method void setIP(string $IP) 设置IP地址 * @method integer getPort() 获取端口 * @method void setPort(integer $Port) 设置端口 */ class Addr extends AbstractModel { /** - * @var string IP + * @var string IP地址 */ public $IP; @@ -38,7 +38,7 @@ class Addr extends AbstractModel public $Port; /** - * @param string $IP IP + * @param string $IP IP地址 * @param integer $Port 端口 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/ClusterInstanceDetail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/ClusterInstanceDetail.php index 260dfbd34..1dd428b31 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/ClusterInstanceDetail.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/ClusterInstanceDetail.php @@ -38,6 +38,18 @@ use TencentCloud\Common\AbstractModel; * @method void setInstanceStorage(integer $InstanceStorage) 设置硬盘 * @method string getInstanceRole() 获取实例角色 * @method void setInstanceRole(string $InstanceRole) 设置实例角色 + * @method integer getMaintainStartTime() 获取执行开始时间(距离0点的秒数) +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMaintainStartTime(integer $MaintainStartTime) 设置执行开始时间(距离0点的秒数) +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getMaintainDuration() 获取持续的时间(单位:秒) +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMaintainDuration(integer $MaintainDuration) 设置持续的时间(单位:秒) +注意:此字段可能返回 null,表示取不到有效值。 + * @method array getMaintainWeekDays() 获取可以执行的时间,枚举值:["Mon","Tue","Wed","Thu","Fri", "Sat", "Sun"] +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMaintainWeekDays(array $MaintainWeekDays) 设置可以执行的时间,枚举值:["Mon","Tue","Wed","Thu","Fri", "Sat", "Sun"] +注意:此字段可能返回 null,表示取不到有效值。 */ class ClusterInstanceDetail extends AbstractModel { @@ -86,6 +98,24 @@ class ClusterInstanceDetail extends AbstractModel */ public $InstanceRole; + /** + * @var integer 执行开始时间(距离0点的秒数) +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MaintainStartTime; + + /** + * @var integer 持续的时间(单位:秒) +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MaintainDuration; + + /** + * @var array 可以执行的时间,枚举值:["Mon","Tue","Wed","Thu","Fri", "Sat", "Sun"] +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MaintainWeekDays; + /** * @param string $InstanceId 实例ID * @param string $InstanceName 实例名称 @@ -96,6 +126,12 @@ class ClusterInstanceDetail extends AbstractModel * @param integer $InstanceMemory 内存 * @param integer $InstanceStorage 硬盘 * @param string $InstanceRole 实例角色 + * @param integer $MaintainStartTime 执行开始时间(距离0点的秒数) +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $MaintainDuration 持续的时间(单位:秒) +注意:此字段可能返回 null,表示取不到有效值。 + * @param array $MaintainWeekDays 可以执行的时间,枚举值:["Mon","Tue","Wed","Thu","Fri", "Sat", "Sun"] +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { @@ -145,5 +181,17 @@ class ClusterInstanceDetail extends AbstractModel if (array_key_exists("InstanceRole",$param) and $param["InstanceRole"] !== null) { $this->InstanceRole = $param["InstanceRole"]; } + + if (array_key_exists("MaintainStartTime",$param) and $param["MaintainStartTime"] !== null) { + $this->MaintainStartTime = $param["MaintainStartTime"]; + } + + if (array_key_exists("MaintainDuration",$param) and $param["MaintainDuration"] !== null) { + $this->MaintainDuration = $param["MaintainDuration"]; + } + + if (array_key_exists("MaintainWeekDays",$param) and $param["MaintainWeekDays"] !== null) { + $this->MaintainWeekDays = $param["MaintainWeekDays"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/CreateClustersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/CreateClustersRequest.php index 4d2224a84..f7ce5601d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/CreateClustersRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/CreateClustersRequest.php @@ -41,13 +41,13 @@ use TencentCloud\Common\AbstractModel; * @method void setCpu(integer $Cpu) 设置当DbMode为NORMAL或不填时必选 普通实例Cpu核数 * @method integer getMemory() 获取当DbMode为NORMAL或不填时必选 -普通实例内存,单位G +普通实例内存,单位GB * @method void setMemory(integer $Memory) 设置当DbMode为NORMAL或不填时必选 -普通实例内存,单位G +普通实例内存,单位GB * @method integer getStorage() 获取该参数无实际意义,已废弃。 -存储大小,单位G。 +存储大小,单位GB。 * @method void setStorage(integer $Storage) 设置该参数无实际意义,已废弃。 -存储大小,单位G。 +存储大小,单位GB。 * @method string getClusterName() 获取集群名称,长度小于64个字符,每个字符取值范围:大/小写字母,数字,特殊符号('-','_','.') * @method void setClusterName(string $ClusterName) 设置集群名称,长度小于64个字符,每个字符取值范围:大/小写字母,数字,特殊符号('-','_','.') * @method string getAdminPassword() 获取账号密码(8-64个字符,包含大小写英文字母、数字和符号~!@#$%^&*_-+=`|\(){}[]:;'<>,.?/中的任意三种) @@ -187,13 +187,13 @@ class CreateClustersRequest extends AbstractModel /** * @var integer 当DbMode为NORMAL或不填时必选 -普通实例内存,单位G +普通实例内存,单位GB */ public $Memory; /** * @var integer 该参数无实际意义,已废弃。 -存储大小,单位G。 +存储大小,单位GB。 */ public $Storage; @@ -385,9 +385,9 @@ cpu最大值,可选范围参考DescribeServerlessInstanceSpecs接口返回 * @param integer $Cpu 当DbMode为NORMAL或不填时必选 普通实例Cpu核数 * @param integer $Memory 当DbMode为NORMAL或不填时必选 -普通实例内存,单位G +普通实例内存,单位GB * @param integer $Storage 该参数无实际意义,已废弃。 -存储大小,单位G。 +存储大小,单位GB。 * @param string $ClusterName 集群名称,长度小于64个字符,每个字符取值范围:大/小写字母,数字,特殊符号('-','_','.') * @param string $AdminPassword 账号密码(8-64个字符,包含大小写英文字母、数字和符号~!@#$%^&*_-+=`|\(){}[]:;'<>,.?/中的任意三种) * @param integer $Port 端口,默认3306,取值范围[0, 65535) diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/CynosdbClusterDetail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/CynosdbClusterDetail.php index ebc16524e..d661eb520 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/CynosdbClusterDetail.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/CynosdbClusterDetail.php @@ -96,8 +96,8 @@ pausing * @method void setVip(string $Vip) 设置vip地址 * @method integer getVport() 获取vport端口 * @method void setVport(integer $Vport) 设置vport端口 - * @method array getRoAddr() 获取读写分离Vport - * @method void setRoAddr(array $RoAddr) 设置读写分离Vport + * @method array getRoAddr() 获取集群只读实例的vip地址和vport端口 + * @method void setRoAddr(array $RoAddr) 设置集群只读实例的vip地址和vport端口 * @method Ability getAbility() 获取集群支持的功能 注意:此字段可能返回 null,表示取不到有效值。 * @method void setAbility(Ability $Ability) 设置集群支持的功能 @@ -318,7 +318,7 @@ pausing public $Vport; /** - * @var array 读写分离Vport + * @var array 集群只读实例的vip地址和vport端口 */ public $RoAddr; @@ -482,7 +482,7 @@ pausing * @param integer $UsedStorage 使用容量 * @param string $Vip vip地址 * @param integer $Vport vport端口 - * @param array $RoAddr 读写分离Vport + * @param array $RoAddr 集群只读实例的vip地址和vport端口 * @param Ability $Ability 集群支持的功能 注意:此字段可能返回 null,表示取不到有效值。 * @param string $CynosVersion cynos版本 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/DescribeAccountsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/DescribeAccountsRequest.php index ab19a3c0a..71710243b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/DescribeAccountsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/DescribeAccountsRequest.php @@ -36,6 +36,8 @@ use TencentCloud\Common\AbstractModel; * @method void setLimit(integer $Limit) 设置限制量 * @method integer getOffset() 获取偏移量 * @method void setOffset(integer $Offset) 设置偏移量 + * @method string getAccountRegular() 获取模糊匹配关键字(同时匹配AccountName和AccountHost,返回并集结果,支持正则) + * @method void setAccountRegular(string $AccountRegular) 设置模糊匹配关键字(同时匹配AccountName和AccountHost,返回并集结果,支持正则) */ class DescribeAccountsRequest extends AbstractModel { @@ -71,6 +73,11 @@ class DescribeAccountsRequest extends AbstractModel */ public $Offset; + /** + * @var string 模糊匹配关键字(同时匹配AccountName和AccountHost,返回并集结果,支持正则) + */ + public $AccountRegular; + /** * @param string $ClusterId 集群ID * @param array $AccountNames 需要过滤的账户列表 @@ -80,6 +87,7 @@ class DescribeAccountsRequest extends AbstractModel * @param array $Hosts 需要过滤的账户列表 * @param integer $Limit 限制量 * @param integer $Offset 偏移量 + * @param string $AccountRegular 模糊匹配关键字(同时匹配AccountName和AccountHost,返回并集结果,支持正则) */ function __construct() { @@ -117,5 +125,9 @@ class DescribeAccountsRequest extends AbstractModel if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { $this->Offset = $param["Offset"]; } + + if (array_key_exists("AccountRegular",$param) and $param["AccountRegular"] !== null) { + $this->AccountRegular = $param["AccountRegular"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/ExportInstanceSlowQueriesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/ExportInstanceSlowQueriesRequest.php index a70d94b70..80445ef62 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/ExportInstanceSlowQueriesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/ExportInstanceSlowQueriesRequest.php @@ -38,6 +38,10 @@ use TencentCloud\Common\AbstractModel; * @method void setDatabase(string $Database) 设置数据库名 * @method string getFileType() 获取文件类型,可选值:csv, original * @method void setFileType(string $FileType) 设置文件类型,可选值:csv, original + * @method string getOrderBy() 获取排序字段,可选值: QueryTime,LockTime,RowsExamined,RowsSent + * @method void setOrderBy(string $OrderBy) 设置排序字段,可选值: QueryTime,LockTime,RowsExamined,RowsSent + * @method string getOrderByType() 获取排序类型,可选值:asc,desc + * @method void setOrderByType(string $OrderByType) 设置排序类型,可选值:asc,desc */ class ExportInstanceSlowQueriesRequest extends AbstractModel { @@ -86,6 +90,16 @@ class ExportInstanceSlowQueriesRequest extends AbstractModel */ public $FileType; + /** + * @var string 排序字段,可选值: QueryTime,LockTime,RowsExamined,RowsSent + */ + public $OrderBy; + + /** + * @var string 排序类型,可选值:asc,desc + */ + public $OrderByType; + /** * @param string $InstanceId 实例ID * @param string $StartTime 事务开始最早时间 @@ -96,6 +110,8 @@ class ExportInstanceSlowQueriesRequest extends AbstractModel * @param string $Host 客户端host * @param string $Database 数据库名 * @param string $FileType 文件类型,可选值:csv, original + * @param string $OrderBy 排序字段,可选值: QueryTime,LockTime,RowsExamined,RowsSent + * @param string $OrderByType 排序类型,可选值:asc,desc */ function __construct() { @@ -145,5 +161,13 @@ class ExportInstanceSlowQueriesRequest extends AbstractModel if (array_key_exists("FileType",$param) and $param["FileType"] !== null) { $this->FileType = $param["FileType"]; } + + if (array_key_exists("OrderBy",$param) and $param["OrderBy"] !== null) { + $this->OrderBy = $param["OrderBy"]; + } + + if (array_key_exists("OrderByType",$param) and $param["OrderByType"] !== null) { + $this->OrderByType = $param["OrderByType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/OpenClusterReadOnlyInstanceGroupAccessRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/OpenClusterReadOnlyInstanceGroupAccessRequest.php new file mode 100644 index 000000000..4ce1a2f68 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/OpenClusterReadOnlyInstanceGroupAccessRequest.php @@ -0,0 +1,47 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/RollbackTableInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/RollbackTableInfo.php index 3d1a3faf5..2fc672aa8 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/RollbackTableInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cynosdb/V20190107/Models/RollbackTableInfo.php @@ -21,25 +21,33 @@ use TencentCloud\Common\AbstractModel; * 回档表信息 * * @method string getOldTable() 获取旧表名称 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setOldTable(string $OldTable) 设置旧表名称 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getNewTable() 获取新表名称 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setNewTable(string $NewTable) 设置新表名称 +注意:此字段可能返回 null,表示取不到有效值。 */ class RollbackTableInfo extends AbstractModel { /** * @var string 旧表名称 +注意:此字段可能返回 null,表示取不到有效值。 */ public $OldTable; /** * @var string 新表名称 +注意:此字段可能返回 null,表示取不到有效值。 */ public $NewTable; /** * @param string $OldTable 旧表名称 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $NewTable 新表名称 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/DescribeDevicesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/DescribeDevicesRequest.php index 23a87b54d..1a6460ed6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/DescribeDevicesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/DescribeDevicesRequest.php @@ -40,6 +40,8 @@ use TencentCloud\Common\AbstractModel; * @method void setResourceIdSet(array $ResourceIdSet) 设置过滤条件,资产绑定的堡垒机服务ID集合 * @method array getKindSet() 获取可提供按照多种类型过滤, 1 - Linux, 2 - Windows, 3 - MySQL, 4 - SQLServer * @method void setKindSet(array $KindSet) 设置可提供按照多种类型过滤, 1 - Linux, 2 - Windows, 3 - MySQL, 4 - SQLServer + * @method string getManagedAccount() 获取资产是否包含托管账号。1,包含;0,不包含 + * @method void setManagedAccount(string $ManagedAccount) 设置资产是否包含托管账号。1,包含;0,不包含 * @method string getDepartmentId() 获取过滤条件,可按照部门ID进行过滤 * @method void setDepartmentId(string $DepartmentId) 设置过滤条件,可按照部门ID进行过滤 * @method array getTagFilters() 获取过滤条件,可按照标签键、标签进行过滤。如果同时指定标签键和标签过滤条件,它们之间为“AND”的关系 @@ -101,6 +103,11 @@ class DescribeDevicesRequest extends AbstractModel */ public $KindSet; + /** + * @var string 资产是否包含托管账号。1,包含;0,不包含 + */ + public $ManagedAccount; + /** * @var string 过滤条件,可按照部门ID进行过滤 */ @@ -128,6 +135,7 @@ BindingStatus 绑定状态 * @param array $AuthorizedUserIdSet 有该资产访问权限的用户ID集合 * @param array $ResourceIdSet 过滤条件,资产绑定的堡垒机服务ID集合 * @param array $KindSet 可提供按照多种类型过滤, 1 - Linux, 2 - Windows, 3 - MySQL, 4 - SQLServer + * @param string $ManagedAccount 资产是否包含托管账号。1,包含;0,不包含 * @param string $DepartmentId 过滤条件,可按照部门ID进行过滤 * @param array $TagFilters 过滤条件,可按照标签键、标签进行过滤。如果同时指定标签键和标签过滤条件,它们之间为“AND”的关系 * @param array $Filters 过滤数组。支持的Name: @@ -186,6 +194,10 @@ BindingStatus 绑定状态 $this->KindSet = $param["KindSet"]; } + if (array_key_exists("ManagedAccount",$param) and $param["ManagedAccount"] !== null) { + $this->ManagedAccount = $param["ManagedAccount"]; + } + if (array_key_exists("DepartmentId",$param) and $param["DepartmentId"] !== null) { $this->DepartmentId = $param["DepartmentId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/Device.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/Device.php index 15ef4ce5d..5a5d87a8e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/Device.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/Device.php @@ -53,6 +53,10 @@ use TencentCloud\Common\AbstractModel; * @method Department getDepartment() 获取资产所属部门 注意:此字段可能返回 null,表示取不到有效值。 * @method void setDepartment(Department $Department) 设置资产所属部门 +注意:此字段可能返回 null,表示取不到有效值。 + * @method array getIpPortSet() 获取数据库资产的多节点 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIpPortSet(array $IpPortSet) 设置数据库资产的多节点 注意:此字段可能返回 null,表示取不到有效值。 */ class Device extends AbstractModel @@ -134,6 +138,12 @@ class Device extends AbstractModel */ public $Department; + /** + * @var array 数据库资产的多节点 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IpPortSet; + /** * @param integer $Id 资产ID * @param string $InstanceId 实例ID,对应CVM、CDB等实例ID @@ -151,6 +161,8 @@ class Device extends AbstractModel * @param Resource $Resource 堡垒机服务信息,注意没有绑定服务时为null 注意:此字段可能返回 null,表示取不到有效值。 * @param Department $Department 资产所属部门 +注意:此字段可能返回 null,表示取不到有效值。 + * @param array $IpPortSet 数据库资产的多节点 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -232,5 +244,9 @@ class Device extends AbstractModel $this->Department = new Department(); $this->Department->deserialize($param["Department"]); } + + if (array_key_exists("IpPortSet",$param) and $param["IpPortSet"] !== null) { + $this->IpPortSet = $param["IpPortSet"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/ExternalDevice.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/ExternalDevice.php index b35f59736..2d185eb96 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/ExternalDevice.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dasb/V20191018/Models/ExternalDevice.php @@ -30,6 +30,8 @@ use TencentCloud\Common\AbstractModel; * @method void setName(string $Name) 设置主机名,可为空 * @method string getDepartmentId() 获取资产所属的部门ID * @method void setDepartmentId(string $DepartmentId) 设置资产所属的部门ID + * @method array getIpPortSet() 获取资产多节点:字段ip和端口 + * @method void setIpPortSet(array $IpPortSet) 设置资产多节点:字段ip和端口 */ class ExternalDevice extends AbstractModel { @@ -58,12 +60,18 @@ class ExternalDevice extends AbstractModel */ public $DepartmentId; + /** + * @var array 资产多节点:字段ip和端口 + */ + public $IpPortSet; + /** * @param string $OsName 操作系统名称,只能是Linux、Windows或MySQL * @param string $Ip IP地址 * @param integer $Port 管理端口 * @param string $Name 主机名,可为空 * @param string $DepartmentId 资产所属的部门ID + * @param array $IpPortSet 资产多节点:字段ip和端口 */ function __construct() { @@ -97,5 +105,9 @@ class ExternalDevice extends AbstractModel if (array_key_exists("DepartmentId",$param) and $param["DepartmentId"] !== null) { $this->DepartmentId = $param["DepartmentId"]; } + + if (array_key_exists("IpPortSet",$param) and $param["IpPortSet"] !== null) { + $this->IpPortSet = $param["IpPortSet"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/DlcClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/DlcClient.php index 3dc6fbcdc..8640aa85c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/DlcClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/DlcClient.php @@ -91,6 +91,7 @@ use TencentCloud\Dlc\V20210125\Models as Models; * @method Models\DescribeTablesResponse DescribeTables(Models\DescribeTablesRequest $req) 本接口(DescribeTables)用于查询数据表列表。 * @method Models\DescribeTaskResultResponse DescribeTaskResult(Models\DescribeTaskResultRequest $req) 查询任务结果 * @method Models\DescribeTasksResponse DescribeTasks(Models\DescribeTasksRequest $req) 该接口(DescribleTasks)用于查询任务列表 + * @method Models\DescribeUserRolesResponse DescribeUserRoles(Models\DescribeUserRolesRequest $req) 列举用户角色信息 * @method Models\DescribeUsersResponse DescribeUsers(Models\DescribeUsersRequest $req) 获取用户列表信息 * @method Models\DescribeViewsResponse DescribeViews(Models\DescribeViewsRequest $req) 本接口(DescribeViews)用于查询数据视图列表。 * @method Models\DescribeWorkGroupsResponse DescribeWorkGroups(Models\DescribeWorkGroupsRequest $req) 获取工作组列表 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CosPermission.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CosPermission.php new file mode 100644 index 000000000..4f0155d97 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CosPermission.php @@ -0,0 +1,73 @@ +CosPath = $param["CosPath"]; + } + + if (array_key_exists("Permissions",$param) and $param["Permissions"] !== null) { + $this->Permissions = $param["Permissions"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CreateNotebookSessionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CreateNotebookSessionRequest.php index 27a4b611b..5abbd49c6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CreateNotebookSessionRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CreateNotebookSessionRequest.php @@ -56,6 +56,8 @@ use TencentCloud\Common\AbstractModel; * @method void setExecutorMaxNumbers(integer $ExecutorMaxNumbers) 设置指定的Executor数量(最大值),默认为1,当开启动态分配有效,若未开启,则该值等于ExecutorNumbers * @method string getSparkImage() 获取指定spark版本名称,当前任务使用该spark镜像运行 * @method void setSparkImage(string $SparkImage) 设置指定spark版本名称,当前任务使用该spark镜像运行 + * @method integer getIsInherit() 获取是否继承集群的资源类配置:0:自定义(默认),1:继承集群; + * @method void setIsInherit(integer $IsInherit) 设置是否继承集群的资源类配置:0:自定义(默认),1:继承集群; */ class CreateNotebookSessionRequest extends AbstractModel { @@ -137,6 +139,11 @@ class CreateNotebookSessionRequest extends AbstractModel */ public $SparkImage; + /** + * @var integer 是否继承集群的资源类配置:0:自定义(默认),1:继承集群; + */ + public $IsInherit; + /** * @param string $Name Session名称 * @param string $Kind 类型,当前支持:spark、pyspark、sparkr、sql @@ -156,6 +163,7 @@ class CreateNotebookSessionRequest extends AbstractModel * @param integer $TimeoutInSecond 指定的Session超时时间,单位秒,默认3600秒 * @param integer $ExecutorMaxNumbers 指定的Executor数量(最大值),默认为1,当开启动态分配有效,若未开启,则该值等于ExecutorNumbers * @param string $SparkImage 指定spark版本名称,当前任务使用该spark镜像运行 + * @param integer $IsInherit 是否继承集群的资源类配置:0:自定义(默认),1:继承集群; */ function __construct() { @@ -234,5 +242,9 @@ class CreateNotebookSessionRequest extends AbstractModel if (array_key_exists("SparkImage",$param) and $param["SparkImage"] !== null) { $this->SparkImage = $param["SparkImage"]; } + + if (array_key_exists("IsInherit",$param) and $param["IsInherit"] !== null) { + $this->IsInherit = $param["IsInherit"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CreateSparkSessionBatchSQLRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CreateSparkSessionBatchSQLRequest.php index 861816ac9..bce85b654 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CreateSparkSessionBatchSQLRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/CreateSparkSessionBatchSQLRequest.php @@ -44,6 +44,8 @@ use TencentCloud\Common\AbstractModel; * @method void setArguments(array $Arguments) 设置Session相关配置,当前支持:1.dlc.eni:用户配置的eni网关信息,可以用过该字段设置; 2.dlc.role.arn:用户配置的roleArn鉴权策略配置信息,可以用过该字段设置; 3.dlc.sql.set.config:用户配置的集群配置信息,可以用过该字段设置; + * @method integer getIsInherit() 获取是否继承集群的资源类配置:0:自定义(默认),1:继承集群; + * @method void setIsInherit(integer $IsInherit) 设置是否继承集群的资源类配置:0:自定义(默认),1:继承集群; */ class CreateSparkSessionBatchSQLRequest extends AbstractModel { @@ -99,6 +101,11 @@ class CreateSparkSessionBatchSQLRequest extends AbstractModel */ public $Arguments; + /** + * @var integer 是否继承集群的资源类配置:0:自定义(默认),1:继承集群; + */ + public $IsInherit; + /** * @param string $DataEngineName DLC Spark作业引擎名称 * @param string $ExecuteSQL 运行sql @@ -112,6 +119,7 @@ class CreateSparkSessionBatchSQLRequest extends AbstractModel * @param array $Arguments Session相关配置,当前支持:1.dlc.eni:用户配置的eni网关信息,可以用过该字段设置; 2.dlc.role.arn:用户配置的roleArn鉴权策略配置信息,可以用过该字段设置; 3.dlc.sql.set.config:用户配置的集群配置信息,可以用过该字段设置; + * @param integer $IsInherit 是否继承集群的资源类配置:0:自定义(默认),1:继承集群; */ function __construct() { @@ -170,5 +178,9 @@ class CreateSparkSessionBatchSQLRequest extends AbstractModel array_push($this->Arguments, $obj); } } + + if (array_key_exists("IsInherit",$param) and $param["IsInherit"] !== null) { + $this->IsInherit = $param["IsInherit"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/DescribeUserRolesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/DescribeUserRolesRequest.php new file mode 100644 index 000000000..9de83db53 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/DescribeUserRolesRequest.php @@ -0,0 +1,101 @@ +Limit = $param["Limit"]; + } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Fuzzy",$param) and $param["Fuzzy"] !== null) { + $this->Fuzzy = $param["Fuzzy"]; + } + + if (array_key_exists("SortBy",$param) and $param["SortBy"] !== null) { + $this->SortBy = $param["SortBy"]; + } + + if (array_key_exists("Sorting",$param) and $param["Sorting"] !== null) { + $this->Sorting = $param["Sorting"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/QueryBarCodeResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/DescribeUserRolesResponse.php similarity index 62% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/QueryBarCodeResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/DescribeUserRolesResponse.php index de9ad6dde..bf808a321 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/QueryBarCodeResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/DescribeUserRolesResponse.php @@ -14,30 +14,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Ocr\V20181119\Models; +namespace TencentCloud\Dlc\V20210125\Models; use TencentCloud\Common\AbstractModel; /** - * QueryBarCode返回参数结构体 + * DescribeUserRoles返回参数结构体 * - * @method string getBarCode() 获取条码 - * @method void setBarCode(string $BarCode) 设置条码 - * @method array getProductDataRecords() 获取条码信息数组 - * @method void setProductDataRecords(array $ProductDataRecords) 设置条码信息数组 + * @method integer getTotal() 获取符合列举条件的总数量 + * @method void setTotal(integer $Total) 设置符合列举条件的总数量 + * @method array getUserRoles() 获取用户角色信息 + * @method void setUserRoles(array $UserRoles) 设置用户角色信息 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class QueryBarCodeResponse extends AbstractModel +class DescribeUserRolesResponse extends AbstractModel { /** - * @var string 条码 + * @var integer 符合列举条件的总数量 */ - public $BarCode; + public $Total; /** - * @var array 条码信息数组 + * @var array 用户角色信息 */ - public $ProductDataRecords; + public $UserRoles; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -45,8 +45,8 @@ class QueryBarCodeResponse extends AbstractModel public $RequestId; /** - * @param string $BarCode 条码 - * @param array $ProductDataRecords 条码信息数组 + * @param integer $Total 符合列举条件的总数量 + * @param array $UserRoles 用户角色信息 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -62,16 +62,16 @@ class QueryBarCodeResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("BarCode",$param) and $param["BarCode"] !== null) { - $this->BarCode = $param["BarCode"]; + if (array_key_exists("Total",$param) and $param["Total"] !== null) { + $this->Total = $param["Total"]; } - if (array_key_exists("ProductDataRecords",$param) and $param["ProductDataRecords"] !== null) { - $this->ProductDataRecords = []; - foreach ($param["ProductDataRecords"] as $key => $value){ - $obj = new ProductDataRecord(); + if (array_key_exists("UserRoles",$param) and $param["UserRoles"] !== null) { + $this->UserRoles = []; + foreach ($param["UserRoles"] as $key => $value){ + $obj = new UserRole(); $obj->deserialize($value); - array_push($this->ProductDataRecords, $obj); + array_push($this->UserRoles, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/UserRole.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/UserRole.php new file mode 100644 index 000000000..b60dfa58e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dlc/V20210125/Models/UserRole.php @@ -0,0 +1,182 @@ +RoleId = $param["RoleId"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + + if (array_key_exists("Uin",$param) and $param["Uin"] !== null) { + $this->Uin = $param["Uin"]; + } + + if (array_key_exists("Arn",$param) and $param["Arn"] !== null) { + $this->Arn = $param["Arn"]; + } + + if (array_key_exists("ModifyTime",$param) and $param["ModifyTime"] !== null) { + $this->ModifyTime = $param["ModifyTime"]; + } + + if (array_key_exists("Desc",$param) and $param["Desc"] !== null) { + $this->Desc = $param["Desc"]; + } + + if (array_key_exists("RoleName",$param) and $param["RoleName"] !== null) { + $this->RoleName = $param["RoleName"]; + } + + if (array_key_exists("Creator",$param) and $param["Creator"] !== null) { + $this->Creator = $param["Creator"]; + } + + if (array_key_exists("CosPermissionList",$param) and $param["CosPermissionList"] !== null) { + $this->CosPermissionList = []; + foreach ($param["CosPermissionList"] as $key => $value){ + $obj = new CosPermission(); + $obj->deserialize($value); + array_push($this->CosPermissionList, $obj); + } + } + + if (array_key_exists("PermissionJson",$param) and $param["PermissionJson"] !== null) { + $this->PermissionJson = $param["PermissionJson"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/DnspodClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/DnspodClient.php index fecc5f59d..ee3c5c6e5 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/DnspodClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/DnspodClient.php @@ -57,6 +57,7 @@ use TencentCloud\Dnspod\V20210323\Models as Models; * @method Models\DescribePackageDetailResponse DescribePackageDetail(Models\DescribePackageDetailRequest $req) 获取各套餐配置详情 * @method Models\DescribeRecordResponse DescribeRecord(Models\DescribeRecordRequest $req) 获取记录信息 * @method Models\DescribeRecordExistExceptDefaultNSResponse DescribeRecordExistExceptDefaultNS(Models\DescribeRecordExistExceptDefaultNSRequest $req) 判断是否有除系统默认的@-NS记录之外的记录存在 + * @method Models\DescribeRecordFilterListResponse DescribeRecordFilterList(Models\DescribeRecordFilterListRequest $req) 获取某个域名下的解析记录列表 * @method Models\DescribeRecordGroupListResponse DescribeRecordGroupList(Models\DescribeRecordGroupListRequest $req) 查询解析记录分组列表 * @method Models\DescribeRecordLineListResponse DescribeRecordLineList(Models\DescribeRecordLineListRequest $req) 获取等级允许的线路 * @method Models\DescribeRecordListResponse DescribeRecordList(Models\DescribeRecordListRequest $req) 获取某个域名下的解析记录列表 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/CreateRecordRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/CreateRecordRequest.php index 7a231d128..efa4ccde0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/CreateRecordRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/CreateRecordRequest.php @@ -42,6 +42,8 @@ use TencentCloud\Common\AbstractModel; * @method void setWeight(integer $Weight) 设置权重信息,0到100的整数。仅企业 VIP 域名可用,0 表示关闭,不传该参数,表示不设置权重信息。 * @method string getStatus() 获取记录初始状态,取值范围为 ENABLE 和 DISABLE 。默认为 ENABLE ,如果传入 DISABLE,解析不会生效,也不会验证负载均衡的限制。 * @method void setStatus(string $Status) 设置记录初始状态,取值范围为 ENABLE 和 DISABLE 。默认为 ENABLE ,如果传入 DISABLE,解析不会生效,也不会验证负载均衡的限制。 + * @method string getRemark() 获取备注 + * @method void setRemark(string $Remark) 设置备注 */ class CreateRecordRequest extends AbstractModel { @@ -100,6 +102,11 @@ class CreateRecordRequest extends AbstractModel */ public $Status; + /** + * @var string 备注 + */ + public $Remark; + /** * @param string $Domain 域名 * @param string $RecordType 记录类型,通过 API 记录类型获得,大写英文,比如:A 。 @@ -112,6 +119,7 @@ class CreateRecordRequest extends AbstractModel * @param integer $TTL TTL,范围1-604800,不同等级域名最小值不同。 * @param integer $Weight 权重信息,0到100的整数。仅企业 VIP 域名可用,0 表示关闭,不传该参数,表示不设置权重信息。 * @param string $Status 记录初始状态,取值范围为 ENABLE 和 DISABLE 。默认为 ENABLE ,如果传入 DISABLE,解析不会生效,也不会验证负载均衡的限制。 + * @param string $Remark 备注 */ function __construct() { @@ -169,5 +177,9 @@ class CreateRecordRequest extends AbstractModel if (array_key_exists("Status",$param) and $param["Status"] !== null) { $this->Status = $param["Status"]; } + + if (array_key_exists("Remark",$param) and $param["Remark"] !== null) { + $this->Remark = $param["Remark"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/DescribeRecordFilterListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/DescribeRecordFilterListRequest.php new file mode 100644 index 000000000..1913a7c05 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/DescribeRecordFilterListRequest.php @@ -0,0 +1,373 @@ +Domain = $param["Domain"]; + } + + if (array_key_exists("DomainId",$param) and $param["DomainId"] !== null) { + $this->DomainId = $param["DomainId"]; + } + + if (array_key_exists("SubDomain",$param) and $param["SubDomain"] !== null) { + $this->SubDomain = $param["SubDomain"]; + } + + if (array_key_exists("RecordType",$param) and $param["RecordType"] !== null) { + $this->RecordType = $param["RecordType"]; + } + + if (array_key_exists("RecordLine",$param) and $param["RecordLine"] !== null) { + $this->RecordLine = $param["RecordLine"]; + } + + if (array_key_exists("GroupId",$param) and $param["GroupId"] !== null) { + $this->GroupId = $param["GroupId"]; + } + + if (array_key_exists("Keyword",$param) and $param["Keyword"] !== null) { + $this->Keyword = $param["Keyword"]; + } + + if (array_key_exists("SortField",$param) and $param["SortField"] !== null) { + $this->SortField = $param["SortField"]; + } + + if (array_key_exists("SortType",$param) and $param["SortType"] !== null) { + $this->SortType = $param["SortType"]; + } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("RecordValue",$param) and $param["RecordValue"] !== null) { + $this->RecordValue = $param["RecordValue"]; + } + + if (array_key_exists("RecordStatus",$param) and $param["RecordStatus"] !== null) { + $this->RecordStatus = $param["RecordStatus"]; + } + + if (array_key_exists("WeightBegin",$param) and $param["WeightBegin"] !== null) { + $this->WeightBegin = $param["WeightBegin"]; + } + + if (array_key_exists("WeightEnd",$param) and $param["WeightEnd"] !== null) { + $this->WeightEnd = $param["WeightEnd"]; + } + + if (array_key_exists("MXBegin",$param) and $param["MXBegin"] !== null) { + $this->MXBegin = $param["MXBegin"]; + } + + if (array_key_exists("MXEnd",$param) and $param["MXEnd"] !== null) { + $this->MXEnd = $param["MXEnd"]; + } + + if (array_key_exists("TTLBegin",$param) and $param["TTLBegin"] !== null) { + $this->TTLBegin = $param["TTLBegin"]; + } + + if (array_key_exists("TTLEnd",$param) and $param["TTLEnd"] !== null) { + $this->TTLEnd = $param["TTLEnd"]; + } + + if (array_key_exists("UpdatedAtBegin",$param) and $param["UpdatedAtBegin"] !== null) { + $this->UpdatedAtBegin = $param["UpdatedAtBegin"]; + } + + if (array_key_exists("UpdatedAtEnd",$param) and $param["UpdatedAtEnd"] !== null) { + $this->UpdatedAtEnd = $param["UpdatedAtEnd"]; + } + + if (array_key_exists("Remark",$param) and $param["Remark"] !== null) { + $this->Remark = $param["Remark"]; + } + + if (array_key_exists("IsExactSubDomain",$param) and $param["IsExactSubDomain"] !== null) { + $this->IsExactSubDomain = $param["IsExactSubDomain"]; + } + + if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { + $this->ProjectId = $param["ProjectId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/DescribeRecordFilterListResponse.php similarity index 58% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/DescribeRecordFilterListResponse.php index b9429a3b5..b13aadbc9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dnspod/V20210323/Models/DescribeRecordFilterListResponse.php @@ -14,33 +14,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Dnspod\V20210323\Models; use TencentCloud\Common\AbstractModel; /** - * TextCorrection返回参数结构体 + * DescribeRecordFilterList返回参数结构体 * - * @method array getCCITokens() 获取纠错详情 -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setCCITokens(array $CCITokens) 设置纠错详情 -注意:此字段可能返回 null,表示取不到有效值。 - * @method string getResultText() 获取纠错后的文本 - * @method void setResultText(string $ResultText) 设置纠错后的文本 + * @method RecordCountInfo getRecordCountInfo() 获取记录的数量统计信息 + * @method void setRecordCountInfo(RecordCountInfo $RecordCountInfo) 设置记录的数量统计信息 + * @method array getRecordList() 获取获取的记录列表 + * @method void setRecordList(array $RecordList) 设置获取的记录列表 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class TextCorrectionResponse extends AbstractModel +class DescribeRecordFilterListResponse extends AbstractModel { /** - * @var array 纠错详情 -注意:此字段可能返回 null,表示取不到有效值。 + * @var RecordCountInfo 记录的数量统计信息 */ - public $CCITokens; + public $RecordCountInfo; /** - * @var string 纠错后的文本 + * @var array 获取的记录列表 */ - public $ResultText; + public $RecordList; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -48,9 +45,8 @@ class TextCorrectionResponse extends AbstractModel public $RequestId; /** - * @param array $CCITokens 纠错详情 -注意:此字段可能返回 null,表示取不到有效值。 - * @param string $ResultText 纠错后的文本 + * @param RecordCountInfo $RecordCountInfo 记录的数量统计信息 + * @param array $RecordList 获取的记录列表 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -66,17 +62,18 @@ class TextCorrectionResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("CCITokens",$param) and $param["CCITokens"] !== null) { - $this->CCITokens = []; - foreach ($param["CCITokens"] as $key => $value){ - $obj = new CCIToken(); - $obj->deserialize($value); - array_push($this->CCITokens, $obj); - } + if (array_key_exists("RecordCountInfo",$param) and $param["RecordCountInfo"] !== null) { + $this->RecordCountInfo = new RecordCountInfo(); + $this->RecordCountInfo->deserialize($param["RecordCountInfo"]); } - if (array_key_exists("ResultText",$param) and $param["ResultText"] !== null) { - $this->ResultText = $param["ResultText"]; + if (array_key_exists("RecordList",$param) and $param["RecordList"] !== null) { + $this->RecordList = []; + foreach ($param["RecordList"] as $key => $value){ + $obj = new RecordListItem(); + $obj->deserialize($value); + array_push($this->RecordList, $obj); + } } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/DomainClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/DomainClient.php index 67a488c1d..bef582a86 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/DomainClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/DomainClient.php @@ -27,6 +27,7 @@ use TencentCloud\Domain\V20180808\Models as Models; * @method Models\CheckBatchStatusResponse CheckBatchStatus(Models\CheckBatchStatusRequest $req) 本接口 ( CheckBatchStatus ) 用于查询批量操作日志状态 。 * @method Models\CheckDomainResponse CheckDomain(Models\CheckDomainRequest $req) 检查域名是否可以注册。 * @method Models\CreateDomainBatchResponse CreateDomainBatch(Models\CreateDomainBatchRequest $req) 本接口 ( CreateDomainBatch ) 用于批量域名注册 。 + * @method Models\CreateDomainRedemptionResponse CreateDomainRedemption(Models\CreateDomainRedemptionRequest $req) 创建赎回订单。 * @method Models\CreatePhoneEmailResponse CreatePhoneEmail(Models\CreatePhoneEmailRequest $req) 此接口用于创建有效的手机、邮箱 * @method Models\CreateTemplateResponse CreateTemplate(Models\CreateTemplateRequest $req) 本接口 ( CreateTemplate ) 用于添加域名信息模板 。 * @method Models\DeletePhoneEmailResponse DeletePhoneEmail(Models\DeletePhoneEmailRequest $req) 此接口用于删除已验证的手机邮箱 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/Models/CreateDomainRedemptionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/Models/CreateDomainRedemptionRequest.php new file mode 100644 index 000000000..1f0f7f780 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/Models/CreateDomainRedemptionRequest.php @@ -0,0 +1,53 @@ +DomainId = $param["DomainId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/Models/CreateDomainRedemptionResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/Models/CreateDomainRedemptionResponse.php new file mode 100644 index 000000000..9af26a5e2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Domain/V20180808/Models/CreateDomainRedemptionResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ConfigureSyncJobRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ConfigureSyncJobRequest.php index 00f746343..2655e2e5b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ConfigureSyncJobRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ConfigureSyncJobRequest.php @@ -48,8 +48,8 @@ use TencentCloud\Common\AbstractModel; * @method void setDstInfos(SyncDBEndpointInfos $DstInfos) 设置目标端信息,多节点数据库使用,且DstNodeType传cluster * @method string getDstNodeType() 获取枚举值:cluster、single。目标库为单节点数据库使用single,多节点使用cluster * @method void setDstNodeType(string $DstNodeType) 设置枚举值:cluster、single。目标库为单节点数据库使用single,多节点使用cluster - * @method Options getOptions() 获取同步任务选项 - * @method void setOptions(Options $Options) 设置同步任务选项 + * @method Options getOptions() 获取同步任务选项;该字段下的RateLimitOption暂时无法生效、如果需要修改限速、可通过ModifySyncRateLimit接口完成限速 + * @method void setOptions(Options $Options) 设置同步任务选项;该字段下的RateLimitOption暂时无法生效、如果需要修改限速、可通过ModifySyncRateLimit接口完成限速 * @method integer getAutoRetryTimeRangeMinutes() 获取自动重试的时间段、可设置5至720分钟、0表示不重试 * @method void setAutoRetryTimeRangeMinutes(integer $AutoRetryTimeRangeMinutes) 设置自动重试的时间段、可设置5至720分钟、0表示不重试 */ @@ -126,7 +126,7 @@ class ConfigureSyncJobRequest extends AbstractModel public $DstNodeType; /** - * @var Options 同步任务选项 + * @var Options 同步任务选项;该字段下的RateLimitOption暂时无法生效、如果需要修改限速、可通过ModifySyncRateLimit接口完成限速 */ public $Options; @@ -150,7 +150,7 @@ class ConfigureSyncJobRequest extends AbstractModel * @param Endpoint $DstInfo 目标端信息,单节点数据库使用 * @param SyncDBEndpointInfos $DstInfos 目标端信息,多节点数据库使用,且DstNodeType传cluster * @param string $DstNodeType 枚举值:cluster、single。目标库为单节点数据库使用single,多节点使用cluster - * @param Options $Options 同步任务选项 + * @param Options $Options 同步任务选项;该字段下的RateLimitOption暂时无法生效、如果需要修改限速、可通过ModifySyncRateLimit接口完成限速 * @param integer $AutoRetryTimeRangeMinutes 自动重试的时间段、可设置5至720分钟、0表示不重试 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/DescribeMigrationDetailResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/DescribeMigrationDetailResponse.php index 417ad396f..79943333a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/DescribeMigrationDetailResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/DescribeMigrationDetailResponse.php @@ -103,6 +103,12 @@ manualPaused(已暂停) * @method array getErrorInfo() 获取任务错误信息 注意:此字段可能返回 null,表示取不到有效值。 * @method void setErrorInfo(array $ErrorInfo) 设置任务错误信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDumperResumeCtrl() 获取全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 + * @method void setDumperResumeCtrl(string $DumperResumeCtrl) 设置全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 + * @method RateLimitOption getRateLimitOption() 获取任务的限速信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setRateLimitOption(RateLimitOption $RateLimitOption) 设置任务的限速信息 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -231,6 +237,17 @@ manualPaused(已暂停) */ public $ErrorInfo; + /** + * @var string 全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 + */ + public $DumperResumeCtrl; + + /** + * @var RateLimitOption 任务的限速信息 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $RateLimitOption; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -278,6 +295,9 @@ manualPaused(已暂停) * @param TradeInfo $TradeInfo 描述计费相关的信息 注意:此字段可能返回 null,表示取不到有效值。 * @param array $ErrorInfo 任务错误信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DumperResumeCtrl 全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 + * @param RateLimitOption $RateLimitOption 任务的限速信息 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -392,6 +412,15 @@ manualPaused(已暂停) } } + if (array_key_exists("DumperResumeCtrl",$param) and $param["DumperResumeCtrl"] !== null) { + $this->DumperResumeCtrl = $param["DumperResumeCtrl"]; + } + + if (array_key_exists("RateLimitOption",$param) and $param["RateLimitOption"] !== null) { + $this->RateLimitOption = new RateLimitOption(); + $this->RateLimitOption->deserialize($param["RateLimitOption"]); + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/Endpoint.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/Endpoint.php index b3997657e..f60769a36 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/Endpoint.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/Endpoint.php @@ -123,6 +123,10 @@ use TencentCloud\Common\AbstractModel; * @method string getDatabaseNetEnv() 获取数据库所属网络环境,AccessType为云联网(ccn)时必填, UserIDC表示用户IDC、TencentVPC表示腾讯云VPC; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setDatabaseNetEnv(string $DatabaseNetEnv) 设置数据库所属网络环境,AccessType为云联网(ccn)时必填, UserIDC表示用户IDC、TencentVPC表示腾讯云VPC; +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getCcnOwnerUin() 获取数据库为跨账号云联网下的实例时、表示云联网所属主账号 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setCcnOwnerUin(string $CcnOwnerUin) 设置数据库为跨账号云联网下的实例时、表示云联网所属主账号 注意:此字段可能返回 null,表示取不到有效值。 */ class Endpoint extends AbstractModel @@ -283,6 +287,12 @@ class Endpoint extends AbstractModel */ public $DatabaseNetEnv; + /** + * @var string 数据库为跨账号云联网下的实例时、表示云联网所属主账号 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $CcnOwnerUin; + /** * @param string $Region 地域英文名,如:ap-guangzhou 注意:此字段可能返回 null,表示取不到有效值。 @@ -335,6 +345,8 @@ class Endpoint extends AbstractModel * @param string $EncryptConn 是否走加密传输、UnEncrypted表示不走加密传输,Encrypted表示走加密传输,默认UnEncrypted 注意:此字段可能返回 null,表示取不到有效值。 * @param string $DatabaseNetEnv 数据库所属网络环境,AccessType为云联网(ccn)时必填, UserIDC表示用户IDC、TencentVPC表示腾讯云VPC; +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $CcnOwnerUin 数据库为跨账号云联网下的实例时、表示云联网所属主账号 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -453,5 +465,9 @@ class Endpoint extends AbstractModel if (array_key_exists("DatabaseNetEnv",$param) and $param["DatabaseNetEnv"] !== null) { $this->DatabaseNetEnv = $param["DatabaseNetEnv"]; } + + if (array_key_exists("CcnOwnerUin",$param) and $param["CcnOwnerUin"] !== null) { + $this->CcnOwnerUin = $param["CcnOwnerUin"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ErrInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ErrInfo.php new file mode 100644 index 000000000..56d137929 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ErrInfo.php @@ -0,0 +1,85 @@ +Reason = $param["Reason"]; + } + + if (array_key_exists("Message",$param) and $param["Message"] !== null) { + $this->Message = $param["Message"]; + } + + if (array_key_exists("Solution",$param) and $param["Solution"] !== null) { + $this->Solution = $param["Solution"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/JobItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/JobItem.php index 358ab60d8..adc0f0cc5 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/JobItem.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/JobItem.php @@ -95,6 +95,10 @@ manualPaused(已暂停) * @method integer getAutoRetryTimeRangeMinutes() 获取自动重试时间段信息 注意:此字段可能返回 null,表示取不到有效值。 * @method void setAutoRetryTimeRangeMinutes(integer $AutoRetryTimeRangeMinutes) 设置自动重试时间段信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDumperResumeCtrl() 获取全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDumperResumeCtrl(string $DumperResumeCtrl) 设置全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 注意:此字段可能返回 null,表示取不到有效值。 */ class JobItem extends AbstractModel @@ -209,6 +213,12 @@ manualPaused(已暂停) */ public $AutoRetryTimeRangeMinutes; + /** + * @var string 全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DumperResumeCtrl; + /** * @param string $JobId 数据迁移任务ID 注意:此字段可能返回 null,表示取不到有效值。 @@ -247,6 +257,8 @@ manualPaused(已暂停) * @param array $Tags 标签信息 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $AutoRetryTimeRangeMinutes 自动重试时间段信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DumperResumeCtrl 全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -344,5 +356,9 @@ manualPaused(已暂停) if (array_key_exists("AutoRetryTimeRangeMinutes",$param) and $param["AutoRetryTimeRangeMinutes"] !== null) { $this->AutoRetryTimeRangeMinutes = $param["AutoRetryTimeRangeMinutes"]; } + + if (array_key_exists("DumperResumeCtrl",$param) and $param["DumperResumeCtrl"] !== null) { + $this->DumperResumeCtrl = $param["DumperResumeCtrl"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/MigrateOption.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/MigrateOption.php index 96491a0a2..4de05f863 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/MigrateOption.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/MigrateOption.php @@ -45,10 +45,10 @@ use TencentCloud\Common\AbstractModel; * @method void setIsDstReadOnly(boolean $IsDstReadOnly) 设置是否在迁移时设置目标库只读(仅对mysql有效),true(设置只读)、false(不设置只读,默认此值) 注意:此字段可能返回 null,表示取不到有效值。 * @method array getExtraAttr() 获取其他附加信息,对于特定库可设置额外参数,Redis可定义如下的参数: -["ClientOutputBufferHardLimit":512, 从机缓冲区的硬性容量限制(MB) "ClientOutputBufferSoftLimit":512, 从机缓冲区的软性容量限制(MB) "ClientOutputBufferPersistTime":60, 从机缓冲区的软性限制持续时间(秒) "ReplBacklogSize":512, 环形缓冲区容量限制(MB) "ReplTimeout":120, 复制超时时间(秒) ] +["DstWriteMode":normal, 目标库写入模式,可取值clearData(清空目标实例数据)、overwrite(以覆盖写的方式执行任务)、normal(跟正常流程一样,不做额外动作) "IsDstReadOnly":true, 是否在迁移时设置目标库只读,true(设置只读)、false(不设置只读) "ClientOutputBufferHardLimit":512, 从机缓冲区的硬性容量限制(MB) "ClientOutputBufferSoftLimit":512, 从机缓冲区的软性容量限制(MB) "ClientOutputBufferPersistTime":60, 从机缓冲区的软性限制持续时间(秒) "ReplBacklogSize":512, 环形缓冲区容量限制(MB) "ReplTimeout":120, 复制超时时间(秒) ] 注意:此字段可能返回 null,表示取不到有效值。 * @method void setExtraAttr(array $ExtraAttr) 设置其他附加信息,对于特定库可设置额外参数,Redis可定义如下的参数: -["ClientOutputBufferHardLimit":512, 从机缓冲区的硬性容量限制(MB) "ClientOutputBufferSoftLimit":512, 从机缓冲区的软性容量限制(MB) "ClientOutputBufferPersistTime":60, 从机缓冲区的软性限制持续时间(秒) "ReplBacklogSize":512, 环形缓冲区容量限制(MB) "ReplTimeout":120, 复制超时时间(秒) ] +["DstWriteMode":normal, 目标库写入模式,可取值clearData(清空目标实例数据)、overwrite(以覆盖写的方式执行任务)、normal(跟正常流程一样,不做额外动作) "IsDstReadOnly":true, 是否在迁移时设置目标库只读,true(设置只读)、false(不设置只读) "ClientOutputBufferHardLimit":512, 从机缓冲区的硬性容量限制(MB) "ClientOutputBufferSoftLimit":512, 从机缓冲区的软性容量限制(MB) "ClientOutputBufferPersistTime":60, 从机缓冲区的软性限制持续时间(秒) "ReplBacklogSize":512, 环形缓冲区容量限制(MB) "ReplTimeout":120, 复制超时时间(秒) ] 注意:此字段可能返回 null,表示取不到有效值。 */ class MigrateOption extends AbstractModel @@ -91,7 +91,7 @@ class MigrateOption extends AbstractModel /** * @var array 其他附加信息,对于特定库可设置额外参数,Redis可定义如下的参数: -["ClientOutputBufferHardLimit":512, 从机缓冲区的硬性容量限制(MB) "ClientOutputBufferSoftLimit":512, 从机缓冲区的软性容量限制(MB) "ClientOutputBufferPersistTime":60, 从机缓冲区的软性限制持续时间(秒) "ReplBacklogSize":512, 环形缓冲区容量限制(MB) "ReplTimeout":120, 复制超时时间(秒) ] +["DstWriteMode":normal, 目标库写入模式,可取值clearData(清空目标实例数据)、overwrite(以覆盖写的方式执行任务)、normal(跟正常流程一样,不做额外动作) "IsDstReadOnly":true, 是否在迁移时设置目标库只读,true(设置只读)、false(不设置只读) "ClientOutputBufferHardLimit":512, 从机缓冲区的硬性容量限制(MB) "ClientOutputBufferSoftLimit":512, 从机缓冲区的软性容量限制(MB) "ClientOutputBufferPersistTime":60, 从机缓冲区的软性限制持续时间(秒) "ReplBacklogSize":512, 环形缓冲区容量限制(MB) "ReplTimeout":120, 复制超时时间(秒) ] 注意:此字段可能返回 null,表示取不到有效值。 */ public $ExtraAttr; @@ -110,7 +110,7 @@ class MigrateOption extends AbstractModel * @param boolean $IsDstReadOnly 是否在迁移时设置目标库只读(仅对mysql有效),true(设置只读)、false(不设置只读,默认此值) 注意:此字段可能返回 null,表示取不到有效值。 * @param array $ExtraAttr 其他附加信息,对于特定库可设置额外参数,Redis可定义如下的参数: -["ClientOutputBufferHardLimit":512, 从机缓冲区的硬性容量限制(MB) "ClientOutputBufferSoftLimit":512, 从机缓冲区的软性容量限制(MB) "ClientOutputBufferPersistTime":60, 从机缓冲区的软性限制持续时间(秒) "ReplBacklogSize":512, 环形缓冲区容量限制(MB) "ReplTimeout":120, 复制超时时间(秒) ] +["DstWriteMode":normal, 目标库写入模式,可取值clearData(清空目标实例数据)、overwrite(以覆盖写的方式执行任务)、normal(跟正常流程一样,不做额外动作) "IsDstReadOnly":true, 是否在迁移时设置目标库只读,true(设置只读)、false(不设置只读) "ClientOutputBufferHardLimit":512, 从机缓冲区的硬性容量限制(MB) "ClientOutputBufferSoftLimit":512, 从机缓冲区的软性容量限制(MB) "ClientOutputBufferPersistTime":60, 从机缓冲区的软性限制持续时间(秒) "ReplBacklogSize":512, 环形缓冲区容量限制(MB) "ReplTimeout":120, 复制超时时间(秒) ] 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ModifyMigrationJobRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ModifyMigrationJobRequest.php index 305ece73f..bbc30c68e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ModifyMigrationJobRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/ModifyMigrationJobRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setJobId(string $JobId) 设置任务id * @method string getRunMode() 获取运行模式,取值如:immediate(表示立即运行)、timed(表示定时运行) * @method void setRunMode(string $RunMode) 设置运行模式,取值如:immediate(表示立即运行)、timed(表示定时运行) - * @method MigrateOption getMigrateOption() 获取迁移任务配置选项,描述任务如何执行迁移等一系列配置信息 - * @method void setMigrateOption(MigrateOption $MigrateOption) 设置迁移任务配置选项,描述任务如何执行迁移等一系列配置信息 + * @method MigrateOption getMigrateOption() 获取迁移任务配置选项,描述任务如何执行迁移等一系列配置信息;字段下的RateLimitOption不可配置、如果需要修改任务的限速信息、请在任务运行后通过ModifyMigrateRateLimit接口修改 + * @method void setMigrateOption(MigrateOption $MigrateOption) 设置迁移任务配置选项,描述任务如何执行迁移等一系列配置信息;字段下的RateLimitOption不可配置、如果需要修改任务的限速信息、请在任务运行后通过ModifyMigrateRateLimit接口修改 * @method DBEndpointInfo getSrcInfo() 获取源实例信息 * @method void setSrcInfo(DBEndpointInfo $SrcInfo) 设置源实例信息 * @method DBEndpointInfo getDstInfo() 获取目标实例信息 @@ -52,7 +52,7 @@ class ModifyMigrationJobRequest extends AbstractModel public $RunMode; /** - * @var MigrateOption 迁移任务配置选项,描述任务如何执行迁移等一系列配置信息 + * @var MigrateOption 迁移任务配置选项,描述任务如何执行迁移等一系列配置信息;字段下的RateLimitOption不可配置、如果需要修改任务的限速信息、请在任务运行后通过ModifyMigrateRateLimit接口修改 */ public $MigrateOption; @@ -89,7 +89,7 @@ class ModifyMigrationJobRequest extends AbstractModel /** * @param string $JobId 任务id * @param string $RunMode 运行模式,取值如:immediate(表示立即运行)、timed(表示定时运行) - * @param MigrateOption $MigrateOption 迁移任务配置选项,描述任务如何执行迁移等一系列配置信息 + * @param MigrateOption $MigrateOption 迁移任务配置选项,描述任务如何执行迁移等一系列配置信息;字段下的RateLimitOption不可配置、如果需要修改任务的限速信息、请在任务运行后通过ModifyMigrateRateLimit接口修改 * @param DBEndpointInfo $SrcInfo 源实例信息 * @param DBEndpointInfo $DstInfo 目标实例信息 * @param string $JobName 迁移任务名称,最大长度128 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/Options.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/Options.php index 4ce724a42..3ba9c85f2 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/Options.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/Options.php @@ -51,6 +51,14 @@ use TencentCloud\Common\AbstractModel; * @method KafkaOption getKafkaOption() 获取kafka同步选项 注意:此字段可能返回 null,表示取不到有效值。 * @method void setKafkaOption(KafkaOption $KafkaOption) 设置kafka同步选项 +注意:此字段可能返回 null,表示取不到有效值。 + * @method RateLimitOption getRateLimitOption() 获取任务限速信息、该字段仅用作出参、入参该字段无效 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setRateLimitOption(RateLimitOption $RateLimitOption) 设置任务限速信息、该字段仅用作出参、入参该字段无效 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getAutoRetryTimeRangeMinutes() 获取自动重试的时间窗口设置 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setAutoRetryTimeRangeMinutes(integer $AutoRetryTimeRangeMinutes) 设置自动重试的时间窗口设置 注意:此字段可能返回 null,表示取不到有效值。 */ class Options extends AbstractModel @@ -103,6 +111,18 @@ class Options extends AbstractModel */ public $KafkaOption; + /** + * @var RateLimitOption 任务限速信息、该字段仅用作出参、入参该字段无效 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $RateLimitOption; + + /** + * @var integer 自动重试的时间窗口设置 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $AutoRetryTimeRangeMinutes; + /** * @param string $InitType 同步初始化选项,Data(全量数据初始化)、Structure(结构初始化)、Full(全量数据且结构初始化,默认)、None(仅增量) 注意:此字段可能返回 null,表示取不到有效值。 @@ -119,6 +139,10 @@ class Options extends AbstractModel * @param array $DdlOptions DDL同步选项,具体描述要同步那些DDL 注意:此字段可能返回 null,表示取不到有效值。 * @param KafkaOption $KafkaOption kafka同步选项 +注意:此字段可能返回 null,表示取不到有效值。 + * @param RateLimitOption $RateLimitOption 任务限速信息、该字段仅用作出参、入参该字段无效 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $AutoRetryTimeRangeMinutes 自动重试的时间窗口设置 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -172,5 +196,14 @@ class Options extends AbstractModel $this->KafkaOption = new KafkaOption(); $this->KafkaOption->deserialize($param["KafkaOption"]); } + + if (array_key_exists("RateLimitOption",$param) and $param["RateLimitOption"] !== null) { + $this->RateLimitOption = new RateLimitOption(); + $this->RateLimitOption->deserialize($param["RateLimitOption"]); + } + + if (array_key_exists("AutoRetryTimeRangeMinutes",$param) and $param["AutoRetryTimeRangeMinutes"] !== null) { + $this->AutoRetryTimeRangeMinutes = $param["AutoRetryTimeRangeMinutes"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/RateLimitOption.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/RateLimitOption.php new file mode 100644 index 000000000..e6168a4a2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/RateLimitOption.php @@ -0,0 +1,217 @@ +CurrentDumpThread = $param["CurrentDumpThread"]; + } + + if (array_key_exists("DefaultDumpThread",$param) and $param["DefaultDumpThread"] !== null) { + $this->DefaultDumpThread = $param["DefaultDumpThread"]; + } + + if (array_key_exists("CurrentDumpRps",$param) and $param["CurrentDumpRps"] !== null) { + $this->CurrentDumpRps = $param["CurrentDumpRps"]; + } + + if (array_key_exists("DefaultDumpRps",$param) and $param["DefaultDumpRps"] !== null) { + $this->DefaultDumpRps = $param["DefaultDumpRps"]; + } + + if (array_key_exists("CurrentLoadThread",$param) and $param["CurrentLoadThread"] !== null) { + $this->CurrentLoadThread = $param["CurrentLoadThread"]; + } + + if (array_key_exists("DefaultLoadThread",$param) and $param["DefaultLoadThread"] !== null) { + $this->DefaultLoadThread = $param["DefaultLoadThread"]; + } + + if (array_key_exists("CurrentLoadRps",$param) and $param["CurrentLoadRps"] !== null) { + $this->CurrentLoadRps = $param["CurrentLoadRps"]; + } + + if (array_key_exists("DefaultLoadRps",$param) and $param["DefaultLoadRps"] !== null) { + $this->DefaultLoadRps = $param["DefaultLoadRps"]; + } + + if (array_key_exists("CurrentSinkerThread",$param) and $param["CurrentSinkerThread"] !== null) { + $this->CurrentSinkerThread = $param["CurrentSinkerThread"]; + } + + if (array_key_exists("DefaultSinkerThread",$param) and $param["DefaultSinkerThread"] !== null) { + $this->DefaultSinkerThread = $param["DefaultSinkerThread"]; + } + + if (array_key_exists("HasUserSetRateLimit",$param) and $param["HasUserSetRateLimit"] !== null) { + $this->HasUserSetRateLimit = $param["HasUserSetRateLimit"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/SyncDetailInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/SyncDetailInfo.php index 1426c4a80..b4afe89a8 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/SyncDetailInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/SyncDetailInfo.php @@ -32,9 +32,9 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setProgress(integer $Progress) 设置总体进度 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getCurrentStepProgress() 获取当前步骤进度 + * @method integer getCurrentStepProgress() 获取当前步骤进度,范围为[0-100],若为-1表示当前步骤不支持查看进度 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setCurrentStepProgress(integer $CurrentStepProgress) 设置当前步骤进度 + * @method void setCurrentStepProgress(integer $CurrentStepProgress) 设置当前步骤进度,范围为[0-100],若为-1表示当前步骤不支持查看进度 注意:此字段可能返回 null,表示取不到有效值。 * @method integer getMasterSlaveDistance() 获取同步两端数据量差距 注意:此字段可能返回 null,表示取不到有效值。 @@ -55,6 +55,10 @@ use TencentCloud\Common\AbstractModel; * @method string getCauseOfCompareDisable() 获取不能发起一致性校验的原因 注意:此字段可能返回 null,表示取不到有效值。 * @method void setCauseOfCompareDisable(string $CauseOfCompareDisable) 设置不能发起一致性校验的原因 +注意:此字段可能返回 null,表示取不到有效值。 + * @method ErrInfo getErrInfo() 获取任务的错误和解决方案信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setErrInfo(ErrInfo $ErrInfo) 设置任务的错误和解决方案信息 注意:此字段可能返回 null,表示取不到有效值。 */ class SyncDetailInfo extends AbstractModel @@ -78,7 +82,7 @@ class SyncDetailInfo extends AbstractModel public $Progress; /** - * @var integer 当前步骤进度 + * @var integer 当前步骤进度,范围为[0-100],若为-1表示当前步骤不支持查看进度 注意:此字段可能返回 null,表示取不到有效值。 */ public $CurrentStepProgress; @@ -113,6 +117,12 @@ class SyncDetailInfo extends AbstractModel */ public $CauseOfCompareDisable; + /** + * @var ErrInfo 任务的错误和解决方案信息 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ErrInfo; + /** * @param integer $StepAll 总步骤数 注意:此字段可能返回 null,表示取不到有效值。 @@ -120,7 +130,7 @@ class SyncDetailInfo extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Progress 总体进度 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $CurrentStepProgress 当前步骤进度 + * @param integer $CurrentStepProgress 当前步骤进度,范围为[0-100],若为-1表示当前步骤不支持查看进度 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $MasterSlaveDistance 同步两端数据量差距 注意:此字段可能返回 null,表示取不到有效值。 @@ -131,6 +141,8 @@ class SyncDetailInfo extends AbstractModel * @param array $StepInfos 详细步骤信息 注意:此字段可能返回 null,表示取不到有效值。 * @param string $CauseOfCompareDisable 不能发起一致性校验的原因 +注意:此字段可能返回 null,表示取不到有效值。 + * @param ErrInfo $ErrInfo 任务的错误和解决方案信息 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -186,5 +198,10 @@ class SyncDetailInfo extends AbstractModel if (array_key_exists("CauseOfCompareDisable",$param) and $param["CauseOfCompareDisable"] !== null) { $this->CauseOfCompareDisable = $param["CauseOfCompareDisable"]; } + + if (array_key_exists("ErrInfo",$param) and $param["ErrInfo"] !== null) { + $this->ErrInfo = new ErrInfo(); + $this->ErrInfo->deserialize($param["ErrInfo"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/SyncJobInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/SyncJobInfo.php index 68aaa8509..2b92a7a9c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/SyncJobInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Dts/V20211206/Models/SyncJobInfo.php @@ -79,6 +79,14 @@ use TencentCloud\Common\AbstractModel; * @method Endpoint getSrcInfo() 获取源端信息,单节点数据库使用 注意:此字段可能返回 null,表示取不到有效值。 * @method void setSrcInfo(Endpoint $SrcInfo) 设置源端信息,单节点数据库使用 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getSrcNodeType() 获取枚举值:cluster、single。源库为单节点数据库使用single,多节点使用cluster +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSrcNodeType(string $SrcNodeType) 设置枚举值:cluster、single。源库为单节点数据库使用single,多节点使用cluster +注意:此字段可能返回 null,表示取不到有效值。 + * @method SyncDBEndpointInfos getSrcInfos() 获取源端信息,多节点数据库使用 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSrcInfos(SyncDBEndpointInfos $SrcInfos) 设置源端信息,多节点数据库使用 注意:此字段可能返回 null,表示取不到有效值。 * @method string getDstRegion() 获取目标端地域,如:ap-guangzhou等 注意:此字段可能返回 null,表示取不到有效值。 @@ -95,6 +103,14 @@ use TencentCloud\Common\AbstractModel; * @method Endpoint getDstInfo() 获取目标端信息,单节点数据库使用 注意:此字段可能返回 null,表示取不到有效值。 * @method void setDstInfo(Endpoint $DstInfo) 设置目标端信息,单节点数据库使用 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDstNodeType() 获取枚举值:cluster、single。目标库为单节点数据库使用single,多节点使用cluster +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDstNodeType(string $DstNodeType) 设置枚举值:cluster、single。目标库为单节点数据库使用single,多节点使用cluster +注意:此字段可能返回 null,表示取不到有效值。 + * @method SyncDBEndpointInfos getDstInfos() 获取目标端信息,多节点数据库使用 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDstInfos(SyncDBEndpointInfos $DstInfos) 设置目标端信息,多节点数据库使用 注意:此字段可能返回 null,表示取不到有效值。 * @method string getCreateTime() 获取创建时间,格式为 yyyy-mm-dd hh:mm:ss 注意:此字段可能返回 null,表示取不到有效值。 @@ -139,6 +155,10 @@ use TencentCloud\Common\AbstractModel; * @method integer getAutoRetryTimeRangeMinutes() 获取自动重试时间段设置 注意:此字段可能返回 null,表示取不到有效值。 * @method void setAutoRetryTimeRangeMinutes(integer $AutoRetryTimeRangeMinutes) 设置自动重试时间段设置 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDumperResumeCtrl() 获取全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDumperResumeCtrl(string $DumperResumeCtrl) 设置全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 注意:此字段可能返回 null,表示取不到有效值。 */ class SyncJobInfo extends AbstractModel @@ -233,6 +253,18 @@ class SyncJobInfo extends AbstractModel */ public $SrcInfo; + /** + * @var string 枚举值:cluster、single。源库为单节点数据库使用single,多节点使用cluster +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SrcNodeType; + + /** + * @var SyncDBEndpointInfos 源端信息,多节点数据库使用 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SrcInfos; + /** * @var string 目标端地域,如:ap-guangzhou等 注意:此字段可能返回 null,表示取不到有效值。 @@ -257,6 +289,18 @@ class SyncJobInfo extends AbstractModel */ public $DstInfo; + /** + * @var string 枚举值:cluster、single。目标库为单节点数据库使用single,多节点使用cluster +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DstNodeType; + + /** + * @var SyncDBEndpointInfos 目标端信息,多节点数据库使用 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DstInfos; + /** * @var string 创建时间,格式为 yyyy-mm-dd hh:mm:ss 注意:此字段可能返回 null,表示取不到有效值。 @@ -323,6 +367,12 @@ class SyncJobInfo extends AbstractModel */ public $AutoRetryTimeRangeMinutes; + /** + * @var string 全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DumperResumeCtrl; + /** * @param string $JobId 同步任务id,如:sync-btso140 注意:此字段可能返回 null,表示取不到有效值。 @@ -353,6 +403,10 @@ class SyncJobInfo extends AbstractModel * @param string $SrcAccessType 源端接入类型,cdb(云数据库)、cvm(云主机自建)、vpc(私有网络)、extranet(外网)、vpncloud(vpn接入)、dcg(专线接入)、ccn(云联网)、intranet(自研上云) 注意:此字段可能返回 null,表示取不到有效值。 * @param Endpoint $SrcInfo 源端信息,单节点数据库使用 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $SrcNodeType 枚举值:cluster、single。源库为单节点数据库使用single,多节点使用cluster +注意:此字段可能返回 null,表示取不到有效值。 + * @param SyncDBEndpointInfos $SrcInfos 源端信息,多节点数据库使用 注意:此字段可能返回 null,表示取不到有效值。 * @param string $DstRegion 目标端地域,如:ap-guangzhou等 注意:此字段可能返回 null,表示取不到有效值。 @@ -361,6 +415,10 @@ class SyncJobInfo extends AbstractModel * @param string $DstAccessType 目标端接入类型,cdb(云数据库)、cvm(云主机自建)、vpc(私有网络)、extranet(外网)、vpncloud(vpn接入)、dcg(专线接入)、ccn(云联网)、intranet(自研上云) 注意:此字段可能返回 null,表示取不到有效值。 * @param Endpoint $DstInfo 目标端信息,单节点数据库使用 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DstNodeType 枚举值:cluster、single。目标库为单节点数据库使用single,多节点使用cluster +注意:此字段可能返回 null,表示取不到有效值。 + * @param SyncDBEndpointInfos $DstInfos 目标端信息,多节点数据库使用 注意:此字段可能返回 null,表示取不到有效值。 * @param string $CreateTime 创建时间,格式为 yyyy-mm-dd hh:mm:ss 注意:此字段可能返回 null,表示取不到有效值。 @@ -383,6 +441,8 @@ class SyncJobInfo extends AbstractModel * @param string $OfflineTime 下线时间,格式为 yyyy-mm-dd hh:mm:ss 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $AutoRetryTimeRangeMinutes 自动重试时间段设置 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DumperResumeCtrl 全量导出可重入标识:enum::"yes"/"no"。yes表示当前任务可重入、no表示当前任务处于全量导出且不可重入阶段;如果在该值为no时重启任务导出流程不支持断点续传 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -461,6 +521,15 @@ class SyncJobInfo extends AbstractModel $this->SrcInfo->deserialize($param["SrcInfo"]); } + if (array_key_exists("SrcNodeType",$param) and $param["SrcNodeType"] !== null) { + $this->SrcNodeType = $param["SrcNodeType"]; + } + + if (array_key_exists("SrcInfos",$param) and $param["SrcInfos"] !== null) { + $this->SrcInfos = new SyncDBEndpointInfos(); + $this->SrcInfos->deserialize($param["SrcInfos"]); + } + if (array_key_exists("DstRegion",$param) and $param["DstRegion"] !== null) { $this->DstRegion = $param["DstRegion"]; } @@ -478,6 +547,15 @@ class SyncJobInfo extends AbstractModel $this->DstInfo->deserialize($param["DstInfo"]); } + if (array_key_exists("DstNodeType",$param) and $param["DstNodeType"] !== null) { + $this->DstNodeType = $param["DstNodeType"]; + } + + if (array_key_exists("DstInfos",$param) and $param["DstInfos"] !== null) { + $this->DstInfos = new SyncDBEndpointInfos(); + $this->DstInfos->deserialize($param["DstInfos"]); + } + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { $this->CreateTime = $param["CreateTime"]; } @@ -527,5 +605,9 @@ class SyncJobInfo extends AbstractModel if (array_key_exists("AutoRetryTimeRangeMinutes",$param) and $param["AutoRetryTimeRangeMinutes"] !== null) { $this->AutoRetryTimeRangeMinutes = $param["AutoRetryTimeRangeMinutes"]; } + + if (array_key_exists("DumperResumeCtrl",$param) and $param["DumperResumeCtrl"] !== null) { + $this->DumperResumeCtrl = $param["DumperResumeCtrl"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/AbstractRuntimeMC.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/AbstractRuntimeMC.php index d9697acb4..009cab0fb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/AbstractRuntimeMC.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/AbstractRuntimeMC.php @@ -41,6 +41,10 @@ use TencentCloud\Common\AbstractModel; * @method boolean getDeployed() 获取是否已在当前环境发布 注意:此字段可能返回 null,表示取不到有效值。 * @method void setDeployed(boolean $Deployed) 设置是否已在当前环境发布 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getMatchExtensions() 获取环境扩展组件是否满足应用要求:0=true, 1=false 表示该应用需要扩展组件0(cdc)以及1(java),但是独立环境有cdc无java,不满足发布要求 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMatchExtensions(string $MatchExtensions) 设置环境扩展组件是否满足应用要求:0=true, 1=false 表示该应用需要扩展组件0(cdc)以及1(java),但是独立环境有cdc无java,不满足发布要求 注意:此字段可能返回 null,表示取不到有效值。 */ class AbstractRuntimeMC extends AbstractModel @@ -96,6 +100,12 @@ class AbstractRuntimeMC extends AbstractModel */ public $Deployed; + /** + * @var string 环境扩展组件是否满足应用要求:0=true, 1=false 表示该应用需要扩展组件0(cdc)以及1(java),但是独立环境有cdc无java,不满足发布要求 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MatchExtensions; + /** * @param integer $RuntimeId 环境id * @param string $DisplayName 环境名称,用户输入,同一uin内唯一 @@ -107,6 +117,8 @@ class AbstractRuntimeMC extends AbstractModel * @param integer $ExpiredAt 环境过期时间 * @param integer $RuntimeClass 环境运行类型:0:运行时类型、1:api类型 * @param boolean $Deployed 是否已在当前环境发布 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $MatchExtensions 环境扩展组件是否满足应用要求:0=true, 1=false 表示该应用需要扩展组件0(cdc)以及1(java),但是独立环境有cdc无java,不满足发布要求 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -161,5 +173,9 @@ class AbstractRuntimeMC extends AbstractModel if (array_key_exists("Deployed",$param) and $param["Deployed"] !== null) { $this->Deployed = $param["Deployed"]; } + + if (array_key_exists("MatchExtensions",$param) and $param["MatchExtensions"] !== null) { + $this->MatchExtensions = $param["MatchExtensions"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/ListDeployableRuntimesMCRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/ListDeployableRuntimesMCRequest.php index 7562f6f8d..a7da737ca 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/ListDeployableRuntimesMCRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/ListDeployableRuntimesMCRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setInstanceId(integer $InstanceId) 设置实例id * @method integer getPlanType() 获取版本类型 0-pro 1-lite * @method void setPlanType(integer $PlanType) 设置版本类型 0-pro 1-lite + * @method integer getRuntimeClass() 获取0:应用集成,1:API,2:ETL + * @method void setRuntimeClass(integer $RuntimeClass) 设置0:应用集成,1:API,2:ETL */ class ListDeployableRuntimesMCRequest extends AbstractModel { @@ -44,10 +46,16 @@ class ListDeployableRuntimesMCRequest extends AbstractModel */ public $PlanType; + /** + * @var integer 0:应用集成,1:API,2:ETL + */ + public $RuntimeClass; + /** * @param integer $ProjectId 应用id * @param integer $InstanceId 实例id * @param integer $PlanType 版本类型 0-pro 1-lite + * @param integer $RuntimeClass 0:应用集成,1:API,2:ETL */ function __construct() { @@ -73,5 +81,9 @@ class ListDeployableRuntimesMCRequest extends AbstractModel if (array_key_exists("PlanType",$param) and $param["PlanType"] !== null) { $this->PlanType = $param["PlanType"]; } + + if (array_key_exists("RuntimeClass",$param) and $param["RuntimeClass"] !== null) { + $this->RuntimeClass = $param["RuntimeClass"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/RuntimeExtensionMC.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/RuntimeExtensionMC.php index 7d1ba69f5..16e610fea 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/RuntimeExtensionMC.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/RuntimeExtensionMC.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * 运行环境扩展组件 * - * @method integer getType() 获取扩展组件类型:0:cdc - * @method void setType(integer $Type) 设置扩展组件类型:0:cdc + * @method integer getType() 获取扩展组件类型:0:cdc 1:dataway-java + * @method void setType(integer $Type) 设置扩展组件类型:0:cdc 1:dataway-java * @method float getSize() 获取部署规格vcore数 * @method void setSize(float $Size) 设置部署规格vcore数 * @method integer getReplica() 获取副本数 @@ -38,7 +38,7 @@ use TencentCloud\Common\AbstractModel; class RuntimeExtensionMC extends AbstractModel { /** - * @var integer 扩展组件类型:0:cdc + * @var integer 扩展组件类型:0:cdc 1:dataway-java */ public $Type; @@ -73,7 +73,7 @@ class RuntimeExtensionMC extends AbstractModel public $UpdatedAt; /** - * @param integer $Type 扩展组件类型:0:cdc + * @param integer $Type 扩展组件类型:0:cdc 1:dataway-java * @param float $Size 部署规格vcore数 * @param integer $Replica 副本数 * @param string $Name 扩展组件名称 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/RuntimeMC.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/RuntimeMC.php index ad77ef5f7..f97cf3817 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/RuntimeMC.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Eis/V20210601/Models/RuntimeMC.php @@ -74,9 +74,9 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setRuntimeType(integer $RuntimeType) 设置环境类型:0: sandbox, 1:shared, 2:private 3: trial 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getRuntimeClass() 获取环境运行类型:0:运行时类型、1:api类型 + * @method integer getRuntimeClass() 获取环境运行类型:0:运行时类型、1:api类型、2:etl环境 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setRuntimeClass(integer $RuntimeClass) 设置环境运行类型:0:运行时类型、1:api类型 + * @method void setRuntimeClass(integer $RuntimeClass) 设置环境运行类型:0:运行时类型、1:api类型、2:etl环境 注意:此字段可能返回 null,表示取不到有效值。 * @method float getBandwidthOutUsed() 获取已使用出带宽 Mbps 注意:此字段可能返回 null,表示取不到有效值。 @@ -201,7 +201,7 @@ class RuntimeMC extends AbstractModel public $RuntimeType; /** - * @var integer 环境运行类型:0:运行时类型、1:api类型 + * @var integer 环境运行类型:0:运行时类型、1:api类型、2:etl环境 注意:此字段可能返回 null,表示取不到有效值。 */ public $RuntimeClass; @@ -246,7 +246,7 @@ class RuntimeMC extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $RuntimeType 环境类型:0: sandbox, 1:shared, 2:private 3: trial 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $RuntimeClass 环境运行类型:0:运行时类型、1:api类型 + * @param integer $RuntimeClass 环境运行类型:0:运行时类型、1:api类型、2:etl环境 注意:此字段可能返回 null,表示取不到有效值。 * @param float $BandwidthOutUsed 已使用出带宽 Mbps 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeHiveQueriesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeHiveQueriesRequest.php index f834cb6fe..dbee8eca2 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeHiveQueriesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeHiveQueriesRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setInstanceId(string $InstanceId) 设置集群ID * @method integer getStartTime() 获取起始时间秒 * @method void setStartTime(integer $StartTime) 设置起始时间秒 - * @method integer getEndTime() 获取结束时间秒,EndTime-StartTime不得超过31天秒数31*24*3600 - * @method void setEndTime(integer $EndTime) 设置结束时间秒,EndTime-StartTime不得超过31天秒数31*24*3600 + * @method integer getEndTime() 获取结束时间秒,EndTime-StartTime不得超过1天秒数86400 + * @method void setEndTime(integer $EndTime) 设置结束时间秒,EndTime-StartTime不得超过1天秒数86400 * @method integer getOffset() 获取分页起始偏移,从0开始 * @method void setOffset(integer $Offset) 设置分页起始偏移,从0开始 * @method integer getLimit() 获取分页大小,合法范围[1,100] @@ -44,7 +44,7 @@ class DescribeHiveQueriesRequest extends AbstractModel public $StartTime; /** - * @var integer 结束时间秒,EndTime-StartTime不得超过31天秒数31*24*3600 + * @var integer 结束时间秒,EndTime-StartTime不得超过1天秒数86400 */ public $EndTime; @@ -61,7 +61,7 @@ class DescribeHiveQueriesRequest extends AbstractModel /** * @param string $InstanceId 集群ID * @param integer $StartTime 起始时间秒 - * @param integer $EndTime 结束时间秒,EndTime-StartTime不得超过31天秒数31*24*3600 + * @param integer $EndTime 结束时间秒,EndTime-StartTime不得超过1天秒数86400 * @param integer $Offset 分页起始偏移,从0开始 * @param integer $Limit 分页大小,合法范围[1,100] */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeImpalaQueriesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeImpalaQueriesRequest.php index 35eb417c0..a46bd86bc 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeImpalaQueriesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeImpalaQueriesRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setInstanceId(string $InstanceId) 设置集群ID * @method integer getStartTime() 获取起始时间秒 * @method void setStartTime(integer $StartTime) 设置起始时间秒 - * @method integer getEndTime() 获取结束时间秒,EndTime-StartTime不得超过31天秒数31243600 - * @method void setEndTime(integer $EndTime) 设置结束时间秒,EndTime-StartTime不得超过31天秒数31243600 + * @method integer getEndTime() 获取结束时间秒,EndTime-StartTime不得超过1天秒数86400 + * @method void setEndTime(integer $EndTime) 设置结束时间秒,EndTime-StartTime不得超过1天秒数86400 * @method integer getOffset() 获取分页起始偏移,从0开始 * @method void setOffset(integer $Offset) 设置分页起始偏移,从0开始 * @method integer getLimit() 获取分页大小,合法范围[1,100] @@ -44,7 +44,7 @@ class DescribeImpalaQueriesRequest extends AbstractModel public $StartTime; /** - * @var integer 结束时间秒,EndTime-StartTime不得超过31天秒数31243600 + * @var integer 结束时间秒,EndTime-StartTime不得超过1天秒数86400 */ public $EndTime; @@ -61,7 +61,7 @@ class DescribeImpalaQueriesRequest extends AbstractModel /** * @param string $InstanceId 集群ID * @param integer $StartTime 起始时间秒 - * @param integer $EndTime 结束时间秒,EndTime-StartTime不得超过31天秒数31243600 + * @param integer $EndTime 结束时间秒,EndTime-StartTime不得超过1天秒数86400 * @param integer $Offset 分页起始偏移,从0开始 * @param integer $Limit 分页大小,合法范围[1,100] */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeYarnApplicationsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeYarnApplicationsRequest.php index ed2906986..a6abd8f78 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeYarnApplicationsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/DescribeYarnApplicationsRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setInstanceId(string $InstanceId) 设置集群ID * @method integer getStartTime() 获取起始时间秒 * @method void setStartTime(integer $StartTime) 设置起始时间秒 - * @method integer getEndTime() 获取结束时间秒,EndTime-StartTime不得超过31天秒数31243600 - * @method void setEndTime(integer $EndTime) 设置结束时间秒,EndTime-StartTime不得超过31天秒数31243600 + * @method integer getEndTime() 获取结束时间秒,EndTime-StartTime不得超过1天秒数86400 + * @method void setEndTime(integer $EndTime) 设置结束时间秒,EndTime-StartTime不得超过1天秒数86400 * @method integer getOffset() 获取分页起始偏移,从0开始 * @method void setOffset(integer $Offset) 设置分页起始偏移,从0开始 * @method integer getLimit() 获取分页大小,合法范围[1,100] @@ -44,7 +44,7 @@ class DescribeYarnApplicationsRequest extends AbstractModel public $StartTime; /** - * @var integer 结束时间秒,EndTime-StartTime不得超过31天秒数31243600 + * @var integer 结束时间秒,EndTime-StartTime不得超过1天秒数86400 */ public $EndTime; @@ -61,7 +61,7 @@ class DescribeYarnApplicationsRequest extends AbstractModel /** * @param string $InstanceId 集群ID * @param integer $StartTime 起始时间秒 - * @param integer $EndTime 结束时间秒,EndTime-StartTime不得超过31天秒数31243600 + * @param integer $EndTime 结束时间秒,EndTime-StartTime不得超过1天秒数86400 * @param integer $Offset 分页起始偏移,从0开始 * @param integer $Limit 分页大小,合法范围[1,100] */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/InquirePriceRenewEmrRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/InquirePriceRenewEmrRequest.php index d3c059ee3..942a0fed9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/InquirePriceRenewEmrRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/InquirePriceRenewEmrRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * InquirePriceRenewEmr请求参数结构体 * - * @method integer getTimeSpan() 获取实例续费的时长。需要结合TimeUnit一起使用。1表示续费1一个月 - * @method void setTimeSpan(integer $TimeSpan) 设置实例续费的时长。需要结合TimeUnit一起使用。1表示续费1一个月 + * @method integer getTimeSpan() 获取实例续费的时长。需要结合TimeUnit一起使用。1表示续费一个月 + * @method void setTimeSpan(integer $TimeSpan) 设置实例续费的时长。需要结合TimeUnit一起使用。1表示续费一个月 * @method string getInstanceId() 获取待续费集群ID列表。 * @method void setInstanceId(string $InstanceId) 设置待续费集群ID列表。 * @method Placement getPlacement() 获取实例所在的位置。通过该参数可以指定实例所属可用区,所属项目等属性。 @@ -40,7 +40,7 @@ use TencentCloud\Common\AbstractModel; class InquirePriceRenewEmrRequest extends AbstractModel { /** - * @var integer 实例续费的时长。需要结合TimeUnit一起使用。1表示续费1一个月 + * @var integer 实例续费的时长。需要结合TimeUnit一起使用。1表示续费一个月 */ public $TimeSpan; @@ -72,7 +72,7 @@ class InquirePriceRenewEmrRequest extends AbstractModel public $Currency; /** - * @param integer $TimeSpan 实例续费的时长。需要结合TimeUnit一起使用。1表示续费1一个月 + * @param integer $TimeSpan 实例续费的时长。需要结合TimeUnit一起使用。1表示续费一个月 * @param string $InstanceId 待续费集群ID列表。 * @param Placement $Placement 实例所在的位置。通过该参数可以指定实例所属可用区,所属项目等属性。 * @param integer $PayMode 实例计费模式。此处只支持取值为1,表示包年包月。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/NodeHardwareInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/NodeHardwareInfo.php index 22a591d98..901be0108 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/NodeHardwareInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Emr/V20190103/Models/NodeHardwareInfo.php @@ -221,6 +221,10 @@ use TencentCloud\Common\AbstractModel; * @method integer getTradeVersion() 获取0表示老计费,1表示新计费 注意:此字段可能返回 null,表示取不到有效值。 * @method void setTradeVersion(integer $TradeVersion) 设置0表示老计费,1表示新计费 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getServicesStatus() 获取各组件状态,Zookeeper:STARTED,ResourceManager:STARTED,STARTED已启动,STOPED已停止 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setServicesStatus(string $ServicesStatus) 设置各组件状态,Zookeeper:STARTED,ResourceManager:STARTED,STARTED已启动,STOPED已停止 注意:此字段可能返回 null,表示取不到有效值。 */ class NodeHardwareInfo extends AbstractModel @@ -526,6 +530,12 @@ class NodeHardwareInfo extends AbstractModel */ public $TradeVersion; + /** + * @var string 各组件状态,Zookeeper:STARTED,ResourceManager:STARTED,STARTED已启动,STOPED已停止 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ServicesStatus; + /** * @param integer $AppId 用户APPID 注意:此字段可能返回 null,表示取不到有效值。 @@ -627,6 +637,8 @@ class NodeHardwareInfo extends AbstractModel * @param boolean $DisableApiTermination 该实例是否开启实例保护,true为开启 false为关闭 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $TradeVersion 0表示老计费,1表示新计费 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $ServicesStatus 各组件状态,Zookeeper:STARTED,ResourceManager:STARTED,STARTED已启动,STOPED已停止 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -853,5 +865,9 @@ class NodeHardwareInfo extends AbstractModel if (array_key_exists("TradeVersion",$param) and $param["TradeVersion"] !== null) { $this->TradeVersion = $param["TradeVersion"]; } + + if (array_key_exists("ServicesStatus",$param) and $param["ServicesStatus"] !== null) { + $this->ServicesStatus = $param["ServicesStatus"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/EssClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/EssClient.php index f7679970b..d0f4a29f9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/EssClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/EssClient.php @@ -40,18 +40,21 @@ use TencentCloud\Ess\V20201111\Models as Models; 生成子客编辑企业信息二维码 * @method Models\CreateConvertTaskApiResponse CreateConvertTaskApi(Models\CreateConvertTaskApiRequest $req) 上传了word、excel、图片文件后,通过该接口发起文件转换任务,将word、excel、图片文件转换为pdf文件。 +注:如果是集团代子企业发起任务场景,可以通过对Agent参数(未列在入参列表)设置代理的相关应用信息来支持,Agent参数设置可以参考CreateFlow接口的Agent相关说明。 * @method Models\CreateDocumentResponse CreateDocument(Models\CreateDocumentRequest $req) 创建签署流程电子文档 适用场景:见创建签署流程接口。 注:该接口需要给对应的流程指定一个模板id,并且填充该模板中需要补充的信息。是“发起流程”接口的前置接口。 + * @method Models\CreateEmbedWebUrlResponse CreateEmbedWebUrl(Models\CreateEmbedWebUrlRequest $req) 本接口(CreateEmbedWebUrl)用于创建嵌入web的链接 本接口支持创建:创建印章,创建模板,修改模板,预览模板,预览合同流程的web链接 进入web连接后与当前控制台操作保持一致 * @method Models\CreateFlowResponse CreateFlow(Models\CreateFlowRequest $req) 通过模板创建签署流程
    适用场景:在标准制式的合同场景中,可通过提前预制好模板文件,每次调用模板文件的id,补充合同内容信息及签署信息生成电子合同。
    注:该接口是通过模板生成合同流程的前置接口,先创建一个不包含签署文件的流程。
    配合“创建电子文档”接口和“发起流程”接口使用。
    - * @method Models\CreateFlowApproversResponse CreateFlowApprovers(Models\CreateFlowApproversRequest $req) 补充签署流程本企业签署人信息 -适用场景:在通过模板或者文件发起合同时,若未指定本企业签署人信息,则流程发起后,可以调用此接口补充签署人。 -同一签署人可以补充多个员工作为候选签署人,最终签署人取决于谁先领取合同完成签署。 - -注:目前暂时只支持补充来源于企业微信的员工作为候选签署人 + * @method Models\CreateFlowApproversResponse CreateFlowApprovers(Models\CreateFlowApproversRequest $req) ### 适用场景 +在通过模板或者文件发起合同时,若未指定企业签署人信息,则流程发起后,可以调用此接口补充或签签署人。 +同一签署人可以补充多个员工作为或签签署人,最终实际签署人取决于谁先领取合同完成签署。 +### 限制条件 +- 本企业(发起方企业)支持通过企业微信UserId 或者 姓名+手机号补充 +- 他方企业仅支持通过姓名+手机号补充 * @method Models\CreateFlowByFilesResponse CreateFlowByFiles(Models\CreateFlowByFilesRequest $req) 此接口(CreateFlowByFiles)用来通过上传后的pdf资源编号来创建待签署的合同流程。
    适用场景1:适用非制式的合同文件签署。一般开发者自己有完整的签署文件,可以通过该接口传入完整的PDF文件及流程信息生成待签署的合同流程。
    适用场景2:可通过该接口传入制式合同文件,同时在指定位置添加签署控件。可以起到接口创建临时模板的效果。如果是标准的制式文件,建议使用模板功能生成模板ID进行合同流程的生成。
    @@ -72,13 +75,16 @@ PDF资源Id 通过上传文件接口获取 适用场景: 在通过接口(CreateFlow 或者CreateFlowByFiles)创建签署流程时,若指定了参数 NeedSignReview 为true,且发起方企业作为签署方参与了流程签署,则可以调用此接口提交企业内部签署审批结果。 若签署流程状态正常,且本企业存在签署方未签署,同一签署流程可以多次提交签署审批结果,签署时的最后一个“审批结果”有效。 - * @method Models\CreateFlowSignUrlResponse CreateFlowSignUrl(Models\CreateFlowSignUrlRequest $req) 创建个人H5签署链接,请联系客户经理申请使用
    -该接口用于发起合同后,生成C端签署人的签署链接
    + * @method Models\CreateFlowSignUrlResponse CreateFlowSignUrl(Models\CreateFlowSignUrlRequest $req) 创建个人H5签署链接,请联系客户经理申请开通使用, 否则调用会返回失败
    + +该接口用于发起合同后,生成个人签署人的签署链接, 暂时不支持企业端签署
    + 注意:该接口目前签署人类型仅支持个人签署方(PERSON)
    注意:该接口可生成签署链接的C端签署人必须仅有手写签名和时间类型的签署控件
    注意:该接口返回的签署链接是用于APP集成的场景,支持APP打开或浏览器直接打开,不支持微信小程序嵌入。微信小程序请使用小程序跳转或半屏弹窗的方式
    * @method Models\CreateIntegrationDepartmentResponse CreateIntegrationDepartment(Models\CreateIntegrationDepartmentRequest $req) 通过此接口,创建企业的部门,支持绑定客户系统部门ID。 - * @method Models\CreateIntegrationEmployeesResponse CreateIntegrationEmployees(Models\CreateIntegrationEmployeesRequest $req) 创建员工,此接口会发送提醒员工实名的短信 + * @method Models\CreateIntegrationEmployeesResponse CreateIntegrationEmployees(Models\CreateIntegrationEmployeesRequest $req) 创建员工,此接口会发送提醒员工实名的短信,如果通过手机号发现员工已经创建,则不会重新创建,会发送短信提醒员工实名 +注意:此接口支持企微组织架构的 openid 创建员工,这种场景下传递明文的企微 openid 到WeworkOpenId字段即可(企微明文的 openid 一定要在应用的可见范围内才行),通过企微创建的员工,会发送企微消息去提醒实名 * @method Models\CreateIntegrationUserRolesResponse CreateIntegrationUserRoles(Models\CreateIntegrationUserRolesRequest $req) 绑定员工与对应角色 * @method Models\CreateMultiFlowSignQRCodeResponse CreateMultiFlowSignQRCode(Models\CreateMultiFlowSignQRCodeRequest $req) 此接口(CreateMultiFlowSignQRCode)用于创建一码多扫流程签署二维码。 适用场景:无需填写签署人信息,可通过模板id生成签署二维码,签署人可通过扫描二维码补充签署信息进行实名签署。常用于提前不知道签署人的身份信息场景,例如:劳务工招工、大批量员工入职等场景。 @@ -89,9 +95,12 @@ PDF资源Id 通过上传文件接口获取 - 模板中配置的签署顺序是无序 - B端企业的签署方式是静默签署 - B端企业是非首位签署 + * @method Models\CreateOrganizationBatchSignUrlResponse CreateOrganizationBatchSignUrl(Models\CreateOrganizationBatchSignUrlRequest $req) 通过此接口,创建企业批量签署链接,企业员工点击链接即可跳转控制台进行批量签署。 +如果没有UserId,Name和Mobile必填,对应的员工必须在企业下已经实名,且该员工为批量签署合同中的签署方。 + * @method Models\CreatePersonAuthCertificateImageResponse CreatePersonAuthCertificateImage(Models\CreatePersonAuthCertificateImageRequest $req) 本接口(CreatePersonAuthCertificateImage)用于创建个人用户证书证明图片 * @method Models\CreatePrepareFlowResponse CreatePrepareFlow(Models\CreatePrepareFlowRequest $req) 创建快速发起流程 -适用场景:用户通过API 合同文件及签署信息,并可通过我们返回的URL在页面完成签署控件等信息的编辑与确认,快速发起合同. -注:该接口文件的resourceId 是通过上传文件之后获取的。 +
    适用场景:用户通过API 合同文件及签署信息,并可通过我们返回的URL在页面完成签署控件等信息的编辑与确认,快速发起合同. +
    注:该接口文件的resourceId 是通过上传文件之后获取的。 * @method Models\CreatePreparedPersonalEsignResponse CreatePreparedPersonalEsign(Models\CreatePreparedPersonalEsignRequest $req) 本接口(CreatePreparedPersonalEsign)用于创建导入个人印章(处方单场景专用,使用此接口请与客户经理确认)。 * @method Models\CreateReleaseFlowResponse CreateReleaseFlow(Models\CreateReleaseFlowRequest $req) 发起解除协议,主要应用场景为:基于一份已经签署的合同(签署流程),进行解除操作。 * @method Models\CreateSchemeUrlResponse CreateSchemeUrl(Models\CreateSchemeUrlRequest $req) 获取小程序签署链接 @@ -108,34 +117,52 @@ PDF资源Id 通过上传文件接口获取 * @method Models\CreateSealResponse CreateSeal(Models\CreateSealRequest $req) 创建电子印章 * @method Models\CreateSealPolicyResponse CreateSealPolicy(Models\CreateSealPolicyRequest $req) 对企业员工进行印章授权 * @method Models\CreateUserAutoSignEnableUrlResponse CreateUserAutoSignEnableUrl(Models\CreateUserAutoSignEnableUrlRequest $req) 企业方可以通过此接口获取个人用户开启自动签的跳转链接(处方单场景专用,使用此接口请与客户经理确认) + * @method Models\CreateWebThemeConfigResponse CreateWebThemeConfig(Models\CreateWebThemeConfigRequest $req) 用来创建页面主题配置 * @method Models\DeleteIntegrationDepartmentResponse DeleteIntegrationDepartment(Models\DeleteIntegrationDepartmentRequest $req) 通过此接口,删除企业的部门。 * @method Models\DeleteIntegrationEmployeesResponse DeleteIntegrationEmployees(Models\DeleteIntegrationEmployeesRequest $req) 移除员工 +这里分两个场景 +如果不传交接人的ReceiveUserId或者ReceiveOpenId,则会直接把这个人进行离职 +如果传了交接人,会把离职人未处理完的合同交接给交接人后再离职 * @method Models\DeleteIntegrationRoleUsersResponse DeleteIntegrationRoleUsers(Models\DeleteIntegrationRoleUsersRequest $req) 解绑员工与对应角色关系 * @method Models\DeleteSealPoliciesResponse DeleteSealPolicies(Models\DeleteSealPoliciesRequest $req) 撤销员工持有的印章权限 * @method Models\DescribeExtendedServiceAuthInfosResponse DescribeExtendedServiceAuthInfos(Models\DescribeExtendedServiceAuthInfosRequest $req) 查询企业扩展服务授权信息,目前支持查询:企业静默签,企业与港澳台居民签署合同,使用手机号验证签署方身份,骑缝章,批量签署能力是否已经开通 * @method Models\DescribeFileUrlsResponse DescribeFileUrls(Models\DescribeFileUrlsRequest $req) 查询文件下载URL。 适用场景:通过传参合同流程编号,下载对应的合同PDF文件流到本地。 - * @method Models\DescribeFlowBriefsResponse DescribeFlowBriefs(Models\DescribeFlowBriefsRequest $req) 查询流程摘要 + * @method Models\DescribeFlowBriefsResponse DescribeFlowBriefs(Models\DescribeFlowBriefsRequest $req) 查询流程基础信息 适用场景:可用于主动查询某个合同流程的签署状态信息。可以配合回调通知使用。 -日调用量限制:10W - * @method Models\DescribeFlowComponentsResponse DescribeFlowComponents(Models\DescribeFlowComponentsRequest $req) 查询流程填写控件内容,可以根据流程Id查询该流程相关联的填写控件信息 - * @method Models\DescribeFlowEvidenceReportResponse DescribeFlowEvidenceReport(Models\DescribeFlowEvidenceReportRequest $req) 查询出证报告,返回报告 URL。 +每个企业限制日调用量限制:100W,当日超过此限制后再调用接口返回错误 + * @method Models\DescribeFlowComponentsResponse DescribeFlowComponents(Models\DescribeFlowComponentsRequest $req) 查询流程填写控件内容,可以根据流程Id查询该流程相关联的填写控件信息和填写内容。 +注意:使用此接口前,需要在【企业应用管理】-【应用集成】-【第三方应用管理】中开通【下载应用内全量合同文件及内容数据】功能。 + * @method Models\DescribeFlowEvidenceReportResponse DescribeFlowEvidenceReport(Models\DescribeFlowEvidenceReportRequest $req) 查询出证报告,返回报告 URL。出证报告编号通过CreateFlowEvidenceReport接口获取。 * @method Models\DescribeFlowInfoResponse DescribeFlowInfo(Models\DescribeFlowInfoRequest $req) 查询合同详情 适用场景:可用于主动查询某个合同详情信息。 - * @method Models\DescribeFlowTemplatesResponse DescribeFlowTemplates(Models\DescribeFlowTemplatesRequest $req) 当模板较多或模板中的控件较多时,可以通过查询模板接口更方便的获取模板列表,以及每个模板内的控件信息。
    -该接口常用来配合“创建电子文档”接口作为前置的接口使用。
    + * @method Models\DescribeFlowTemplatesResponse DescribeFlowTemplates(Models\DescribeFlowTemplatesRequest $req) 本接口用于查询本企业模板列表。 + +当模板较多或模板中的控件较多时,可以通过查询模板接口更方便的获取模板列表,以及每个模板内的控件信息。 + +> **适用场景** +> +> 该接口常用来配合“模板发起合同-创建电子文档”接口作为前置的接口使用。 +> 一个模板通常会包含以下结构信息 +>- 模板基本信息 +>- 发起方参与信息Promoter、签署参与方 Recipients,后者会在模板发起合同时用于指定参与方 +>- 填写控件 Components +>- 签署控件 SignComponents +>- 生成模板的文件基础信息 FileInfos * @method Models\DescribeIntegrationDepartmentsResponse DescribeIntegrationDepartments(Models\DescribeIntegrationDepartmentsRequest $req) 通过此接口,查询企业的部门,支持查询单个部门节点或单个部门节点及一级子节点部门列表。 * @method Models\DescribeIntegrationEmployeesResponse DescribeIntegrationEmployees(Models\DescribeIntegrationEmployeesRequest $req) 查询企业员工列表,每次返回的数据量最大为20 - * @method Models\DescribeIntegrationMainOrganizationUserResponse DescribeIntegrationMainOrganizationUser(Models\DescribeIntegrationMainOrganizationUserRequest $req) 通过子企业影子账号查询主企业员工账号 - * @method Models\DescribeIntegrationRolesResponse DescribeIntegrationRoles(Models\DescribeIntegrationRolesRequest $req) 查询企业角色列表 + * @method Models\DescribeIntegrationMainOrganizationUserResponse DescribeIntegrationMainOrganizationUser(Models\DescribeIntegrationMainOrganizationUserRequest $req) 集团企业统一使用主代子进行操作,无需根据子企业账号进行转化查询,该接口需要屏蔽下线 + +通过子企业影子账号查询主企业员工账号 + * @method Models\DescribeIntegrationRolesResponse DescribeIntegrationRoles(Models\DescribeIntegrationRolesRequest $req) 分页查询企业角色列表,法人的角色是系统保留角色,不会返回,按照角色创建时间升序排列 * @method Models\DescribeOrganizationGroupOrganizationsResponse DescribeOrganizationGroupOrganizations(Models\DescribeOrganizationGroupOrganizationsRequest $req) 此API接口用户查询加入集团的成员企业 * @method Models\DescribeOrganizationSealsResponse DescribeOrganizationSeals(Models\DescribeOrganizationSealsRequest $req) 查询企业印章的列表,需要操作者具有查询印章权限 客户指定需要获取的印章数量和偏移量,数量最多100,超过100按100处理;入参InfoType控制印章是否携带授权人信息,为1则携带,为0则返回的授权人信息为空数组。接口调用成功返回印章的信息列表还有企业印章的总数。 * @method Models\DescribeThirdPartyAuthCodeResponse DescribeThirdPartyAuthCode(Models\DescribeThirdPartyAuthCodeRequest $req) 通过AuthCode查询用户是否实名 * @method Models\DescribeUserAutoSignStatusResponse DescribeUserAutoSignStatus(Models\DescribeUserAutoSignStatusRequest $req) 企业方可以通过此接口查询个人用户自动签开启状态。(处方单场景专用,使用此接口请与客户经理确认) * @method Models\DisableUserAutoSignResponse DisableUserAutoSign(Models\DisableUserAutoSignRequest $req) 企业方可以通过此接口关闭个人的自动签功能(处方单场景专用,使用此接口请与客户经理确认) - * @method Models\GetTaskResultApiResponse GetTaskResultApi(Models\GetTaskResultApiRequest $req) 通过发起转换任务接口(CreateConvertTaskApi)返回的任务Id查询转换任务状态,通过本接口确认转换任务是否完成。
    -大文件转换所需的时间可能会比较长。 + * @method Models\GetTaskResultApiResponse GetTaskResultApi(Models\GetTaskResultApiRequest $req) 查询转换任务的状态。转换任务Id通过发起转换任务接口(CreateConvertTaskApi)获取。 +注意:大文件转换所需的时间可能会比较长。 * @method Models\ModifyApplicationCallbackInfoResponse ModifyApplicationCallbackInfo(Models\ModifyApplicationCallbackInfoRequest $req) 新增/删除应用callbackinfo callbackinfo包含: 回调地址和签名key 操作:新增/删除 @@ -144,7 +171,8 @@ callbackinfo包含: 回调地址和签名key 适用场景:见创建签署流程接口。 注:该接口是“创建电子文档”接口的后置接口,用于激活包含完整合同信息(模板及内容信息)的流程。激活后的流程就是一份待签署的电子合同。 * @method Models\UnbindEmployeeUserIdWithClientOpenIdResponse UnbindEmployeeUserIdWithClientOpenId(Models\UnbindEmployeeUserIdWithClientOpenIdRequest $req) 将存在绑定关系的电子签系统员工userId与客户系统员工openId进行解绑 - * @method Models\UpdateIntegrationEmployeesResponse UpdateIntegrationEmployees(Models\UpdateIntegrationEmployeesRequest $req) 更新员工信息(姓名,手机号,邮件、部门),用户实名后无法更改姓名与手机号 + * @method Models\UpdateIntegrationEmployeesResponse UpdateIntegrationEmployees(Models\UpdateIntegrationEmployeesRequest $req) 更新员工信息(姓名,手机号,邮件、部门),用户实名后无法更改姓名与手机号。 +可进行批量操作,Employees中的userID与openID二选一必填 * @method Models\UploadFilesResponse UploadFiles(Models\UploadFilesRequest $req) 此接口(UploadFiles)用于文件上传。
    适用场景:用于生成pdf资源编号(FileIds)来配合“用PDF创建流程”接口使用,使用场景可详见“用PDF创建流程”接口说明。
    diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ApproverInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ApproverInfo.php index dd20bc584..e9530ee39 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ApproverInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ApproverInfo.php @@ -38,16 +38,18 @@ use TencentCloud\Common\AbstractModel; * @method void setOrganizationName(string $OrganizationName) 设置如果签署方是企业签署方,则为企业名 * @method array getSignComponents() 获取签署人的签署控件列表 * @method void setSignComponents(array $SignComponents) 设置签署人的签署控件列表 - * @method string getApproverIdCardNumber() 获取签署人的身份证号 - * @method void setApproverIdCardNumber(string $ApproverIdCardNumber) 设置签署人的身份证号 - * @method string getApproverIdCardType() 获取签署人的身份证件类型 + * @method string getApproverIdCardType() 获取签署人的证件类型 ID_CARD 身份证 HONGKONG_AND_MACAO 港澳居民来往内地通行证 HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) - * @method void setApproverIdCardType(string $ApproverIdCardType) 设置签署人的身份证件类型 +OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @method void setApproverIdCardType(string $ApproverIdCardType) 设置签署人的证件类型 ID_CARD 身份证 HONGKONG_AND_MACAO 港澳居民来往内地通行证 HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) +OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @method string getApproverIdCardNumber() 获取签署人证件号(长度不超过18位) + * @method void setApproverIdCardNumber(string $ApproverIdCardNumber) 设置签署人证件号(长度不超过18位) * @method string getNotifyType() 获取签署通知类型:sms--短信,none--不通知 * @method void setNotifyType(string $NotifyType) 设置签署通知类型:sms--短信,none--不通知 * @method integer getApproverRole() 获取签署人角色类型:1--收款人、2--开具人、3--见证人 @@ -60,26 +62,26 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) * @method void setUserId(string $UserId) 设置签署人userId,传此字段则不用传姓名、手机号 * @method string getApproverSource() 获取签署人用户来源,企微侧用户请传入:WEWORKAPP * @method void setApproverSource(string $ApproverSource) 设置签署人用户来源,企微侧用户请传入:WEWORKAPP - * @method string getCustomApproverTag() 获取客户自定义签署人标识,64位长度,保证唯一,非企微场景不使用此字段 - * @method void setCustomApproverTag(string $CustomApproverTag) 设置客户自定义签署人标识,64位长度,保证唯一,非企微场景不使用此字段 + * @method string getCustomApproverTag() 获取企业签署方或签标识,客户自定义,64位长度。用于发起含有或签签署人的合同。或签参与人必须有此字段。合同内不同或签参与人CustomApproverTag需要保证唯一。如果或签签署人为本方企微参与人,ApproverSource参数需要指定WEWORKAPP + * @method void setCustomApproverTag(string $CustomApproverTag) 设置企业签署方或签标识,客户自定义,64位长度。用于发起含有或签签署人的合同。或签参与人必须有此字段。合同内不同或签参与人CustomApproverTag需要保证唯一。如果或签签署人为本方企微参与人,ApproverSource参数需要指定WEWORKAPP * @method ApproverOption getApproverOption() 获取签署人个性化能力值 * @method void setApproverOption(ApproverOption $ApproverOption) 设置签署人个性化能力值 * @method array getApproverVerifyTypes() 获取签署人查看合同时认证方式, 1-实名查看 2-短信验证码查看(企业签署方不支持该方式) 如果不传默认为1 -模板发起的时候,认证方式以模版配置为主 +模板发起的时候,认证方式以模板配置为主 * @method void setApproverVerifyTypes(array $ApproverVerifyTypes) 设置签署人查看合同时认证方式, 1-实名查看 2-短信验证码查看(企业签署方不支持该方式) 如果不传默认为1 -模板发起的时候,认证方式以模版配置为主 +模板发起的时候,认证方式以模板配置为主 * @method array getApproverSignTypes() 获取签署人签署合同时的认证方式 1-人脸认证 2-签署密码 3-运营商三要素(默认为1,2) 合同签署认证方式的优先级 verifyChannel>approverSignTypes -模板发起的时候,认证方式以模版配置为主 +模板发起的时候,认证方式以模板配置为主 * @method void setApproverSignTypes(array $ApproverSignTypes) 设置签署人签署合同时的认证方式 1-人脸认证 2-签署密码 3-运营商三要素(默认为1,2) 合同签署认证方式的优先级 verifyChannel>approverSignTypes -模板发起的时候,认证方式以模版配置为主 +模板发起的时候,认证方式以模板配置为主 * @method boolean getApproverNeedSignReview() 获取当前签署方进行签署操作是否需要企业内部审批,true 则为需要。为个人签署方时则由发起方企业审核。 * @method void setApproverNeedSignReview(boolean $ApproverNeedSignReview) 设置当前签署方进行签署操作是否需要企业内部审批,true 则为需要。为个人签署方时则由发起方企业审核。 */ @@ -115,18 +117,19 @@ class ApproverInfo extends AbstractModel public $SignComponents; /** - * @var string 签署人的身份证号 - */ - public $ApproverIdCardNumber; - - /** - * @var string 签署人的身份证件类型 + * @var string 签署人的证件类型 ID_CARD 身份证 HONGKONG_AND_MACAO 港澳居民来往内地通行证 HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) +OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) */ public $ApproverIdCardType; + /** + * @var string 签署人证件号(长度不超过18位) + */ + public $ApproverIdCardNumber; + /** * @var string 签署通知类型:sms--短信,none--不通知 */ @@ -158,7 +161,7 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) public $ApproverSource; /** - * @var string 客户自定义签署人标识,64位长度,保证唯一,非企微场景不使用此字段 + * @var string 企业签署方或签标识,客户自定义,64位长度。用于发起含有或签签署人的合同。或签参与人必须有此字段。合同内不同或签参与人CustomApproverTag需要保证唯一。如果或签签署人为本方企微参与人,ApproverSource参数需要指定WEWORKAPP */ public $CustomApproverTag; @@ -171,7 +174,7 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) * @var array 签署人查看合同时认证方式, 1-实名查看 2-短信验证码查看(企业签署方不支持该方式) 如果不传默认为1 -模板发起的时候,认证方式以模版配置为主 +模板发起的时候,认证方式以模板配置为主 */ public $ApproverVerifyTypes; @@ -179,7 +182,7 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) * @var array 签署人签署合同时的认证方式 1-人脸认证 2-签署密码 3-运营商三要素(默认为1,2) 合同签署认证方式的优先级 verifyChannel>approverSignTypes -模板发起的时候,认证方式以模版配置为主 +模板发起的时候,认证方式以模板配置为主 */ public $ApproverSignTypes; @@ -198,27 +201,28 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) * @param string $ApproverMobile 签署人的手机号,11位数字 * @param string $OrganizationName 如果签署方是企业签署方,则为企业名 * @param array $SignComponents 签署人的签署控件列表 - * @param string $ApproverIdCardNumber 签署人的身份证号 - * @param string $ApproverIdCardType 签署人的身份证件类型 + * @param string $ApproverIdCardType 签署人的证件类型 ID_CARD 身份证 HONGKONG_AND_MACAO 港澳居民来往内地通行证 HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) +OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @param string $ApproverIdCardNumber 签署人证件号(长度不超过18位) * @param string $NotifyType 签署通知类型:sms--短信,none--不通知 * @param integer $ApproverRole 签署人角色类型:1--收款人、2--开具人、3--见证人 * @param array $VerifyChannel 签署意愿确认渠道,默认为WEIXINAPP:人脸识别 * @param integer $PreReadTime 合同的强制预览时间:3~300s,未指定则按合同页数计算 * @param string $UserId 签署人userId,传此字段则不用传姓名、手机号 * @param string $ApproverSource 签署人用户来源,企微侧用户请传入:WEWORKAPP - * @param string $CustomApproverTag 客户自定义签署人标识,64位长度,保证唯一,非企微场景不使用此字段 + * @param string $CustomApproverTag 企业签署方或签标识,客户自定义,64位长度。用于发起含有或签签署人的合同。或签参与人必须有此字段。合同内不同或签参与人CustomApproverTag需要保证唯一。如果或签签署人为本方企微参与人,ApproverSource参数需要指定WEWORKAPP * @param ApproverOption $ApproverOption 签署人个性化能力值 * @param array $ApproverVerifyTypes 签署人查看合同时认证方式, 1-实名查看 2-短信验证码查看(企业签署方不支持该方式) 如果不传默认为1 -模板发起的时候,认证方式以模版配置为主 +模板发起的时候,认证方式以模板配置为主 * @param array $ApproverSignTypes 签署人签署合同时的认证方式 1-人脸认证 2-签署密码 3-运营商三要素(默认为1,2) 合同签署认证方式的优先级 verifyChannel>approverSignTypes -模板发起的时候,认证方式以模版配置为主 +模板发起的时候,认证方式以模板配置为主 * @param boolean $ApproverNeedSignReview 当前签署方进行签署操作是否需要企业内部审批,true 则为需要。为个人签署方时则由发起方企业审核。 */ function __construct() @@ -259,14 +263,14 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) } } - if (array_key_exists("ApproverIdCardNumber",$param) and $param["ApproverIdCardNumber"] !== null) { - $this->ApproverIdCardNumber = $param["ApproverIdCardNumber"]; - } - if (array_key_exists("ApproverIdCardType",$param) and $param["ApproverIdCardType"] !== null) { $this->ApproverIdCardType = $param["ApproverIdCardType"]; } + if (array_key_exists("ApproverIdCardNumber",$param) and $param["ApproverIdCardNumber"] !== null) { + $this->ApproverIdCardNumber = $param["ApproverIdCardNumber"]; + } + if (array_key_exists("NotifyType",$param) and $param["NotifyType"] !== null) { $this->NotifyType = $param["NotifyType"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/AutoSignConfig.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/AutoSignConfig.php index 504e0c4e5..35f627950 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/AutoSignConfig.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/AutoSignConfig.php @@ -22,16 +22,50 @@ use TencentCloud\Common\AbstractModel; * * @method UserThreeFactor getUserInfo() 获取自动签开通个人用户的三要素 * @method void setUserInfo(UserThreeFactor $UserInfo) 设置自动签开通个人用户的三要素 - * @method string getCallbackUrl() 获取接受自动签开启的回调地址。需要保证post返回200 - * @method void setCallbackUrl(string $CallbackUrl) 设置接受自动签开启的回调地址。需要保证post返回200 - * @method boolean getCertInfoCallback() 获取是否回调证书信息,默认false-不需要 - * @method void setCertInfoCallback(boolean $CertInfoCallback) 设置是否回调证书信息,默认false-不需要 - * @method boolean getUserDefineSeal() 获取是否支持用户自定义签名印章,默认false-不需要 - * @method void setUserDefineSeal(boolean $UserDefineSeal) 设置是否支持用户自定义签名印章,默认false-不需要 - * @method boolean getSealImgCallback() 获取是否需要回调的时候返回印章(签名) 图片的 base64,默认false-不需要 - * @method void setSealImgCallback(boolean $SealImgCallback) 设置是否需要回调的时候返回印章(签名) 图片的 base64,默认false-不需要 - * @method array getVerifyChannels() 获取开通时候的验证方式,取值:WEIXINAPP(微信人脸识别),INSIGHT(慧眼人脸认别),TELECOM(运营商三要素验证)。如果是小程序开通链接,支持传 WEIXINAPP / TELECOM。如果是 H5 开通链接,支持传 INSIGHT / TELECOM。默认值 WEIXINAPP / INSIGHT。 - * @method void setVerifyChannels(array $VerifyChannels) 设置开通时候的验证方式,取值:WEIXINAPP(微信人脸识别),INSIGHT(慧眼人脸认别),TELECOM(运营商三要素验证)。如果是小程序开通链接,支持传 WEIXINAPP / TELECOM。如果是 H5 开通链接,支持传 INSIGHT / TELECOM。默认值 WEIXINAPP / INSIGHT。 + * @method string getCallbackUrl() 获取接受回调URL地址。支持http://或者https://协议 + +Post数据到此地址后返回httpcode200表示接受回调成功, 返回其他httpcode表示接受回调失败 + * @method void setCallbackUrl(string $CallbackUrl) 设置接受回调URL地址。支持http://或者https://协议 + +Post数据到此地址后返回httpcode200表示接受回调成功, 返回其他httpcode表示接受回调失败 + * @method boolean getCertInfoCallback() 获取是否回调证书信息 +false-不需要 (默认值) +true-需要 + * @method void setCertInfoCallback(boolean $CertInfoCallback) 设置是否回调证书信息 +false-不需要 (默认值) +true-需要 + * @method boolean getUserDefineSeal() 获取是否支持用户自定义签名印章 +false-不需要(默认) +true-需要 + * @method void setUserDefineSeal(boolean $UserDefineSeal) 设置是否支持用户自定义签名印章 +false-不需要(默认) +true-需要 + * @method boolean getSealImgCallback() 获取是否需要回调的时候返回印章(签名) 图片的 base64 + +false-不需要(默认) +true-需要 + * @method void setSealImgCallback(boolean $SealImgCallback) 设置是否需要回调的时候返回印章(签名) 图片的 base64 + +false-不需要(默认) +true-需要 + * @method array getVerifyChannels() 获取开通时候的验证方式, 分布为 + +WEIXINAPP : 微信人脸识别 +INSIGHT : 慧眼人脸认别 +TELECOM : 运营商三要素验证 + +如果是小程序开通链接,支持传 WEIXINAPP / TELECOM。 + +如果是 H5 开通链接,支持传 INSIGHT / TELECOM。默认值 WEIXINAPP / INSIGHT。 + * @method void setVerifyChannels(array $VerifyChannels) 设置开通时候的验证方式, 分布为 + +WEIXINAPP : 微信人脸识别 +INSIGHT : 慧眼人脸认别 +TELECOM : 运营商三要素验证 + +如果是小程序开通链接,支持传 WEIXINAPP / TELECOM。 + +如果是 H5 开通链接,支持传 INSIGHT / TELECOM。默认值 WEIXINAPP / INSIGHT。 */ class AutoSignConfig extends AbstractModel { @@ -41,37 +75,71 @@ class AutoSignConfig extends AbstractModel public $UserInfo; /** - * @var string 接受自动签开启的回调地址。需要保证post返回200 + * @var string 接受回调URL地址。支持http://或者https://协议 + +Post数据到此地址后返回httpcode200表示接受回调成功, 返回其他httpcode表示接受回调失败 */ public $CallbackUrl; /** - * @var boolean 是否回调证书信息,默认false-不需要 + * @var boolean 是否回调证书信息 +false-不需要 (默认值) +true-需要 */ public $CertInfoCallback; /** - * @var boolean 是否支持用户自定义签名印章,默认false-不需要 + * @var boolean 是否支持用户自定义签名印章 +false-不需要(默认) +true-需要 */ public $UserDefineSeal; /** - * @var boolean 是否需要回调的时候返回印章(签名) 图片的 base64,默认false-不需要 + * @var boolean 是否需要回调的时候返回印章(签名) 图片的 base64 + +false-不需要(默认) +true-需要 */ public $SealImgCallback; /** - * @var array 开通时候的验证方式,取值:WEIXINAPP(微信人脸识别),INSIGHT(慧眼人脸认别),TELECOM(运营商三要素验证)。如果是小程序开通链接,支持传 WEIXINAPP / TELECOM。如果是 H5 开通链接,支持传 INSIGHT / TELECOM。默认值 WEIXINAPP / INSIGHT。 + * @var array 开通时候的验证方式, 分布为 + +WEIXINAPP : 微信人脸识别 +INSIGHT : 慧眼人脸认别 +TELECOM : 运营商三要素验证 + +如果是小程序开通链接,支持传 WEIXINAPP / TELECOM。 + +如果是 H5 开通链接,支持传 INSIGHT / TELECOM。默认值 WEIXINAPP / INSIGHT。 */ public $VerifyChannels; /** * @param UserThreeFactor $UserInfo 自动签开通个人用户的三要素 - * @param string $CallbackUrl 接受自动签开启的回调地址。需要保证post返回200 - * @param boolean $CertInfoCallback 是否回调证书信息,默认false-不需要 - * @param boolean $UserDefineSeal 是否支持用户自定义签名印章,默认false-不需要 - * @param boolean $SealImgCallback 是否需要回调的时候返回印章(签名) 图片的 base64,默认false-不需要 - * @param array $VerifyChannels 开通时候的验证方式,取值:WEIXINAPP(微信人脸识别),INSIGHT(慧眼人脸认别),TELECOM(运营商三要素验证)。如果是小程序开通链接,支持传 WEIXINAPP / TELECOM。如果是 H5 开通链接,支持传 INSIGHT / TELECOM。默认值 WEIXINAPP / INSIGHT。 + * @param string $CallbackUrl 接受回调URL地址。支持http://或者https://协议 + +Post数据到此地址后返回httpcode200表示接受回调成功, 返回其他httpcode表示接受回调失败 + * @param boolean $CertInfoCallback 是否回调证书信息 +false-不需要 (默认值) +true-需要 + * @param boolean $UserDefineSeal 是否支持用户自定义签名印章 +false-不需要(默认) +true-需要 + * @param boolean $SealImgCallback 是否需要回调的时候返回印章(签名) 图片的 base64 + +false-不需要(默认) +true-需要 + * @param array $VerifyChannels 开通时候的验证方式, 分布为 + +WEIXINAPP : 微信人脸识别 +INSIGHT : 慧眼人脸认别 +TELECOM : 运营商三要素验证 + +如果是小程序开通链接,支持传 WEIXINAPP / TELECOM。 + +如果是 H5 开通链接,支持传 INSIGHT / TELECOM。默认值 WEIXINAPP / INSIGHT。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/BindEmployeeUserIdWithClientOpenIdRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/BindEmployeeUserIdWithClientOpenIdRequest.php index 8f0b20231..38e0eb65f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/BindEmployeeUserIdWithClientOpenIdRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/BindEmployeeUserIdWithClientOpenIdRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setUserId(string $UserId) 设置电子签系统员工UserId * @method string getOpenId() 获取客户系统OpenId * @method void setOpenId(string $OpenId) 设置客户系统OpenId + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class BindEmployeeUserIdWithClientOpenIdRequest extends AbstractModel { @@ -44,10 +46,16 @@ class BindEmployeeUserIdWithClientOpenIdRequest extends AbstractModel */ public $OpenId; + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param UserInfo $Operator 用户信息,OpenId与UserId二选一必填一个,OpenId是第三方客户ID,userId是用户实名后的电子签生成的ID,当传入客户系统openId,传入的openId需与电子签员工userId绑定,且参数Channel必填,Channel值为INTEGRATE;当传入参数UserId,Channel无需指定。(参数参考示例) * @param string $UserId 电子签系统员工UserId * @param string $OpenId 客户系统OpenId + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -74,5 +82,10 @@ class BindEmployeeUserIdWithClientOpenIdRequest extends AbstractModel if (array_key_exists("OpenId",$param) and $param["OpenId"] !== null) { $this->OpenId = $param["OpenId"]; } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/Component.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/Component.php index 19a009c78..d430a4e64 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/Component.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/Component.php @@ -18,7 +18,7 @@ namespace TencentCloud\Ess\V20201111\Models; use TencentCloud\Common\AbstractModel; /** - * 模板控件信息 + * 模板/流程中控件信息,可以是填充控件或签署控件 * * @method string getComponentType() 获取如果是Component填写控件类型,则可选的字段为: TEXT - 普通文本控件,输入文本字符串; @@ -62,8 +62,10 @@ SIGN_OPINION - 签署意见控件,用户需要根据配置的签署意见内 SIGN_LEGAL_PERSON_SEAL - 企业法定代表人控件。 表单域的控件不能作为印章和签名控件 - * @method integer getFileIndex() 获取控件所属文件的序号(取值为:0-N)。目前单文件的情况下,值是0 - * @method void setFileIndex(integer $FileIndex) 设置控件所属文件的序号(取值为:0-N)。目前单文件的情况下,值是0 + * @method integer getFileIndex() 获取控件所属文件的序号(取值为:0-N)。 +目前单文件的情况下,值是0 + * @method void setFileIndex(integer $FileIndex) 设置控件所属文件的序号(取值为:0-N)。 +目前单文件的情况下,值是0 * @method float getComponentHeight() 获取参数控件高度,单位pt * @method void setComponentHeight(float $ComponentHeight) 设置参数控件高度,单位pt * @method float getComponentWidth() 获取参数控件宽度,单位pt @@ -74,14 +76,18 @@ SIGN_LEGAL_PERSON_SEAL - 企业法定代表人控件。 * @method void setComponentPosX(float $ComponentPosX) 设置参数控件X位置,单位pt * @method float getComponentPosY() 获取参数控件Y位置,单位pt * @method void setComponentPosY(float $ComponentPosY) 设置参数控件Y位置,单位pt - * @method string getComponentId() 获取查询时返回控件唯一Id。使用文件发起合同时用于GenerateMode==KEYWORD 指定关键字 - * @method void setComponentId(string $ComponentId) 设置查询时返回控件唯一Id。使用文件发起合同时用于GenerateMode==KEYWORD 指定关键字 - * @method string getComponentName() 获取查询时返回控件名。使用文件发起合同时用于GenerateMode==FIELD 指定表单域名称 - * @method void setComponentName(string $ComponentName) 设置查询时返回控件名。使用文件发起合同时用于GenerateMode==FIELD 指定表单域名称 - * @method boolean getComponentRequired() 获取是否必选,默认为false - * @method void setComponentRequired(boolean $ComponentRequired) 设置是否必选,默认为false - * @method string getComponentRecipientId() 获取控件关联的签署人ID - * @method void setComponentRecipientId(string $ComponentRecipientId) 设置控件关联的签署人ID + * @method string getComponentId() 获取控件唯一ID。 +或使用文件发起合同时用于GenerateMode==KEYWORD 指定关键字 + * @method void setComponentId(string $ComponentId) 设置控件唯一ID。 +或使用文件发起合同时用于GenerateMode==KEYWORD 指定关键字 + * @method string getComponentName() 获取控件名。 +或使用文件发起合同时用于GenerateMode==FIELD 指定表单域名称 + * @method void setComponentName(string $ComponentName) 设置控件名。 +或使用文件发起合同时用于GenerateMode==FIELD 指定表单域名称 + * @method boolean getComponentRequired() 获取是否必选,默认为false-非必选 + * @method void setComponentRequired(boolean $ComponentRequired) 设置是否必选,默认为false-非必选 + * @method string getComponentRecipientId() 获取控件关联的参与方ID,对应Recipient结构体中的RecipientId + * @method void setComponentRecipientId(string $ComponentRecipientId) 设置控件关联的参与方ID,对应Recipient结构体中的RecipientId * @method string getComponentExtra() 获取扩展参数: 为JSON格式。 @@ -140,9 +146,9 @@ ComponentType为SIGN_DATE时,支持以下参数: ComponentType为SIGN_SEAL类型时,支持以下参数: 1.PageRanges:PageRange的数组,通过PageRanges属性设置该印章在PDF所有页面上盖章(适用于标书在所有页面盖章的情况) 参数样例:"ComponentExtra":"{\"PageRanges\":[{\"BeginPage\":1,\"EndPage\":-1}]}" - * @method boolean getIsFormType() 获取是否是表单域类型,默认不false-不是 + * @method boolean getIsFormType() 获取是否是表单域类型,默认false-不是 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setIsFormType(boolean $IsFormType) 设置是否是表单域类型,默认不false-不是 + * @method void setIsFormType(boolean $IsFormType) 设置是否是表单域类型,默认false-不是 注意:此字段可能返回 null,表示取不到有效值。 * @method string getComponentValue() 获取控件填充vaule,ComponentType和传入值类型对应关系: TEXT - 文本内容 @@ -304,8 +310,8 @@ FIELD 表单域,需使用ComponentName指定表单域名称 KEYWORD 关键字,使用ComponentId指定关键字 * @method integer getComponentDateFontSize() 获取日期签署控件的字号,默认为 12 * @method void setComponentDateFontSize(integer $ComponentDateFontSize) 设置日期签署控件的字号,默认为 12 - * @method string getChannelComponentId() 获取第三方应用集成平台模板控件 id 标识 - * @method void setChannelComponentId(string $ChannelComponentId) 设置第三方应用集成平台模板控件 id 标识 + * @method string getChannelComponentId() 获取第三方应用集成平台模板控件 ID 标识 + * @method void setChannelComponentId(string $ChannelComponentId) 设置第三方应用集成平台模板控件 ID 标识 * @method float getOffsetX() 获取指定关键字时横坐标偏移量,单位pt 注意:此字段可能返回 null,表示取不到有效值。 * @method void setOffsetX(float $OffsetX) 设置指定关键字时横坐标偏移量,单位pt @@ -314,18 +320,54 @@ KEYWORD 关键字,使用ComponentId指定关键字 注意:此字段可能返回 null,表示取不到有效值。 * @method void setOffsetY(float $OffsetY) 设置指定关键字时纵坐标偏移量,单位pt 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getChannelComponentSource() 获取第三方应用集成中子客企业控件来源。0-平台指定;1-用户自定义 - * @method void setChannelComponentSource(integer $ChannelComponentSource) 设置第三方应用集成中子客企业控件来源。0-平台指定;1-用户自定义 - * @method string getKeywordOrder() 获取指定关键字排序规则,Positive-正序,Reverse-倒序。传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 + * @method integer getChannelComponentSource() 获取第三方应用集成中子客企业控件来源。 +0-平台指定; +1-用户自定义 + * @method void setChannelComponentSource(integer $ChannelComponentSource) 设置第三方应用集成中子客企业控件来源。 +0-平台指定; +1-用户自定义 + * @method string getKeywordOrder() 获取指定关键字排序规则,Positive-正序,Reverse-倒序。 +传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 传入Reverse时会根据关键字在PDF文件内的反序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的最后一个关键字。 - * @method void setKeywordOrder(string $KeywordOrder) 设置指定关键字排序规则,Positive-正序,Reverse-倒序。传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 + * @method void setKeywordOrder(string $KeywordOrder) 设置指定关键字排序规则,Positive-正序,Reverse-倒序。 +传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 传入Reverse时会根据关键字在PDF文件内的反序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的最后一个关键字。 - * @method integer getKeywordPage() 获取指定关键字页码,可选参数,指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 - * @method void setKeywordPage(integer $KeywordPage) 设置指定关键字页码,可选参数,指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 - * @method string getRelativeLocation() 获取关键字位置模式,Middle-居中,Below-正下方,Right-正右方,LowerRight-右上角,UpperRight-右下角。示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 - * @method void setRelativeLocation(string $RelativeLocation) 设置关键字位置模式,Middle-居中,Below-正下方,Right-正右方,LowerRight-右上角,UpperRight-右下角。示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 - * @method array getKeywordIndexes() 获取关键字索引,可选参数,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。示例:[0,2],说明使用PDF文件内第1个和第3个关键字位置。 - * @method void setKeywordIndexes(array $KeywordIndexes) 设置关键字索引,可选参数,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。示例:[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @method integer getKeywordPage() 获取指定关键字页码。 +指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 + * @method void setKeywordPage(integer $KeywordPage) 设置指定关键字页码。 +指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 + * @method string getRelativeLocation() 获取关键字位置模式, +Middle-居中, +Below-正下方, +Right-正右方, +LowerRight-右上角, +UpperRight-右下角。 +示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 + * @method void setRelativeLocation(string $RelativeLocation) 设置关键字位置模式, +Middle-居中, +Below-正下方, +Right-正右方, +LowerRight-右上角, +UpperRight-右下角。 +示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 + * @method array getKeywordIndexes() 获取关键字索引。 +如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。 +示例:[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @method void setKeywordIndexes(array $KeywordIndexes) 设置关键字索引。 +如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。 +示例:[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @method boolean getLockComponentValue() 获取是否锁定控件值不允许编辑(嵌入式发起使用) +
    默认false:不锁定控件值,允许在页面编辑控件值 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setLockComponentValue(boolean $LockComponentValue) 设置是否锁定控件值不允许编辑(嵌入式发起使用) +
    默认false:不锁定控件值,允许在页面编辑控件值 +注意:此字段可能返回 null,表示取不到有效值。 + * @method boolean getForbidMoveAndDelete() 获取是否禁止移动和删除控件 +
    默认false,不禁止移动和删除控件 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setForbidMoveAndDelete(boolean $ForbidMoveAndDelete) 设置是否禁止移动和删除控件 +
    默认false,不禁止移动和删除控件 +注意:此字段可能返回 null,表示取不到有效值。 */ class Component extends AbstractModel { @@ -355,7 +397,8 @@ SIGN_LEGAL_PERSON_SEAL - 企业法定代表人控件。 public $ComponentType; /** - * @var integer 控件所属文件的序号(取值为:0-N)。目前单文件的情况下,值是0 + * @var integer 控件所属文件的序号(取值为:0-N)。 +目前单文件的情况下,值是0 */ public $FileIndex; @@ -385,22 +428,24 @@ SIGN_LEGAL_PERSON_SEAL - 企业法定代表人控件。 public $ComponentPosY; /** - * @var string 查询时返回控件唯一Id。使用文件发起合同时用于GenerateMode==KEYWORD 指定关键字 + * @var string 控件唯一ID。 +或使用文件发起合同时用于GenerateMode==KEYWORD 指定关键字 */ public $ComponentId; /** - * @var string 查询时返回控件名。使用文件发起合同时用于GenerateMode==FIELD 指定表单域名称 + * @var string 控件名。 +或使用文件发起合同时用于GenerateMode==FIELD 指定表单域名称 */ public $ComponentName; /** - * @var boolean 是否必选,默认为false + * @var boolean 是否必选,默认为false-非必选 */ public $ComponentRequired; /** - * @var string 控件关联的签署人ID + * @var string 控件关联的参与方ID,对应Recipient结构体中的RecipientId */ public $ComponentRecipientId; @@ -438,7 +483,7 @@ ComponentType为SIGN_SEAL类型时,支持以下参数: public $ComponentExtra; /** - * @var boolean 是否是表单域类型,默认不false-不是 + * @var boolean 是否是表单域类型,默认false-不是 注意:此字段可能返回 null,表示取不到有效值。 */ public $IsFormType; @@ -536,7 +581,7 @@ KEYWORD 关键字,使用ComponentId指定关键字 public $ComponentDateFontSize; /** - * @var string 第三方应用集成平台模板控件 id 标识 + * @var string 第三方应用集成平台模板控件 ID 标识 */ public $ChannelComponentId; @@ -553,31 +598,57 @@ KEYWORD 关键字,使用ComponentId指定关键字 public $OffsetY; /** - * @var integer 第三方应用集成中子客企业控件来源。0-平台指定;1-用户自定义 + * @var integer 第三方应用集成中子客企业控件来源。 +0-平台指定; +1-用户自定义 */ public $ChannelComponentSource; /** - * @var string 指定关键字排序规则,Positive-正序,Reverse-倒序。传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 + * @var string 指定关键字排序规则,Positive-正序,Reverse-倒序。 +传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 传入Reverse时会根据关键字在PDF文件内的反序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的最后一个关键字。 */ public $KeywordOrder; /** - * @var integer 指定关键字页码,可选参数,指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 + * @var integer 指定关键字页码。 +指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 */ public $KeywordPage; /** - * @var string 关键字位置模式,Middle-居中,Below-正下方,Right-正右方,LowerRight-右上角,UpperRight-右下角。示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 + * @var string 关键字位置模式, +Middle-居中, +Below-正下方, +Right-正右方, +LowerRight-右上角, +UpperRight-右下角。 +示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 */ public $RelativeLocation; /** - * @var array 关键字索引,可选参数,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。示例:[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @var array 关键字索引。 +如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。 +示例:[0,2],说明使用PDF文件内第1个和第3个关键字位置。 */ public $KeywordIndexes; + /** + * @var boolean 是否锁定控件值不允许编辑(嵌入式发起使用) +
    默认false:不锁定控件值,允许在页面编辑控件值 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $LockComponentValue; + + /** + * @var boolean 是否禁止移动和删除控件 +
    默认false,不禁止移动和删除控件 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ForbidMoveAndDelete; + /** * @param string $ComponentType 如果是Component填写控件类型,则可选的字段为: TEXT - 普通文本控件,输入文本字符串; @@ -600,16 +671,19 @@ SIGN_OPINION - 签署意见控件,用户需要根据配置的签署意见内 SIGN_LEGAL_PERSON_SEAL - 企业法定代表人控件。 表单域的控件不能作为印章和签名控件 - * @param integer $FileIndex 控件所属文件的序号(取值为:0-N)。目前单文件的情况下,值是0 + * @param integer $FileIndex 控件所属文件的序号(取值为:0-N)。 +目前单文件的情况下,值是0 * @param float $ComponentHeight 参数控件高度,单位pt * @param float $ComponentWidth 参数控件宽度,单位pt * @param integer $ComponentPage 参数控件所在页码,取值为:1-N * @param float $ComponentPosX 参数控件X位置,单位pt * @param float $ComponentPosY 参数控件Y位置,单位pt - * @param string $ComponentId 查询时返回控件唯一Id。使用文件发起合同时用于GenerateMode==KEYWORD 指定关键字 - * @param string $ComponentName 查询时返回控件名。使用文件发起合同时用于GenerateMode==FIELD 指定表单域名称 - * @param boolean $ComponentRequired 是否必选,默认为false - * @param string $ComponentRecipientId 控件关联的签署人ID + * @param string $ComponentId 控件唯一ID。 +或使用文件发起合同时用于GenerateMode==KEYWORD 指定关键字 + * @param string $ComponentName 控件名。 +或使用文件发起合同时用于GenerateMode==FIELD 指定表单域名称 + * @param boolean $ComponentRequired 是否必选,默认为false-非必选 + * @param string $ComponentRecipientId 控件关联的参与方ID,对应Recipient结构体中的RecipientId * @param string $ComponentExtra 扩展参数: 为JSON格式。 @@ -639,7 +713,7 @@ ComponentType为SIGN_DATE时,支持以下参数: ComponentType为SIGN_SEAL类型时,支持以下参数: 1.PageRanges:PageRange的数组,通过PageRanges属性设置该印章在PDF所有页面上盖章(适用于标书在所有页面盖章的情况) 参数样例:"ComponentExtra":"{\"PageRanges\":[{\"BeginPage\":1,\"EndPage\":-1}]}" - * @param boolean $IsFormType 是否是表单域类型,默认不false-不是 + * @param boolean $IsFormType 是否是表单域类型,默认false-不是 注意:此字段可能返回 null,表示取不到有效值。 * @param string $ComponentValue 控件填充vaule,ComponentType和传入值类型对应关系: TEXT - 文本内容 @@ -721,17 +795,35 @@ SIGN_PAGING_SEAL - 可以指定印章ID,于控制台查询获取 FIELD 表单域,需使用ComponentName指定表单域名称 KEYWORD 关键字,使用ComponentId指定关键字 * @param integer $ComponentDateFontSize 日期签署控件的字号,默认为 12 - * @param string $ChannelComponentId 第三方应用集成平台模板控件 id 标识 + * @param string $ChannelComponentId 第三方应用集成平台模板控件 ID 标识 * @param float $OffsetX 指定关键字时横坐标偏移量,单位pt 注意:此字段可能返回 null,表示取不到有效值。 * @param float $OffsetY 指定关键字时纵坐标偏移量,单位pt 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $ChannelComponentSource 第三方应用集成中子客企业控件来源。0-平台指定;1-用户自定义 - * @param string $KeywordOrder 指定关键字排序规则,Positive-正序,Reverse-倒序。传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 + * @param integer $ChannelComponentSource 第三方应用集成中子客企业控件来源。 +0-平台指定; +1-用户自定义 + * @param string $KeywordOrder 指定关键字排序规则,Positive-正序,Reverse-倒序。 +传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 传入Reverse时会根据关键字在PDF文件内的反序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的最后一个关键字。 - * @param integer $KeywordPage 指定关键字页码,可选参数,指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 - * @param string $RelativeLocation 关键字位置模式,Middle-居中,Below-正下方,Right-正右方,LowerRight-右上角,UpperRight-右下角。示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 - * @param array $KeywordIndexes 关键字索引,可选参数,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。示例:[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @param integer $KeywordPage 指定关键字页码。 +指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 + * @param string $RelativeLocation 关键字位置模式, +Middle-居中, +Below-正下方, +Right-正右方, +LowerRight-右上角, +UpperRight-右下角。 +示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 + * @param array $KeywordIndexes 关键字索引。 +如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。 +示例:[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @param boolean $LockComponentValue 是否锁定控件值不允许编辑(嵌入式发起使用) +
    默认false:不锁定控件值,允许在页面编辑控件值 +注意:此字段可能返回 null,表示取不到有效值。 + * @param boolean $ForbidMoveAndDelete 是否禁止移动和删除控件 +
    默认false,不禁止移动和删除控件 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { @@ -841,5 +933,13 @@ KEYWORD 关键字,使用ComponentId指定关键字 if (array_key_exists("KeywordIndexes",$param) and $param["KeywordIndexes"] !== null) { $this->KeywordIndexes = $param["KeywordIndexes"]; } + + if (array_key_exists("LockComponentValue",$param) and $param["LockComponentValue"] !== null) { + $this->LockComponentValue = $param["LockComponentValue"]; + } + + if (array_key_exists("ForbidMoveAndDelete",$param) and $param["ForbidMoveAndDelete"] !== null) { + $this->ForbidMoveAndDelete = $param["ForbidMoveAndDelete"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateBatchCancelFlowUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateBatchCancelFlowUrlRequest.php index e2afa4b0a..3e745e732 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateBatchCancelFlowUrlRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateBatchCancelFlowUrlRequest.php @@ -22,8 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取调用方用户信息,userId 必填 * @method void setOperator(UserInfo $Operator) 设置调用方用户信息,userId 必填 - * @method array getFlowIds() 获取需要执行撤回的签署流程id数组,最多100个 - * @method void setFlowIds(array $FlowIds) 设置需要执行撤回的签署流程id数组,最多100个 + * @method array getFlowIds() 获取需要执行撤回的流程(合同)的编号列表,最多100个. +列表中的流程(合同)编号不要重复. + * @method void setFlowIds(array $FlowIds) 设置需要执行撤回的流程(合同)的编号列表,最多100个. +列表中的流程(合同)编号不要重复. * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 @@ -36,7 +38,8 @@ class CreateBatchCancelFlowUrlRequest extends AbstractModel public $Operator; /** - * @var array 需要执行撤回的签署流程id数组,最多100个 + * @var array 需要执行撤回的流程(合同)的编号列表,最多100个. +列表中的流程(合同)编号不要重复. */ public $FlowIds; @@ -48,7 +51,8 @@ class CreateBatchCancelFlowUrlRequest extends AbstractModel /** * @param UserInfo $Operator 调用方用户信息,userId 必填 - * @param array $FlowIds 需要执行撤回的签署流程id数组,最多100个 + * @param array $FlowIds 需要执行撤回的流程(合同)的编号列表,最多100个. +列表中的流程(合同)编号不要重复. * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateBatchCancelFlowUrlResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateBatchCancelFlowUrlResponse.php index 761b55cc8..ab24d8a09 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateBatchCancelFlowUrlResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateBatchCancelFlowUrlResponse.php @@ -23,9 +23,15 @@ use TencentCloud\Common\AbstractModel; * @method string getBatchCancelFlowUrl() 获取批量撤回签署流程链接 * @method void setBatchCancelFlowUrl(string $BatchCancelFlowUrl) 设置批量撤回签署流程链接 * @method array getFailMessages() 获取签署流程撤回失败信息 +数组里边的错误原因与传进来的FlowIds一一对应,如果是空字符串则标识没有出错 * @method void setFailMessages(array $FailMessages) 设置签署流程撤回失败信息 +数组里边的错误原因与传进来的FlowIds一一对应,如果是空字符串则标识没有出错 * @method string getUrlExpireOn() 获取签署连接过期时间字符串:年月日-时分秒 + +例如:2023-07-28 17:25:59 * @method void setUrlExpireOn(string $UrlExpireOn) 设置签署连接过期时间字符串:年月日-时分秒 + +例如:2023-07-28 17:25:59 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -38,11 +44,14 @@ class CreateBatchCancelFlowUrlResponse extends AbstractModel /** * @var array 签署流程撤回失败信息 +数组里边的错误原因与传进来的FlowIds一一对应,如果是空字符串则标识没有出错 */ public $FailMessages; /** * @var string 签署连接过期时间字符串:年月日-时分秒 + +例如:2023-07-28 17:25:59 */ public $UrlExpireOn; @@ -54,7 +63,10 @@ class CreateBatchCancelFlowUrlResponse extends AbstractModel /** * @param string $BatchCancelFlowUrl 批量撤回签署流程链接 * @param array $FailMessages 签署流程撤回失败信息 +数组里边的错误原因与传进来的FlowIds一一对应,如果是空字符串则标识没有出错 * @param string $UrlExpireOn 签署连接过期时间字符串:年月日-时分秒 + +例如:2023-07-28 17:25:59 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateEmbedWebUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateEmbedWebUrlRequest.php new file mode 100644 index 000000000..4678e1654 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateEmbedWebUrlRequest.php @@ -0,0 +1,169 @@ +CREATE_SEAL: 生成创建印章的嵌入页面 +
    CREATE_TEMPLATE:生成创建模板的嵌入页面 +
    MODIFY_TEMPLATE:生成编辑模板的嵌入页面 +
    PREVIEW_TEMPLATE:生成预览模板的嵌入页面 +
    PREVIEW_SEAL_LIST:生成预览印章列表的嵌入页面 +
    PREVIEW_SEAL_DETAIL:生成预览印章详情的嵌入页面 +
    EXTEND_SERVICE:生成拓展服务的嵌入页面 +
    PREVIEW_FLOW:生成预览合同的嵌入页面 +
    PREVIEW_FLOW_DETAIL:生成查看合同详情的嵌入页面 + + * @method void setEmbedType(string $EmbedType) 设置WEB嵌入资源类型。 +
    CREATE_SEAL: 生成创建印章的嵌入页面 +
    CREATE_TEMPLATE:生成创建模板的嵌入页面 +
    MODIFY_TEMPLATE:生成编辑模板的嵌入页面 +
    PREVIEW_TEMPLATE:生成预览模板的嵌入页面 +
    PREVIEW_SEAL_LIST:生成预览印章列表的嵌入页面 +
    PREVIEW_SEAL_DETAIL:生成预览印章详情的嵌入页面 +
    EXTEND_SERVICE:生成拓展服务的嵌入页面 +
    PREVIEW_FLOW:生成预览合同的嵌入页面 +
    PREVIEW_FLOW_DETAIL:生成查看合同详情的嵌入页面 + + * @method string getBusinessId() 获取WEB嵌入的业务资源ID +
    PREVIEW_SEAL_DETAIL,必填,取值为印章id +
    MODIFY_TEMPLATE,PREVIEW_TEMPLATE,必填,取值为模版id +
    PREVIEW_FLOW,PREVIEW_FLOW_DETAIL,必填,取值为合同id + * @method void setBusinessId(string $BusinessId) 设置WEB嵌入的业务资源ID +
    PREVIEW_SEAL_DETAIL,必填,取值为印章id +
    MODIFY_TEMPLATE,PREVIEW_TEMPLATE,必填,取值为模版id +
    PREVIEW_FLOW,PREVIEW_FLOW_DETAIL,必填,取值为合同id + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作 + * @method ReviewerInfo getReviewer() 获取抄送方信息 + * @method void setReviewer(ReviewerInfo $Reviewer) 设置抄送方信息 + * @method EmbedUrlOption getOption() 获取个性化参数 + * @method void setOption(EmbedUrlOption $Option) 设置个性化参数 + */ +class CreateEmbedWebUrlRequest extends AbstractModel +{ + /** + * @var UserInfo 操作者信息 + */ + public $Operator; + + /** + * @var string WEB嵌入资源类型。 +
    CREATE_SEAL: 生成创建印章的嵌入页面 +
    CREATE_TEMPLATE:生成创建模板的嵌入页面 +
    MODIFY_TEMPLATE:生成编辑模板的嵌入页面 +
    PREVIEW_TEMPLATE:生成预览模板的嵌入页面 +
    PREVIEW_SEAL_LIST:生成预览印章列表的嵌入页面 +
    PREVIEW_SEAL_DETAIL:生成预览印章详情的嵌入页面 +
    EXTEND_SERVICE:生成拓展服务的嵌入页面 +
    PREVIEW_FLOW:生成预览合同的嵌入页面 +
    PREVIEW_FLOW_DETAIL:生成查看合同详情的嵌入页面 + + */ + public $EmbedType; + + /** + * @var string WEB嵌入的业务资源ID +
    PREVIEW_SEAL_DETAIL,必填,取值为印章id +
    MODIFY_TEMPLATE,PREVIEW_TEMPLATE,必填,取值为模版id +
    PREVIEW_FLOW,PREVIEW_FLOW_DETAIL,必填,取值为合同id + */ + public $BusinessId; + + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作 + */ + public $Agent; + + /** + * @var ReviewerInfo 抄送方信息 + */ + public $Reviewer; + + /** + * @var EmbedUrlOption 个性化参数 + */ + public $Option; + + /** + * @param UserInfo $Operator 操作者信息 + * @param string $EmbedType WEB嵌入资源类型。 +
    CREATE_SEAL: 生成创建印章的嵌入页面 +
    CREATE_TEMPLATE:生成创建模板的嵌入页面 +
    MODIFY_TEMPLATE:生成编辑模板的嵌入页面 +
    PREVIEW_TEMPLATE:生成预览模板的嵌入页面 +
    PREVIEW_SEAL_LIST:生成预览印章列表的嵌入页面 +
    PREVIEW_SEAL_DETAIL:生成预览印章详情的嵌入页面 +
    EXTEND_SERVICE:生成拓展服务的嵌入页面 +
    PREVIEW_FLOW:生成预览合同的嵌入页面 +
    PREVIEW_FLOW_DETAIL:生成查看合同详情的嵌入页面 + + * @param string $BusinessId WEB嵌入的业务资源ID +
    PREVIEW_SEAL_DETAIL,必填,取值为印章id +
    MODIFY_TEMPLATE,PREVIEW_TEMPLATE,必填,取值为模版id +
    PREVIEW_FLOW,PREVIEW_FLOW_DETAIL,必填,取值为合同id + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作 + * @param ReviewerInfo $Reviewer 抄送方信息 + * @param EmbedUrlOption $Option 个性化参数 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("Operator",$param) and $param["Operator"] !== null) { + $this->Operator = new UserInfo(); + $this->Operator->deserialize($param["Operator"]); + } + + if (array_key_exists("EmbedType",$param) and $param["EmbedType"] !== null) { + $this->EmbedType = $param["EmbedType"]; + } + + if (array_key_exists("BusinessId",$param) and $param["BusinessId"] !== null) { + $this->BusinessId = $param["BusinessId"]; + } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } + + if (array_key_exists("Reviewer",$param) and $param["Reviewer"] !== null) { + $this->Reviewer = new ReviewerInfo(); + $this->Reviewer->deserialize($param["Reviewer"]); + } + + if (array_key_exists("Option",$param) and $param["Option"] !== null) { + $this->Option = new EmbedUrlOption(); + $this->Option->deserialize($param["Option"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateEmbedWebUrlResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateEmbedWebUrlResponse.php new file mode 100644 index 000000000..112971021 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateEmbedWebUrlResponse.php @@ -0,0 +1,69 @@ +WebUrl = $param["WebUrl"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowApproversRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowApproversRequest.php index f1f9f3bc5..eadffc26c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowApproversRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowApproversRequest.php @@ -28,6 +28,10 @@ use TencentCloud\Common\AbstractModel; * @method void setApprovers(array $Approvers) 设置补充签署人信息 * @method string getInitiator() 获取企微消息中的发起人 * @method void setInitiator(string $Initiator) 设置企微消息中的发起人 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作 + + + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作 */ class CreateFlowApproversRequest extends AbstractModel { @@ -51,11 +55,19 @@ class CreateFlowApproversRequest extends AbstractModel */ public $Initiator; + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作 + + + */ + public $Agent; + /** * @param UserInfo $Operator 调用方用户信息,userId 必填 * @param string $FlowId 签署流程编号 * @param array $Approvers 补充签署人信息 * @param string $Initiator 企微消息中的发起人 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作 */ function __construct() { @@ -91,5 +103,10 @@ class CreateFlowApproversRequest extends AbstractModel if (array_key_exists("Initiator",$param) and $param["Initiator"] !== null) { $this->Initiator = $param["Initiator"]; } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowOption.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowOption.php new file mode 100644 index 000000000..49860546f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowOption.php @@ -0,0 +1,247 @@ +true:允许编辑(默认),
    false:不允许编辑
    默认:false:不允许编辑 + * @method void setCanEditFlow(boolean $CanEditFlow) 设置是否允许修改发起合同时确认弹窗的合同信息(合同名称、合同类型、签署截止时间),若不允许编辑,则表单字段将被禁止输入。 +
    true:允许编辑(默认),
    false:不允许编辑
    默认:false:不允许编辑 + * @method boolean getCanEditFormField() 获取是否允许编辑模板控件 +
    true:允许编辑模板控件信息 +
    false:不允许编辑模板控件信息 +
    默认false:不允许编辑模板控件信息 + * @method void setCanEditFormField(boolean $CanEditFormField) 设置是否允许编辑模板控件 +
    true:允许编辑模板控件信息 +
    false:不允许编辑模板控件信息 +
    默认false:不允许编辑模板控件信息 + * @method boolean getHideShowFlowName() 获取发起页面隐藏合同名称展示 +
    true:发起页面隐藏合同名称展示 +
    false:发起页面不隐藏合同名称展示 +
    默认false:发起页面不隐藏合同名称展示 + * @method void setHideShowFlowName(boolean $HideShowFlowName) 设置发起页面隐藏合同名称展示 +
    true:发起页面隐藏合同名称展示 +
    false:发起页面不隐藏合同名称展示 +
    默认false:发起页面不隐藏合同名称展示 + * @method boolean getHideShowFlowType() 获取发起页面隐藏合同类型展示 +
    true:发起页面隐藏合同类型展示 +
    false:发起页面不隐藏合同类型展示 +
    默认false:发起页面不隐藏合同类型展示 + + * @method void setHideShowFlowType(boolean $HideShowFlowType) 设置发起页面隐藏合同类型展示 +
    true:发起页面隐藏合同类型展示 +
    false:发起页面不隐藏合同类型展示 +
    默认false:发起页面不隐藏合同类型展示 + + * @method boolean getHideShowDeadline() 获取发起页面隐藏合同截止日期展示 +
    true:发起页面隐藏合同截止日期展示 +
    false:发起页面不隐藏合同截止日期展示 +
    默认false:发起页面不隐藏合同截止日期展示 + * @method void setHideShowDeadline(boolean $HideShowDeadline) 设置发起页面隐藏合同截止日期展示 +
    true:发起页面隐藏合同截止日期展示 +
    false:发起页面不隐藏合同截止日期展示 +
    默认false:发起页面不隐藏合同截止日期展示 + * @method boolean getCanSkipAddApprover() 获取发起页面允许跳过添加签署人环节 +
    true:发起页面允许跳过添加签署人环节 +
    false:发起页面不允许跳过添加签署人环节 +
    默认false:发起页面不允许跳过添加签署人环节 + + * @method void setCanSkipAddApprover(boolean $CanSkipAddApprover) 设置发起页面允许跳过添加签署人环节 +
    true:发起页面允许跳过添加签署人环节 +
    false:发起页面不允许跳过添加签署人环节 +
    默认false:发起页面不允许跳过添加签署人环节 + + * @method boolean getSkipUploadFile() 获取文件发起页面跳过文件上传步骤 +
    true:文件发起页面跳过文件上传步骤 +
    false:文件发起页面不跳过文件上传步骤 +
    默认false:文件发起页面不跳过文件上传步骤 + * @method void setSkipUploadFile(boolean $SkipUploadFile) 设置文件发起页面跳过文件上传步骤 +
    true:文件发起页面跳过文件上传步骤 +
    false:文件发起页面不跳过文件上传步骤 +
    默认false:文件发起页面不跳过文件上传步骤 + * @method boolean getForbidEditFillComponent() 获取禁止编辑填写控件 +
    true:禁止编辑填写控件 +
    false:允许编辑填写控件 +
    默认false:允许编辑填写控件 + * @method void setForbidEditFillComponent(boolean $ForbidEditFillComponent) 设置禁止编辑填写控件 +
    true:禁止编辑填写控件 +
    false:允许编辑填写控件 +
    默认false:允许编辑填写控件 + * @method string getCustomCreateFlowDescription() 获取定制化发起合同弹窗的描述信息,描述信息最长500 + + * @method void setCustomCreateFlowDescription(string $CustomCreateFlowDescription) 设置定制化发起合同弹窗的描述信息,描述信息最长500 + */ +class CreateFlowOption extends AbstractModel +{ + /** + * @var boolean 是否允许修改发起合同时确认弹窗的合同信息(合同名称、合同类型、签署截止时间),若不允许编辑,则表单字段将被禁止输入。 +
    true:允许编辑(默认),
    false:不允许编辑
    默认:false:不允许编辑 + */ + public $CanEditFlow; + + /** + * @var boolean 是否允许编辑模板控件 +
    true:允许编辑模板控件信息 +
    false:不允许编辑模板控件信息 +
    默认false:不允许编辑模板控件信息 + */ + public $CanEditFormField; + + /** + * @var boolean 发起页面隐藏合同名称展示 +
    true:发起页面隐藏合同名称展示 +
    false:发起页面不隐藏合同名称展示 +
    默认false:发起页面不隐藏合同名称展示 + */ + public $HideShowFlowName; + + /** + * @var boolean 发起页面隐藏合同类型展示 +
    true:发起页面隐藏合同类型展示 +
    false:发起页面不隐藏合同类型展示 +
    默认false:发起页面不隐藏合同类型展示 + + */ + public $HideShowFlowType; + + /** + * @var boolean 发起页面隐藏合同截止日期展示 +
    true:发起页面隐藏合同截止日期展示 +
    false:发起页面不隐藏合同截止日期展示 +
    默认false:发起页面不隐藏合同截止日期展示 + */ + public $HideShowDeadline; + + /** + * @var boolean 发起页面允许跳过添加签署人环节 +
    true:发起页面允许跳过添加签署人环节 +
    false:发起页面不允许跳过添加签署人环节 +
    默认false:发起页面不允许跳过添加签署人环节 + + */ + public $CanSkipAddApprover; + + /** + * @var boolean 文件发起页面跳过文件上传步骤 +
    true:文件发起页面跳过文件上传步骤 +
    false:文件发起页面不跳过文件上传步骤 +
    默认false:文件发起页面不跳过文件上传步骤 + */ + public $SkipUploadFile; + + /** + * @var boolean 禁止编辑填写控件 +
    true:禁止编辑填写控件 +
    false:允许编辑填写控件 +
    默认false:允许编辑填写控件 + */ + public $ForbidEditFillComponent; + + /** + * @var string 定制化发起合同弹窗的描述信息,描述信息最长500 + + */ + public $CustomCreateFlowDescription; + + /** + * @param boolean $CanEditFlow 是否允许修改发起合同时确认弹窗的合同信息(合同名称、合同类型、签署截止时间),若不允许编辑,则表单字段将被禁止输入。 +
    true:允许编辑(默认),
    false:不允许编辑
    默认:false:不允许编辑 + * @param boolean $CanEditFormField 是否允许编辑模板控件 +
    true:允许编辑模板控件信息 +
    false:不允许编辑模板控件信息 +
    默认false:不允许编辑模板控件信息 + * @param boolean $HideShowFlowName 发起页面隐藏合同名称展示 +
    true:发起页面隐藏合同名称展示 +
    false:发起页面不隐藏合同名称展示 +
    默认false:发起页面不隐藏合同名称展示 + * @param boolean $HideShowFlowType 发起页面隐藏合同类型展示 +
    true:发起页面隐藏合同类型展示 +
    false:发起页面不隐藏合同类型展示 +
    默认false:发起页面不隐藏合同类型展示 + + * @param boolean $HideShowDeadline 发起页面隐藏合同截止日期展示 +
    true:发起页面隐藏合同截止日期展示 +
    false:发起页面不隐藏合同截止日期展示 +
    默认false:发起页面不隐藏合同截止日期展示 + * @param boolean $CanSkipAddApprover 发起页面允许跳过添加签署人环节 +
    true:发起页面允许跳过添加签署人环节 +
    false:发起页面不允许跳过添加签署人环节 +
    默认false:发起页面不允许跳过添加签署人环节 + + * @param boolean $SkipUploadFile 文件发起页面跳过文件上传步骤 +
    true:文件发起页面跳过文件上传步骤 +
    false:文件发起页面不跳过文件上传步骤 +
    默认false:文件发起页面不跳过文件上传步骤 + * @param boolean $ForbidEditFillComponent 禁止编辑填写控件 +
    true:禁止编辑填写控件 +
    false:允许编辑填写控件 +
    默认false:允许编辑填写控件 + * @param string $CustomCreateFlowDescription 定制化发起合同弹窗的描述信息,描述信息最长500 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("CanEditFlow",$param) and $param["CanEditFlow"] !== null) { + $this->CanEditFlow = $param["CanEditFlow"]; + } + + if (array_key_exists("CanEditFormField",$param) and $param["CanEditFormField"] !== null) { + $this->CanEditFormField = $param["CanEditFormField"]; + } + + if (array_key_exists("HideShowFlowName",$param) and $param["HideShowFlowName"] !== null) { + $this->HideShowFlowName = $param["HideShowFlowName"]; + } + + if (array_key_exists("HideShowFlowType",$param) and $param["HideShowFlowType"] !== null) { + $this->HideShowFlowType = $param["HideShowFlowType"]; + } + + if (array_key_exists("HideShowDeadline",$param) and $param["HideShowDeadline"] !== null) { + $this->HideShowDeadline = $param["HideShowDeadline"]; + } + + if (array_key_exists("CanSkipAddApprover",$param) and $param["CanSkipAddApprover"] !== null) { + $this->CanSkipAddApprover = $param["CanSkipAddApprover"]; + } + + if (array_key_exists("SkipUploadFile",$param) and $param["SkipUploadFile"] !== null) { + $this->SkipUploadFile = $param["SkipUploadFile"]; + } + + if (array_key_exists("ForbidEditFillComponent",$param) and $param["ForbidEditFillComponent"] !== null) { + $this->ForbidEditFillComponent = $param["ForbidEditFillComponent"]; + } + + if (array_key_exists("CustomCreateFlowDescription",$param) and $param["CustomCreateFlowDescription"] !== null) { + $this->CustomCreateFlowDescription = $param["CustomCreateFlowDescription"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowRequest.php index 6762bbaa1..6ab028847 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowRequest.php @@ -25,7 +25,9 @@ use TencentCloud\Common\AbstractModel; * @method string getFlowName() 获取签署流程名称,最大长度200个字符 * @method void setFlowName(string $FlowName) 设置签署流程名称,最大长度200个字符 * @method array getApprovers() 获取签署流程参与者信息,最大限制50方 +注意 approver中的顺序需要和模板中的顺序保持一致, 否则会导致模板中配置的信息无效。 * @method void setApprovers(array $Approvers) 设置签署流程参与者信息,最大限制50方 +注意 approver中的顺序需要和模板中的顺序保持一致, 否则会导致模板中配置的信息无效。 * @method string getFlowType() 获取签署流程的类型(如销售合同/入职合同等),最大长度200个字符 * @method void setFlowType(string $FlowType) 设置签署流程的类型(如销售合同/入职合同等),最大长度200个字符 * @method string getClientToken() 获取客户端Token,保持接口幂等性,最大长度64个字符 @@ -85,6 +87,7 @@ class CreateFlowRequest extends AbstractModel /** * @var array 签署流程参与者信息,最大限制50方 +注意 approver中的顺序需要和模板中的顺序保持一致, 否则会导致模板中配置的信息无效。 */ public $Approvers; @@ -172,6 +175,7 @@ false:有序签 * @param UserInfo $Operator 调用方用户信息,userId 必填。支持填入集团子公司经办人 userId代发合同。 * @param string $FlowName 签署流程名称,最大长度200个字符 * @param array $Approvers 签署流程参与者信息,最大限制50方 +注意 approver中的顺序需要和模板中的顺序保持一致, 否则会导致模板中配置的信息无效。 * @param string $FlowType 签署流程的类型(如销售合同/入职合同等),最大长度200个字符 * @param string $ClientToken 客户端Token,保持接口幂等性,最大长度64个字符 * @param integer $DeadLine 签署流程的签署截止时间。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowSignReviewRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowSignReviewRequest.php index 9b11962ce..a96abbfaa 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowSignReviewRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowSignReviewRequest.php @@ -46,7 +46,7 @@ CreateReview:发起审核 默认:SignReview;SignReview:签署审核 该字段不传或者为空,则默认为SignReview签署审核,走签署审核流程 -若发起个人审核,则指定该字段为:SignReview(注意,给个人审核时,需联系客户经理开白使用) +若发起个人审核,则指定该字段为:SignReview * @method void setOperateType(string $OperateType) 设置操作类型:(接口通过该字段区分操作类型) SignReview:签署审核 @@ -55,7 +55,7 @@ CreateReview:发起审核 默认:SignReview;SignReview:签署审核 该字段不传或者为空,则默认为SignReview签署审核,走签署审核流程 -若发起个人审核,则指定该字段为:SignReview(注意,给个人审核时,需联系客户经理开白使用) +若发起个人审核,则指定该字段为:SignReview */ class CreateFlowSignReviewRequest extends AbstractModel { @@ -101,7 +101,7 @@ CreateReview:发起审核 默认:SignReview;SignReview:签署审核 该字段不传或者为空,则默认为SignReview签署审核,走签署审核流程 -若发起个人审核,则指定该字段为:SignReview(注意,给个人审核时,需联系客户经理开白使用) +若发起个人审核,则指定该字段为:SignReview */ public $OperateType; @@ -123,7 +123,7 @@ CreateReview:发起审核 默认:SignReview;SignReview:签署审核 该字段不传或者为空,则默认为SignReview签署审核,走签署审核流程 -若发起个人审核,则指定该字段为:SignReview(注意,给个人审核时,需联系客户经理开白使用) +若发起个人审核,则指定该字段为:SignReview */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowSignUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowSignUrlRequest.php index da769f576..983b4410e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowSignUrlRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateFlowSignUrlRequest.php @@ -22,8 +22,12 @@ use TencentCloud\Common\AbstractModel; * * @method string getFlowId() 获取流程编号 * @method void setFlowId(string $FlowId) 设置流程编号 - * @method array getFlowApproverInfos() 获取流程签署人,其中ApproverName,ApproverMobile和ApproverType必传,其他可不传,ApproverType目前只支持个人类型的签署人。还需注意签署人只能有手写签名和时间类型的签署控件,其他类型的填写控件和签署控件暂时都未支持。 - * @method void setFlowApproverInfos(array $FlowApproverInfos) 设置流程签署人,其中ApproverName,ApproverMobile和ApproverType必传,其他可不传,ApproverType目前只支持个人类型的签署人。还需注意签署人只能有手写签名和时间类型的签署控件,其他类型的填写控件和签署控件暂时都未支持。 + * @method array getFlowApproverInfos() 获取流程签署人列表,其中结构体的ApproverName,ApproverMobile和ApproverType必传,其他可不传,ApproverType目前只支持个人类型的签署人。 + +签署人只能有手写签名和时间类型的签署控件,其他类型的填写控件和签署控件暂时都未支持。 + * @method void setFlowApproverInfos(array $FlowApproverInfos) 设置流程签署人列表,其中结构体的ApproverName,ApproverMobile和ApproverType必传,其他可不传,ApproverType目前只支持个人类型的签署人。 + +签署人只能有手写签名和时间类型的签署控件,其他类型的填写控件和签署控件暂时都未支持。 * @method UserInfo getOperator() 获取用户信息,此结构体UserId必填 * @method void setOperator(UserInfo $Operator) 设置用户信息,此结构体UserId必填 * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 @@ -41,7 +45,9 @@ class CreateFlowSignUrlRequest extends AbstractModel public $FlowId; /** - * @var array 流程签署人,其中ApproverName,ApproverMobile和ApproverType必传,其他可不传,ApproverType目前只支持个人类型的签署人。还需注意签署人只能有手写签名和时间类型的签署控件,其他类型的填写控件和签署控件暂时都未支持。 + * @var array 流程签署人列表,其中结构体的ApproverName,ApproverMobile和ApproverType必传,其他可不传,ApproverType目前只支持个人类型的签署人。 + +签署人只能有手写签名和时间类型的签署控件,其他类型的填写控件和签署控件暂时都未支持。 */ public $FlowApproverInfos; @@ -68,7 +74,9 @@ class CreateFlowSignUrlRequest extends AbstractModel /** * @param string $FlowId 流程编号 - * @param array $FlowApproverInfos 流程签署人,其中ApproverName,ApproverMobile和ApproverType必传,其他可不传,ApproverType目前只支持个人类型的签署人。还需注意签署人只能有手写签名和时间类型的签署控件,其他类型的填写控件和签署控件暂时都未支持。 + * @param array $FlowApproverInfos 流程签署人列表,其中结构体的ApproverName,ApproverMobile和ApproverType必传,其他可不传,ApproverType目前只支持个人类型的签署人。 + +签署人只能有手写签名和时间类型的签署控件,其他类型的填写控件和签署控件暂时都未支持。 * @param UserInfo $Operator 用户信息,此结构体UserId必填 * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @param OrganizationInfo $Organization 机构信息,暂未开放 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateIntegrationUserRolesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateIntegrationUserRolesRequest.php index b50d0ba5d..6860895e5 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateIntegrationUserRolesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateIntegrationUserRolesRequest.php @@ -22,10 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取操作人信息,UserId必填 * @method void setOperator(UserInfo $Operator) 设置操作人信息,UserId必填 - * @method array getUserIds() 获取绑定角色的用户id列表 - * @method void setUserIds(array $UserIds) 设置绑定角色的用户id列表 - * @method array getRoleIds() 获取绑定角色的角色id列表 - * @method void setRoleIds(array $RoleIds) 设置绑定角色的角色id列表 + * @method array getUserIds() 获取绑定角色的用户id列表,不能重复,不能大于 100 个 + * @method void setUserIds(array $UserIds) 设置绑定角色的用户id列表,不能重复,不能大于 100 个 + * @method array getRoleIds() 获取绑定角色的角色id列表,不能重复,不能大于 100,可以通过DescribeIntegrationRoles接口获取 + * @method void setRoleIds(array $RoleIds) 设置绑定角色的角色id列表,不能重复,不能大于 100,可以通过DescribeIntegrationRoles接口获取 * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ @@ -37,12 +37,12 @@ class CreateIntegrationUserRolesRequest extends AbstractModel public $Operator; /** - * @var array 绑定角色的用户id列表 + * @var array 绑定角色的用户id列表,不能重复,不能大于 100 个 */ public $UserIds; /** - * @var array 绑定角色的角色id列表 + * @var array 绑定角色的角色id列表,不能重复,不能大于 100,可以通过DescribeIntegrationRoles接口获取 */ public $RoleIds; @@ -53,8 +53,8 @@ class CreateIntegrationUserRolesRequest extends AbstractModel /** * @param UserInfo $Operator 操作人信息,UserId必填 - * @param array $UserIds 绑定角色的用户id列表 - * @param array $RoleIds 绑定角色的角色id列表 + * @param array $UserIds 绑定角色的用户id列表,不能重复,不能大于 100 个 + * @param array $RoleIds 绑定角色的角色id列表,不能重复,不能大于 100,可以通过DescribeIntegrationRoles接口获取 * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateMultiFlowSignQRCodeRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateMultiFlowSignQRCodeRequest.php index d54c56885..2e31b3d69 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateMultiFlowSignQRCodeRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateMultiFlowSignQRCodeRequest.php @@ -27,23 +27,29 @@ use TencentCloud\Common\AbstractModel; * @method string getFlowName() 获取签署流程名称,最大长度不超过200字符 * @method void setFlowName(string $FlowName) 设置签署流程名称,最大长度不超过200字符 * @method integer getMaxFlowNum() 获取最大可发起签署流程份数,默认5份 -发起流程数量超过此上限后二维码自动失效 +
    发起流程数量超过此上限后二维码自动失效 * @method void setMaxFlowNum(integer $MaxFlowNum) 设置最大可发起签署流程份数,默认5份 -发起流程数量超过此上限后二维码自动失效 - * @method integer getFlowEffectiveDay() 获取签署流程有效天数 默认7天 最高设置不超过30天 - * @method void setFlowEffectiveDay(integer $FlowEffectiveDay) 设置签署流程有效天数 默认7天 最高设置不超过30天 +
    发起流程数量超过此上限后二维码自动失效 + * @method integer getFlowEffectiveDay() 获取签署流程有效天数 +
    默认7天 +
    最高设置不超过30天 + * @method void setFlowEffectiveDay(integer $FlowEffectiveDay) 设置签署流程有效天数 +
    默认7天 +
    最高设置不超过30天 * @method integer getQrEffectiveDay() 获取二维码有效天数 默认7天 最高设置不超过90天 * @method void setQrEffectiveDay(integer $QrEffectiveDay) 设置二维码有效天数 默认7天 最高设置不超过90天 - * @method array getRestrictions() 获取限制二维码用户条件 - * @method void setRestrictions(array $Restrictions) 设置限制二维码用户条件 - * @method string getUserData() 获取用户自定义字段,回调的时候会进行透传,长度需要小于20480 - * @method void setUserData(string $UserData) 设置用户自定义字段,回调的时候会进行透传,长度需要小于20480 + * @method array getRestrictions() 获取指定的签署人信息 +
    指定后,则只允许指定的签署人扫码签署 + * @method void setRestrictions(array $Restrictions) 设置指定的签署人信息 +
    指定后,则只允许指定的签署人扫码签署 + * @method string getUserData() 获取用户自定义字段 +
    回调的时候会进行透传,长度需要小于20480 + * @method void setUserData(string $UserData) 设置用户自定义字段 +
    回调的时候会进行透传,长度需要小于20480 * @method string getCallbackUrl() 获取回调地址,最大长度1000字符串 -回调时机: -用户通过签署二维码发起签署流程时,企业额度不足导致失败 +
    回调时机:用户通过签署二维码发起签署流程时,企业额度不足导致失败 * @method void setCallbackUrl(string $CallbackUrl) 设置回调地址,最大长度1000字符串 -回调时机: -用户通过签署二维码发起签署流程时,企业额度不足导致失败 +
    回调时机:用户通过签署二维码发起签署流程时,企业额度不足导致失败 * @method Agent getAgent() 获取应用信息 * @method void setAgent(Agent $Agent) 设置应用信息 * @method ApproverRestriction getApproverRestrictions() 获取限制二维码用户条件(已弃用) @@ -68,12 +74,14 @@ class CreateMultiFlowSignQRCodeRequest extends AbstractModel /** * @var integer 最大可发起签署流程份数,默认5份 -发起流程数量超过此上限后二维码自动失效 +
    发起流程数量超过此上限后二维码自动失效 */ public $MaxFlowNum; /** - * @var integer 签署流程有效天数 默认7天 最高设置不超过30天 + * @var integer 签署流程有效天数 +
    默认7天 +
    最高设置不超过30天 */ public $FlowEffectiveDay; @@ -83,19 +91,20 @@ class CreateMultiFlowSignQRCodeRequest extends AbstractModel public $QrEffectiveDay; /** - * @var array 限制二维码用户条件 + * @var array 指定的签署人信息 +
    指定后,则只允许指定的签署人扫码签署 */ public $Restrictions; /** - * @var string 用户自定义字段,回调的时候会进行透传,长度需要小于20480 + * @var string 用户自定义字段 +
    回调的时候会进行透传,长度需要小于20480 */ public $UserData; /** * @var string 回调地址,最大长度1000字符串 -回调时机: -用户通过签署二维码发起签署流程时,企业额度不足导致失败 +
    回调时机:用户通过签署二维码发起签署流程时,企业额度不足导致失败 */ public $CallbackUrl; @@ -116,14 +125,17 @@ class CreateMultiFlowSignQRCodeRequest extends AbstractModel * @param string $TemplateId 模板ID * @param string $FlowName 签署流程名称,最大长度不超过200字符 * @param integer $MaxFlowNum 最大可发起签署流程份数,默认5份 -发起流程数量超过此上限后二维码自动失效 - * @param integer $FlowEffectiveDay 签署流程有效天数 默认7天 最高设置不超过30天 +
    发起流程数量超过此上限后二维码自动失效 + * @param integer $FlowEffectiveDay 签署流程有效天数 +
    默认7天 +
    最高设置不超过30天 * @param integer $QrEffectiveDay 二维码有效天数 默认7天 最高设置不超过90天 - * @param array $Restrictions 限制二维码用户条件 - * @param string $UserData 用户自定义字段,回调的时候会进行透传,长度需要小于20480 + * @param array $Restrictions 指定的签署人信息 +
    指定后,则只允许指定的签署人扫码签署 + * @param string $UserData 用户自定义字段 +
    回调的时候会进行透传,长度需要小于20480 * @param string $CallbackUrl 回调地址,最大长度1000字符串 -回调时机: -用户通过签署二维码发起签署流程时,企业额度不足导致失败 +
    回调时机:用户通过签署二维码发起签署流程时,企业额度不足导致失败 * @param Agent $Agent 应用信息 * @param ApproverRestriction $ApproverRestrictions 限制二维码用户条件(已弃用) */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateOrganizationBatchSignUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateOrganizationBatchSignUrlRequest.php new file mode 100644 index 000000000..6f9abca57 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateOrganizationBatchSignUrlRequest.php @@ -0,0 +1,115 @@ +Operator = new UserInfo(); + $this->Operator->deserialize($param["Operator"]); + } + + if (array_key_exists("FlowIds",$param) and $param["FlowIds"] !== null) { + $this->FlowIds = $param["FlowIds"]; + } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } + + if (array_key_exists("UserId",$param) and $param["UserId"] !== null) { + $this->UserId = $param["UserId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Mobile",$param) and $param["Mobile"] !== null) { + $this->Mobile = $param["Mobile"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ChatBotResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateOrganizationBatchSignUrlResponse.php similarity index 64% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ChatBotResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateOrganizationBatchSignUrlResponse.php index 3e74f3363..f445506f4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ChatBotResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateOrganizationBatchSignUrlResponse.php @@ -14,30 +14,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Ess\V20201111\Models; use TencentCloud\Common\AbstractModel; /** - * ChatBot返回参数结构体 + * CreateOrganizationBatchSignUrl返回参数结构体 * - * @method string getReply() 获取闲聊回复 - * @method void setReply(string $Reply) 设置闲聊回复 - * @method float getConfidence() 获取对于当前输出回复的自信度 - * @method void setConfidence(float $Confidence) 设置对于当前输出回复的自信度 + * @method string getSignUrl() 获取批量签署入口链接 + * @method void setSignUrl(string $SignUrl) 设置批量签署入口链接 + * @method integer getExpiredTime() 获取链接过期时间戳 + * @method void setExpiredTime(integer $ExpiredTime) 设置链接过期时间戳 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class ChatBotResponse extends AbstractModel +class CreateOrganizationBatchSignUrlResponse extends AbstractModel { /** - * @var string 闲聊回复 + * @var string 批量签署入口链接 */ - public $Reply; + public $SignUrl; /** - * @var float 对于当前输出回复的自信度 + * @var integer 链接过期时间戳 */ - public $Confidence; + public $ExpiredTime; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -45,8 +45,8 @@ class ChatBotResponse extends AbstractModel public $RequestId; /** - * @param string $Reply 闲聊回复 - * @param float $Confidence 对于当前输出回复的自信度 + * @param string $SignUrl 批量签署入口链接 + * @param integer $ExpiredTime 链接过期时间戳 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -62,12 +62,12 @@ class ChatBotResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Reply",$param) and $param["Reply"] !== null) { - $this->Reply = $param["Reply"]; + if (array_key_exists("SignUrl",$param) and $param["SignUrl"] !== null) { + $this->SignUrl = $param["SignUrl"]; } - if (array_key_exists("Confidence",$param) and $param["Confidence"] !== null) { - $this->Confidence = $param["Confidence"]; + if (array_key_exists("ExpiredTime",$param) and $param["ExpiredTime"] !== null) { + $this->ExpiredTime = $param["ExpiredTime"]; } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePersonAuthCertificateImageRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePersonAuthCertificateImageRequest.php new file mode 100644 index 000000000..65452365d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePersonAuthCertificateImageRequest.php @@ -0,0 +1,110 @@ +Operator = new UserInfo(); + $this->Operator->deserialize($param["Operator"]); + } + + if (array_key_exists("UserName",$param) and $param["UserName"] !== null) { + $this->UserName = $param["UserName"]; + } + + if (array_key_exists("IdCardType",$param) and $param["IdCardType"] !== null) { + $this->IdCardType = $param["IdCardType"]; + } + + if (array_key_exists("IdCardNumber",$param) and $param["IdCardNumber"] !== null) { + $this->IdCardNumber = $param["IdCardNumber"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePersonAuthCertificateImageResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePersonAuthCertificateImageResponse.php new file mode 100644 index 000000000..42187fc31 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePersonAuthCertificateImageResponse.php @@ -0,0 +1,65 @@ +AuthCertUrl = $param["AuthCertUrl"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePrepareFlowRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePrepareFlowRequest.php index 8f2625b68..6b02f77c4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePrepareFlowRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePrepareFlowRequest.php @@ -26,18 +26,78 @@ use TencentCloud\Common\AbstractModel; * @method void setResourceId(string $ResourceId) 设置资源Id,通过多文件上传(UploadFiles)接口获得 * @method string getFlowName() 获取合同名称 * @method void setFlowName(string $FlowName) 设置合同名称 - * @method boolean getUnordered() 获取是否顺序签署(true:无序签,false:顺序签) - * @method void setUnordered(boolean $Unordered) 设置是否顺序签署(true:无序签,false:顺序签) + * @method boolean getUnordered() 获取是否顺序签署 +true:无序签 +false:顺序签 + * @method void setUnordered(boolean $Unordered) 设置是否顺序签署 +true:无序签 +false:顺序签 * @method integer getDeadline() 获取签署流程的签署截止时间。 -值为unix时间戳,精确到秒,不传默认为当前时间一年后 +值为unix时间戳,精确到秒 +不传默认为当前时间一年后 * @method void setDeadline(integer $Deadline) 设置签署流程的签署截止时间。 -值为unix时间戳,精确到秒,不传默认为当前时间一年后 - * @method string getUserFlowTypeId() 获取用户自定义合同类型 - * @method void setUserFlowTypeId(string $UserFlowTypeId) 设置用户自定义合同类型 +值为unix时间戳,精确到秒 +不传默认为当前时间一年后 + * @method string getUserFlowTypeId() 获取用户自定义合同类型Id +该id为电子签企业内的合同类型id + * @method void setUserFlowTypeId(string $UserFlowTypeId) 设置用户自定义合同类型Id +该id为电子签企业内的合同类型id * @method array getApprovers() 获取签署流程参与者信息,最大限制50方 * @method void setApprovers(array $Approvers) 设置签署流程参与者信息,最大限制50方 - * @method string getIntelligentStatus() 获取打开智能添加填写区(默认开启,打开:"OPEN" 关闭:"CLOSE") - * @method void setIntelligentStatus(string $IntelligentStatus) 设置打开智能添加填写区(默认开启,打开:"OPEN" 关闭:"CLOSE") + * @method string getIntelligentStatus() 获取打开智能添加填写区 +(默认开启,打开:"OPEN" + 关闭:"CLOSE" + * @method void setIntelligentStatus(string $IntelligentStatus) 设置打开智能添加填写区 +(默认开启,打开:"OPEN" + 关闭:"CLOSE" + * @method integer getResourceType() 获取资源类型, +1:文件, +2:模板 +不传默认为1:文件 +目前仅支持文件 + * @method void setResourceType(integer $ResourceType) 设置资源类型, +1:文件, +2:模板 +不传默认为1:文件 +目前仅支持文件 + * @method Component getComponents() 获取发起方填写控件 +该类型控件由发起方完成填写 + * @method void setComponents(Component $Components) 设置发起方填写控件 +该类型控件由发起方完成填写 + * @method CreateFlowOption getFlowOption() 获取发起合同个性化参数 +用于满足创建及页面操作过程中的个性化要求 +具体定制化内容详见数据接口说明 + * @method void setFlowOption(CreateFlowOption $FlowOption) 设置发起合同个性化参数 +用于满足创建及页面操作过程中的个性化要求 +具体定制化内容详见数据接口说明 + * @method boolean getNeedSignReview() 获取是否开启发起方签署审核 +true:开启发起方签署审核 +false:不开启发起方签署审核 +默认false:不开启发起方签署审核 + * @method void setNeedSignReview(boolean $NeedSignReview) 设置是否开启发起方签署审核 +true:开启发起方签署审核 +false:不开启发起方签署审核 +默认false:不开启发起方签署审核 + * @method boolean getNeedCreateReview() 获取开启发起方发起合同审核 +true:开启发起方发起合同审核 +false:不开启发起方发起合同审核 +默认false:不开启发起方发起合同审核 + * @method void setNeedCreateReview(boolean $NeedCreateReview) 设置开启发起方发起合同审核 +true:开启发起方发起合同审核 +false:不开启发起方发起合同审核 +默认false:不开启发起方发起合同审核 + * @method string getUserData() 获取用户自定义参数 + * @method void setUserData(string $UserData) 设置用户自定义参数 + * @method string getFlowId() 获取合同id,用于通过已web页面发起的合同id快速生成一个web发起合同链接 + * @method void setFlowId(string $FlowId) 设置合同id,用于通过已web页面发起的合同id快速生成一个web发起合同链接 + * @method string getFlowType() 获取合同类型名称 +该字段用于客户自定义合同类型 +建议使用时指定合同类型,便于之后合同分类以及查看 + * @method void setFlowType(string $FlowType) 设置合同类型名称 +该字段用于客户自定义合同类型 +建议使用时指定合同类型,便于之后合同分类以及查看 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class CreatePrepareFlowRequest extends AbstractModel { @@ -57,18 +117,22 @@ class CreatePrepareFlowRequest extends AbstractModel public $FlowName; /** - * @var boolean 是否顺序签署(true:无序签,false:顺序签) + * @var boolean 是否顺序签署 +true:无序签 +false:顺序签 */ public $Unordered; /** * @var integer 签署流程的签署截止时间。 -值为unix时间戳,精确到秒,不传默认为当前时间一年后 +值为unix时间戳,精确到秒 +不传默认为当前时间一年后 */ public $Deadline; /** - * @var string 用户自定义合同类型 + * @var string 用户自定义合同类型Id +该id为电子签企业内的合同类型id */ public $UserFlowTypeId; @@ -78,20 +142,112 @@ class CreatePrepareFlowRequest extends AbstractModel public $Approvers; /** - * @var string 打开智能添加填写区(默认开启,打开:"OPEN" 关闭:"CLOSE") + * @var string 打开智能添加填写区 +(默认开启,打开:"OPEN" + 关闭:"CLOSE" */ public $IntelligentStatus; + /** + * @var integer 资源类型, +1:文件, +2:模板 +不传默认为1:文件 +目前仅支持文件 + */ + public $ResourceType; + + /** + * @var Component 发起方填写控件 +该类型控件由发起方完成填写 + */ + public $Components; + + /** + * @var CreateFlowOption 发起合同个性化参数 +用于满足创建及页面操作过程中的个性化要求 +具体定制化内容详见数据接口说明 + */ + public $FlowOption; + + /** + * @var boolean 是否开启发起方签署审核 +true:开启发起方签署审核 +false:不开启发起方签署审核 +默认false:不开启发起方签署审核 + */ + public $NeedSignReview; + + /** + * @var boolean 开启发起方发起合同审核 +true:开启发起方发起合同审核 +false:不开启发起方发起合同审核 +默认false:不开启发起方发起合同审核 + */ + public $NeedCreateReview; + + /** + * @var string 用户自定义参数 + */ + public $UserData; + + /** + * @var string 合同id,用于通过已web页面发起的合同id快速生成一个web发起合同链接 + */ + public $FlowId; + + /** + * @var string 合同类型名称 +该字段用于客户自定义合同类型 +建议使用时指定合同类型,便于之后合同分类以及查看 + */ + public $FlowType; + + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param UserInfo $Operator 调用方用户信息,userId 必填 * @param string $ResourceId 资源Id,通过多文件上传(UploadFiles)接口获得 * @param string $FlowName 合同名称 - * @param boolean $Unordered 是否顺序签署(true:无序签,false:顺序签) + * @param boolean $Unordered 是否顺序签署 +true:无序签 +false:顺序签 * @param integer $Deadline 签署流程的签署截止时间。 -值为unix时间戳,精确到秒,不传默认为当前时间一年后 - * @param string $UserFlowTypeId 用户自定义合同类型 +值为unix时间戳,精确到秒 +不传默认为当前时间一年后 + * @param string $UserFlowTypeId 用户自定义合同类型Id +该id为电子签企业内的合同类型id * @param array $Approvers 签署流程参与者信息,最大限制50方 - * @param string $IntelligentStatus 打开智能添加填写区(默认开启,打开:"OPEN" 关闭:"CLOSE") + * @param string $IntelligentStatus 打开智能添加填写区 +(默认开启,打开:"OPEN" + 关闭:"CLOSE" + * @param integer $ResourceType 资源类型, +1:文件, +2:模板 +不传默认为1:文件 +目前仅支持文件 + * @param Component $Components 发起方填写控件 +该类型控件由发起方完成填写 + * @param CreateFlowOption $FlowOption 发起合同个性化参数 +用于满足创建及页面操作过程中的个性化要求 +具体定制化内容详见数据接口说明 + * @param boolean $NeedSignReview 是否开启发起方签署审核 +true:开启发起方签署审核 +false:不开启发起方签署审核 +默认false:不开启发起方签署审核 + * @param boolean $NeedCreateReview 开启发起方发起合同审核 +true:开启发起方发起合同审核 +false:不开启发起方发起合同审核 +默认false:不开启发起方发起合同审核 + * @param string $UserData 用户自定义参数 + * @param string $FlowId 合同id,用于通过已web页面发起的合同id快速生成一个web发起合同链接 + * @param string $FlowType 合同类型名称 +该字段用于客户自定义合同类型 +建议使用时指定合同类型,便于之后合同分类以及查看 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -143,5 +299,44 @@ class CreatePrepareFlowRequest extends AbstractModel if (array_key_exists("IntelligentStatus",$param) and $param["IntelligentStatus"] !== null) { $this->IntelligentStatus = $param["IntelligentStatus"]; } + + if (array_key_exists("ResourceType",$param) and $param["ResourceType"] !== null) { + $this->ResourceType = $param["ResourceType"]; + } + + if (array_key_exists("Components",$param) and $param["Components"] !== null) { + $this->Components = new Component(); + $this->Components->deserialize($param["Components"]); + } + + if (array_key_exists("FlowOption",$param) and $param["FlowOption"] !== null) { + $this->FlowOption = new CreateFlowOption(); + $this->FlowOption->deserialize($param["FlowOption"]); + } + + if (array_key_exists("NeedSignReview",$param) and $param["NeedSignReview"] !== null) { + $this->NeedSignReview = $param["NeedSignReview"]; + } + + if (array_key_exists("NeedCreateReview",$param) and $param["NeedCreateReview"] !== null) { + $this->NeedCreateReview = $param["NeedCreateReview"]; + } + + if (array_key_exists("UserData",$param) and $param["UserData"] !== null) { + $this->UserData = $param["UserData"]; + } + + if (array_key_exists("FlowId",$param) and $param["FlowId"] !== null) { + $this->FlowId = $param["FlowId"]; + } + + if (array_key_exists("FlowType",$param) and $param["FlowType"] !== null) { + $this->FlowType = $param["FlowType"]; + } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePreparedPersonalEsignRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePreparedPersonalEsignRequest.php index 201cd0622..507e6c7b2 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePreparedPersonalEsignRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreatePreparedPersonalEsignRequest.php @@ -78,6 +78,8 @@ true:做透明化处理和颜色增强。 * @method void setFileId(string $FileId) 设置印章图片文件 id 取值: 填写的FileId通过UploadFiles接口上传文件获取。 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class CreatePreparedPersonalEsignRequest extends AbstractModel { @@ -159,6 +161,11 @@ true:做透明化处理和颜色增强。 */ public $FileId; + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param string $UserName 个人用户姓名 * @param string $IdCardNumber 身份证件号码 @@ -189,6 +196,7 @@ true:做透明化处理和颜色增强。 * @param string $FileId 印章图片文件 id 取值: 填写的FileId通过UploadFiles接口上传文件获取。 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -251,5 +259,10 @@ true:做透明化处理和颜色增强。 if (array_key_exists("FileId",$param) and $param["FileId"] !== null) { $this->FileId = $param["FileId"]; } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateSchemeUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateSchemeUrlRequest.php index 665c433fc..8d97507d7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateSchemeUrlRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateSchemeUrlRequest.php @@ -28,24 +28,54 @@ use TencentCloud\Common\AbstractModel; * @method void setName(string $Name) 设置姓名,最大长度50个字符 * @method string getMobile() 获取手机号,大陆手机号11位 * @method void setMobile(string $Mobile) 设置手机号,大陆手机号11位 - * @method string getEndPoint() 获取链接类型 -HTTP:跳转电子签小程序的http_url, -APP:第三方APP或小程序跳转电子签小程序的path。 -默认为HTTP类型 - * @method void setEndPoint(string $EndPoint) 设置链接类型 -HTTP:跳转电子签小程序的http_url, -APP:第三方APP或小程序跳转电子签小程序的path。 -默认为HTTP类型 + * @method string getEndPoint() 获取要跳转的链接类型 + +- HTTP:跳转电子签小程序的http_url, 短信通知或者H5跳转适合此类型 (默认) +- APP: 第三方APP或小程序跳转电子签小程序的path, APP或者小程序跳转适合此类型 + + * @method void setEndPoint(string $EndPoint) 设置要跳转的链接类型 + +- HTTP:跳转电子签小程序的http_url, 短信通知或者H5跳转适合此类型 (默认) +- APP: 第三方APP或小程序跳转电子签小程序的path, APP或者小程序跳转适合此类型 + * @method string getFlowId() 获取签署流程编号 (PathType=1时必传) * @method void setFlowId(string $FlowId) 设置签署流程编号 (PathType=1时必传) - * @method string getFlowGroupId() 获取合同组ID - * @method void setFlowGroupId(string $FlowGroupId) 设置合同组ID - * @method integer getPathType() 获取跳转页面 1: 小程序合同详情 2: 小程序合同列表页 0: 不传, 默认主页 - * @method void setPathType(integer $PathType) 设置跳转页面 1: 小程序合同详情 2: 小程序合同列表页 0: 不传, 默认主页 - * @method boolean getAutoJumpBack() 获取是否自动回跳 true:是, false:否。该参数只针对"APP" 类型的签署链接有效 - * @method void setAutoJumpBack(boolean $AutoJumpBack) 设置是否自动回跳 true:是, false:否。该参数只针对"APP" 类型的签署链接有效 + * @method string getFlowGroupId() 获取合同组ID + * @method void setFlowGroupId(string $FlowGroupId) 设置合同组ID + * @method integer getPathType() 获取要跳转到的页面类型 + +- 0: 不传, 主页 (默认) +- 1: 小程序合同详情 +- 2: 小程序合同列表页 + + * @method void setPathType(integer $PathType) 设置要跳转到的页面类型 + +- 0: 不传, 主页 (默认) +- 1: 小程序合同详情 +- 2: 小程序合同列表页 + + * @method boolean getAutoJumpBack() 获取是否自动回跳 +true:是, +false:否。 +该参数只针对"APP" 类型的签署链接有效 + * @method void setAutoJumpBack(boolean $AutoJumpBack) 设置是否自动回跳 +true:是, +false:否。 +该参数只针对"APP" 类型的签署链接有效 * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method array getHides() 获取生成的签署链接在签署过程隐藏的按钮列表, 可以设置隐藏的按钮列表如下 + +- 0:合同签署页面更多操作按钮 +- 1:合同签署页面更多操作的拒绝签署按钮 +- 2:合同签署页面更多操作的转他人处理按钮 +- 3:签署成功页的查看详情按钮 + * @method void setHides(array $Hides) 设置生成的签署链接在签署过程隐藏的按钮列表, 可以设置隐藏的按钮列表如下 + +- 0:合同签署页面更多操作按钮 +- 1:合同签署页面更多操作的拒绝签署按钮 +- 2:合同签署页面更多操作的转他人处理按钮 +- 3:签署成功页的查看详情按钮 */ class CreateSchemeUrlRequest extends AbstractModel { @@ -70,10 +100,11 @@ class CreateSchemeUrlRequest extends AbstractModel public $Mobile; /** - * @var string 链接类型 -HTTP:跳转电子签小程序的http_url, -APP:第三方APP或小程序跳转电子签小程序的path。 -默认为HTTP类型 + * @var string 要跳转的链接类型 + +- HTTP:跳转电子签小程序的http_url, 短信通知或者H5跳转适合此类型 (默认) +- APP: 第三方APP或小程序跳转电子签小程序的path, APP或者小程序跳转适合此类型 + */ public $EndPoint; @@ -83,17 +114,25 @@ APP:第三方APP或小程序跳转电子签小程序的path。 public $FlowId; /** - * @var string 合同组ID + * @var string 合同组ID */ public $FlowGroupId; /** - * @var integer 跳转页面 1: 小程序合同详情 2: 小程序合同列表页 0: 不传, 默认主页 + * @var integer 要跳转到的页面类型 + +- 0: 不传, 主页 (默认) +- 1: 小程序合同详情 +- 2: 小程序合同列表页 + */ public $PathType; /** - * @var boolean 是否自动回跳 true:是, false:否。该参数只针对"APP" 类型的签署链接有效 + * @var boolean 是否自动回跳 +true:是, +false:否。 +该参数只针对"APP" 类型的签署链接有效 */ public $AutoJumpBack; @@ -102,20 +141,45 @@ APP:第三方APP或小程序跳转电子签小程序的path。 */ public $Agent; + /** + * @var array 生成的签署链接在签署过程隐藏的按钮列表, 可以设置隐藏的按钮列表如下 + +- 0:合同签署页面更多操作按钮 +- 1:合同签署页面更多操作的拒绝签署按钮 +- 2:合同签署页面更多操作的转他人处理按钮 +- 3:签署成功页的查看详情按钮 + */ + public $Hides; + /** * @param UserInfo $Operator 调用方用户信息,userId 必填 * @param string $OrganizationName 企业名称 * @param string $Name 姓名,最大长度50个字符 * @param string $Mobile 手机号,大陆手机号11位 - * @param string $EndPoint 链接类型 -HTTP:跳转电子签小程序的http_url, -APP:第三方APP或小程序跳转电子签小程序的path。 -默认为HTTP类型 + * @param string $EndPoint 要跳转的链接类型 + +- HTTP:跳转电子签小程序的http_url, 短信通知或者H5跳转适合此类型 (默认) +- APP: 第三方APP或小程序跳转电子签小程序的path, APP或者小程序跳转适合此类型 + * @param string $FlowId 签署流程编号 (PathType=1时必传) - * @param string $FlowGroupId 合同组ID - * @param integer $PathType 跳转页面 1: 小程序合同详情 2: 小程序合同列表页 0: 不传, 默认主页 - * @param boolean $AutoJumpBack 是否自动回跳 true:是, false:否。该参数只针对"APP" 类型的签署链接有效 + * @param string $FlowGroupId 合同组ID + * @param integer $PathType 要跳转到的页面类型 + +- 0: 不传, 主页 (默认) +- 1: 小程序合同详情 +- 2: 小程序合同列表页 + + * @param boolean $AutoJumpBack 是否自动回跳 +true:是, +false:否。 +该参数只针对"APP" 类型的签署链接有效 * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @param array $Hides 生成的签署链接在签署过程隐藏的按钮列表, 可以设置隐藏的按钮列表如下 + +- 0:合同签署页面更多操作按钮 +- 1:合同签署页面更多操作的拒绝签署按钮 +- 2:合同签署页面更多操作的转他人处理按钮 +- 3:签署成功页的查看详情按钮 */ function __construct() { @@ -171,5 +235,9 @@ APP:第三方APP或小程序跳转电子签小程序的path。 $this->Agent = new Agent(); $this->Agent->deserialize($param["Agent"]); } + + if (array_key_exists("Hides",$param) and $param["Hides"] !== null) { + $this->Hides = $param["Hides"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateSealRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateSealRequest.php index 3e416a393..d477a77b6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateSealRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateSealRequest.php @@ -26,8 +26,10 @@ use TencentCloud\Common\AbstractModel; * @method void setSealName(string $SealName) 设置电子印章名字 * @method Agent getAgent() 获取应用相关信息 * @method void setAgent(Agent $Agent) 设置应用相关信息 - * @method string getSealType() 获取电子印章类型,PERSONAL-个人私章,OFFICIAL-公章,SPECIAL_FINANCIAL-财务专用章,CONTRACT-合同专用章,LEGAL_REPRESENTATIVE-法定代表人章,SPECIAL_NATIONWIDE_INVOICE-发票专用章 - * @method void setSealType(string $SealType) 设置电子印章类型,PERSONAL-个人私章,OFFICIAL-公章,SPECIAL_FINANCIAL-财务专用章,CONTRACT-合同专用章,LEGAL_REPRESENTATIVE-法定代表人章,SPECIAL_NATIONWIDE_INVOICE-发票专用章 + * @method string getGenerateSource() 获取本接口支持上传图片印章及系统直接生成印章;如果要使用系统生成印章,此值传:SealGenerateSourceSystem;如果要使用图片上传请传字段 Image + * @method void setGenerateSource(string $GenerateSource) 设置本接口支持上传图片印章及系统直接生成印章;如果要使用系统生成印章,此值传:SealGenerateSourceSystem;如果要使用图片上传请传字段 Image + * @method string getSealType() 获取电子印章类型,OFFICIAL-公章,CONTRACT-合同专用章 + * @method void setSealType(string $SealType) 设置电子印章类型,OFFICIAL-公章,CONTRACT-合同专用章 * @method string getFileName() 获取电子印章图片文件名称 * @method void setFileName(string $FileName) 设置电子印章图片文件名称 * @method string getImage() 获取电子印章图片base64编码 @@ -48,24 +50,15 @@ use TencentCloud\Common\AbstractModel; * @method void setColor(string $Color) 设置电子印章印章颜色(默认红色RED),RED-红色 系统目前只支持红色印章创建。 - * @method string getSealHorizontalText() 获取电子印章生成时的横向文字。 - * @method void setSealHorizontalText(string $SealHorizontalText) 设置电子印章生成时的横向文字。 - * @method string getSealChordText() 获取电子印章下弦文字 - * @method void setSealChordText(string $SealChordText) 设置电子印章下弦文字 - * @method string getSealCentralType() 获取电子印章中心图案类型,STAR-圆形有五角星,NONE-圆形无五角星 -系统生成的印章只支持STAR - * @method void setSealCentralType(string $SealCentralType) 设置电子印章中心图案类型,STAR-圆形有五角星,NONE-圆形无五角星 -系统生成的印章只支持STAR + * @method string getSealHorizontalText() 获取暂时不支持横向文字设置 + * @method void setSealHorizontalText(string $SealHorizontalText) 设置暂时不支持横向文字设置 + * @method string getSealChordText() 获取暂时不支持下弦文字设置 + * @method void setSealChordText(string $SealChordText) 设置暂时不支持下弦文字设置 + * @method string getSealCentralType() 获取系统生成的印章只支持STAR + * @method void setSealCentralType(string $SealCentralType) 设置系统生成的印章只支持STAR * @method string getFileToken() 获取通过文件上传时,服务端生成的电子印章上传图片的token * @method void setFileToken(string $FileToken) 设置通过文件上传时,服务端生成的电子印章上传图片的token - - * @method string getGenerateSource() 获取印章生成来源方式 -取值: -SealGenerateSourceSystem 表示系统生成企业印章 - * @method void setGenerateSource(string $GenerateSource) 设置印章生成来源方式 -取值: -SealGenerateSourceSystem 表示系统生成企业印章 */ class CreateSealRequest extends AbstractModel { @@ -85,7 +78,12 @@ class CreateSealRequest extends AbstractModel public $Agent; /** - * @var string 电子印章类型,PERSONAL-个人私章,OFFICIAL-公章,SPECIAL_FINANCIAL-财务专用章,CONTRACT-合同专用章,LEGAL_REPRESENTATIVE-法定代表人章,SPECIAL_NATIONWIDE_INVOICE-发票专用章 + * @var string 本接口支持上传图片印章及系统直接生成印章;如果要使用系统生成印章,此值传:SealGenerateSourceSystem;如果要使用图片上传请传字段 Image + */ + public $GenerateSource; + + /** + * @var string 电子印章类型,OFFICIAL-公章,CONTRACT-合同专用章 */ public $SealType; @@ -120,18 +118,17 @@ class CreateSealRequest extends AbstractModel public $Color; /** - * @var string 电子印章生成时的横向文字。 + * @var string 暂时不支持横向文字设置 */ public $SealHorizontalText; /** - * @var string 电子印章下弦文字 + * @var string 暂时不支持下弦文字设置 */ public $SealChordText; /** - * @var string 电子印章中心图案类型,STAR-圆形有五角星,NONE-圆形无五角星 -系统生成的印章只支持STAR + * @var string 系统生成的印章只支持STAR */ public $SealCentralType; @@ -141,18 +138,12 @@ class CreateSealRequest extends AbstractModel */ public $FileToken; - /** - * @var string 印章生成来源方式 -取值: -SealGenerateSourceSystem 表示系统生成企业印章 - */ - public $GenerateSource; - /** * @param UserInfo $Operator 操作人信息 * @param string $SealName 电子印章名字 * @param Agent $Agent 应用相关信息 - * @param string $SealType 电子印章类型,PERSONAL-个人私章,OFFICIAL-公章,SPECIAL_FINANCIAL-财务专用章,CONTRACT-合同专用章,LEGAL_REPRESENTATIVE-法定代表人章,SPECIAL_NATIONWIDE_INVOICE-发票专用章 + * @param string $GenerateSource 本接口支持上传图片印章及系统直接生成印章;如果要使用系统生成印章,此值传:SealGenerateSourceSystem;如果要使用图片上传请传字段 Image + * @param string $SealType 电子印章类型,OFFICIAL-公章,CONTRACT-合同专用章 * @param string $FileName 电子印章图片文件名称 * @param string $Image 电子印章图片base64编码 参数Image,FileToken或GenerateSource=SealGenerateSourceSystem三选一。 @@ -163,15 +154,10 @@ SealGenerateSourceSystem 表示系统生成企业印章 * @param string $Color 电子印章印章颜色(默认红色RED),RED-红色 系统目前只支持红色印章创建。 - * @param string $SealHorizontalText 电子印章生成时的横向文字。 - * @param string $SealChordText 电子印章下弦文字 - * @param string $SealCentralType 电子印章中心图案类型,STAR-圆形有五角星,NONE-圆形无五角星 -系统生成的印章只支持STAR + * @param string $SealHorizontalText 暂时不支持横向文字设置 + * @param string $SealChordText 暂时不支持下弦文字设置 + * @param string $SealCentralType 系统生成的印章只支持STAR * @param string $FileToken 通过文件上传时,服务端生成的电子印章上传图片的token - - * @param string $GenerateSource 印章生成来源方式 -取值: -SealGenerateSourceSystem 表示系统生成企业印章 */ function __construct() { @@ -200,6 +186,10 @@ SealGenerateSourceSystem 表示系统生成企业印章 $this->Agent->deserialize($param["Agent"]); } + if (array_key_exists("GenerateSource",$param) and $param["GenerateSource"] !== null) { + $this->GenerateSource = $param["GenerateSource"]; + } + if (array_key_exists("SealType",$param) and $param["SealType"] !== null) { $this->SealType = $param["SealType"]; } @@ -239,9 +229,5 @@ SealGenerateSourceSystem 表示系统生成企业印章 if (array_key_exists("FileToken",$param) and $param["FileToken"] !== null) { $this->FileToken = $param["FileToken"]; } - - if (array_key_exists("GenerateSource",$param) and $param["GenerateSource"] !== null) { - $this->GenerateSource = $param["GenerateSource"]; - } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateUserAutoSignEnableUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateUserAutoSignEnableUrlRequest.php index f4ad35cdf..378e32ead 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateUserAutoSignEnableUrlRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateUserAutoSignEnableUrlRequest.php @@ -28,14 +28,26 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 E_PRESCRIPTION_AUTO_SIGN 电子处方 * @method AutoSignConfig getAutoSignConfig() 获取自动签开通,签署相关配置 * @method void setAutoSignConfig(AutoSignConfig $AutoSignConfig) 设置自动签开通,签署相关配置 - * @method string getUrlType() 获取链接类型,空-默认小程序端链接,H5SIGN-h5端链接 - * @method void setUrlType(string $UrlType) 设置链接类型,空-默认小程序端链接,H5SIGN-h5端链接 - * @method string getNotifyType() 获取通知类型,默认不填为不通知开通方,填写 SMS 为短信通知。 - * @method void setNotifyType(string $NotifyType) 设置通知类型,默认不填为不通知开通方,填写 SMS 为短信通知。 - * @method string getNotifyAddress() 获取若上方填写为 SMS,则此处为手机号 - * @method void setNotifyAddress(string $NotifyAddress) 设置若上方填写为 SMS,则此处为手机号 + * @method string getUrlType() 获取链接类型, +空-默认小程序端链接 +H5SIGN-h5端链接 + * @method void setUrlType(string $UrlType) 设置链接类型, +空-默认小程序端链接 +H5SIGN-h5端链接 + * @method string getNotifyType() 获取通知类型 + +默认不设置为不通知开通方, +SMS 为短信通知 , 此种方式需要NotifyAddress填写手机号。 + * @method void setNotifyType(string $NotifyType) 设置通知类型 + +默认不设置为不通知开通方, +SMS 为短信通知 , 此种方式需要NotifyAddress填写手机号。 + * @method string getNotifyAddress() 获取如果通知类型NotifyType选择为SMS,则此处为手机号, 其他通知类型不需要设置此项 + * @method void setNotifyAddress(string $NotifyAddress) 设置如果通知类型NotifyType选择为SMS,则此处为手机号, 其他通知类型不需要设置此项 * @method integer getExpiredTime() 获取链接的过期时间,格式为Unix时间戳,不能早于当前时间,且最大为30天。如果不传,默认有效期为7天。 * @method void setExpiredTime(integer $ExpiredTime) 设置链接的过期时间,格式为Unix时间戳,不能早于当前时间,且最大为30天。如果不传,默认有效期为7天。 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class CreateUserAutoSignEnableUrlRequest extends AbstractModel { @@ -56,17 +68,22 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 public $AutoSignConfig; /** - * @var string 链接类型,空-默认小程序端链接,H5SIGN-h5端链接 + * @var string 链接类型, +空-默认小程序端链接 +H5SIGN-h5端链接 */ public $UrlType; /** - * @var string 通知类型,默认不填为不通知开通方,填写 SMS 为短信通知。 + * @var string 通知类型 + +默认不设置为不通知开通方, +SMS 为短信通知 , 此种方式需要NotifyAddress填写手机号。 */ public $NotifyType; /** - * @var string 若上方填写为 SMS,则此处为手机号 + * @var string 如果通知类型NotifyType选择为SMS,则此处为手机号, 其他通知类型不需要设置此项 */ public $NotifyAddress; @@ -75,15 +92,26 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 */ public $ExpiredTime; + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param UserInfo $Operator 操作人信息,UserId必填 * @param string $SceneKey 自动签场景: E_PRESCRIPTION_AUTO_SIGN 电子处方 * @param AutoSignConfig $AutoSignConfig 自动签开通,签署相关配置 - * @param string $UrlType 链接类型,空-默认小程序端链接,H5SIGN-h5端链接 - * @param string $NotifyType 通知类型,默认不填为不通知开通方,填写 SMS 为短信通知。 - * @param string $NotifyAddress 若上方填写为 SMS,则此处为手机号 + * @param string $UrlType 链接类型, +空-默认小程序端链接 +H5SIGN-h5端链接 + * @param string $NotifyType 通知类型 + +默认不设置为不通知开通方, +SMS 为短信通知 , 此种方式需要NotifyAddress填写手机号。 + * @param string $NotifyAddress 如果通知类型NotifyType选择为SMS,则此处为手机号, 其他通知类型不需要设置此项 * @param integer $ExpiredTime 链接的过期时间,格式为Unix时间戳,不能早于当前时间,且最大为30天。如果不传,默认有效期为7天。 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -127,5 +155,10 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 if (array_key_exists("ExpiredTime",$param) and $param["ExpiredTime"] !== null) { $this->ExpiredTime = $param["ExpiredTime"]; } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateUserAutoSignEnableUrlResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateUserAutoSignEnableUrlResponse.php index ba521a433..691fbafcc 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateUserAutoSignEnableUrlResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateUserAutoSignEnableUrlResponse.php @@ -28,8 +28,8 @@ use TencentCloud\Common\AbstractModel; * @method void setAppOriginalId(string $AppOriginalId) 设置小程序 原始 Id * @method string getPath() 获取跳转路径 * @method void setPath(string $Path) 设置跳转路径 - * @method string getQrCode() 获取base64格式跳转二维码 - * @method void setQrCode(string $QrCode) 设置base64格式跳转二维码 + * @method string getQrCode() 获取base64格式跳转二维码,可以通过微信扫描后跳转到业务界面 + * @method void setQrCode(string $QrCode) 设置base64格式跳转二维码,可以通过微信扫描后跳转到业务界面 * @method string getUrlType() 获取链接类型,空-默认小程序端链接,H5SIGN-h5端链接 * @method void setUrlType(string $UrlType) 设置链接类型,空-默认小程序端链接,H5SIGN-h5端链接 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -58,7 +58,7 @@ class CreateUserAutoSignEnableUrlResponse extends AbstractModel public $Path; /** - * @var string base64格式跳转二维码 + * @var string base64格式跳转二维码,可以通过微信扫描后跳转到业务界面 */ public $QrCode; @@ -77,7 +77,7 @@ class CreateUserAutoSignEnableUrlResponse extends AbstractModel * @param string $AppId 小程序AppId * @param string $AppOriginalId 小程序 原始 Id * @param string $Path 跳转路径 - * @param string $QrCode base64格式跳转二维码 + * @param string $QrCode base64格式跳转二维码,可以通过微信扫描后跳转到业务界面 * @param string $UrlType 链接类型,空-默认小程序端链接,H5SIGN-h5端链接 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateWebThemeConfigRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateWebThemeConfigRequest.php new file mode 100644 index 000000000..494ec45c0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateWebThemeConfigRequest.php @@ -0,0 +1,87 @@ +EMBED_WEB_THEME:嵌入式主题 +
    目前只支持EMBED_WEB_THEME,web页面嵌入的主题风格配置 + * @method void setThemeType(string $ThemeType) 设置主题类型 +
    EMBED_WEB_THEME:嵌入式主题 +
    目前只支持EMBED_WEB_THEME,web页面嵌入的主题风格配置 + * @method WebThemeConfig getWebThemeConfig() 获取主题配置 + * @method void setWebThemeConfig(WebThemeConfig $WebThemeConfig) 设置主题配置 + */ +class CreateWebThemeConfigRequest extends AbstractModel +{ + /** + * @var UserInfo 操作人信息 + */ + public $Operator; + + /** + * @var string 主题类型 +
    EMBED_WEB_THEME:嵌入式主题 +
    目前只支持EMBED_WEB_THEME,web页面嵌入的主题风格配置 + */ + public $ThemeType; + + /** + * @var WebThemeConfig 主题配置 + */ + public $WebThemeConfig; + + /** + * @param UserInfo $Operator 操作人信息 + * @param string $ThemeType 主题类型 +
    EMBED_WEB_THEME:嵌入式主题 +
    目前只支持EMBED_WEB_THEME,web页面嵌入的主题风格配置 + * @param WebThemeConfig $WebThemeConfig 主题配置 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("Operator",$param) and $param["Operator"] !== null) { + $this->Operator = new UserInfo(); + $this->Operator->deserialize($param["Operator"]); + } + + if (array_key_exists("ThemeType",$param) and $param["ThemeType"] !== null) { + $this->ThemeType = $param["ThemeType"]; + } + + if (array_key_exists("WebThemeConfig",$param) and $param["WebThemeConfig"] !== null) { + $this->WebThemeConfig = new WebThemeConfig(); + $this->WebThemeConfig->deserialize($param["WebThemeConfig"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateWebThemeConfigResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateWebThemeConfigResponse.php new file mode 100644 index 000000000..01fc07905 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/CreateWebThemeConfigResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationDepartmentRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationDepartmentRequest.php index 5556b5bf7..1d0dd978d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationDepartmentRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationDepartmentRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取操作人信息,UserId必填且需拥有组织架构管理权限 * @method void setOperator(UserInfo $Operator) 设置操作人信息,UserId必填且需拥有组织架构管理权限 - * @method string getDeptId() 获取电子签中的部门id - * @method void setDeptId(string $DeptId) 设置电子签中的部门id + * @method string getDeptId() 获取电子签中的部门id,通过DescribeIntegrationDepartments接口可获得 + * @method void setDeptId(string $DeptId) 设置电子签中的部门id,通过DescribeIntegrationDepartments接口可获得 * @method string getReceiveDeptId() 获取交接部门ID。待删除部门中的合同、印章和模板数据,交接至该部门ID下,未填写交接至公司根部门。 * @method void setReceiveDeptId(string $ReceiveDeptId) 设置交接部门ID。待删除部门中的合同、印章和模板数据,交接至该部门ID下,未填写交接至公司根部门。 */ @@ -35,7 +35,7 @@ class DeleteIntegrationDepartmentRequest extends AbstractModel public $Operator; /** - * @var string 电子签中的部门id + * @var string 电子签中的部门id,通过DescribeIntegrationDepartments接口可获得 */ public $DeptId; @@ -46,7 +46,7 @@ class DeleteIntegrationDepartmentRequest extends AbstractModel /** * @param UserInfo $Operator 操作人信息,UserId必填且需拥有组织架构管理权限 - * @param string $DeptId 电子签中的部门id + * @param string $DeptId 电子签中的部门id,通过DescribeIntegrationDepartments接口可获得 * @param string $ReceiveDeptId 交接部门ID。待删除部门中的合同、印章和模板数据,交接至该部门ID下,未填写交接至公司根部门。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationEmployeesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationEmployeesRequest.php index 327e44c7a..19679953b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationEmployeesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationEmployeesRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取操作人信息,userId必填 * @method void setOperator(UserInfo $Operator) 设置操作人信息,userId必填 - * @method array getEmployees() 获取待移除员工的信息,userId和openId二选一,必填一个 - * @method void setEmployees(array $Employees) 设置待移除员工的信息,userId和openId二选一,必填一个 + * @method array getEmployees() 获取待移除员工的信息,userId和openId二选一,必填一个,如果需要指定交接人的话,ReceiveUserId或者ReceiveOpenId字段二选一 + * @method void setEmployees(array $Employees) 设置待移除员工的信息,userId和openId二选一,必填一个,如果需要指定交接人的话,ReceiveUserId或者ReceiveOpenId字段二选一 * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId需填充子企业Id * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId需填充子企业Id */ @@ -35,7 +35,7 @@ class DeleteIntegrationEmployeesRequest extends AbstractModel public $Operator; /** - * @var array 待移除员工的信息,userId和openId二选一,必填一个 + * @var array 待移除员工的信息,userId和openId二选一,必填一个,如果需要指定交接人的话,ReceiveUserId或者ReceiveOpenId字段二选一 */ public $Employees; @@ -46,7 +46,7 @@ class DeleteIntegrationEmployeesRequest extends AbstractModel /** * @param UserInfo $Operator 操作人信息,userId必填 - * @param array $Employees 待移除员工的信息,userId和openId二选一,必填一个 + * @param array $Employees 待移除员工的信息,userId和openId二选一,必填一个,如果需要指定交接人的话,ReceiveUserId或者ReceiveOpenId字段二选一 * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId需填充子企业Id */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationRoleUsersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationRoleUsersRequest.php index 7408b80c2..17d34c08a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationRoleUsersRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DeleteIntegrationRoleUsersRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setOperator(UserInfo $Operator) 设置操作人信息,userId必填 * @method string getRoleId() 获取角色id * @method void setRoleId(string $RoleId) 设置角色id - * @method array getUsers() 获取用户信息 - * @method void setUsers(array $Users) 设置用户信息 + * @method array getUsers() 获取用户信息,最多 200 个用户,并且 UserId 和 OpenId 二选一,其他字段不需要传 + * @method void setUsers(array $Users) 设置用户信息,最多 200 个用户,并且 UserId 和 OpenId 二选一,其他字段不需要传 * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ @@ -42,7 +42,7 @@ class DeleteIntegrationRoleUsersRequest extends AbstractModel public $RoleId; /** - * @var array 用户信息 + * @var array 用户信息,最多 200 个用户,并且 UserId 和 OpenId 二选一,其他字段不需要传 */ public $Users; @@ -54,7 +54,7 @@ class DeleteIntegrationRoleUsersRequest extends AbstractModel /** * @param UserInfo $Operator 操作人信息,userId必填 * @param string $RoleId 角色id - * @param array $Users 用户信息 + * @param array $Users 用户信息,最多 200 个用户,并且 UserId 和 OpenId 二选一,其他字段不需要传 * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowComponentsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowComponentsRequest.php index d422530ec..49d0d3a72 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowComponentsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowComponentsRequest.php @@ -22,10 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取操作者信息 * @method void setOperator(UserInfo $Operator) 设置操作者信息 - * @method string getFlowId() 获取电子签流程的Id - * @method void setFlowId(string $FlowId) 设置电子签流程的Id - * @method Agent getAgent() 获取应用相关信息 - * @method void setAgent(Agent $Agent) 设置应用相关信息 + * @method string getFlowId() 获取流程(合同)的编号 + * @method void setFlowId(string $FlowId) 设置流程(合同)的编号 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class DescribeFlowComponentsRequest extends AbstractModel { @@ -35,19 +35,19 @@ class DescribeFlowComponentsRequest extends AbstractModel public $Operator; /** - * @var string 电子签流程的Id + * @var string 流程(合同)的编号 */ public $FlowId; /** - * @var Agent 应用相关信息 + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ public $Agent; /** * @param UserInfo $Operator 操作者信息 - * @param string $FlowId 电子签流程的Id - * @param Agent $Agent 应用相关信息 + * @param string $FlowId 流程(合同)的编号 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowComponentsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowComponentsResponse.php index 19cafd1c1..ed69bc02a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowComponentsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowComponentsResponse.php @@ -20,9 +20,9 @@ use TencentCloud\Common\AbstractModel; /** * DescribeFlowComponents返回参数结构体 * - * @method array getRecipientComponentInfos() 获取流程关联的填写控件信息 + * @method array getRecipientComponentInfos() 获取流程关联的填写控件信息,按照参与方进行分类返回。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setRecipientComponentInfos(array $RecipientComponentInfos) 设置流程关联的填写控件信息 + * @method void setRecipientComponentInfos(array $RecipientComponentInfos) 设置流程关联的填写控件信息,按照参与方进行分类返回。 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -30,7 +30,7 @@ use TencentCloud\Common\AbstractModel; class DescribeFlowComponentsResponse extends AbstractModel { /** - * @var array 流程关联的填写控件信息 + * @var array 流程关联的填写控件信息,按照参与方进行分类返回。 注意:此字段可能返回 null,表示取不到有效值。 */ public $RecipientComponentInfos; @@ -41,7 +41,7 @@ class DescribeFlowComponentsResponse extends AbstractModel public $RequestId; /** - * @param array $RecipientComponentInfos 流程关联的填写控件信息 + * @param array $RecipientComponentInfos 流程关联的填写控件信息,按照参与方进行分类返回。 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowEvidenceReportResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowEvidenceReportResponse.php index 90d9a6aa4..de6bc985e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowEvidenceReportResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowEvidenceReportResponse.php @@ -20,31 +20,37 @@ use TencentCloud\Common\AbstractModel; /** * DescribeFlowEvidenceReport返回参数结构体 * - * @method string getReportUrl() 获取报告 URL + * @method string getReportUrl() 获取出证报告PDF的下载 URL 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setReportUrl(string $ReportUrl) 设置报告 URL + * @method void setReportUrl(string $ReportUrl) 设置出证报告PDF的下载 URL 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getStatus() 获取执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed - * @method void setStatus(string $Status) 设置执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @method string getStatus() 获取出证任务执行的状态, 分布表示下面的含义 + +EvidenceStatusExecuting 出证任务在执行中 +EvidenceStatusSuccess 出证任务执行成功 +EvidenceStatusFailed 出证任务执行失败 + * @method void setStatus(string $Status) 设置出证任务执行的状态, 分布表示下面的含义 + +EvidenceStatusExecuting 出证任务在执行中 +EvidenceStatusSuccess 出证任务执行成功 +EvidenceStatusFailed 出证任务执行失败 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class DescribeFlowEvidenceReportResponse extends AbstractModel { /** - * @var string 报告 URL + * @var string 出证报告PDF的下载 URL 注意:此字段可能返回 null,表示取不到有效值。 */ public $ReportUrl; /** - * @var string 执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @var string 出证任务执行的状态, 分布表示下面的含义 + +EvidenceStatusExecuting 出证任务在执行中 +EvidenceStatusSuccess 出证任务执行成功 +EvidenceStatusFailed 出证任务执行失败 */ public $Status; @@ -54,11 +60,13 @@ class DescribeFlowEvidenceReportResponse extends AbstractModel public $RequestId; /** - * @param string $ReportUrl 报告 URL + * @param string $ReportUrl 出证报告PDF的下载 URL 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $Status 执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @param string $Status 出证任务执行的状态, 分布表示下面的含义 + +EvidenceStatusExecuting 出证任务在执行中 +EvidenceStatusSuccess 出证任务执行成功 +EvidenceStatusFailed 出证任务执行失败 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowInfoRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowInfoRequest.php index 70c28781e..148017087 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowInfoRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowInfoRequest.php @@ -23,11 +23,18 @@ use TencentCloud\Common\AbstractModel; * @method UserInfo getOperator() 获取调用方用户信息,userId 必填 * @method void setOperator(UserInfo $Operator) 设置调用方用户信息,userId 必填 * @method array getFlowIds() 获取需要查询的流程ID列表,限制最大100个 + +如果查询合同组的信息,不要传此参数 * @method void setFlowIds(array $FlowIds) 设置需要查询的流程ID列表,限制最大100个 + +如果查询合同组的信息,不要传此参数 * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 - * @method string getFlowGroupId() 获取合同组ID - * @method void setFlowGroupId(string $FlowGroupId) 设置合同组ID + * @method string getFlowGroupId() 获取合同组ID, 如果传此参数会忽略FlowIds入参 + 所以如传此参数不要传FlowIds参数 + + * @method void setFlowGroupId(string $FlowGroupId) 设置合同组ID, 如果传此参数会忽略FlowIds入参 + 所以如传此参数不要传FlowIds参数 */ class DescribeFlowInfoRequest extends AbstractModel { @@ -38,6 +45,8 @@ class DescribeFlowInfoRequest extends AbstractModel /** * @var array 需要查询的流程ID列表,限制最大100个 + +如果查询合同组的信息,不要传此参数 */ public $FlowIds; @@ -47,15 +56,20 @@ class DescribeFlowInfoRequest extends AbstractModel public $Agent; /** - * @var string 合同组ID + * @var string 合同组ID, 如果传此参数会忽略FlowIds入参 + 所以如传此参数不要传FlowIds参数 + */ public $FlowGroupId; /** * @param UserInfo $Operator 调用方用户信息,userId 必填 * @param array $FlowIds 需要查询的流程ID列表,限制最大100个 + +如果查询合同组的信息,不要传此参数 * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 - * @param string $FlowGroupId 合同组ID + * @param string $FlowGroupId 合同组ID, 如果传此参数会忽略FlowIds入参 + 所以如传此参数不要传FlowIds参数 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowTemplatesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowTemplatesRequest.php index 2ac14ad5c..f85fd9305 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowTemplatesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeFlowTemplatesRequest.php @@ -20,21 +20,37 @@ use TencentCloud\Common\AbstractModel; /** * DescribeFlowTemplates请求参数结构体 * - * @method UserInfo getOperator() 获取调用方用户信息,userId 必填 - * @method void setOperator(UserInfo $Operator) 设置调用方用户信息,userId 必填 - * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 - * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 - * @method integer getContentType() 获取查询内容:0-模板列表及详情(默认),1-仅模板列表 - * @method void setContentType(integer $ContentType) 设置查询内容:0-模板列表及详情(默认),1-仅模板列表 - * @method array getFilters() 获取搜索条件,具体参考Filter结构体。本接口取值:template-id:按照【 **模板唯一标识** 】进行过滤 - * @method void setFilters(array $Filters) 设置搜索条件,具体参考Filter结构体。本接口取值:template-id:按照【 **模板唯一标识** 】进行过滤 - * @method integer getOffset() 获取查询偏移位置,默认0 - * @method void setOffset(integer $Offset) 设置查询偏移位置,默认0 - * @method integer getLimit() 获取查询个数,默认20,最大200 - * @method void setLimit(integer $Limit) 设置查询个数,默认20,最大200 - * @method string getApplicationId() 获取ApplicationId不为空,查询指定应用下的模板列表 + * @method UserInfo getOperator() 获取调用方员工/经办人信息 +UserId 必填,在企业控制台组织架构中可以查到员工的UserId +注:请保证员工有相关的角色权限 + * @method void setOperator(UserInfo $Operator) 设置调用方员工/经办人信息 +UserId 必填,在企业控制台组织架构中可以查到员工的UserId +注:请保证员工有相关的角色权限 + * @method Agent getAgent() 获取代理相关应用信息 +如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息 +如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method integer getContentType() 获取查询内容类型 +0-模板列表及详情(默认) +1-仅模板列表 + * @method void setContentType(integer $ContentType) 设置查询内容类型 +0-模板列表及详情(默认) +1-仅模板列表 + * @method array getFilters() 获取搜索条件,本字段用于指定模板Id进行查询。 +Key:template-id +Values:需要查询的模板Id列表 + * @method void setFilters(array $Filters) 设置搜索条件,本字段用于指定模板Id进行查询。 +Key:template-id +Values:需要查询的模板Id列表 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默从第一页返回。页码从0开始,即首页为0。 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默从第一页返回。页码从0开始,即首页为0。 + * @method integer getLimit() 获取指定每页多少条数据,如果不传默认为20,单页最大200。 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,如果不传默认为20,单页最大200。 + * @method string getApplicationId() 获取用于查询指定应用号下单模板列表。 +ApplicationId不为空,查询指定应用下的模板列表 ApplicationId为空,查询所有应用下的模板列表 - * @method void setApplicationId(string $ApplicationId) 设置ApplicationId不为空,查询指定应用下的模板列表 + * @method void setApplicationId(string $ApplicationId) 设置用于查询指定应用号下单模板列表。 +ApplicationId不为空,查询指定应用下的模板列表 ApplicationId为空,查询所有应用下的模板列表 * @method boolean getIsChannel() 获取默认为false,查询SaaS模板库列表; 为true,查询第三方应用集成平台企业模板库管理列表 @@ -48,37 +64,45 @@ ApplicationId为空,查询所有应用下的模板列表 class DescribeFlowTemplatesRequest extends AbstractModel { /** - * @var UserInfo 调用方用户信息,userId 必填 + * @var UserInfo 调用方员工/经办人信息 +UserId 必填,在企业控制台组织架构中可以查到员工的UserId +注:请保证员工有相关的角色权限 */ public $Operator; /** - * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @var Agent 代理相关应用信息 +如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ public $Agent; /** - * @var integer 查询内容:0-模板列表及详情(默认),1-仅模板列表 + * @var integer 查询内容类型 +0-模板列表及详情(默认) +1-仅模板列表 */ public $ContentType; /** - * @var array 搜索条件,具体参考Filter结构体。本接口取值:template-id:按照【 **模板唯一标识** 】进行过滤 + * @var array 搜索条件,本字段用于指定模板Id进行查询。 +Key:template-id +Values:需要查询的模板Id列表 */ public $Filters; /** - * @var integer 查询偏移位置,默认0 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默从第一页返回。页码从0开始,即首页为0。 */ public $Offset; /** - * @var integer 查询个数,默认20,最大200 + * @var integer 指定每页多少条数据,如果不传默认为20,单页最大200。 */ public $Limit; /** - * @var string ApplicationId不为空,查询指定应用下的模板列表 + * @var string 用于查询指定应用号下单模板列表。 +ApplicationId不为空,查询指定应用下的模板列表 ApplicationId为空,查询所有应用下的模板列表 */ public $ApplicationId; @@ -103,13 +127,21 @@ ApplicationId为空,查询所有应用下的模板列表 public $GenerateSource; /** - * @param UserInfo $Operator 调用方用户信息,userId 必填 - * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 - * @param integer $ContentType 查询内容:0-模板列表及详情(默认),1-仅模板列表 - * @param array $Filters 搜索条件,具体参考Filter结构体。本接口取值:template-id:按照【 **模板唯一标识** 】进行过滤 - * @param integer $Offset 查询偏移位置,默认0 - * @param integer $Limit 查询个数,默认20,最大200 - * @param string $ApplicationId ApplicationId不为空,查询指定应用下的模板列表 + * @param UserInfo $Operator 调用方员工/经办人信息 +UserId 必填,在企业控制台组织架构中可以查到员工的UserId +注:请保证员工有相关的角色权限 + * @param Agent $Agent 代理相关应用信息 +如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @param integer $ContentType 查询内容类型 +0-模板列表及详情(默认) +1-仅模板列表 + * @param array $Filters 搜索条件,本字段用于指定模板Id进行查询。 +Key:template-id +Values:需要查询的模板Id列表 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默从第一页返回。页码从0开始,即首页为0。 + * @param integer $Limit 指定每页多少条数据,如果不传默认为20,单页最大200。 + * @param string $ApplicationId 用于查询指定应用号下单模板列表。 +ApplicationId不为空,查询指定应用下的模板列表 ApplicationId为空,查询所有应用下的模板列表 * @param boolean $IsChannel 默认为false,查询SaaS模板库列表; 为true,查询第三方应用集成平台企业模板库管理列表 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationEmployeesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationEmployeesRequest.php index a9e89db95..e16c3d163 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationEmployeesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationEmployeesRequest.php @@ -22,16 +22,16 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取操作人信息,userId必填 * @method void setOperator(UserInfo $Operator) 设置操作人信息,userId必填 - * @method integer getLimit() 获取返回最大数量,最大为20 - * @method void setLimit(integer $Limit) 设置返回最大数量,最大为20 + * @method integer getLimit() 获取指定每页多少条数据,单页最大20 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,单页最大20 * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method array getFilters() 获取查询过滤实名用户,Key为Status,Values为["IsVerified"] 根据第三方系统openId过滤查询员工时,Key为StaffOpenId,Values为["OpenId","OpenId",...] * @method void setFilters(array $Filters) 设置查询过滤实名用户,Key为Status,Values为["IsVerified"] 根据第三方系统openId过滤查询员工时,Key为StaffOpenId,Values为["OpenId","OpenId",...] - * @method integer getOffset() 获取偏移量,默认为0,最大为20000 - * @method void setOffset(integer $Offset) 设置偏移量,默认为0,最大为20000 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 */ class DescribeIntegrationEmployeesRequest extends AbstractModel { @@ -41,7 +41,7 @@ class DescribeIntegrationEmployeesRequest extends AbstractModel public $Operator; /** - * @var integer 返回最大数量,最大为20 + * @var integer 指定每页多少条数据,单页最大20 */ public $Limit; @@ -57,17 +57,17 @@ class DescribeIntegrationEmployeesRequest extends AbstractModel public $Filters; /** - * @var integer 偏移量,默认为0,最大为20000 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 */ public $Offset; /** * @param UserInfo $Operator 操作人信息,userId必填 - * @param integer $Limit 返回最大数量,最大为20 + * @param integer $Limit 指定每页多少条数据,单页最大20 * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @param array $Filters 查询过滤实名用户,Key为Status,Values为["IsVerified"] 根据第三方系统openId过滤查询员工时,Key为StaffOpenId,Values为["OpenId","OpenId",...] - * @param integer $Offset 偏移量,默认为0,最大为20000 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationEmployeesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationEmployeesResponse.php index b798ea024..64ab26146 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationEmployeesResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationEmployeesResponse.php @@ -24,12 +24,12 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setEmployees(array $Employees) 设置员工数据列表 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getOffset() 获取偏移量,默认为0,最大为20000 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setOffset(integer $Offset) 设置偏移量,默认为0,最大为20000 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getLimit() 获取返回最大数量,最大为20 - * @method void setLimit(integer $Limit) 设置返回最大数量,最大为20 + * @method integer getLimit() 获取指定每页多少条数据,单页最大20 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,单页最大20 * @method integer getTotalCount() 获取符合条件的员工数量 * @method void setTotalCount(integer $TotalCount) 设置符合条件的员工数量 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -44,13 +44,13 @@ class DescribeIntegrationEmployeesResponse extends AbstractModel public $Employees; /** - * @var integer 偏移量,默认为0,最大为20000 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 注意:此字段可能返回 null,表示取不到有效值。 */ public $Offset; /** - * @var integer 返回最大数量,最大为20 + * @var integer 指定每页多少条数据,单页最大20 */ public $Limit; @@ -67,9 +67,9 @@ class DescribeIntegrationEmployeesResponse extends AbstractModel /** * @param array $Employees 员工数据列表 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $Offset 偏移量,默认为0,最大为20000 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $Limit 返回最大数量,最大为20 + * @param integer $Limit 指定每页多少条数据,单页最大20 * @param integer $TotalCount 符合条件的员工数量 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationRolesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationRolesRequest.php index 6bbeae9cf..23670dfa6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationRolesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationRolesRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取操作人信息,UserId必填 * @method void setOperator(UserInfo $Operator) 设置操作人信息,UserId必填 - * @method integer getLimit() 获取返回最大数量,最大为200 - * @method void setLimit(integer $Limit) 设置返回最大数量,最大为200 + * @method integer getLimit() 获取指定每页多少条数据,单页最大200 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,单页最大200 * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @method array getFilters() 获取查询的关键字段: @@ -34,8 +34,8 @@ Key:"IsGroupRole",Values:["0"],查询非集团角色,Values:["1"]表示查 Key:"RoleType",Values:["1"]查询系统角色,Values:["2"]查询自定义角色 Key:"RoleStatus",Values:["1"]查询启用角色,Values:["2"]查询禁用角色 Key:"IsGroupRole",Values:["0"],查询非集团角色,Values:["1"]表示查询集团角色 - * @method integer getOffset() 获取偏移量,默认为0,最大为2000 - * @method void setOffset(integer $Offset) 设置偏移量,默认为0,最大为2000 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 */ class DescribeIntegrationRolesRequest extends AbstractModel { @@ -45,7 +45,7 @@ class DescribeIntegrationRolesRequest extends AbstractModel public $Operator; /** - * @var integer 返回最大数量,最大为200 + * @var integer 指定每页多少条数据,单页最大200 */ public $Limit; @@ -63,19 +63,19 @@ Key:"IsGroupRole",Values:["0"],查询非集团角色,Values:["1"]表示查 public $Filters; /** - * @var integer 偏移量,默认为0,最大为2000 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 */ public $Offset; /** * @param UserInfo $Operator 操作人信息,UserId必填 - * @param integer $Limit 返回最大数量,最大为200 + * @param integer $Limit 指定每页多少条数据,单页最大200 * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 * @param array $Filters 查询的关键字段: Key:"RoleType",Values:["1"]查询系统角色,Values:["2"]查询自定义角色 Key:"RoleStatus",Values:["1"]查询启用角色,Values:["2"]查询禁用角色 Key:"IsGroupRole",Values:["0"],查询非集团角色,Values:["1"]表示查询集团角色 - * @param integer $Offset 偏移量,默认为0,最大为2000 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationRolesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationRolesResponse.php index 23bb0187c..cca42eb63 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationRolesResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeIntegrationRolesResponse.php @@ -20,10 +20,10 @@ use TencentCloud\Common\AbstractModel; /** * DescribeIntegrationRoles返回参数结构体 * - * @method integer getOffset() 获取偏移量,默认为0,最大为2000 - * @method void setOffset(integer $Offset) 设置偏移量,默认为0,最大为2000 - * @method integer getLimit() 获取返回最大数量,最大为200 - * @method void setLimit(integer $Limit) 设置返回最大数量,最大为200 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @method integer getLimit() 获取指定每页多少条数据,单页最大200 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,单页最大200 * @method integer getTotalCount() 获取符合查询条件的总的角色数 * @method void setTotalCount(integer $TotalCount) 设置符合查询条件的总的角色数 * @method array getIntegrateRoles() 获取企业角色信息列表 @@ -34,12 +34,12 @@ use TencentCloud\Common\AbstractModel; class DescribeIntegrationRolesResponse extends AbstractModel { /** - * @var integer 偏移量,默认为0,最大为2000 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 */ public $Offset; /** - * @var integer 返回最大数量,最大为200 + * @var integer 指定每页多少条数据,单页最大200 */ public $Limit; @@ -59,8 +59,8 @@ class DescribeIntegrationRolesResponse extends AbstractModel public $RequestId; /** - * @param integer $Offset 偏移量,默认为0,最大为2000 - * @param integer $Limit 返回最大数量,最大为200 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @param integer $Limit 指定每页多少条数据,单页最大200 * @param integer $TotalCount 符合查询条件的总的角色数 * @param array $IntegrateRoles 企业角色信息列表 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeOrganizationGroupOrganizationsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeOrganizationGroupOrganizationsRequest.php index b94bc14cd..a4c842014 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeOrganizationGroupOrganizationsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeOrganizationGroupOrganizationsRequest.php @@ -22,18 +22,18 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取操作人信息,userId必填 * @method void setOperator(UserInfo $Operator) 设置操作人信息,userId必填 - * @method integer getLimit() 获取单次查询成员企业最大返回数量 - * @method void setLimit(integer $Limit) 设置单次查询成员企业最大返回数量 - * @method integer getOffset() 获取页面偏移量 - * @method void setOffset(integer $Offset) 设置页面偏移量 + * @method integer getLimit() 获取指定每页多少条数据,单页最大1000 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,单页最大1000 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0 * @method string getName() 获取查询成员企业的企业名,模糊匹配 * @method void setName(string $Name) 设置查询成员企业的企业名,模糊匹配 * @method integer getStatus() 获取成员企业加入集团的当前状态:1-待授权;2-已授权待激活;3-拒绝授权;4-已解除;5-已加入 * @method void setStatus(integer $Status) 设置成员企业加入集团的当前状态:1-待授权;2-已授权待激活;3-拒绝授权;4-已解除;5-已加入 * @method boolean getExport() 获取是否导出当前成员企业数据 * @method void setExport(boolean $Export) 设置是否导出当前成员企业数据 - * @method string getId() 获取成员企业id - * @method void setId(string $Id) 设置成员企业id + * @method string getId() 获取成员企业机构 ID,在PC控制台 集团管理可获取 + * @method void setId(string $Id) 设置成员企业机构 ID,在PC控制台 集团管理可获取 */ class DescribeOrganizationGroupOrganizationsRequest extends AbstractModel { @@ -43,12 +43,12 @@ class DescribeOrganizationGroupOrganizationsRequest extends AbstractModel public $Operator; /** - * @var integer 单次查询成员企业最大返回数量 + * @var integer 指定每页多少条数据,单页最大1000 */ public $Limit; /** - * @var integer 页面偏移量 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0 */ public $Offset; @@ -68,18 +68,18 @@ class DescribeOrganizationGroupOrganizationsRequest extends AbstractModel public $Export; /** - * @var string 成员企业id + * @var string 成员企业机构 ID,在PC控制台 集团管理可获取 */ public $Id; /** * @param UserInfo $Operator 操作人信息,userId必填 - * @param integer $Limit 单次查询成员企业最大返回数量 - * @param integer $Offset 页面偏移量 + * @param integer $Limit 指定每页多少条数据,单页最大1000 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0 * @param string $Name 查询成员企业的企业名,模糊匹配 * @param integer $Status 成员企业加入集团的当前状态:1-待授权;2-已授权待激活;3-拒绝授权;4-已解除;5-已加入 * @param boolean $Export 是否导出当前成员企业数据 - * @param string $Id 成员企业id + * @param string $Id 成员企业机构 ID,在PC控制台 集团管理可获取 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeOrganizationGroupOrganizationsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeOrganizationGroupOrganizationsResponse.php index 0ae11a164..e49e186f1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeOrganizationGroupOrganizationsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeOrganizationGroupOrganizationsResponse.php @@ -28,17 +28,21 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setJoinedTotal(integer $JoinedTotal) 设置已授权待激活的企业数量 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getActivedTotal() 获取已加入的企业数量 + * @method integer getActivedTotal() 获取已加入的企业数量(废弃,请使用ActivatedTotal) 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setActivedTotal(integer $ActivedTotal) 设置已加入的企业数量 + * @method void setActivedTotal(integer $ActivedTotal) 设置已加入的企业数量(废弃,请使用ActivatedTotal) 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getExportUrl() 获取导出文件的url + * @method string getExportUrl() 获取如果入参Export为 true 时使用,表示导出Excel的url 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setExportUrl(string $ExportUrl) 设置导出文件的url + * @method void setExportUrl(string $ExportUrl) 设置如果入参Export为 true 时使用,表示导出Excel的url 注意:此字段可能返回 null,表示取不到有效值。 * @method array getList() 获取成员企业信息列表 注意:此字段可能返回 null,表示取不到有效值。 * @method void setList(array $List) 设置成员企业信息列表 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getActivatedTotal() 获取已加入的企业数量 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setActivatedTotal(integer $ActivatedTotal) 设置已加入的企业数量 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -58,13 +62,14 @@ class DescribeOrganizationGroupOrganizationsResponse extends AbstractModel public $JoinedTotal; /** - * @var integer 已加入的企业数量 + * @var integer 已加入的企业数量(废弃,请使用ActivatedTotal) 注意:此字段可能返回 null,表示取不到有效值。 + * @deprecated */ public $ActivedTotal; /** - * @var string 导出文件的url + * @var string 如果入参Export为 true 时使用,表示导出Excel的url 注意:此字段可能返回 null,表示取不到有效值。 */ public $ExportUrl; @@ -75,6 +80,12 @@ class DescribeOrganizationGroupOrganizationsResponse extends AbstractModel */ public $List; + /** + * @var integer 已加入的企业数量 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ActivatedTotal; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -85,11 +96,13 @@ class DescribeOrganizationGroupOrganizationsResponse extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $JoinedTotal 已授权待激活的企业数量 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $ActivedTotal 已加入的企业数量 + * @param integer $ActivedTotal 已加入的企业数量(废弃,请使用ActivatedTotal) 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $ExportUrl 导出文件的url + * @param string $ExportUrl 如果入参Export为 true 时使用,表示导出Excel的url 注意:此字段可能返回 null,表示取不到有效值。 * @param array $List 成员企业信息列表 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $ActivatedTotal 已加入的企业数量 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -131,6 +144,10 @@ class DescribeOrganizationGroupOrganizationsResponse extends AbstractModel } } + if (array_key_exists("ActivatedTotal",$param) and $param["ActivatedTotal"] !== null) { + $this->ActivatedTotal = $param["ActivatedTotal"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeThirdPartyAuthCodeRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeThirdPartyAuthCodeRequest.php index a74b9cfdf..e13a6fb8a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeThirdPartyAuthCodeRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeThirdPartyAuthCodeRequest.php @@ -22,6 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method string getAuthCode() 获取电子签小程序跳转客户小程序时携带的授权查看码 * @method void setAuthCode(string $AuthCode) 设置电子签小程序跳转客户小程序时携带的授权查看码 + * @method UserInfo getOperator() 获取操作人信息 + * @method void setOperator(UserInfo $Operator) 设置操作人信息 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class DescribeThirdPartyAuthCodeRequest extends AbstractModel { @@ -30,8 +34,20 @@ class DescribeThirdPartyAuthCodeRequest extends AbstractModel */ public $AuthCode; + /** + * @var UserInfo 操作人信息 + */ + public $Operator; + + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param string $AuthCode 电子签小程序跳转客户小程序时携带的授权查看码 + * @param UserInfo $Operator 操作人信息 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -49,5 +65,15 @@ class DescribeThirdPartyAuthCodeRequest extends AbstractModel if (array_key_exists("AuthCode",$param) and $param["AuthCode"] !== null) { $this->AuthCode = $param["AuthCode"]; } + + if (array_key_exists("Operator",$param) and $param["Operator"] !== null) { + $this->Operator = new UserInfo(); + $this->Operator->deserialize($param["Operator"]); + } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeUserAutoSignStatusRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeUserAutoSignStatusRequest.php index a1d7836fc..e7a5ca6b7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeUserAutoSignStatusRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeUserAutoSignStatusRequest.php @@ -26,8 +26,10 @@ use TencentCloud\Common\AbstractModel; E_PRESCRIPTION_AUTO_SIGN 电子处方 * @method void setSceneKey(string $SceneKey) 设置自动签场景: E_PRESCRIPTION_AUTO_SIGN 电子处方 - * @method UserThreeFactor getUserInfo() 获取查询开启状态的用户信息 - * @method void setUserInfo(UserThreeFactor $UserInfo) 设置查询开启状态的用户信息 + * @method UserThreeFactor getUserInfo() 获取要查询开启状态的用户信息 + * @method void setUserInfo(UserThreeFactor $UserInfo) 设置要查询开启状态的用户信息 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class DescribeUserAutoSignStatusRequest extends AbstractModel { @@ -43,15 +45,21 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 public $SceneKey; /** - * @var UserThreeFactor 查询开启状态的用户信息 + * @var UserThreeFactor 要查询开启状态的用户信息 */ public $UserInfo; + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param UserInfo $Operator 操作人信息,UserId必填 * @param string $SceneKey 自动签场景: E_PRESCRIPTION_AUTO_SIGN 电子处方 - * @param UserThreeFactor $UserInfo 查询开启状态的用户信息 + * @param UserThreeFactor $UserInfo 要查询开启状态的用户信息 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -79,5 +87,10 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 $this->UserInfo = new UserThreeFactor(); $this->UserInfo->deserialize($param["UserInfo"]); } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeUserAutoSignStatusResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeUserAutoSignStatusResponse.php index 5c5d50813..2bf857b33 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeUserAutoSignStatusResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DescribeUserAutoSignStatusResponse.php @@ -20,29 +20,38 @@ use TencentCloud\Common\AbstractModel; /** * DescribeUserAutoSignStatus返回参数结构体 * - * @method boolean getIsOpen() 获取是否已开通自动签 - * @method void setIsOpen(boolean $IsOpen) 设置是否已开通自动签 + * @method boolean getIsOpen() 获取查询用户是否已开通自动签 + * @method void setIsOpen(boolean $IsOpen) 设置查询用户是否已开通自动签 * @method integer getLicenseFrom() 获取自动签许可生效时间。当且仅当已开通自动签时有值。 + +值为unix时间戳,单位为秒。 * @method void setLicenseFrom(integer $LicenseFrom) 设置自动签许可生效时间。当且仅当已开通自动签时有值。 + +值为unix时间戳,单位为秒。 * @method integer getLicenseTo() 获取自动签许可到期时间。当且仅当已开通自动签时有值。 +值为unix时间戳,单位为秒。 * @method void setLicenseTo(integer $LicenseTo) 设置自动签许可到期时间。当且仅当已开通自动签时有值。 +值为unix时间戳,单位为秒。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class DescribeUserAutoSignStatusResponse extends AbstractModel { /** - * @var boolean 是否已开通自动签 + * @var boolean 查询用户是否已开通自动签 */ public $IsOpen; /** * @var integer 自动签许可生效时间。当且仅当已开通自动签时有值。 + +值为unix时间戳,单位为秒。 */ public $LicenseFrom; /** * @var integer 自动签许可到期时间。当且仅当已开通自动签时有值。 +值为unix时间戳,单位为秒。 */ public $LicenseTo; @@ -52,9 +61,12 @@ class DescribeUserAutoSignStatusResponse extends AbstractModel public $RequestId; /** - * @param boolean $IsOpen 是否已开通自动签 + * @param boolean $IsOpen 查询用户是否已开通自动签 * @param integer $LicenseFrom 自动签许可生效时间。当且仅当已开通自动签时有值。 + +值为unix时间戳,单位为秒。 * @param integer $LicenseTo 自动签许可到期时间。当且仅当已开通自动签时有值。 +值为unix时间戳,单位为秒。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DisableUserAutoSignRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DisableUserAutoSignRequest.php index ed47bb51a..fb0e19df5 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DisableUserAutoSignRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/DisableUserAutoSignRequest.php @@ -28,6 +28,8 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 E_PRESCRIPTION_AUTO_SIGN 电子处方 * @method UserThreeFactor getUserInfo() 获取关闭自动签的个人的三要素 * @method void setUserInfo(UserThreeFactor $UserInfo) 设置关闭自动签的个人的三要素 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class DisableUserAutoSignRequest extends AbstractModel { @@ -47,11 +49,17 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 */ public $UserInfo; + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param UserInfo $Operator 操作人信息,UserId必填 * @param string $SceneKey 自动签场景: E_PRESCRIPTION_AUTO_SIGN 电子处方 * @param UserThreeFactor $UserInfo 关闭自动签的个人的三要素 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -79,5 +87,10 @@ E_PRESCRIPTION_AUTO_SIGN 电子处方 $this->UserInfo = new UserThreeFactor(); $this->UserInfo->deserialize($param["UserInfo"]); } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/EmbedUrlOption.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/EmbedUrlOption.php new file mode 100644 index 000000000..b05b5de16 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/EmbedUrlOption.php @@ -0,0 +1,89 @@ +true:允许在合同详情页展示控件 +
    false:不允许在合同详情页展示控件 +
    默认false,合同详情页不展示控件 + * @method void setShowFlowDetailComponent(boolean $ShowFlowDetailComponent) 设置合同详情预览,允许展示控件信息 +
    true:允许在合同详情页展示控件 +
    false:不允许在合同详情页展示控件 +
    默认false,合同详情页不展示控件 + * @method boolean getShowTemplateComponent() 获取模板预览,允许展示模板控件信息 +
    true:允许在模板预览页展示控件 +
    false:不允许在模板预览页展示控件 +
    默认false,模板预览页不展示控件 + * @method void setShowTemplateComponent(boolean $ShowTemplateComponent) 设置模板预览,允许展示模板控件信息 +
    true:允许在模板预览页展示控件 +
    false:不允许在模板预览页展示控件 +
    默认false,模板预览页不展示控件 + */ +class EmbedUrlOption extends AbstractModel +{ + /** + * @var boolean 合同详情预览,允许展示控件信息 +
    true:允许在合同详情页展示控件 +
    false:不允许在合同详情页展示控件 +
    默认false,合同详情页不展示控件 + */ + public $ShowFlowDetailComponent; + + /** + * @var boolean 模板预览,允许展示模板控件信息 +
    true:允许在模板预览页展示控件 +
    false:不允许在模板预览页展示控件 +
    默认false,模板预览页不展示控件 + */ + public $ShowTemplateComponent; + + /** + * @param boolean $ShowFlowDetailComponent 合同详情预览,允许展示控件信息 +
    true:允许在合同详情页展示控件 +
    false:不允许在合同详情页展示控件 +
    默认false,合同详情页不展示控件 + * @param boolean $ShowTemplateComponent 模板预览,允许展示模板控件信息 +
    true:允许在模板预览页展示控件 +
    false:不允许在模板预览页展示控件 +
    默认false,模板预览页不展示控件 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("ShowFlowDetailComponent",$param) and $param["ShowFlowDetailComponent"] !== null) { + $this->ShowFlowDetailComponent = $param["ShowFlowDetailComponent"]; + } + + if (array_key_exists("ShowTemplateComponent",$param) and $param["ShowTemplateComponent"] !== null) { + $this->ShowTemplateComponent = $param["ShowTemplateComponent"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FileInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FileInfo.php index 007506a83..4fbcf7c4d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FileInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FileInfo.php @@ -20,19 +20,19 @@ use TencentCloud\Common\AbstractModel; /** * 模板中文件的信息结构 * - * @method string getFileId() 获取文件Id - * @method void setFileId(string $FileId) 设置文件Id + * @method string getFileId() 获取文件ID + * @method void setFileId(string $FileId) 设置文件ID * @method string getFileName() 获取文件名 * @method void setFileName(string $FileName) 设置文件名 * @method integer getFileSize() 获取文件大小,单位为Byte * @method void setFileSize(integer $FileSize) 设置文件大小,单位为Byte - * @method integer getCreatedOn() 获取文件上传时间,10位时间戳(精确到秒) - * @method void setCreatedOn(integer $CreatedOn) 设置文件上传时间,10位时间戳(精确到秒) + * @method integer getCreatedOn() 获取文件上传时间,格式为Unix标准时间戳(秒) + * @method void setCreatedOn(integer $CreatedOn) 设置文件上传时间,格式为Unix标准时间戳(秒) */ class FileInfo extends AbstractModel { /** - * @var string 文件Id + * @var string 文件ID */ public $FileId; @@ -47,15 +47,15 @@ class FileInfo extends AbstractModel public $FileSize; /** - * @var integer 文件上传时间,10位时间戳(精确到秒) + * @var integer 文件上传时间,格式为Unix标准时间戳(秒) */ public $CreatedOn; /** - * @param string $FileId 文件Id + * @param string $FileId 文件ID * @param string $FileName 文件名 * @param integer $FileSize 文件大小,单位为Byte - * @param integer $CreatedOn 文件上传时间,10位时间戳(精确到秒) + * @param integer $CreatedOn 文件上传时间,格式为Unix标准时间戳(秒) */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FillApproverInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FillApproverInfo.php index 1c878293b..ba2a2799c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FillApproverInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FillApproverInfo.php @@ -19,17 +19,26 @@ use TencentCloud\Common\AbstractModel; /** * 补充签署人信息 +- RecipientId 必须指定 +- 通过企业自定义账号ID补充签署人时,ApproverSource 和 CustomUserId 必填,ApproverSource取值:WEWORKAPP +- 通过二要素(姓名/手机号)补充签署人时,ApproverName 和 ApproverMobile 必填,ApproverSource设置为空 * * @method string getRecipientId() 获取对应模板中的参与方ID * @method void setRecipientId(string $RecipientId) 设置对应模板中的参与方ID * @method string getApproverSource() 获取签署人来源 WEWORKAPP: 企业微信 +
    仅【企微或签】时指定WEWORKAPP * @method void setApproverSource(string $ApproverSource) 设置签署人来源 WEWORKAPP: 企业微信 +
    仅【企微或签】时指定WEWORKAPP * @method string getCustomUserId() 获取企业自定义账号ID -WEWORKAPP场景下指企业自有应用获取企微明文的userid +
    当ApproverSource为WEWORKAPP的企微或签场景下,必须指企业自有应用获取企微明文的userid * @method void setCustomUserId(string $CustomUserId) 设置企业自定义账号ID -WEWORKAPP场景下指企业自有应用获取企微明文的userid +
    当ApproverSource为WEWORKAPP的企微或签场景下,必须指企业自有应用获取企微明文的userid + * @method string getApproverName() 获取补充签署人姓名 + * @method void setApproverName(string $ApproverName) 设置补充签署人姓名 + * @method string getApproverMobile() 获取补充签署人手机号 + * @method void setApproverMobile(string $ApproverMobile) 设置补充签署人手机号 */ class FillApproverInfo extends AbstractModel { @@ -41,21 +50,35 @@ class FillApproverInfo extends AbstractModel /** * @var string 签署人来源 WEWORKAPP: 企业微信 +
    仅【企微或签】时指定WEWORKAPP */ public $ApproverSource; /** * @var string 企业自定义账号ID -WEWORKAPP场景下指企业自有应用获取企微明文的userid +
    当ApproverSource为WEWORKAPP的企微或签场景下,必须指企业自有应用获取企微明文的userid */ public $CustomUserId; + /** + * @var string 补充签署人姓名 + */ + public $ApproverName; + + /** + * @var string 补充签署人手机号 + */ + public $ApproverMobile; + /** * @param string $RecipientId 对应模板中的参与方ID * @param string $ApproverSource 签署人来源 WEWORKAPP: 企业微信 +
    仅【企微或签】时指定WEWORKAPP * @param string $CustomUserId 企业自定义账号ID -WEWORKAPP场景下指企业自有应用获取企微明文的userid +
    当ApproverSource为WEWORKAPP的企微或签场景下,必须指企业自有应用获取企微明文的userid + * @param string $ApproverName 补充签署人姓名 + * @param string $ApproverMobile 补充签署人手机号 */ function __construct() { @@ -81,5 +104,13 @@ WEWORKAPP场景下指企业自有应用获取企微明文的userid if (array_key_exists("CustomUserId",$param) and $param["CustomUserId"] !== null) { $this->CustomUserId = $param["CustomUserId"]; } + + if (array_key_exists("ApproverName",$param) and $param["ApproverName"] !== null) { + $this->ApproverName = $param["ApproverName"]; + } + + if (array_key_exists("ApproverMobile",$param) and $param["ApproverMobile"] !== null) { + $this->ApproverMobile = $param["ApproverMobile"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowBrief.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowBrief.php index 7262676ec..31c46cb7d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowBrief.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowBrief.php @@ -62,9 +62,13 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setCreatedOn(integer $CreatedOn) 设置流程创建的时间戳,单位秒 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getFlowMessage() 获取拒签或者取消的原因描述 + * @method string getFlowMessage() 获取当合同被拒签或者取消后(当FlowStatus=3或者FlowStatus=6的时候) +此字段展示拒签或者取消的原因描述 + 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setFlowMessage(string $FlowMessage) 设置拒签或者取消的原因描述 + * @method void setFlowMessage(string $FlowMessage) 设置当合同被拒签或者取消后(当FlowStatus=3或者FlowStatus=6的时候) +此字段展示拒签或者取消的原因描述 + 注意:此字段可能返回 null,表示取不到有效值。 * @method string getCreator() 获取 合同发起人userId 注意:此字段可能返回 null,表示取不到有效值。 @@ -123,7 +127,9 @@ class FlowBrief extends AbstractModel public $CreatedOn; /** - * @var string 拒签或者取消的原因描述 + * @var string 当合同被拒签或者取消后(当FlowStatus=3或者FlowStatus=6的时候) +此字段展示拒签或者取消的原因描述 + 注意:此字段可能返回 null,表示取不到有效值。 */ public $FlowMessage; @@ -162,7 +168,9 @@ class FlowBrief extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $CreatedOn 流程创建的时间戳,单位秒 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $FlowMessage 拒签或者取消的原因描述 + * @param string $FlowMessage 当合同被拒签或者取消后(当FlowStatus=3或者FlowStatus=6的时候) +此字段展示拒签或者取消的原因描述 + 注意:此字段可能返回 null,表示取不到有效值。 * @param string $Creator 合同发起人userId 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowCreateApprover.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowCreateApprover.php index 2b7780489..f4a4114bc 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowCreateApprover.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowCreateApprover.php @@ -23,45 +23,93 @@ use TencentCloud\Common\AbstractModel; * @method integer getApproverType() 获取参与者类型: 0:企业 1:个人 -3:企业静默签署 -注:类型为3(企业静默签署)时,会默认完成该签署方的签署。静默签署仅进行盖章操作,不能是手写签名。 +3:企业自动签署 +注:类型为3(企业自动签署)时,会自动完成该签署方的签署。 +自动签署仅进行盖章操作,不能是手写签名。 +本方企业自动签署的签署人会默认是当前的发起人 +他方企业自动签署的签署人是自动签模板的他方企业授权人 * @method void setApproverType(integer $ApproverType) 设置参与者类型: 0:企业 1:个人 -3:企业静默签署 -注:类型为3(企业静默签署)时,会默认完成该签署方的签署。静默签署仅进行盖章操作,不能是手写签名。 - * @method string getOrganizationName() 获取如果签署方为企业,需要填入企业全称 - * @method void setOrganizationName(string $OrganizationName) 设置如果签署方为企业,需要填入企业全称 +3:企业自动签署 +注:类型为3(企业自动签署)时,会自动完成该签署方的签署。 +自动签署仅进行盖章操作,不能是手写签名。 +本方企业自动签署的签署人会默认是当前的发起人 +他方企业自动签署的签署人是自动签模板的他方企业授权人 + * @method string getOrganizationName() 获取签署人企业名称 +
    当approverType=1 或 approverType=3时,必须指定 + + + * @method void setOrganizationName(string $OrganizationName) 设置签署人企业名称 +
    当approverType=1 或 approverType=3时,必须指定 + + * @method string getApproverName() 获取签署方经办人姓名 +
    在未指定签署人电子签UserId情况下,为必填参数 * @method void setApproverName(string $ApproverName) 设置签署方经办人姓名 +
    在未指定签署人电子签UserId情况下,为必填参数 * @method string getApproverMobile() 获取签署方经办人手机号码 +
    在未指定签署人电子签UserId情况下,为必填参数 + * @method void setApproverMobile(string $ApproverMobile) 设置签署方经办人手机号码 - * @method string getApproverIdCardType() 获取签署方经办人证件类型ID_CARD 身份证 +
    在未指定签署人电子签UserId情况下,为必填参数 + + * @method string getApproverIdCardType() 获取签署人的证件类型 +ID_CARD 身份证 HONGKONG_AND_MACAO 港澳居民来往内地通行证 HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) - * @method void setApproverIdCardType(string $ApproverIdCardType) 设置签署方经办人证件类型ID_CARD 身份证 +OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @method void setApproverIdCardType(string $ApproverIdCardType) 设置签署人的证件类型 +ID_CARD 身份证 HONGKONG_AND_MACAO 港澳居民来往内地通行证 HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) - * @method string getApproverIdCardNumber() 获取签署方经办人证件号码 - * @method void setApproverIdCardNumber(string $ApproverIdCardNumber) 设置签署方经办人证件号码 +OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @method string getApproverIdCardNumber() 获取签署人证件号(长度不超过18位) + * @method void setApproverIdCardNumber(string $ApproverIdCardNumber) 设置签署人证件号(长度不超过18位) * @method string getRecipientId() 获取签署方经办人在模板中的参与方ID +
    模板发起合同时,该参数为必填项 +
    文件发起合同是,该参数无序传值 + * @method void setRecipientId(string $RecipientId) 设置签署方经办人在模板中的参与方ID +
    模板发起合同时,该参数为必填项 +
    文件发起合同是,该参数无序传值 + * @method array getVerifyChannel() 获取签署意愿确认渠道,WEIXINAPP:人脸识别 * @method void setVerifyChannel(array $VerifyChannel) 设置签署意愿确认渠道,WEIXINAPP:人脸识别 - * @method string getNotifyType() 获取是否发送短信,sms--短信通知,none--不通知,默认为sms;发起方=签署方时不发送短信 - * @method void setNotifyType(string $NotifyType) 设置是否发送短信,sms--短信通知,none--不通知,默认为sms;发起方=签署方时不发送短信 + * @method string getNotifyType() 获取是否发送短信 +
    sms--短信通知 +
    none--不通知 +
    默认为sms +
    发起方=签署方时不发送短信 + * @method void setNotifyType(string $NotifyType) 设置是否发送短信 +
    sms--短信通知 +
    none--不通知 +
    默认为sms +
    发起方=签署方时不发送短信 * @method boolean getIsFullText() 获取合同强制需要阅读全文,无需传此参数 * @method void setIsFullText(boolean $IsFullText) 设置合同强制需要阅读全文,无需传此参数 * @method integer getPreReadTime() 获取合同的强制预览时间:3~300s,未指定则按合同页数计算 * @method void setPreReadTime(integer $PreReadTime) 设置合同的强制预览时间:3~300s,未指定则按合同页数计算 - * @method string getUserId() 获取签署方经办人的用户ID,和签署方经办人姓名+手机号+证件必须有一个。 - * @method void setUserId(string $UserId) 设置签署方经办人的用户ID,和签署方经办人姓名+手机号+证件必须有一个。 + * @method string getUserId() 获取签署方经办人的电子签用户ID +
    当未指定签署人姓名+手机号的情况下,该字段毕传 + + * @method void setUserId(string $UserId) 设置签署方经办人的电子签用户ID +
    当未指定签署人姓名+手机号的情况下,该字段毕传 + * @method boolean getRequired() 获取当前只支持true,默认为true * @method void setRequired(boolean $Required) 设置当前只支持true,默认为true - * @method string getApproverSource() 获取签署人用户来源,企微侧用户请传入:WEWORKAPP - * @method void setApproverSource(string $ApproverSource) 设置签署人用户来源,企微侧用户请传入:WEWORKAPP - * @method string getCustomApproverTag() 获取客户自定义签署人标识,64位长度,保证唯一。非企微场景不使用此字段 - * @method void setCustomApproverTag(string $CustomApproverTag) 设置客户自定义签署人标识,64位长度,保证唯一。非企微场景不使用此字段 + * @method string getApproverSource() 获取签署人用户来源 +
    企微侧用户请传入:WEWORKAPP + * @method void setApproverSource(string $ApproverSource) 设置签署人用户来源 +
    企微侧用户请传入:WEWORKAPP + * @method string getCustomApproverTag() 获取企业签署方或签标识,客户自定义,64位长度 +
    用于发起含有或签签署人的合同。或签参与人必须有此字段。 +
    合同内不同或签参与人CustomApproverTag需要保证唯一。 +
    如果或签签署人为本方企微参与人,ApproverSource参数需要指定WEWORKAPP + * @method void setCustomApproverTag(string $CustomApproverTag) 设置企业签署方或签标识,客户自定义,64位长度 +
    用于发起含有或签签署人的合同。或签参与人必须有此字段。 +
    合同内不同或签参与人CustomApproverTag需要保证唯一。 +
    如果或签签署人为本方企微参与人,ApproverSource参数需要指定WEWORKAPP * @method RegisterInfo getRegisterInfo() 获取快速注册相关信息,目前暂未开放! * @method void setRegisterInfo(RegisterInfo $RegisterInfo) 设置快速注册相关信息,目前暂未开放! * @method ApproverOption getApproverOption() 获取签署人个性化能力值 @@ -74,12 +122,22 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) * @method void setSignId(string $SignId) 设置签署ID - 发起流程时系统自动补充 - 创建签署链接时,可以通过查询详情接口获得签署人的SignId,然后可传入此值为该签署人创建签署链接,无需再传姓名、手机号、证件号等其他信息 - * @method boolean getApproverNeedSignReview() 获取当前签署方进行签署操作是否需要企业内部审批,true 则为需要。为个人签署方时则由发起方企业审核。 - * @method void setApproverNeedSignReview(boolean $ApproverNeedSignReview) 设置当前签署方进行签署操作是否需要企业内部审批,true 则为需要。为个人签署方时则由发起方企业审核。 + * @method boolean getApproverNeedSignReview() 获取当前签署方进行签署操作是否需要企业内部审批 +
    true 则为需要 +
    false,无序企业内部审批(默认) +
    为个人签署方时则由发起方企业审核。 + * @method void setApproverNeedSignReview(boolean $ApproverNeedSignReview) 设置当前签署方进行签署操作是否需要企业内部审批 +
    true 则为需要 +
    false,无序企业内部审批(默认) +
    为个人签署方时则由发起方企业审核。 * @method array getSignComponents() 获取签署人签署控件 +
    文件发起时,可通过该参数为签署人指定签署控件类型以及位置 * @method void setSignComponents(array $SignComponents) 设置签署人签署控件 +
    文件发起时,可通过该参数为签署人指定签署控件类型以及位置 * @method array getComponents() 获取签署人填写控件 +
    文件发起时,可通过该参数为签署人指定填写控件类型以及位置 * @method void setComponents(array $Components) 设置签署人填写控件 +
    文件发起时,可通过该参数为签署人指定填写控件类型以及位置 * @method array getComponentLimitType() 获取签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 HANDWRITE – 手写签名 OCR_ESIGN -- AI智能识别手写签名 @@ -90,6 +148,10 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) OCR_ESIGN -- AI智能识别手写签名 ESIGN -- 个人印章类型 SYSTEM_ESIGN -- 系统签名(该类型可以在用户签署时根据用户姓名一键生成一个签名来进行签署) + * @method array getApproverVerifyTypes() 获取合同查看方式
    默认1 -实名查看
    2-短信验证码查看(企业签署方暂不支持该方式) + * @method void setApproverVerifyTypes(array $ApproverVerifyTypes) 设置合同查看方式
    默认1 -实名查看
    2-短信验证码查看(企业签署方暂不支持该方式) + * @method array getApproverSignTypes() 获取合同签署方式(默认1,2)
    1-人脸认证
    2-签署密码
    3-运营商三要素 + * @method void setApproverSignTypes(array $ApproverSignTypes) 设置合同签署方式(默认1,2)
    1-人脸认证
    2-签署密码
    3-运营商三要素 */ class FlowCreateApprover extends AbstractModel { @@ -97,40 +159,54 @@ class FlowCreateApprover extends AbstractModel * @var integer 参与者类型: 0:企业 1:个人 -3:企业静默签署 -注:类型为3(企业静默签署)时,会默认完成该签署方的签署。静默签署仅进行盖章操作,不能是手写签名。 +3:企业自动签署 +注:类型为3(企业自动签署)时,会自动完成该签署方的签署。 +自动签署仅进行盖章操作,不能是手写签名。 +本方企业自动签署的签署人会默认是当前的发起人 +他方企业自动签署的签署人是自动签模板的他方企业授权人 */ public $ApproverType; /** - * @var string 如果签署方为企业,需要填入企业全称 + * @var string 签署人企业名称 +
    当approverType=1 或 approverType=3时,必须指定 + + */ public $OrganizationName; /** * @var string 签署方经办人姓名 +
    在未指定签署人电子签UserId情况下,为必填参数 */ public $ApproverName; /** * @var string 签署方经办人手机号码 +
    在未指定签署人电子签UserId情况下,为必填参数 + */ public $ApproverMobile; /** - * @var string 签署方经办人证件类型ID_CARD 身份证 + * @var string 签署人的证件类型 +ID_CARD 身份证 HONGKONG_AND_MACAO 港澳居民来往内地通行证 HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) +OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) */ public $ApproverIdCardType; /** - * @var string 签署方经办人证件号码 + * @var string 签署人证件号(长度不超过18位) */ public $ApproverIdCardNumber; /** * @var string 签署方经办人在模板中的参与方ID +
    模板发起合同时,该参数为必填项 +
    文件发起合同是,该参数无序传值 + */ public $RecipientId; @@ -140,7 +216,11 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) public $VerifyChannel; /** - * @var string 是否发送短信,sms--短信通知,none--不通知,默认为sms;发起方=签署方时不发送短信 + * @var string 是否发送短信 +
    sms--短信通知 +
    none--不通知 +
    默认为sms +
    发起方=签署方时不发送短信 */ public $NotifyType; @@ -155,7 +235,9 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) public $PreReadTime; /** - * @var string 签署方经办人的用户ID,和签署方经办人姓名+手机号+证件必须有一个。 + * @var string 签署方经办人的电子签用户ID +
    当未指定签署人姓名+手机号的情况下,该字段毕传 + */ public $UserId; @@ -165,12 +247,16 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) public $Required; /** - * @var string 签署人用户来源,企微侧用户请传入:WEWORKAPP + * @var string 签署人用户来源 +
    企微侧用户请传入:WEWORKAPP */ public $ApproverSource; /** - * @var string 客户自定义签署人标识,64位长度,保证唯一。非企微场景不使用此字段 + * @var string 企业签署方或签标识,客户自定义,64位长度 +
    用于发起含有或签签署人的合同。或签参与人必须有此字段。 +
    合同内不同或签参与人CustomApproverTag需要保证唯一。 +
    如果或签签署人为本方企微参与人,ApproverSource参数需要指定WEWORKAPP */ public $CustomApproverTag; @@ -198,17 +284,22 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) public $SignId; /** - * @var boolean 当前签署方进行签署操作是否需要企业内部审批,true 则为需要。为个人签署方时则由发起方企业审核。 + * @var boolean 当前签署方进行签署操作是否需要企业内部审批 +
    true 则为需要 +
    false,无序企业内部审批(默认) +
    为个人签署方时则由发起方企业审核。 */ public $ApproverNeedSignReview; /** * @var array 签署人签署控件 +
    文件发起时,可通过该参数为签署人指定签署控件类型以及位置 */ public $SignComponents; /** * @var array 签署人填写控件 +
    文件发起时,可通过该参数为签署人指定填写控件类型以及位置 */ public $Components; @@ -221,42 +312,83 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) */ public $ComponentLimitType; + /** + * @var array 合同查看方式
    默认1 -实名查看
    2-短信验证码查看(企业签署方暂不支持该方式) + */ + public $ApproverVerifyTypes; + + /** + * @var array 合同签署方式(默认1,2)
    1-人脸认证
    2-签署密码
    3-运营商三要素 + */ + public $ApproverSignTypes; + /** * @param integer $ApproverType 参与者类型: 0:企业 1:个人 -3:企业静默签署 -注:类型为3(企业静默签署)时,会默认完成该签署方的签署。静默签署仅进行盖章操作,不能是手写签名。 - * @param string $OrganizationName 如果签署方为企业,需要填入企业全称 +3:企业自动签署 +注:类型为3(企业自动签署)时,会自动完成该签署方的签署。 +自动签署仅进行盖章操作,不能是手写签名。 +本方企业自动签署的签署人会默认是当前的发起人 +他方企业自动签署的签署人是自动签模板的他方企业授权人 + * @param string $OrganizationName 签署人企业名称 +
    当approverType=1 或 approverType=3时,必须指定 + + * @param string $ApproverName 签署方经办人姓名 +
    在未指定签署人电子签UserId情况下,为必填参数 * @param string $ApproverMobile 签署方经办人手机号码 - * @param string $ApproverIdCardType 签署方经办人证件类型ID_CARD 身份证 +
    在未指定签署人电子签UserId情况下,为必填参数 + + * @param string $ApproverIdCardType 签署人的证件类型 +ID_CARD 身份证 HONGKONG_AND_MACAO 港澳居民来往内地通行证 HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) - * @param string $ApproverIdCardNumber 签署方经办人证件号码 +OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @param string $ApproverIdCardNumber 签署人证件号(长度不超过18位) * @param string $RecipientId 签署方经办人在模板中的参与方ID +
    模板发起合同时,该参数为必填项 +
    文件发起合同是,该参数无序传值 + * @param array $VerifyChannel 签署意愿确认渠道,WEIXINAPP:人脸识别 - * @param string $NotifyType 是否发送短信,sms--短信通知,none--不通知,默认为sms;发起方=签署方时不发送短信 + * @param string $NotifyType 是否发送短信 +
    sms--短信通知 +
    none--不通知 +
    默认为sms +
    发起方=签署方时不发送短信 * @param boolean $IsFullText 合同强制需要阅读全文,无需传此参数 * @param integer $PreReadTime 合同的强制预览时间:3~300s,未指定则按合同页数计算 - * @param string $UserId 签署方经办人的用户ID,和签署方经办人姓名+手机号+证件必须有一个。 + * @param string $UserId 签署方经办人的电子签用户ID +
    当未指定签署人姓名+手机号的情况下,该字段毕传 + * @param boolean $Required 当前只支持true,默认为true - * @param string $ApproverSource 签署人用户来源,企微侧用户请传入:WEWORKAPP - * @param string $CustomApproverTag 客户自定义签署人标识,64位长度,保证唯一。非企微场景不使用此字段 + * @param string $ApproverSource 签署人用户来源 +
    企微侧用户请传入:WEWORKAPP + * @param string $CustomApproverTag 企业签署方或签标识,客户自定义,64位长度 +
    用于发起含有或签签署人的合同。或签参与人必须有此字段。 +
    合同内不同或签参与人CustomApproverTag需要保证唯一。 +
    如果或签签署人为本方企微参与人,ApproverSource参数需要指定WEWORKAPP * @param RegisterInfo $RegisterInfo 快速注册相关信息,目前暂未开放! * @param ApproverOption $ApproverOption 签署人个性化能力值 * @param string $JumpUrl 签署完前端跳转的url,暂未使用 * @param string $SignId 签署ID - 发起流程时系统自动补充 - 创建签署链接时,可以通过查询详情接口获得签署人的SignId,然后可传入此值为该签署人创建签署链接,无需再传姓名、手机号、证件号等其他信息 - * @param boolean $ApproverNeedSignReview 当前签署方进行签署操作是否需要企业内部审批,true 则为需要。为个人签署方时则由发起方企业审核。 + * @param boolean $ApproverNeedSignReview 当前签署方进行签署操作是否需要企业内部审批 +
    true 则为需要 +
    false,无序企业内部审批(默认) +
    为个人签署方时则由发起方企业审核。 * @param array $SignComponents 签署人签署控件 +
    文件发起时,可通过该参数为签署人指定签署控件类型以及位置 * @param array $Components 签署人填写控件 +
    文件发起时,可通过该参数为签署人指定填写控件类型以及位置 * @param array $ComponentLimitType 签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 HANDWRITE – 手写签名 OCR_ESIGN -- AI智能识别手写签名 ESIGN -- 个人印章类型 SYSTEM_ESIGN -- 系统签名(该类型可以在用户签署时根据用户姓名一键生成一个签名来进行签署) + * @param array $ApproverVerifyTypes 合同查看方式
    默认1 -实名查看
    2-短信验证码查看(企业签署方暂不支持该方式) + * @param array $ApproverSignTypes 合同签署方式(默认1,2)
    1-人脸认证
    2-签署密码
    3-运营商三要素 */ function __construct() { @@ -374,5 +506,13 @@ HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证(格式同居民身份证) if (array_key_exists("ComponentLimitType",$param) and $param["ComponentLimitType"] !== null) { $this->ComponentLimitType = $param["ComponentLimitType"]; } + + if (array_key_exists("ApproverVerifyTypes",$param) and $param["ApproverVerifyTypes"] !== null) { + $this->ApproverVerifyTypes = $param["ApproverVerifyTypes"]; + } + + if (array_key_exists("ApproverSignTypes",$param) and $param["ApproverSignTypes"] !== null) { + $this->ApproverSignTypes = $param["ApproverSignTypes"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowGroupInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowGroupInfo.php index 5e8ffb1a0..6a8faa335 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowGroupInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FlowGroupInfo.php @@ -40,8 +40,8 @@ use TencentCloud\Common\AbstractModel; * @method void setUserData(string $UserData) 设置第三方平台传递过来的信息, 限制1024字符 格式必须是base64的 * @method boolean getUnordered() 获取合同(流程)的签署是否是无序签, true - 无序。 false - 有序, 默认 * @method void setUnordered(boolean $Unordered) 设置合同(流程)的签署是否是无序签, true - 无序。 false - 有序, 默认 - * @method array getComponents() 获取合同(流程)发起方的填写控件,用户 - * @method void setComponents(array $Components) 设置合同(流程)发起方的填写控件,用户 + * @method array getComponents() 获取合同(流程)发起方的填写控件, 由发起方进行在发起时进行填充 + * @method void setComponents(array $Components) 设置合同(流程)发起方的填写控件, 由发起方进行在发起时进行填充 * @method boolean getNeedSignReview() 获取本企业(发起方)是否需要签署审批,若需要审批则只允许查看不允许签署,需要您调用接口CreateFlowSignReview提交审批结果。 * @method void setNeedSignReview(boolean $NeedSignReview) 设置本企业(发起方)是否需要签署审批,若需要审批则只允许查看不允许签署,需要您调用接口CreateFlowSignReview提交审批结果。 * @method string getAutoSignScene() 获取本企业(发起方)自动签署,需要您在发起合同时给印章控件指定自动签的印章。 @@ -100,7 +100,7 @@ class FlowGroupInfo extends AbstractModel public $Unordered; /** - * @var array 合同(流程)发起方的填写控件,用户 + * @var array 合同(流程)发起方的填写控件, 由发起方进行在发起时进行填充 */ public $Components; @@ -125,7 +125,7 @@ class FlowGroupInfo extends AbstractModel * @param string $CallbackUrl 合同(流程)的回调地址 * @param string $UserData 第三方平台传递过来的信息, 限制1024字符 格式必须是base64的 * @param boolean $Unordered 合同(流程)的签署是否是无序签, true - 无序。 false - 有序, 默认 - * @param array $Components 合同(流程)发起方的填写控件,用户 + * @param array $Components 合同(流程)发起方的填写控件, 由发起方进行在发起时进行填充 * @param boolean $NeedSignReview 本企业(发起方)是否需要签署审批,若需要审批则只允许查看不允许签署,需要您调用接口CreateFlowSignReview提交审批结果。 * @param string $AutoSignScene 本企业(发起方)自动签署,需要您在发起合同时给印章控件指定自动签的印章。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FormField.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FormField.php index 88498e656..07e6c1549 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FormField.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/FormField.php @@ -20,8 +20,72 @@ use TencentCloud\Common\AbstractModel; /** * 电子文档的控件填充信息。按照控件类型进行相应的填充。 +当控件的 ComponentType='TEXT'时,FormField.ComponentValue填入文本内容 +``` +FormFiled输入示例: +{ + "ComponentId": "componentId1", + "ComponentValue": "文本内容" +} +``` +当控件的 ComponentType='MULTI_LINE_TEXT'时,FormField.ComponentValue填入文本内容,支持自动换行。 +``` +FormFiled输入示例: +{ + "ComponentId": "componentId1", + "ComponentValue": "多行文本内容" +} +``` +当控件的 ComponentType='CHECK_BOX'时,FormField.ComponentValue填入true或false文本 +``` +FormFiled输入示例: +{ + "ComponentId": "componentId1", + "ComponentValue": "true" +} +``` +当控件的 ComponentType='FILL_IMAGE'时,FormField.ComponentValue填入图片的资源ID +``` +FormFiled输入示例: +{ + "ComponentId": "componentId1", + "ComponentValue": "yDwhsxxxxxxxxxxxxxxxxxxxxxxxxxxx" +} +``` +当控件的 ComponentType='ATTACHMENT'时,FormField.ComponentValue填入附件图片的资源ID列表,以逗号分隔,单个附件控件最多支持6个资源ID; +``` +FormFiled输入示例: +{ + "ComponentId": "componentId1", + "ComponentValue": "yDwhsxxxxxxxxxxxxxxxxxxxxxxxxxx1,yDwhsxxxxxxxxxxxxxxxxxxxxxxxxxx2,yDwhsxxxxxxxxxxxxxxxxxxxxxxxxxx3" +} +``` +当控件的 ComponentType='SELECTOR'时,FormField.ComponentValue填入选择的选项内容; +``` +FormFiled输入示例: +{ + "ComponentId": "componentId1", + "ComponentValue": "选择的内容" +} +``` +当控件的 ComponentType='DATE'时,FormField.ComponentValue填入日期内容; +``` +FormFiled输入示例: +{ + "ComponentId": "componentId1", + "ComponentValue": "2023年01月01日" +} +``` +当控件的 ComponentType='DISTRICT'时,FormField.ComponentValue填入省市区内容; +``` +FormFiled输入示例: +{ + "ComponentId": "componentId1", + "ComponentValue": "广东省深圳市福田区" +} +``` 【数据表格传参说明】 -当模板的 ComponentType='DYNAMIC_TABLE'时,FormField.ComponentValue需要传递json格式的字符串参数,用于确定表头&填充数据表格(支持内容的单元格合并) +当控件的 ComponentType='DYNAMIC_TABLE'时,FormField.ComponentValue需要传递json格式的字符串参数,用于确定表头&填充数据表格(支持内容的单元格合并) 输入示例1: ``` diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GetTaskResultApiRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GetTaskResultApiRequest.php index 21ca3d358..ec8f89c99 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GetTaskResultApiRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GetTaskResultApiRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * GetTaskResultApi请求参数结构体 * - * @method string getTaskId() 获取任务Id,通过CreateConvertTaskApi得到 - * @method void setTaskId(string $TaskId) 设置任务Id,通过CreateConvertTaskApi得到 + * @method string getTaskId() 获取任务Id,通过接口CreateConvertTaskApi或CreateMergeFileTask得到的返回任务id + * @method void setTaskId(string $TaskId) 设置任务Id,通过接口CreateConvertTaskApi或CreateMergeFileTask得到的返回任务id * @method UserInfo getOperator() 获取操作人信息,UserId必填 * @method void setOperator(UserInfo $Operator) 设置操作人信息,UserId必填 * @method Agent getAgent() 获取应用号信息 @@ -32,7 +32,7 @@ use TencentCloud\Common\AbstractModel; class GetTaskResultApiRequest extends AbstractModel { /** - * @var string 任务Id,通过CreateConvertTaskApi得到 + * @var string 任务Id,通过接口CreateConvertTaskApi或CreateMergeFileTask得到的返回任务id */ public $TaskId; @@ -54,7 +54,7 @@ class GetTaskResultApiRequest extends AbstractModel public $Organization; /** - * @param string $TaskId 任务Id,通过CreateConvertTaskApi得到 + * @param string $TaskId 任务Id,通过接口CreateConvertTaskApi或CreateMergeFileTask得到的返回任务id * @param UserInfo $Operator 操作人信息,UserId必填 * @param Agent $Agent 应用号信息 * @param OrganizationInfo $Organization 暂未开放 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GetTaskResultApiResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GetTaskResultApiResponse.php index 14ea8fb6b..7744076fd 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GetTaskResultApiResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GetTaskResultApiResponse.php @@ -50,8 +50,8 @@ TaskEnd - 任务处理完成 DownloadFailed - 下载失败 ProcessFailed - 转换失败 ProcessTimeout - 转换文件超时 - * @method string getResourceId() 获取资源Id,也是FileId,用于文件发起使用 - * @method void setResourceId(string $ResourceId) 设置资源Id,也是FileId,用于文件发起使用 + * @method string getResourceId() 获取资源Id,也是FileId,用于文件发起时使用 + * @method void setResourceId(string $ResourceId) 设置资源Id,也是FileId,用于文件发起时使用 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -85,7 +85,7 @@ ProcessTimeout - 转换文件超时 public $TaskMessage; /** - * @var string 资源Id,也是FileId,用于文件发起使用 + * @var string 资源Id,也是FileId,用于文件发起时使用 */ public $ResourceId; @@ -110,7 +110,7 @@ TaskEnd - 任务处理完成 DownloadFailed - 下载失败 ProcessFailed - 转换失败 ProcessTimeout - 转换文件超时 - * @param string $ResourceId 资源Id,也是FileId,用于文件发起使用 + * @param string $ResourceId 资源Id,也是FileId,用于文件发起时使用 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GroupOrganization.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GroupOrganization.php index b8fbb649b..c71d655fa 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GroupOrganization.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/GroupOrganization.php @@ -64,9 +64,9 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setJoinTime(integer $JoinTime) 设置成员企业加入集团时间,时间戳,单位秒 注意:此字段可能返回 null,表示取不到有效值。 - * @method boolean getFlowEngineEnable() 获取是否使用审批流引擎,true-是,false-否 + * @method boolean getFlowEngineEnable() 获取是否使用自建审批流引擎(即不是企微审批流引擎),true-是,false-否 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setFlowEngineEnable(boolean $FlowEngineEnable) 设置是否使用审批流引擎,true-是,false-否 + * @method void setFlowEngineEnable(boolean $FlowEngineEnable) 设置是否使用自建审批流引擎(即不是企微审批流引擎),true-是,false-否 注意:此字段可能返回 null,表示取不到有效值。 */ class GroupOrganization extends AbstractModel @@ -138,7 +138,7 @@ class GroupOrganization extends AbstractModel public $JoinTime; /** - * @var boolean 是否使用审批流引擎,true-是,false-否 + * @var boolean 是否使用自建审批流引擎(即不是企微审批流引擎),true-是,false-否 注意:此字段可能返回 null,表示取不到有效值。 */ public $FlowEngineEnable; @@ -166,7 +166,7 @@ class GroupOrganization extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $JoinTime 成员企业加入集团时间,时间戳,单位秒 注意:此字段可能返回 null,表示取不到有效值。 - * @param boolean $FlowEngineEnable 是否使用审批流引擎,true-是,false-否 + * @param boolean $FlowEngineEnable 是否使用自建审批流引擎(即不是企微审批流引擎),true-是,false-否 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ModifyApplicationCallbackInfoRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ModifyApplicationCallbackInfoRequest.php index 4c295415a..4454ea7b1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ModifyApplicationCallbackInfoRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ModifyApplicationCallbackInfoRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setOperateType(integer $OperateType) 设置操作类型:1-新增,2-删除 * @method CallbackInfo getCallbackInfo() 获取回调信息 * @method void setCallbackInfo(CallbackInfo $CallbackInfo) 设置回调信息 + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class ModifyApplicationCallbackInfoRequest extends AbstractModel { @@ -44,10 +46,16 @@ class ModifyApplicationCallbackInfoRequest extends AbstractModel */ public $CallbackInfo; + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param UserInfo $Operator 调用方用户信息,userId 必填 * @param integer $OperateType 操作类型:1-新增,2-删除 * @param CallbackInfo $CallbackInfo 回调信息 + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -75,5 +83,10 @@ class ModifyApplicationCallbackInfoRequest extends AbstractModel $this->CallbackInfo = new CallbackInfo(); $this->CallbackInfo->deserialize($param["CallbackInfo"]); } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ModifyIntegrationDepartmentRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ModifyIntegrationDepartmentRequest.php index 56dbfd4e8..6b29e2fe7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ModifyIntegrationDepartmentRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ModifyIntegrationDepartmentRequest.php @@ -22,10 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method UserInfo getOperator() 获取操作人信息,UserId必填且需拥有组织架构管理权限 * @method void setOperator(UserInfo $Operator) 设置操作人信息,UserId必填且需拥有组织架构管理权限 - * @method string getDeptId() 获取电子签部门ID - * @method void setDeptId(string $DeptId) 设置电子签部门ID - * @method string getParentDeptId() 获取电子签父部门ID - * @method void setParentDeptId(string $ParentDeptId) 设置电子签父部门ID + * @method string getDeptId() 获取电子签部门ID,通过DescribeIntegrationDepartments接口可以获取 + * @method void setDeptId(string $DeptId) 设置电子签部门ID,通过DescribeIntegrationDepartments接口可以获取 + * @method string getParentDeptId() 获取电子签父部门ID,通过DescribeIntegrationDepartments接口可以获取 + * @method void setParentDeptId(string $ParentDeptId) 设置电子签父部门ID,通过DescribeIntegrationDepartments接口可以获取 * @method string getDeptName() 获取部门名称,不超过50个字符 * @method void setDeptName(string $DeptName) 设置部门名称,不超过50个字符 * @method string getDeptOpenId() 获取客户系统部门ID,不超过64个字符 @@ -41,12 +41,12 @@ class ModifyIntegrationDepartmentRequest extends AbstractModel public $Operator; /** - * @var string 电子签部门ID + * @var string 电子签部门ID,通过DescribeIntegrationDepartments接口可以获取 */ public $DeptId; /** - * @var string 电子签父部门ID + * @var string 电子签父部门ID,通过DescribeIntegrationDepartments接口可以获取 */ public $ParentDeptId; @@ -67,8 +67,8 @@ class ModifyIntegrationDepartmentRequest extends AbstractModel /** * @param UserInfo $Operator 操作人信息,UserId必填且需拥有组织架构管理权限 - * @param string $DeptId 电子签部门ID - * @param string $ParentDeptId 电子签父部门ID + * @param string $DeptId 电子签部门ID,通过DescribeIntegrationDepartments接口可以获取 + * @param string $ParentDeptId 电子签父部门ID,通过DescribeIntegrationDepartments接口可以获取 * @param string $DeptName 部门名称,不超过50个字符 * @param string $DeptOpenId 客户系统部门ID,不超过64个字符 * @param integer $OrderNo 排序号,1~30000范围内 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/PdfVerifyResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/PdfVerifyResult.php index 001a32e72..abf456aa9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/PdfVerifyResult.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/PdfVerifyResult.php @@ -32,10 +32,10 @@ use TencentCloud\Common\AbstractModel; * @method void setSignAlgorithm(string $SignAlgorithm) 设置签名算法 * @method string getCertSn() 获取签名证书序列号 * @method void setCertSn(string $CertSn) 设置签名证书序列号 - * @method integer getCertNotBefore() 获取证书起始时间戳,单位秒 - * @method void setCertNotBefore(integer $CertNotBefore) 设置证书起始时间戳,单位秒 - * @method integer getCertNotAfter() 获取证书过期时间戳,单位秒 - * @method void setCertNotAfter(integer $CertNotAfter) 设置证书过期时间戳,单位秒 + * @method integer getCertNotBefore() 获取证书起始时间戳,单位毫秒 + * @method void setCertNotBefore(integer $CertNotBefore) 设置证书起始时间戳,单位毫秒 + * @method integer getCertNotAfter() 获取证书过期时间戳,单位毫秒 + * @method void setCertNotAfter(integer $CertNotAfter) 设置证书过期时间戳,单位毫秒 * @method float getComponentPosX() 获取签名域横坐标,单位pt * @method void setComponentPosX(float $ComponentPosX) 设置签名域横坐标,单位pt * @method float getComponentPosY() 获取签名域纵坐标,单位pt @@ -80,12 +80,12 @@ class PdfVerifyResult extends AbstractModel public $CertSn; /** - * @var integer 证书起始时间戳,单位秒 + * @var integer 证书起始时间戳,单位毫秒 */ public $CertNotBefore; /** - * @var integer 证书过期时间戳,单位秒 + * @var integer 证书过期时间戳,单位毫秒 */ public $CertNotAfter; @@ -121,8 +121,8 @@ class PdfVerifyResult extends AbstractModel * @param integer $SignTime 签署时间戳,单位秒 * @param string $SignAlgorithm 签名算法 * @param string $CertSn 签名证书序列号 - * @param integer $CertNotBefore 证书起始时间戳,单位秒 - * @param integer $CertNotAfter 证书过期时间戳,单位秒 + * @param integer $CertNotBefore 证书起始时间戳,单位毫秒 + * @param integer $CertNotAfter 证书过期时间戳,单位毫秒 * @param float $ComponentPosX 签名域横坐标,单位pt * @param float $ComponentPosY 签名域纵坐标,单位pt * @param float $ComponentWidth 签名域宽度,单位pt diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/Recipient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/Recipient.php index f493cf2bd..3d8dae45b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/Recipient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/Recipient.php @@ -18,44 +18,68 @@ namespace TencentCloud\Ess\V20201111\Models; use TencentCloud\Common\AbstractModel; /** - * 签署参与者信息 + * 流程中参与方的信息结构 * - * @method string getRecipientId() 获取签署参与者ID - * @method void setRecipientId(string $RecipientId) 设置签署参与者ID - * @method string getRecipientType() 获取参与者类型。默认为空。ENTERPRISE-企业;INDIVIDUAL-个人;PROMOTER-发起方 - * @method void setRecipientType(string $RecipientType) 设置参与者类型。默认为空。ENTERPRISE-企业;INDIVIDUAL-个人;PROMOTER-发起方 + * @method string getRecipientId() 获取签署参与者ID,唯一标识 + * @method void setRecipientId(string $RecipientId) 设置签署参与者ID,唯一标识 + * @method string getRecipientType() 获取参与者类型。 +默认为空。 +ENTERPRISE-企业; +INDIVIDUAL-个人; +PROMOTER-发起方 + * @method void setRecipientType(string $RecipientType) 设置参与者类型。 +默认为空。 +ENTERPRISE-企业; +INDIVIDUAL-个人; +PROMOTER-发起方 * @method string getDescription() 获取描述信息 * @method void setDescription(string $Description) 设置描述信息 * @method string getRoleName() 获取角色名称 * @method void setRoleName(string $RoleName) 设置角色名称 - * @method boolean getRequireValidation() 获取是否需要验证,默认为false - * @method void setRequireValidation(boolean $RequireValidation) 设置是否需要验证,默认为false - * @method boolean getRequireSign() 获取是否需要签署,默认为true - * @method void setRequireSign(boolean $RequireSign) 设置是否需要签署,默认为true - * @method integer getRoutingOrder() 获取添加序列,0~N - * @method void setRoutingOrder(integer $RoutingOrder) 设置添加序列,0~N - * @method boolean getRequireDelivery() 获取是否需要发送,默认为true - * @method void setRequireDelivery(boolean $RequireDelivery) 设置是否需要发送,默认为true + * @method boolean getRequireValidation() 获取是否需要验证, +默认为false-不需要验证 + * @method void setRequireValidation(boolean $RequireValidation) 设置是否需要验证, +默认为false-不需要验证 + * @method boolean getRequireSign() 获取是否需要签署, +默认为true-需要签署 + * @method void setRequireSign(boolean $RequireSign) 设置是否需要签署, +默认为true-需要签署 + * @method integer getRoutingOrder() 获取此参与方添加的顺序,从0~N + * @method void setRoutingOrder(integer $RoutingOrder) 设置此参与方添加的顺序,从0~N + * @method boolean getRequireDelivery() 获取是否需要发送, +默认为true-需要发送 + * @method void setRequireDelivery(boolean $RequireDelivery) 设置是否需要发送, +默认为true-需要发送 * @method string getEmail() 获取邮箱地址 * @method void setEmail(string $Email) 设置邮箱地址 * @method string getMobile() 获取电话号码 * @method void setMobile(string $Mobile) 设置电话号码 - * @method string getUserId() 获取关联的用户ID - * @method void setUserId(string $UserId) 设置关联的用户ID - * @method string getDeliveryMethod() 获取发送方式。默认为EMAIL。EMAIL-邮件;MOBILE-手机短信;WECHAT-微信通知 - * @method void setDeliveryMethod(string $DeliveryMethod) 设置发送方式。默认为EMAIL。EMAIL-邮件;MOBILE-手机短信;WECHAT-微信通知 - * @method string getRecipientExtra() 获取附属信息 - * @method void setRecipientExtra(string $RecipientExtra) 设置附属信息 + * @method string getUserId() 获取关联的用户ID,电子签系统的用户ID + * @method void setUserId(string $UserId) 设置关联的用户ID,电子签系统的用户ID + * @method string getDeliveryMethod() 获取发送方式,默认为EMAIL。 +EMAIL-邮件; +MOBILE-手机短信; +WECHAT-微信通知 + * @method void setDeliveryMethod(string $DeliveryMethod) 设置发送方式,默认为EMAIL。 +EMAIL-邮件; +MOBILE-手机短信; +WECHAT-微信通知 + * @method string getRecipientExtra() 获取参与方的一些附属信息,json格式 + * @method void setRecipientExtra(string $RecipientExtra) 设置参与方的一些附属信息,json格式 */ class Recipient extends AbstractModel { /** - * @var string 签署参与者ID + * @var string 签署参与者ID,唯一标识 */ public $RecipientId; /** - * @var string 参与者类型。默认为空。ENTERPRISE-企业;INDIVIDUAL-个人;PROMOTER-发起方 + * @var string 参与者类型。 +默认为空。 +ENTERPRISE-企业; +INDIVIDUAL-个人; +PROMOTER-发起方 */ public $RecipientType; @@ -70,22 +94,25 @@ class Recipient extends AbstractModel public $RoleName; /** - * @var boolean 是否需要验证,默认为false + * @var boolean 是否需要验证, +默认为false-不需要验证 */ public $RequireValidation; /** - * @var boolean 是否需要签署,默认为true + * @var boolean 是否需要签署, +默认为true-需要签署 */ public $RequireSign; /** - * @var integer 添加序列,0~N + * @var integer 此参与方添加的顺序,从0~N */ public $RoutingOrder; /** - * @var boolean 是否需要发送,默认为true + * @var boolean 是否需要发送, +默认为true-需要发送 */ public $RequireDelivery; @@ -100,34 +127,47 @@ class Recipient extends AbstractModel public $Mobile; /** - * @var string 关联的用户ID + * @var string 关联的用户ID,电子签系统的用户ID */ public $UserId; /** - * @var string 发送方式。默认为EMAIL。EMAIL-邮件;MOBILE-手机短信;WECHAT-微信通知 + * @var string 发送方式,默认为EMAIL。 +EMAIL-邮件; +MOBILE-手机短信; +WECHAT-微信通知 */ public $DeliveryMethod; /** - * @var string 附属信息 + * @var string 参与方的一些附属信息,json格式 */ public $RecipientExtra; /** - * @param string $RecipientId 签署参与者ID - * @param string $RecipientType 参与者类型。默认为空。ENTERPRISE-企业;INDIVIDUAL-个人;PROMOTER-发起方 + * @param string $RecipientId 签署参与者ID,唯一标识 + * @param string $RecipientType 参与者类型。 +默认为空。 +ENTERPRISE-企业; +INDIVIDUAL-个人; +PROMOTER-发起方 * @param string $Description 描述信息 * @param string $RoleName 角色名称 - * @param boolean $RequireValidation 是否需要验证,默认为false - * @param boolean $RequireSign 是否需要签署,默认为true - * @param integer $RoutingOrder 添加序列,0~N - * @param boolean $RequireDelivery 是否需要发送,默认为true + * @param boolean $RequireValidation 是否需要验证, +默认为false-不需要验证 + * @param boolean $RequireSign 是否需要签署, +默认为true-需要签署 + * @param integer $RoutingOrder 此参与方添加的顺序,从0~N + * @param boolean $RequireDelivery 是否需要发送, +默认为true-需要发送 * @param string $Email 邮箱地址 * @param string $Mobile 电话号码 - * @param string $UserId 关联的用户ID - * @param string $DeliveryMethod 发送方式。默认为EMAIL。EMAIL-邮件;MOBILE-手机短信;WECHAT-微信通知 - * @param string $RecipientExtra 附属信息 + * @param string $UserId 关联的用户ID,电子签系统的用户ID + * @param string $DeliveryMethod 发送方式,默认为EMAIL。 +EMAIL-邮件; +MOBILE-手机短信; +WECHAT-微信通知 + * @param string $RecipientExtra 参与方的一些附属信息,json格式 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/RecipientComponentInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/RecipientComponentInfo.php index d163e7c8a..d58e6e28d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/RecipientComponentInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/RecipientComponentInfo.php @@ -25,16 +25,20 @@ use TencentCloud\Common\AbstractModel; * @method void setRecipientId(string $RecipientId) 设置参与方Id 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRecipientFillStatus() 获取参与方填写状态 +0-未填写 +1-已填写 注意:此字段可能返回 null,表示取不到有效值。 * @method void setRecipientFillStatus(string $RecipientFillStatus) 设置参与方填写状态 +0-未填写 +1-已填写 注意:此字段可能返回 null,表示取不到有效值。 - * @method boolean getIsPromoter() 获取是否发起方 + * @method boolean getIsPromoter() 获取是否为发起方 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setIsPromoter(boolean $IsPromoter) 设置是否发起方 + * @method void setIsPromoter(boolean $IsPromoter) 设置是否为发起方 注意:此字段可能返回 null,表示取不到有效值。 - * @method array getComponents() 获取填写控件内容 + * @method array getComponents() 获取填写控件列表 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setComponents(array $Components) 设置填写控件内容 + * @method void setComponents(array $Components) 设置填写控件列表 注意:此字段可能返回 null,表示取不到有效值。 */ class RecipientComponentInfo extends AbstractModel @@ -47,18 +51,20 @@ class RecipientComponentInfo extends AbstractModel /** * @var string 参与方填写状态 +0-未填写 +1-已填写 注意:此字段可能返回 null,表示取不到有效值。 */ public $RecipientFillStatus; /** - * @var boolean 是否发起方 + * @var boolean 是否为发起方 注意:此字段可能返回 null,表示取不到有效值。 */ public $IsPromoter; /** - * @var array 填写控件内容 + * @var array 填写控件列表 注意:此字段可能返回 null,表示取不到有效值。 */ public $Components; @@ -67,10 +73,12 @@ class RecipientComponentInfo extends AbstractModel * @param string $RecipientId 参与方Id 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RecipientFillStatus 参与方填写状态 +0-未填写 +1-已填写 注意:此字段可能返回 null,表示取不到有效值。 - * @param boolean $IsPromoter 是否发起方 + * @param boolean $IsPromoter 是否为发起方 注意:此字段可能返回 null,表示取不到有效值。 - * @param array $Components 填写控件内容 + * @param array $Components 填写控件列表 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/RegisterInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/RegisterInfo.php index 56b43af68..43b31b7fa 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/RegisterInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/RegisterInfo.php @@ -24,6 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setLegalName(string $LegalName) 设置法人姓名 * @method string getUscc() 获取社会统一信用代码 * @method void setUscc(string $Uscc) 设置社会统一信用代码 + * @method string getUnifiedSocialCreditCode() 获取社会统一信用代码 + * @method void setUnifiedSocialCreditCode(string $UnifiedSocialCreditCode) 设置社会统一信用代码 */ class RegisterInfo extends AbstractModel { @@ -34,12 +36,19 @@ class RegisterInfo extends AbstractModel /** * @var string 社会统一信用代码 + * @deprecated */ public $Uscc; + /** + * @var string 社会统一信用代码 + */ + public $UnifiedSocialCreditCode; + /** * @param string $LegalName 法人姓名 * @param string $Uscc 社会统一信用代码 + * @param string $UnifiedSocialCreditCode 社会统一信用代码 */ function __construct() { @@ -61,5 +70,9 @@ class RegisterInfo extends AbstractModel if (array_key_exists("Uscc",$param) and $param["Uscc"] !== null) { $this->Uscc = $param["Uscc"]; } + + if (array_key_exists("UnifiedSocialCreditCode",$param) and $param["UnifiedSocialCreditCode"] !== null) { + $this->UnifiedSocialCreditCode = $param["UnifiedSocialCreditCode"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ReleasedApprover.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ReleasedApprover.php index 46b0889d3..45dd437d1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ReleasedApprover.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ReleasedApprover.php @@ -43,8 +43,8 @@ ENTERPRISESERVER-企业静默签 * @method void setApproverSignComponentType(string $ApproverSignComponentType) 设置签署控件类型,支持自定义企业签署方的签署控件为“印章”或“签名” - SIGN_SEAL-默认为印章控件类型 - SIGN_SIGNATURE-手写签名控件类型 - * @method string getApproverSignRole() 获取签署方自定义控件别名,最大长度20个字符 - * @method void setApproverSignRole(string $ApproverSignRole) 设置签署方自定义控件别名,最大长度20个字符 + * @method string getApproverSignRole() 获取参与方在合同中的角色是按照创建合同的时候来排序的; 解除协议会将第一个参与人叫甲方, 第二个叫乙方,第三个叫丙方,以此类推。 如果想改动参与人的角色名字, 可以设置此签署方自定义控件别名字段,最大20个字符 + * @method void setApproverSignRole(string $ApproverSignRole) 设置参与方在合同中的角色是按照创建合同的时候来排序的; 解除协议会将第一个参与人叫甲方, 第二个叫乙方,第三个叫丙方,以此类推。 如果想改动参与人的角色名字, 可以设置此签署方自定义控件别名字段,最大20个字符 */ class ReleasedApprover extends AbstractModel { @@ -79,7 +79,7 @@ ENTERPRISESERVER-企业静默签 public $ApproverSignComponentType; /** - * @var string 签署方自定义控件别名,最大长度20个字符 + * @var string 参与方在合同中的角色是按照创建合同的时候来排序的; 解除协议会将第一个参与人叫甲方, 第二个叫乙方,第三个叫丙方,以此类推。 如果想改动参与人的角色名字, 可以设置此签署方自定义控件别名字段,最大20个字符 */ public $ApproverSignRole; @@ -94,7 +94,7 @@ ENTERPRISESERVER-企业静默签 * @param string $ApproverSignComponentType 签署控件类型,支持自定义企业签署方的签署控件为“印章”或“签名” - SIGN_SEAL-默认为印章控件类型 - SIGN_SIGNATURE-手写签名控件类型 - * @param string $ApproverSignRole 签署方自定义控件别名,最大长度20个字符 + * @param string $ApproverSignRole 参与方在合同中的角色是按照创建合同的时候来排序的; 解除协议会将第一个参与人叫甲方, 第二个叫乙方,第三个叫丙方,以此类推。 如果想改动参与人的角色名字, 可以设置此签署方自定义控件别名字段,最大20个字符 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/ConsortiumItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ReviewerInfo.php similarity index 66% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/ConsortiumItem.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ReviewerInfo.php index 1ba7815bf..a5aee0b53 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/ConsortiumItem.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/ReviewerInfo.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Ess\V20201111\Models; use TencentCloud\Common\AbstractModel; /** - * 联盟信息 + * 关注方信息 * - * @method integer getId() 获取联盟id - * @method void setId(integer $Id) 设置联盟id - * @method string getName() 获取联盟名称 - * @method void setName(string $Name) 设置联盟名称 + * @method string getName() 获取姓名 + * @method void setName(string $Name) 设置姓名 + * @method string getMobile() 获取手机号 + * @method void setMobile(string $Mobile) 设置手机号 */ -class ConsortiumItem extends AbstractModel +class ReviewerInfo extends AbstractModel { /** - * @var integer 联盟id - */ - public $Id; - - /** - * @var string 联盟名称 + * @var string 姓名 */ public $Name; /** - * @param integer $Id 联盟id - * @param string $Name 联盟名称 + * @var string 手机号 + */ + public $Mobile; + + /** + * @param string $Name 姓名 + * @param string $Mobile 手机号 */ function __construct() { @@ -54,12 +54,12 @@ class ConsortiumItem extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Id",$param) and $param["Id"] !== null) { - $this->Id = $param["Id"]; - } - if (array_key_exists("Name",$param) and $param["Name"] !== null) { $this->Name = $param["Name"]; } + + if (array_key_exists("Mobile",$param) and $param["Mobile"] !== null) { + $this->Mobile = $param["Mobile"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/SealInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/SealInfo.php index cd12f9efd..a0b3b82d3 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/SealInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/SealInfo.php @@ -18,16 +18,60 @@ namespace TencentCloud\Ess\V20201111\Models; use TencentCloud\Common\AbstractModel; /** - * 模板结构体中的印章信息 + * 模板中指定的印章信息 * - + * @method string getSealId() 获取印章ID +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSealId(string $SealId) 设置印章ID +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getSealType() 获取印章类型。LEGAL_PERSON_SEAL: 法定代表人章; +ORGANIZATIONSEAL:企业印章; +OFFICIAL:企业公章; +CONTRACT:合同专用章 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSealType(string $SealType) 设置印章类型。LEGAL_PERSON_SEAL: 法定代表人章; +ORGANIZATIONSEAL:企业印章; +OFFICIAL:企业公章; +CONTRACT:合同专用章 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getSealName() 获取印章名称 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSealName(string $SealName) 设置印章名称 +注意:此字段可能返回 null,表示取不到有效值。 */ class SealInfo extends AbstractModel { - + /** + * @var string 印章ID +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SealId; /** + * @var string 印章类型。LEGAL_PERSON_SEAL: 法定代表人章; +ORGANIZATIONSEAL:企业印章; +OFFICIAL:企业公章; +CONTRACT:合同专用章 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SealType; + /** + * @var string 印章名称 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SealName; + + /** + * @param string $SealId 印章ID +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $SealType 印章类型。LEGAL_PERSON_SEAL: 法定代表人章; +ORGANIZATIONSEAL:企业印章; +OFFICIAL:企业公章; +CONTRACT:合同专用章 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $SealName 印章名称 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { @@ -42,6 +86,16 @@ class SealInfo extends AbstractModel if ($param === null) { return; } + if (array_key_exists("SealId",$param) and $param["SealId"] !== null) { + $this->SealId = $param["SealId"]; + } + if (array_key_exists("SealType",$param) and $param["SealType"] !== null) { + $this->SealType = $param["SealType"]; + } + + if (array_key_exists("SealName",$param) and $param["SealName"] !== null) { + $this->SealName = $param["SealName"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/TemplateInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/TemplateInfo.php index fba5fdab3..1beb626ba 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/TemplateInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/TemplateInfo.php @@ -18,48 +18,69 @@ namespace TencentCloud\Ess\V20201111\Models; use TencentCloud\Common\AbstractModel; /** - * 企业模板的信息结构 + * 此结构体 (TemplateInfo) 用于描述模板的信息。 + +> **模板组成** +> +> 一个模板通常会包含以下结构信息 +>- 模板基本信息 +>- 发起方参与信息Promoter、签署参与方 Recipients,后者会在模板发起合同时用于指定参与方 +>- 填写控件 Components +>- 签署控件 SignComponents +>- 生成模板的文件基础信息 FileInfos * - * @method string getTemplateId() 获取模板ID - * @method void setTemplateId(string $TemplateId) 设置模板ID - * @method string getTemplateName() 获取模板名字 - * @method void setTemplateName(string $TemplateName) 设置模板名字 + * @method string getTemplateId() 获取模板ID,模板的唯一标识 + * @method void setTemplateId(string $TemplateId) 设置模板ID,模板的唯一标识 + * @method string getTemplateName() 获取模板名 + * @method void setTemplateName(string $TemplateName) 设置模板名 * @method string getDescription() 获取模板描述信息 * @method void setDescription(string $Description) 设置模板描述信息 * @method array getDocumentResourceIds() 获取模板关联的资源ID列表 * @method void setDocumentResourceIds(array $DocumentResourceIds) 设置模板关联的资源ID列表 - * @method array getFileInfos() 获取返回的文件信息结构 - * @method void setFileInfos(array $FileInfos) 设置返回的文件信息结构 + * @method array getFileInfos() 获取生成模板的文件基础信息 + * @method void setFileInfos(array $FileInfos) 设置生成模板的文件基础信息 * @method array getAttachmentResourceIds() 获取附件关联的资源ID * @method void setAttachmentResourceIds(array $AttachmentResourceIds) 设置附件关联的资源ID * @method array getSignOrder() 获取签署顺序 +无序 -1 +有序为序列数字 0,1,2 * @method void setSignOrder(array $SignOrder) 设置签署顺序 - * @method array getRecipients() 获取签署参与者的信息 - * @method void setRecipients(array $Recipients) 设置签署参与者的信息 - * @method array getComponents() 获取模板信息结构 - * @method void setComponents(array $Components) 设置模板信息结构 - * @method array getSignComponents() 获取签署区模板信息结构 - * @method void setSignComponents(array $SignComponents) 设置签署区模板信息结构 - * @method integer getStatus() 获取模板状态(-1:不可用;0:草稿态;1:正式态) - * @method void setStatus(integer $Status) 设置模板状态(-1:不可用;0:草稿态;1:正式态) - * @method string getCreator() 获取模板的创建人UserId - * @method void setCreator(string $Creator) 设置模板的创建人UserId - * @method integer getCreatedOn() 获取模板创建的时间戳,单位秒 - * @method void setCreatedOn(integer $CreatedOn) 设置模板创建的时间戳,单位秒 - * @method Recipient getPromoter() 获取发起人角色信息 - * @method void setPromoter(Recipient $Promoter) 设置发起人角色信息 - * @method integer getTemplateType() 获取模板类型 -取值: +无序 -1 +有序为序列数字 0,1,2 + * @method array getRecipients() 获取模板中的签署参与方列表 + * @method void setRecipients(array $Recipients) 设置模板中的签署参与方列表 + * @method array getComponents() 获取模板的填充控件列表 + * @method void setComponents(array $Components) 设置模板的填充控件列表 + * @method array getSignComponents() 获取模板中的签署控件列表 + * @method void setSignComponents(array $SignComponents) 设置模板中的签署控件列表 + * @method integer getStatus() 获取模板状态 +-1:不可用 +0:草稿态 +1:正式态,可以正常使用 + * @method void setStatus(integer $Status) 设置模板状态 +-1:不可用 +0:草稿态 +1:正式态,可以正常使用 + * @method string getCreator() 获取模板的创建者信息,电子签系统用户ID + * @method void setCreator(string $Creator) 设置模板的创建者信息,电子签系统用户ID + * @method integer getCreatedOn() 获取模板创建的时间戳,格式为Unix标准时间戳(秒) + * @method void setCreatedOn(integer $CreatedOn) 设置模板创建的时间戳,格式为Unix标准时间戳(秒) + * @method Recipient getPromoter() 获取发起方参与信息Promoter + * @method void setPromoter(Recipient $Promoter) 设置发起方参与信息Promoter + * @method integer getTemplateType() 获取模板类型: 1 静默签, 3 普通模板 - * @method void setTemplateType(integer $TemplateType) 设置模板类型 -取值: + * @method void setTemplateType(integer $TemplateType) 设置模板类型: 1 静默签, 3 普通模板 - * @method integer getAvailable() 获取模板可用状态,取值:1启用(默认),2停用 - * @method void setAvailable(integer $Available) 设置模板可用状态,取值:1启用(默认),2停用 - * @method string getOrganizationId() 获取创建模板的机构id - * @method void setOrganizationId(string $OrganizationId) 设置创建模板的机构id + * @method integer getAvailable() 获取模板可用状态: +1 启用(默认) +2 停用 + * @method void setAvailable(integer $Available) 设置模板可用状态: +1 启用(默认) +2 停用 + * @method string getOrganizationId() 获取创建模板的企业ID,电子签的机构ID + * @method void setOrganizationId(string $OrganizationId) 设置创建模板的企业ID,电子签的机构ID * @method string getPreviewUrl() 获取模板预览链接,有效时间5分钟 注意:此字段可能返回 null,表示取不到有效值。 * @method void setPreviewUrl(string $PreviewUrl) 设置模板预览链接,有效时间5分钟 @@ -68,9 +89,13 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setTemplateVersion(string $TemplateVersion) 设置模板版本。默认为空时,全数字字符,初始版本为yyyyMMdd001。 注意:此字段可能返回 null,表示取不到有效值。 - * @method boolean getPublished() 获取模板是否已发布。true-已发布;false-未发布 + * @method boolean getPublished() 获取模板是否已发布: +true-已发布 +false-未发布 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setPublished(boolean $Published) 设置模板是否已发布。true-已发布;false-未发布 + * @method void setPublished(boolean $Published) 设置模板是否已发布: +true-已发布 +false-未发布 注意:此字段可能返回 null,表示取不到有效值。 * @method array getTemplateSeals() 获取模板内部指定的印章列表 注意:此字段可能返回 null,表示取不到有效值。 @@ -84,12 +109,12 @@ use TencentCloud\Common\AbstractModel; class TemplateInfo extends AbstractModel { /** - * @var string 模板ID + * @var string 模板ID,模板的唯一标识 */ public $TemplateId; /** - * @var string 模板名字 + * @var string 模板名 */ public $TemplateName; @@ -104,7 +129,7 @@ class TemplateInfo extends AbstractModel public $DocumentResourceIds; /** - * @var array 返回的文件信息结构 + * @var array 生成模板的文件基础信息 */ public $FileInfos; @@ -115,59 +140,65 @@ class TemplateInfo extends AbstractModel /** * @var array 签署顺序 +无序 -1 +有序为序列数字 0,1,2 */ public $SignOrder; /** - * @var array 签署参与者的信息 + * @var array 模板中的签署参与方列表 */ public $Recipients; /** - * @var array 模板信息结构 + * @var array 模板的填充控件列表 */ public $Components; /** - * @var array 签署区模板信息结构 + * @var array 模板中的签署控件列表 */ public $SignComponents; /** - * @var integer 模板状态(-1:不可用;0:草稿态;1:正式态) + * @var integer 模板状态 +-1:不可用 +0:草稿态 +1:正式态,可以正常使用 */ public $Status; /** - * @var string 模板的创建人UserId + * @var string 模板的创建者信息,电子签系统用户ID */ public $Creator; /** - * @var integer 模板创建的时间戳,单位秒 + * @var integer 模板创建的时间戳,格式为Unix标准时间戳(秒) */ public $CreatedOn; /** - * @var Recipient 发起人角色信息 + * @var Recipient 发起方参与信息Promoter */ public $Promoter; /** - * @var integer 模板类型 -取值: + * @var integer 模板类型: 1 静默签, 3 普通模板 */ public $TemplateType; /** - * @var integer 模板可用状态,取值:1启用(默认),2停用 + * @var integer 模板可用状态: +1 启用(默认) +2 停用 */ public $Available; /** - * @var string 创建模板的机构id + * @var string 创建模板的企业ID,电子签的机构ID */ public $OrganizationId; @@ -184,7 +215,9 @@ class TemplateInfo extends AbstractModel public $TemplateVersion; /** - * @var boolean 模板是否已发布。true-已发布;false-未发布 + * @var boolean 模板是否已发布: +true-已发布 +false-未发布 注意:此字段可能返回 null,表示取不到有效值。 */ public $Published; @@ -203,31 +236,39 @@ class TemplateInfo extends AbstractModel public $Seals; /** - * @param string $TemplateId 模板ID - * @param string $TemplateName 模板名字 + * @param string $TemplateId 模板ID,模板的唯一标识 + * @param string $TemplateName 模板名 * @param string $Description 模板描述信息 * @param array $DocumentResourceIds 模板关联的资源ID列表 - * @param array $FileInfos 返回的文件信息结构 + * @param array $FileInfos 生成模板的文件基础信息 * @param array $AttachmentResourceIds 附件关联的资源ID * @param array $SignOrder 签署顺序 - * @param array $Recipients 签署参与者的信息 - * @param array $Components 模板信息结构 - * @param array $SignComponents 签署区模板信息结构 - * @param integer $Status 模板状态(-1:不可用;0:草稿态;1:正式态) - * @param string $Creator 模板的创建人UserId - * @param integer $CreatedOn 模板创建的时间戳,单位秒 - * @param Recipient $Promoter 发起人角色信息 - * @param integer $TemplateType 模板类型 -取值: +无序 -1 +有序为序列数字 0,1,2 + * @param array $Recipients 模板中的签署参与方列表 + * @param array $Components 模板的填充控件列表 + * @param array $SignComponents 模板中的签署控件列表 + * @param integer $Status 模板状态 +-1:不可用 +0:草稿态 +1:正式态,可以正常使用 + * @param string $Creator 模板的创建者信息,电子签系统用户ID + * @param integer $CreatedOn 模板创建的时间戳,格式为Unix标准时间戳(秒) + * @param Recipient $Promoter 发起方参与信息Promoter + * @param integer $TemplateType 模板类型: 1 静默签, 3 普通模板 - * @param integer $Available 模板可用状态,取值:1启用(默认),2停用 - * @param string $OrganizationId 创建模板的机构id + * @param integer $Available 模板可用状态: +1 启用(默认) +2 停用 + * @param string $OrganizationId 创建模板的企业ID,电子签的机构ID * @param string $PreviewUrl 模板预览链接,有效时间5分钟 注意:此字段可能返回 null,表示取不到有效值。 * @param string $TemplateVersion 模板版本。默认为空时,全数字字符,初始版本为yyyyMMdd001。 注意:此字段可能返回 null,表示取不到有效值。 - * @param boolean $Published 模板是否已发布。true-已发布;false-未发布 + * @param boolean $Published 模板是否已发布: +true-已发布 +false-未发布 注意:此字段可能返回 null,表示取不到有效值。 * @param array $TemplateSeals 模板内部指定的印章列表 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/UnbindEmployeeUserIdWithClientOpenIdRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/UnbindEmployeeUserIdWithClientOpenIdRequest.php index 15b650057..fb28f6bda 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/UnbindEmployeeUserIdWithClientOpenIdRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/UnbindEmployeeUserIdWithClientOpenIdRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setUserId(string $UserId) 设置电子签系统员工UserId * @method string getOpenId() 获取客户系统OpenId * @method void setOpenId(string $OpenId) 设置客户系统OpenId + * @method Agent getAgent() 获取代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + * @method void setAgent(Agent $Agent) 设置代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ class UnbindEmployeeUserIdWithClientOpenIdRequest extends AbstractModel { @@ -44,10 +46,16 @@ class UnbindEmployeeUserIdWithClientOpenIdRequest extends AbstractModel */ public $OpenId; + /** + * @var Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 + */ + public $Agent; + /** * @param UserInfo $Operator 用户信息,OpenId与UserId二选一必填一个,OpenId是第三方客户ID,userId是用户实名后的电子签生成的ID,当传入客户系统openId,传入的openId需与电子签员工userId绑定,且参数Channel必填,Channel值为INTEGRATE;当传入参数UserId,Channel无需指定(参数用法参考示例) * @param string $UserId 电子签系统员工UserId * @param string $OpenId 客户系统OpenId + * @param Agent $Agent 代理相关应用信息,如集团主企业代子企业操作的场景中ProxyOrganizationId必填 */ function __construct() { @@ -74,5 +82,10 @@ class UnbindEmployeeUserIdWithClientOpenIdRequest extends AbstractModel if (array_key_exists("OpenId",$param) and $param["OpenId"] !== null) { $this->OpenId = $param["OpenId"]; } + + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/UpdateIntegrationEmployeesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/UpdateIntegrationEmployeesRequest.php index 4bf9dfb57..36a4d0739 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/UpdateIntegrationEmployeesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/UpdateIntegrationEmployeesRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * UpdateIntegrationEmployees请求参数结构体 * - * @method UserInfo getOperator() 获取操作人信息,userId必填 - * @method void setOperator(UserInfo $Operator) 设置操作人信息,userId必填 + * @method UserInfo getOperator() 获取当前用户信息,UserId必填 + * @method void setOperator(UserInfo $Operator) 设置当前用户信息,UserId必填 * @method array getEmployees() 获取员工信息,不超过100个。 根据UserId或OpenId更新员工,必填一个,优先UserId。 可更新Mobile、DisplayName、Email和Department.DepartmentId字段,其他字段暂不支持 @@ -34,7 +34,7 @@ use TencentCloud\Common\AbstractModel; class UpdateIntegrationEmployeesRequest extends AbstractModel { /** - * @var UserInfo 操作人信息,userId必填 + * @var UserInfo 当前用户信息,UserId必填 */ public $Operator; @@ -51,7 +51,7 @@ class UpdateIntegrationEmployeesRequest extends AbstractModel public $Agent; /** - * @param UserInfo $Operator 操作人信息,userId必填 + * @param UserInfo $Operator 当前用户信息,UserId必填 * @param array $Employees 员工信息,不超过100个。 根据UserId或OpenId更新员工,必填一个,优先UserId。 可更新Mobile、DisplayName、Email和Department.DepartmentId字段,其他字段暂不支持 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/WebThemeConfig.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/WebThemeConfig.php new file mode 100644 index 000000000..82210e13b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ess/V20201111/Models/WebThemeConfig.php @@ -0,0 +1,81 @@ +true:允许在页面底部隐藏电子签logo +
    false:不允许允许在页面底部隐藏电子签logo +
    默认false,不隐藏logo + * @method void setDisplaySignBrandLogo(boolean $DisplaySignBrandLogo) 设置是否页面底部显示电子签logo +
    true:允许在页面底部隐藏电子签logo +
    false:不允许允许在页面底部隐藏电子签logo +
    默认false,不隐藏logo + * @method string getWebEmbedThemeColor() 获取主题颜色 +
    支持十六进制颜色值以及RGB格式颜色值,例如:#D54941,rgb(213, 73, 65) + * @method void setWebEmbedThemeColor(string $WebEmbedThemeColor) 设置主题颜色 +
    支持十六进制颜色值以及RGB格式颜色值,例如:#D54941,rgb(213, 73, 65) + */ +class WebThemeConfig extends AbstractModel +{ + /** + * @var boolean 是否页面底部显示电子签logo +
    true:允许在页面底部隐藏电子签logo +
    false:不允许允许在页面底部隐藏电子签logo +
    默认false,不隐藏logo + */ + public $DisplaySignBrandLogo; + + /** + * @var string 主题颜色 +
    支持十六进制颜色值以及RGB格式颜色值,例如:#D54941,rgb(213, 73, 65) + */ + public $WebEmbedThemeColor; + + /** + * @param boolean $DisplaySignBrandLogo 是否页面底部显示电子签logo +
    true:允许在页面底部隐藏电子签logo +
    false:不允许允许在页面底部隐藏电子签logo +
    默认false,不隐藏logo + * @param string $WebEmbedThemeColor 主题颜色 +
    支持十六进制颜色值以及RGB格式颜色值,例如:#D54941,rgb(213, 73, 65) + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("DisplaySignBrandLogo",$param) and $param["DisplaySignBrandLogo"] !== null) { + $this->DisplaySignBrandLogo = $param["DisplaySignBrandLogo"]; + } + + if (array_key_exists("WebEmbedThemeColor",$param) and $param["WebEmbedThemeColor"] !== null) { + $this->WebEmbedThemeColor = $param["WebEmbedThemeColor"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/EssbasicClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/EssbasicClient.php index 4783bafb7..d3d067854 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/EssbasicClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/EssbasicClient.php @@ -26,6 +26,9 @@ use TencentCloud\Essbasic\V20210526\Models as Models; * @method Models\ChannelBatchCancelFlowsResponse ChannelBatchCancelFlows(Models\ChannelBatchCancelFlowsRequest $req) 指定需要批量撤销的签署流程Id,批量撤销合同 客户指定需要撤销的签署流程Id,最多100个,超过100不处理; +可以撤回:未全部签署完成 + 不可以撤回:已全部签署完成、已拒签、已过期、已撤回、拒绝填写、已解除等合同状态。 + **满足撤销条件的合同会发起异步撤销流程,不满足撤销条件的合同返回失败原因。** **合同撤销成功后,会通过合同状态为 CANCEL 的回调消息通知调用方 [具体可参考回调消息](https://qian.tencent.com/developers/scenes/partner/callback_data_types#-%E5%90%88%E5%90%8C%E7%8A%B6%E6%80%81%E9%80%9A%E7%9F%A5---flowstatuschange)** @@ -39,7 +42,10 @@ use TencentCloud\Essbasic\V20210526\Models as Models; * @method Models\ChannelCreateBatchCancelFlowUrlResponse ChannelCreateBatchCancelFlowUrl(Models\ChannelCreateBatchCancelFlowUrlRequest $req) 指定需要批量撤销的签署流程Id,获取批量撤销链接 - 不建议使用此接口,可使用ChannelBatchCancelFlows 客户指定需要撤销的签署流程Id,最多100个,超过100不处理; 接口调用成功返回批量撤销合同的链接,通过链接跳转到电子签小程序完成批量撤销; -可以撤回:未全部签署完成;不可以撤回(终态):已全部签署完成、已拒签、已过期、已撤回。 + +可以撤回:未全部签署完成 + 不可以撤回:已全部签署完成、已拒签、已过期、已撤回、拒绝填写、已解除等合同状态。 + 注意: 能撤回合同的只能是合同的发起人或者发起企业的超管、法人 * @method Models\ChannelCreateBoundFlowsResponse ChannelCreateBoundFlows(Models\ChannelCreateBoundFlowsRequest $req) 此接口(ChannelCreateBoundFlows)用于子客领取合同,经办人需要有相应的角色,合同不能重复领取。 @@ -83,16 +89,18 @@ use TencentCloud\Essbasic\V20210526\Models as Models; 合同发起人必须在电子签已经进行实名。 * @method Models\ChannelCreateSealPolicyResponse ChannelCreateSealPolicy(Models\ChannelCreateSealPolicyRequest $req) 将指定印章授权给第三方平台子客企业下的某些员工 * @method Models\ChannelCreateUserRolesResponse ChannelCreateUserRoles(Models\ChannelCreateUserRolesRequest $req) 通过此接口,绑定员工角色,支持以电子签userId、客户系统userId两种方式调用。 + * @method Models\ChannelCreateWebThemeConfigResponse ChannelCreateWebThemeConfig(Models\ChannelCreateWebThemeConfigRequest $req) 生成页面主题配置 * @method Models\ChannelDeleteRoleUsersResponse ChannelDeleteRoleUsers(Models\ChannelDeleteRoleUsersRequest $req) 通过此接口,删除员工绑定的角色,支持以电子签userId、客户系统userId两种方式调用。 * @method Models\ChannelDeleteSealPoliciesResponse ChannelDeleteSealPolicies(Models\ChannelDeleteSealPoliciesRequest $req) 删除指定印章下多个授权信息 * @method Models\ChannelDescribeEmployeesResponse ChannelDescribeEmployees(Models\ChannelDescribeEmployeesRequest $req) 查询企业员工列表 - * @method Models\ChannelDescribeFlowComponentsResponse ChannelDescribeFlowComponents(Models\ChannelDescribeFlowComponentsRequest $req) 查询流程填写控件内容,可以根据流程Id查询该流程相关联的填写控件信息 + * @method Models\ChannelDescribeFlowComponentsResponse ChannelDescribeFlowComponents(Models\ChannelDescribeFlowComponentsRequest $req) 查询流程填写控件内容,可以根据流程Id查询该流程相关联的填写控件信息和填写内容。 注意:使用此接口前,需要在【企业应用管理】-【应用集成】-【第三方应用管理】中开通【下载应用内全量合同文件及内容数据】功能。 * @method Models\ChannelDescribeOrganizationSealsResponse ChannelDescribeOrganizationSeals(Models\ChannelDescribeOrganizationSealsRequest $req) 查询子客企业电子印章,需要操作者具有管理印章权限 -客户指定需要获取的印章数量和偏移量,数量最多100,超过100按100处理;入参InfoType控制印章是否携带授权人信息,为1则携带,为0则返回的授权人信息为空数组。接口调用成功返回印章的信息列表还有企业印章的总数。 +客户指定需要获取的印章数量和偏移量,数量最多100,超过100按100处理;入参InfoType控制印章是否携带授权人信息,为1则携带,为0则返回的授权人信息为空数组。接口调用成功返回印章的信息列表还有企业印章的总数,只返回启用的印章。 * @method Models\ChannelDescribeRolesResponse ChannelDescribeRoles(Models\ChannelDescribeRolesRequest $req) 查询角色列表,支持根据类型和状态过滤角色列表 - * @method Models\ChannelGetTaskResultApiResponse ChannelGetTaskResultApi(Models\ChannelGetTaskResultApiRequest $req) 通过发起转换任务接口(ChannelCreateConvertTaskApi)返回的任务Id查询转换任务状态,通过本接口确认转换任务是否完成。大文件转换所需的时间可能会比较长。 + * @method Models\ChannelGetTaskResultApiResponse ChannelGetTaskResultApi(Models\ChannelGetTaskResultApiRequest $req) 查询转换任务的状态。转换任务Id通过发起转换任务接口(ChannelCreateConvertTaskApi)获取。 +注意:大文件转换所需的时间可能会比较长。 * @method Models\ChannelUpdateSealStatusResponse ChannelUpdateSealStatus(Models\ChannelUpdateSealStatusRequest $req) 本接口(ChannelUpdateSealStatus)用于第三方应用平台为子客企业更新印章状态 - * @method Models\ChannelVerifyPdfResponse ChannelVerifyPdf(Models\ChannelVerifyPdfRequest $req) 对流程的合同文件进行验证,判断文件是否合法。 + * @method Models\ChannelVerifyPdfResponse ChannelVerifyPdf(Models\ChannelVerifyPdfRequest $req) 对流程的合同文件进行数字签名验证,判断文件是否被篡改。 * @method Models\CreateChannelFlowEvidenceReportResponse CreateChannelFlowEvidenceReport(Models\CreateChannelFlowEvidenceReportRequest $req) 创建出证报告,返回报告 ID。需要配合出证套餐才能调用。 出证需要一定时间,建议调用创建出证24小时之后再通过DescribeChannelFlowEvidenceReport进行查询。 * @method Models\CreateConsoleLoginUrlResponse CreateConsoleLoginUrl(Models\CreateConsoleLoginUrlRequest $req) 此接口(CreateConsoleLoginUrl)用于创建第三方平台子客企业控制台Web/移动登录链接。登录链接是子客控制台的唯一入口。 @@ -131,18 +139,40 @@ https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchAp * @method Models\DescribeFlowDetailInfoResponse DescribeFlowDetailInfo(Models\DescribeFlowDetailInfoRequest $req) 此接口(DescribeFlowDetailInfo)用于查询合同(签署流程)的详细信息。 * @method Models\DescribeResourceUrlsByFlowsResponse DescribeResourceUrlsByFlows(Models\DescribeResourceUrlsByFlowsRequest $req) 根据签署流程信息批量获取资源下载链接,可以下载签署中、签署完的合同,需合作企业先进行授权。 此接口直接返回下载的资源的url,与接口GetDownloadFlowUrl跳转到控制台的下载方式不同。 - * @method Models\DescribeTemplatesResponse DescribeTemplates(Models\DescribeTemplatesRequest $req) 通过此接口(DescribeTemplates)查询该第三方平台子客企业在电子签拥有的有效模板,不包括第三方平台模板 + * @method Models\DescribeTemplatesResponse DescribeTemplates(Models\DescribeTemplatesRequest $req) 通过此接口(DescribeTemplates)查询该第三方平台子客企业在电子签拥有的有效模板,不包括第三方平台模板。 + +> **适用场景** +> +> 该接口常用来配合“使用模板创建签署流程”接口作为前置的接口使用。 +> 一个模板通常会包含以下结构信息 +>- 模板基本信息 +>- 发起方参与信息Promoter、签署参与方 Recipients,后者会在模板发起合同时用于指定参与方 +>- 填写控件 Components +>- 签署控件 SignComponents +>- 生成模板的文件基础信息 FileInfos * @method Models\DescribeUsageResponse DescribeUsage(Models\DescribeUsageRequest $req) 此接口(DescribeUsage)用于获取第三方平台所有合作企业流量消耗情况。 - 注: 此接口每日限频2次,若要扩大限制次数,请提前与客服经理或邮件至e-contract@tencent.com进行联系。 + 注: 此接口每日限频50次,若要扩大限制次数,请提前与客服经理或邮件至e-contract@tencent.com进行联系。 * @method Models\GetDownloadFlowUrlResponse GetDownloadFlowUrl(Models\GetDownloadFlowUrlRequest $req) 此接口(GetDownloadFlowUrl)用于创建电子签批量下载地址,让合作企业进入控制台直接下载,支持客户合同(流程)按照自定义文件夹形式 分类下载。 当前接口限制最多合同(流程)50个. 返回的链接只能使用一次 * @method Models\ModifyExtendedServiceResponse ModifyExtendedService(Models\ModifyExtendedServiceRequest $req) 修改(操作)企业扩展服务 ,企业经办人需要是企业超管或者法人 - * @method Models\OperateChannelTemplateResponse OperateChannelTemplate(Models\OperateChannelTemplateRequest $req) 此接口(OperateChannelTemplate)用于针对第三方应用平台模板库中的模板对子客企业可见性的查询和设置,不会直接分配第三方应用平台模板给子客企业。 -1、OperateType=select时: -查询第三方应用平台模板库 -2、OperateType=update或者delete时: -对子客企业进行模板库中模板可见性的修改、删除操作。 + * @method Models\OperateChannelTemplateResponse OperateChannelTemplate(Models\OperateChannelTemplateRequest $req) 此接口(OperateChannelTemplate)用于针对第三方应用平台模板库中的模板对子客企业可见性的查询和设置。 + +> **使用场景** +> +> 1:查询 OperateType=SELECT +> - 查询第三方应用平台模板库的可见性以及授权的子客列表。 +> +> 2:修改部分子客授权 OperateType=UPDATE +> - 对子客企业进行模板库中模板可见性的进行修改操作。 +>- 当模板未发布时,可以修改可见性AuthTag(part/all),当模板发布后,不可做此修改 +> - 若模板已发布且可见性AuthTag是part,可以通过ProxyOrganizationOpenIds增加子客的授权范围。如果是自动领取的模板,增加授权范围后会自动下发。 +> +> 3:取消部分子客授权 OperateType=DELETE +> - 对子客企业进行模板库中模板可见性的进行删除操作。 +> - 主要对于手动领取的模板,去除授权后子客在在模板库中看不到,就无法再领取了。但是已经领取过成为自有模板的不会同步删除。 +> - 对于自动领取的模板,由于已经下发,更改授权不会影响。 +> - 如果要同步删除子客自有模板库中的模板,请使用OperateType=UPDATE+Available参数处理。 * @method Models\PrepareFlowsResponse PrepareFlows(Models\PrepareFlowsRequest $req) 该接口 (PrepareFlows) 用于创建待发起文件 用户通过该接口进入签署流程发起的确认页面,进行发起信息二次确认, 如果确认则进行正常发起。 目前该接口只支持B2C,不建议使用,将会废弃。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/BaseFlowInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/BaseFlowInfo.php index 662db8fce..b1c5639b7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/BaseFlowInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/BaseFlowInfo.php @@ -23,25 +23,41 @@ use TencentCloud\Common\AbstractModel; * @method string getFlowName() 获取合同流程名称 * @method void setFlowName(string $FlowName) 设置合同流程名称 * @method string getFlowType() 获取合同流程类型 +
    客户自定义,用于合同分类展示 * @method void setFlowType(string $FlowType) 设置合同流程类型 +
    客户自定义,用于合同分类展示 * @method string getFlowDescription() 获取合同流程描述信息 * @method void setFlowDescription(string $FlowDescription) 设置合同流程描述信息 * @method integer getDeadline() 获取合同流程截止时间,unix时间戳,单位秒 * @method void setDeadline(integer $Deadline) 设置合同流程截止时间,unix时间戳,单位秒 * @method boolean getUnordered() 获取是否顺序签署(true:无序签,false:顺序签) +
    默认false,有序签署合同 * @method void setUnordered(boolean $Unordered) 设置是否顺序签署(true:无序签,false:顺序签) +
    默认false,有序签署合同 * @method string getIntelligentStatus() 获取是否打开智能添加填写区(默认开启,打开:"OPEN" 关闭:"CLOSE") * @method void setIntelligentStatus(string $IntelligentStatus) 设置是否打开智能添加填写区(默认开启,打开:"OPEN" 关闭:"CLOSE") * @method array getFormFields() 获取填写控件内容 * @method void setFormFields(array $FormFields) 设置填写控件内容 - * @method boolean getNeedSignReview() 获取本企业(发起方企业)是否需要签署审批,true:开启本企业签署审批。使用ChannelCreateFlowSignReview接口提交审批结果,才能继续完成签署 - * @method void setNeedSignReview(boolean $NeedSignReview) 设置本企业(发起方企业)是否需要签署审批,true:开启本企业签署审批。使用ChannelCreateFlowSignReview接口提交审批结果,才能继续完成签署 + * @method boolean getNeedSignReview() 获取本企业(发起方企业)是否需要签署审批 +
    true:开启发起方签署审批 +
    false:不开启发起方签署审批 +
    开启后,使用ChannelCreateFlowSignReview接口提交审批结果,才能继续完成签署 + * @method void setNeedSignReview(boolean $NeedSignReview) 设置本企业(发起方企业)是否需要签署审批 +
    true:开启发起方签署审批 +
    false:不开启发起方签署审批 +
    开启后,使用ChannelCreateFlowSignReview接口提交审批结果,才能继续完成签署 * @method string getUserData() 获取用户流程自定义数据参数 * @method void setUserData(string $UserData) 设置用户流程自定义数据参数 * @method array getCcInfos() 获取抄送人信息 * @method void setCcInfos(array $CcInfos) 设置抄送人信息 - * @method boolean getNeedCreateReview() 获取是否需要发起前审核,当指定NeedCreateReview=true,则发起后,需要使用接口:ChannelCreateFlowSignReview,来完成发起前审核,审核通过后,可以继续查看,签署合同 - * @method void setNeedCreateReview(boolean $NeedCreateReview) 设置是否需要发起前审核,当指定NeedCreateReview=true,则发起后,需要使用接口:ChannelCreateFlowSignReview,来完成发起前审核,审核通过后,可以继续查看,签署合同 + * @method boolean getNeedCreateReview() 获取是否需要开启发起方发起前审核 +
    true:开启发起方发起前审核 +
    false:不开启发起方发起前审核 +
    当指定NeedCreateReview=true,则提交审核后,需要使用接口:ChannelCreateFlowSignReview,来完成发起前审核,审核通过后,可以继续查看,签署合同 + * @method void setNeedCreateReview(boolean $NeedCreateReview) 设置是否需要开启发起方发起前审核 +
    true:开启发起方发起前审核 +
    false:不开启发起方发起前审核 +
    当指定NeedCreateReview=true,则提交审核后,需要使用接口:ChannelCreateFlowSignReview,来完成发起前审核,审核通过后,可以继续查看,签署合同 */ class BaseFlowInfo extends AbstractModel { @@ -52,6 +68,7 @@ class BaseFlowInfo extends AbstractModel /** * @var string 合同流程类型 +
    客户自定义,用于合同分类展示 */ public $FlowType; @@ -67,6 +84,7 @@ class BaseFlowInfo extends AbstractModel /** * @var boolean 是否顺序签署(true:无序签,false:顺序签) +
    默认false,有序签署合同 */ public $Unordered; @@ -81,7 +99,10 @@ class BaseFlowInfo extends AbstractModel public $FormFields; /** - * @var boolean 本企业(发起方企业)是否需要签署审批,true:开启本企业签署审批。使用ChannelCreateFlowSignReview接口提交审批结果,才能继续完成签署 + * @var boolean 本企业(发起方企业)是否需要签署审批 +
    true:开启发起方签署审批 +
    false:不开启发起方签署审批 +
    开启后,使用ChannelCreateFlowSignReview接口提交审批结果,才能继续完成签署 */ public $NeedSignReview; @@ -96,22 +117,33 @@ class BaseFlowInfo extends AbstractModel public $CcInfos; /** - * @var boolean 是否需要发起前审核,当指定NeedCreateReview=true,则发起后,需要使用接口:ChannelCreateFlowSignReview,来完成发起前审核,审核通过后,可以继续查看,签署合同 + * @var boolean 是否需要开启发起方发起前审核 +
    true:开启发起方发起前审核 +
    false:不开启发起方发起前审核 +
    当指定NeedCreateReview=true,则提交审核后,需要使用接口:ChannelCreateFlowSignReview,来完成发起前审核,审核通过后,可以继续查看,签署合同 */ public $NeedCreateReview; /** * @param string $FlowName 合同流程名称 * @param string $FlowType 合同流程类型 +
    客户自定义,用于合同分类展示 * @param string $FlowDescription 合同流程描述信息 * @param integer $Deadline 合同流程截止时间,unix时间戳,单位秒 * @param boolean $Unordered 是否顺序签署(true:无序签,false:顺序签) +
    默认false,有序签署合同 * @param string $IntelligentStatus 是否打开智能添加填写区(默认开启,打开:"OPEN" 关闭:"CLOSE") * @param array $FormFields 填写控件内容 - * @param boolean $NeedSignReview 本企业(发起方企业)是否需要签署审批,true:开启本企业签署审批。使用ChannelCreateFlowSignReview接口提交审批结果,才能继续完成签署 + * @param boolean $NeedSignReview 本企业(发起方企业)是否需要签署审批 +
    true:开启发起方签署审批 +
    false:不开启发起方签署审批 +
    开启后,使用ChannelCreateFlowSignReview接口提交审批结果,才能继续完成签署 * @param string $UserData 用户流程自定义数据参数 * @param array $CcInfos 抄送人信息 - * @param boolean $NeedCreateReview 是否需要发起前审核,当指定NeedCreateReview=true,则发起后,需要使用接口:ChannelCreateFlowSignReview,来完成发起前审核,审核通过后,可以继续查看,签署合同 + * @param boolean $NeedCreateReview 是否需要开启发起方发起前审核 +
    true:开启发起方发起前审核 +
    false:不开启发起方发起前审核 +
    当指定NeedCreateReview=true,则提交审核后,需要使用接口:ChannelCreateFlowSignReview,来完成发起前审核,审核通过后,可以继续查看,签署合同 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelBatchCancelFlowsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelBatchCancelFlowsRequest.php index ad7c37b41..7d1c2443f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelBatchCancelFlowsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelBatchCancelFlowsRequest.php @@ -27,15 +27,17 @@ use TencentCloud\Common\AbstractModel; * @method string getCancelMessage() 获取撤销理由,不超过200个字符 * @method void setCancelMessage(string $CancelMessage) 设置撤销理由,不超过200个字符 * @method integer getCancelMessageFormat() 获取撤销理由自定义格式;选项: -0 默认格式 -1 只保留身份信息:展示为【发起方】 -2 保留身份信息+企业名称:展示为【发起方xxx公司】 -3 保留身份信息+企业名称+经办人名称:展示为【发起方xxxx公司-经办人姓名】 + +- 0 默认格式 +- 1 只保留身份信息:展示为【发起方】 +- 2 保留身份信息+企业名称:展示为【发起方xxx公司】 +- 3 保留身份信息+企业名称+经办人名称:展示为【发起方xxxx公司-经办人姓名】 * @method void setCancelMessageFormat(integer $CancelMessageFormat) 设置撤销理由自定义格式;选项: -0 默认格式 -1 只保留身份信息:展示为【发起方】 -2 保留身份信息+企业名称:展示为【发起方xxx公司】 -3 保留身份信息+企业名称+经办人名称:展示为【发起方xxxx公司-经办人姓名】 + +- 0 默认格式 +- 1 只保留身份信息:展示为【发起方】 +- 2 保留身份信息+企业名称:展示为【发起方xxx公司】 +- 3 保留身份信息+企业名称+经办人名称:展示为【发起方xxxx公司-经办人姓名】 * @method UserInfo getOperator() 获取暂未开放 * @method void setOperator(UserInfo $Operator) 设置暂未开放 */ @@ -58,10 +60,11 @@ class ChannelBatchCancelFlowsRequest extends AbstractModel /** * @var integer 撤销理由自定义格式;选项: -0 默认格式 -1 只保留身份信息:展示为【发起方】 -2 保留身份信息+企业名称:展示为【发起方xxx公司】 -3 保留身份信息+企业名称+经办人名称:展示为【发起方xxxx公司-经办人姓名】 + +- 0 默认格式 +- 1 只保留身份信息:展示为【发起方】 +- 2 保留身份信息+企业名称:展示为【发起方xxx公司】 +- 3 保留身份信息+企业名称+经办人名称:展示为【发起方xxxx公司-经办人姓名】 */ public $CancelMessageFormat; @@ -76,10 +79,11 @@ class ChannelBatchCancelFlowsRequest extends AbstractModel * @param array $FlowIds 签署流程Id数组,最多100个,超过100不处理 * @param string $CancelMessage 撤销理由,不超过200个字符 * @param integer $CancelMessageFormat 撤销理由自定义格式;选项: -0 默认格式 -1 只保留身份信息:展示为【发起方】 -2 保留身份信息+企业名称:展示为【发起方xxx公司】 -3 保留身份信息+企业名称+经办人名称:展示为【发起方xxxx公司-经办人姓名】 + +- 0 默认格式 +- 1 只保留身份信息:展示为【发起方】 +- 2 保留身份信息+企业名称:展示为【发起方xxx公司】 +- 3 保留身份信息+企业名称+经办人名称:展示为【发起方xxxx公司-经办人姓名】 * @param UserInfo $Operator 暂未开放 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateEmbedWebUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateEmbedWebUrlRequest.php index a304916b0..20e23d39e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateEmbedWebUrlRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateEmbedWebUrlRequest.php @@ -22,34 +22,38 @@ use TencentCloud\Common\AbstractModel; * * @method Agent getAgent() 获取渠道应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @method void setAgent(Agent $Agent) 设置渠道应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 - * @method string getEmbedType() 获取WEB嵌入资源类型。 -CREATE_SEAL: 创建印章 -CREATE_TEMPLATE:创建模板 -MODIFY_TEMPLATE:修改模板 -PREVIEW_TEMPLATE:预览模板 -PREVIEW_FLOW:预览合同文档 -PREVIEW_FLOW_DETAIL:预览合同详情 -PREVIEW_SEAL_LIST:预览印章列表 -PREVIEW_SEAL_DETAIL:预览印章详情 -EXTEND_SERVICE:扩展服务 - * @method void setEmbedType(string $EmbedType) 设置WEB嵌入资源类型。 -CREATE_SEAL: 创建印章 -CREATE_TEMPLATE:创建模板 -MODIFY_TEMPLATE:修改模板 -PREVIEW_TEMPLATE:预览模板 -PREVIEW_FLOW:预览合同文档 -PREVIEW_FLOW_DETAIL:预览合同详情 -PREVIEW_SEAL_LIST:预览印章列表 -PREVIEW_SEAL_DETAIL:预览印章详情 -EXTEND_SERVICE:扩展服务 + * @method string getEmbedType() 获取要生成WEB嵌入界面的类型, 可以选择的值如下: + +- CREATE_SEAL: 生成创建印章的嵌入页面 +- CREATE_TEMPLATE:生成创建模板的嵌入页面 +- MODIFY_TEMPLATE:生成修改模板的嵌入页面 +- PREVIEW_TEMPLATE:生成预览模板的嵌入页面 +- PREVIEW_FLOW:生成预览合同文档的嵌入页面 +- PREVIEW_FLOW_DETAIL:生成预览合同详情的嵌入页面 +- PREVIEW_SEAL_LIST:生成预览印章列表的嵌入页面 +- PREVIEW_SEAL_DETAIL:生成预览印章详情的嵌入页面 +- EXTEND_SERVICE:生成扩展服务的嵌入页面 + * @method void setEmbedType(string $EmbedType) 设置要生成WEB嵌入界面的类型, 可以选择的值如下: + +- CREATE_SEAL: 生成创建印章的嵌入页面 +- CREATE_TEMPLATE:生成创建模板的嵌入页面 +- MODIFY_TEMPLATE:生成修改模板的嵌入页面 +- PREVIEW_TEMPLATE:生成预览模板的嵌入页面 +- PREVIEW_FLOW:生成预览合同文档的嵌入页面 +- PREVIEW_FLOW_DETAIL:生成预览合同详情的嵌入页面 +- PREVIEW_SEAL_LIST:生成预览印章列表的嵌入页面 +- PREVIEW_SEAL_DETAIL:生成预览印章详情的嵌入页面 +- EXTEND_SERVICE:生成扩展服务的嵌入页面 * @method string getBusinessId() 获取WEB嵌入的业务资源ID -EmbedType取值MODIFY_TEMPLATE,PREVIEW_TEMPLATE时必填,取值为模板id -PREVIEW_FLOW,PREVIEW_FLOW_DETAIL时必填,取值为合同id -PREVIEW_SEAL_DETAIL,必填,取值为印章id + +- 当EmbedType取值MODIFY_TEMPLATE,PREVIEW_TEMPLATE时需要填写模板id作为BusinessId +- 当EmbedType取值PREVIEW_FLOW,PREVIEW_FLOW_DETAIL时需要填写合同id作为BusinessId +- 当EmbedType取值PREVIEW_SEAL_DETAIL需要填写印章id作为BusinessId * @method void setBusinessId(string $BusinessId) 设置WEB嵌入的业务资源ID -EmbedType取值MODIFY_TEMPLATE,PREVIEW_TEMPLATE时必填,取值为模板id -PREVIEW_FLOW,PREVIEW_FLOW_DETAIL时必填,取值为合同id -PREVIEW_SEAL_DETAIL,必填,取值为印章id + +- 当EmbedType取值MODIFY_TEMPLATE,PREVIEW_TEMPLATE时需要填写模板id作为BusinessId +- 当EmbedType取值PREVIEW_FLOW,PREVIEW_FLOW_DETAIL时需要填写合同id作为BusinessId +- 当EmbedType取值PREVIEW_SEAL_DETAIL需要填写印章id作为BusinessId * @method boolean getHiddenComponents() 获取是否隐藏控件,只有预览模板时生效 * @method void setHiddenComponents(boolean $HiddenComponents) 设置是否隐藏控件,只有预览模板时生效 * @method UserInfo getOperator() 获取渠道操作者信息 @@ -63,24 +67,26 @@ class ChannelCreateEmbedWebUrlRequest extends AbstractModel public $Agent; /** - * @var string WEB嵌入资源类型。 -CREATE_SEAL: 创建印章 -CREATE_TEMPLATE:创建模板 -MODIFY_TEMPLATE:修改模板 -PREVIEW_TEMPLATE:预览模板 -PREVIEW_FLOW:预览合同文档 -PREVIEW_FLOW_DETAIL:预览合同详情 -PREVIEW_SEAL_LIST:预览印章列表 -PREVIEW_SEAL_DETAIL:预览印章详情 -EXTEND_SERVICE:扩展服务 + * @var string 要生成WEB嵌入界面的类型, 可以选择的值如下: + +- CREATE_SEAL: 生成创建印章的嵌入页面 +- CREATE_TEMPLATE:生成创建模板的嵌入页面 +- MODIFY_TEMPLATE:生成修改模板的嵌入页面 +- PREVIEW_TEMPLATE:生成预览模板的嵌入页面 +- PREVIEW_FLOW:生成预览合同文档的嵌入页面 +- PREVIEW_FLOW_DETAIL:生成预览合同详情的嵌入页面 +- PREVIEW_SEAL_LIST:生成预览印章列表的嵌入页面 +- PREVIEW_SEAL_DETAIL:生成预览印章详情的嵌入页面 +- EXTEND_SERVICE:生成扩展服务的嵌入页面 */ public $EmbedType; /** * @var string WEB嵌入的业务资源ID -EmbedType取值MODIFY_TEMPLATE,PREVIEW_TEMPLATE时必填,取值为模板id -PREVIEW_FLOW,PREVIEW_FLOW_DETAIL时必填,取值为合同id -PREVIEW_SEAL_DETAIL,必填,取值为印章id + +- 当EmbedType取值MODIFY_TEMPLATE,PREVIEW_TEMPLATE时需要填写模板id作为BusinessId +- 当EmbedType取值PREVIEW_FLOW,PREVIEW_FLOW_DETAIL时需要填写合同id作为BusinessId +- 当EmbedType取值PREVIEW_SEAL_DETAIL需要填写印章id作为BusinessId */ public $BusinessId; @@ -97,20 +103,22 @@ PREVIEW_SEAL_DETAIL,必填,取值为印章id /** * @param Agent $Agent 渠道应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 - * @param string $EmbedType WEB嵌入资源类型。 -CREATE_SEAL: 创建印章 -CREATE_TEMPLATE:创建模板 -MODIFY_TEMPLATE:修改模板 -PREVIEW_TEMPLATE:预览模板 -PREVIEW_FLOW:预览合同文档 -PREVIEW_FLOW_DETAIL:预览合同详情 -PREVIEW_SEAL_LIST:预览印章列表 -PREVIEW_SEAL_DETAIL:预览印章详情 -EXTEND_SERVICE:扩展服务 + * @param string $EmbedType 要生成WEB嵌入界面的类型, 可以选择的值如下: + +- CREATE_SEAL: 生成创建印章的嵌入页面 +- CREATE_TEMPLATE:生成创建模板的嵌入页面 +- MODIFY_TEMPLATE:生成修改模板的嵌入页面 +- PREVIEW_TEMPLATE:生成预览模板的嵌入页面 +- PREVIEW_FLOW:生成预览合同文档的嵌入页面 +- PREVIEW_FLOW_DETAIL:生成预览合同详情的嵌入页面 +- PREVIEW_SEAL_LIST:生成预览印章列表的嵌入页面 +- PREVIEW_SEAL_DETAIL:生成预览印章详情的嵌入页面 +- EXTEND_SERVICE:生成扩展服务的嵌入页面 * @param string $BusinessId WEB嵌入的业务资源ID -EmbedType取值MODIFY_TEMPLATE,PREVIEW_TEMPLATE时必填,取值为模板id -PREVIEW_FLOW,PREVIEW_FLOW_DETAIL时必填,取值为合同id -PREVIEW_SEAL_DETAIL,必填,取值为印章id + +- 当EmbedType取值MODIFY_TEMPLATE,PREVIEW_TEMPLATE时需要填写模板id作为BusinessId +- 当EmbedType取值PREVIEW_FLOW,PREVIEW_FLOW_DETAIL时需要填写合同id作为BusinessId +- 当EmbedType取值PREVIEW_SEAL_DETAIL需要填写印章id作为BusinessId * @param boolean $HiddenComponents 是否隐藏控件,只有预览模板时生效 * @param UserInfo $Operator 渠道操作者信息 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateFlowSignReviewRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateFlowSignReviewRequest.php index de6ff872f..7fea7a5a1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateFlowSignReviewRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateFlowSignReviewRequest.php @@ -42,12 +42,12 @@ SIGN_REJECT:拒签(流程结束) 注:接口通过该字段区分操作类型 该字段不传或者为空,则默认为SignReview签署审核,走签署审核流程 若想使用发起审核,请指定该字段为:CreateReview -若发起个人审核,则指定该字段为:SignReview(注意,给个人审核时,需联系客户经理开白使用) +若发起个人审核,则指定该字段为:SignReview * @method void setOperateType(string $OperateType) 设置操作类型,默认:SignReview;SignReview:签署审核,CreateReview:发起审核 注:接口通过该字段区分操作类型 该字段不传或者为空,则默认为SignReview签署审核,走签署审核流程 若想使用发起审核,请指定该字段为:CreateReview -若发起个人审核,则指定该字段为:SignReview(注意,给个人审核时,需联系客户经理开白使用) +若发起个人审核,则指定该字段为:SignReview */ class ChannelCreateFlowSignReviewRequest extends AbstractModel { @@ -85,7 +85,7 @@ SIGN_REJECT:拒签(流程结束) 注:接口通过该字段区分操作类型 该字段不传或者为空,则默认为SignReview签署审核,走签署审核流程 若想使用发起审核,请指定该字段为:CreateReview -若发起个人审核,则指定该字段为:SignReview(注意,给个人审核时,需联系客户经理开白使用) +若发起个人审核,则指定该字段为:SignReview */ public $OperateType; @@ -103,7 +103,7 @@ SIGN_REJECT:拒签(流程结束) 注:接口通过该字段区分操作类型 该字段不传或者为空,则默认为SignReview签署审核,走签署审核流程 若想使用发起审核,请指定该字段为:CreateReview -若发起个人审核,则指定该字段为:SignReview(注意,给个人审核时,需联系客户经理开白使用) +若发起个人审核,则指定该字段为:SignReview */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateMultiFlowSignQRCodeRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateMultiFlowSignQRCodeRequest.php index d65df603a..44ee3e359 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateMultiFlowSignQRCodeRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateMultiFlowSignQRCodeRequest.php @@ -28,14 +28,20 @@ use TencentCloud\Common\AbstractModel; * @method void setTemplateId(string $TemplateId) 设置模版ID * @method string getFlowName() 获取签署流程名称,最大长度200个字符。 * @method void setFlowName(string $FlowName) 设置签署流程名称,最大长度200个字符。 - * @method integer getMaxFlowNum() 获取最大可发起签署流程份数,默认5份;发起签署流程数量超过此上限后,二维码自动失效。 - * @method void setMaxFlowNum(integer $MaxFlowNum) 设置最大可发起签署流程份数,默认5份;发起签署流程数量超过此上限后,二维码自动失效。 + * @method integer getMaxFlowNum() 获取最大可发起签署流程份数 +
    默认5份 +
    备注:发起签署流程数量超过此上限后,二维码自动失效。 + * @method void setMaxFlowNum(integer $MaxFlowNum) 设置最大可发起签署流程份数 +
    默认5份 +
    备注:发起签署流程数量超过此上限后,二维码自动失效。 * @method integer getFlowEffectiveDay() 获取签署流程有效天数 默认7天 最高设置不超过30天 * @method void setFlowEffectiveDay(integer $FlowEffectiveDay) 设置签署流程有效天数 默认7天 最高设置不超过30天 * @method integer getQrEffectiveDay() 获取二维码有效天数 默认7天 最高设置不超过90天 * @method void setQrEffectiveDay(integer $QrEffectiveDay) 设置二维码有效天数 默认7天 最高设置不超过90天 - * @method array getRestrictions() 获取限制二维码用户条件 - * @method void setRestrictions(array $Restrictions) 设置限制二维码用户条件 + * @method array getRestrictions() 获取指定的签署二维码签署人 +
    指定后,只允许知道的人操作和签署 + * @method void setRestrictions(array $Restrictions) 设置指定的签署二维码签署人 +
    指定后,只允许知道的人操作和签署 * @method string getCallbackUrl() 获取回调地址,最大长度1000个字符 不传默认使用第三方应用号配置的回调地址 回调时机:用户通过签署二维码发起合同时,企业额度不足导致失败 @@ -66,7 +72,9 @@ class ChannelCreateMultiFlowSignQRCodeRequest extends AbstractModel public $FlowName; /** - * @var integer 最大可发起签署流程份数,默认5份;发起签署流程数量超过此上限后,二维码自动失效。 + * @var integer 最大可发起签署流程份数 +
    默认5份 +
    备注:发起签署流程数量超过此上限后,二维码自动失效。 */ public $MaxFlowNum; @@ -81,7 +89,8 @@ class ChannelCreateMultiFlowSignQRCodeRequest extends AbstractModel public $QrEffectiveDay; /** - * @var array 限制二维码用户条件 + * @var array 指定的签署二维码签署人 +
    指定后,只允许知道的人操作和签署 */ public $Restrictions; @@ -109,10 +118,13 @@ class ChannelCreateMultiFlowSignQRCodeRequest extends AbstractModel 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @param string $TemplateId 模版ID * @param string $FlowName 签署流程名称,最大长度200个字符。 - * @param integer $MaxFlowNum 最大可发起签署流程份数,默认5份;发起签署流程数量超过此上限后,二维码自动失效。 + * @param integer $MaxFlowNum 最大可发起签署流程份数 +
    默认5份 +
    备注:发起签署流程数量超过此上限后,二维码自动失效。 * @param integer $FlowEffectiveDay 签署流程有效天数 默认7天 最高设置不超过30天 * @param integer $QrEffectiveDay 二维码有效天数 默认7天 最高设置不超过90天 - * @param array $Restrictions 限制二维码用户条件 + * @param array $Restrictions 指定的签署二维码签署人 +
    指定后,只允许知道的人操作和签署 * @param string $CallbackUrl 回调地址,最大长度1000个字符 不传默认使用第三方应用号配置的回调地址 回调时机:用户通过签署二维码发起合同时,企业额度不足导致失败 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreatePrepareFlowRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreatePrepareFlowRequest.php index 9ac39a7a7..015d0c233 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreatePrepareFlowRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreatePrepareFlowRequest.php @@ -26,12 +26,12 @@ use TencentCloud\Common\AbstractModel; * @method void setResourceType(integer $ResourceType) 设置资源类型,1:模板,目前仅支持模板,与ResourceId对应 * @method BaseFlowInfo getFlowInfo() 获取合同流程基础信息 * @method void setFlowInfo(BaseFlowInfo $FlowInfo) 设置合同流程基础信息 - * @method array getFlowApproverList() 获取合同签署人信息 - * @method void setFlowApproverList(array $FlowApproverList) 设置合同签署人信息 * @method Agent getAgent() 获取应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填 * @method void setAgent(Agent $Agent) 设置应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填 * @method CreateFlowOption getFlowOption() 获取合同流程配置信息,用于配置发起合同时定制化 * @method void setFlowOption(CreateFlowOption $FlowOption) 设置合同流程配置信息,用于配置发起合同时定制化 + * @method array getFlowApproverList() 获取合同签署人信息 + * @method void setFlowApproverList(array $FlowApproverList) 设置合同签署人信息 * @method string getFlowId() 获取通过flowid快速获得之前成功通过页面发起的合同生成链接 * @method void setFlowId(string $FlowId) 设置通过flowid快速获得之前成功通过页面发起的合同生成链接 * @method boolean getNeedPreview() 获取该参数不可用,请通过获取 web 可嵌入接口获取合同流程预览 URL @@ -58,11 +58,6 @@ class ChannelCreatePrepareFlowRequest extends AbstractModel */ public $FlowInfo; - /** - * @var array 合同签署人信息 - */ - public $FlowApproverList; - /** * @var Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填 */ @@ -73,6 +68,11 @@ class ChannelCreatePrepareFlowRequest extends AbstractModel */ public $FlowOption; + /** + * @var array 合同签署人信息 + */ + public $FlowApproverList; + /** * @var string 通过flowid快速获得之前成功通过页面发起的合同生成链接 */ @@ -100,9 +100,9 @@ class ChannelCreatePrepareFlowRequest extends AbstractModel * @param string $ResourceId 资源id,与ResourceType对应 * @param integer $ResourceType 资源类型,1:模板,目前仅支持模板,与ResourceId对应 * @param BaseFlowInfo $FlowInfo 合同流程基础信息 - * @param array $FlowApproverList 合同签署人信息 * @param Agent $Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填 * @param CreateFlowOption $FlowOption 合同流程配置信息,用于配置发起合同时定制化 + * @param array $FlowApproverList 合同签署人信息 * @param string $FlowId 通过flowid快速获得之前成功通过页面发起的合同生成链接 * @param boolean $NeedPreview 该参数不可用,请通过获取 web 可嵌入接口获取合同流程预览 URL * @param OrganizationInfo $Organization 企业机构信息,不用传 @@ -134,15 +134,6 @@ class ChannelCreatePrepareFlowRequest extends AbstractModel $this->FlowInfo->deserialize($param["FlowInfo"]); } - if (array_key_exists("FlowApproverList",$param) and $param["FlowApproverList"] !== null) { - $this->FlowApproverList = []; - foreach ($param["FlowApproverList"] as $key => $value){ - $obj = new CommonFlowApprover(); - $obj->deserialize($value); - array_push($this->FlowApproverList, $obj); - } - } - if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { $this->Agent = new Agent(); $this->Agent->deserialize($param["Agent"]); @@ -153,6 +144,15 @@ class ChannelCreatePrepareFlowRequest extends AbstractModel $this->FlowOption->deserialize($param["FlowOption"]); } + if (array_key_exists("FlowApproverList",$param) and $param["FlowApproverList"] !== null) { + $this->FlowApproverList = []; + foreach ($param["FlowApproverList"] as $key => $value){ + $obj = new CommonFlowApprover(); + $obj->deserialize($value); + array_push($this->FlowApproverList, $obj); + } + } + if (array_key_exists("FlowId",$param) and $param["FlowId"] !== null) { $this->FlowId = $param["FlowId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateUserRolesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateUserRolesRequest.php index 579ecd982..72ddcb50a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateUserRolesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateUserRolesRequest.php @@ -22,12 +22,12 @@ use TencentCloud\Common\AbstractModel; * * @method Agent getAgent() 获取应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @method void setAgent(Agent $Agent) 设置应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 - * @method array getRoleIds() 获取绑定角色的角色id列表 - * @method void setRoleIds(array $RoleIds) 设置绑定角色的角色id列表 - * @method array getUserIds() 获取电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数 - * @method void setUserIds(array $UserIds) 设置电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数 - * @method array getOpenIds() 获取客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数 - * @method void setOpenIds(array $OpenIds) 设置客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数 + * @method array getRoleIds() 获取绑定角色的角色id列表,最多 100 个 + * @method void setRoleIds(array $RoleIds) 设置绑定角色的角色id列表,最多 100 个 + * @method array getUserIds() 获取电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数,最多 100 个 + * @method void setUserIds(array $UserIds) 设置电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数,最多 100 个 + * @method array getOpenIds() 获取客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数,最多 100 个 + * @method void setOpenIds(array $OpenIds) 设置客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数,最多 100 个 * @method UserInfo getOperator() 获取操作者信息 * @method void setOperator(UserInfo $Operator) 设置操作者信息 */ @@ -39,17 +39,17 @@ class ChannelCreateUserRolesRequest extends AbstractModel public $Agent; /** - * @var array 绑定角色的角色id列表 + * @var array 绑定角色的角色id列表,最多 100 个 */ public $RoleIds; /** - * @var array 电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数 + * @var array 电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数,最多 100 个 */ public $UserIds; /** - * @var array 客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数 + * @var array 客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数,最多 100 个 */ public $OpenIds; @@ -61,9 +61,9 @@ class ChannelCreateUserRolesRequest extends AbstractModel /** * @param Agent $Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 - * @param array $RoleIds 绑定角色的角色id列表 - * @param array $UserIds 电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数 - * @param array $OpenIds 客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数 + * @param array $RoleIds 绑定角色的角色id列表,最多 100 个 + * @param array $UserIds 电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数,最多 100 个 + * @param array $OpenIds 客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数,最多 100 个 * @param UserInfo $Operator 操作者信息 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateWebThemeConfigRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateWebThemeConfigRequest.php new file mode 100644 index 000000000..6a077b4c6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateWebThemeConfigRequest.php @@ -0,0 +1,83 @@ +EMBED_WEB_THEME:嵌入式主题 +
    目前只支持EMBED_WEB_THEME,web页面嵌入的主题风格配置 + * @method void setThemeType(string $ThemeType) 设置主题类型
    EMBED_WEB_THEME:嵌入式主题 +
    目前只支持EMBED_WEB_THEME,web页面嵌入的主题风格配置 + * @method WebThemeConfig getWebThemeConfig() 获取主题配置 + * @method void setWebThemeConfig(WebThemeConfig $WebThemeConfig) 设置主题配置 + */ +class ChannelCreateWebThemeConfigRequest extends AbstractModel +{ + /** + * @var Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 + */ + public $Agent; + + /** + * @var string 主题类型
    EMBED_WEB_THEME:嵌入式主题 +
    目前只支持EMBED_WEB_THEME,web页面嵌入的主题风格配置 + */ + public $ThemeType; + + /** + * @var WebThemeConfig 主题配置 + */ + public $WebThemeConfig; + + /** + * @param Agent $Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 + * @param string $ThemeType 主题类型
    EMBED_WEB_THEME:嵌入式主题 +
    目前只支持EMBED_WEB_THEME,web页面嵌入的主题风格配置 + * @param WebThemeConfig $WebThemeConfig 主题配置 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { + $this->Agent = new Agent(); + $this->Agent->deserialize($param["Agent"]); + } + + if (array_key_exists("ThemeType",$param) and $param["ThemeType"] !== null) { + $this->ThemeType = $param["ThemeType"]; + } + + if (array_key_exists("WebThemeConfig",$param) and $param["WebThemeConfig"] !== null) { + $this->WebThemeConfig = new WebThemeConfig(); + $this->WebThemeConfig->deserialize($param["WebThemeConfig"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateWebThemeConfigResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateWebThemeConfigResponse.php new file mode 100644 index 000000000..82a7e1a40 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelCreateWebThemeConfigResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDeleteRoleUsersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDeleteRoleUsersRequest.php index b2862ea48..e902c5213 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDeleteRoleUsersRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDeleteRoleUsersRequest.php @@ -24,12 +24,12 @@ use TencentCloud\Common\AbstractModel; * @method void setAgent(Agent $Agent) 设置代理信息此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @method string getRoleId() 获取角色Id(非超管或法人角色Id) * @method void setRoleId(string $RoleId) 设置角色Id(非超管或法人角色Id) - * @method array getUserIds() 获取电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数 - * @method void setUserIds(array $UserIds) 设置电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数 + * @method array getUserIds() 获取电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数,最多两百 + * @method void setUserIds(array $UserIds) 设置电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数,最多两百 * @method UserInfo getOperator() 获取操作人信息 * @method void setOperator(UserInfo $Operator) 设置操作人信息 - * @method array getOpenIds() 获取客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数 - * @method void setOpenIds(array $OpenIds) 设置客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数 + * @method array getOpenIds() 获取客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数,最多两百 + * @method void setOpenIds(array $OpenIds) 设置客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数,最多两百 */ class ChannelDeleteRoleUsersRequest extends AbstractModel { @@ -44,7 +44,7 @@ class ChannelDeleteRoleUsersRequest extends AbstractModel public $RoleId; /** - * @var array 电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数 + * @var array 电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数,最多两百 */ public $UserIds; @@ -55,16 +55,16 @@ class ChannelDeleteRoleUsersRequest extends AbstractModel public $Operator; /** - * @var array 客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数 + * @var array 客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数,最多两百 */ public $OpenIds; /** * @param Agent $Agent 代理信息此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @param string $RoleId 角色Id(非超管或法人角色Id) - * @param array $UserIds 电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数 + * @param array $UserIds 电子签用户ID列表,与OpenIds参数二选一,优先UserIds参数,最多两百 * @param UserInfo $Operator 操作人信息 - * @param array $OpenIds 客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数 + * @param array $OpenIds 客户系统用户ID列表,与UserIds参数二选一,优先UserIds参数,最多两百 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeEmployeesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeEmployeesRequest.php index b1164ca4c..03418bdde 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeEmployeesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeEmployeesRequest.php @@ -20,33 +20,33 @@ use TencentCloud\Common\AbstractModel; /** * ChannelDescribeEmployees请求参数结构体 * - * @method integer getLimit() 获取返回最大数量,最大为20 - * @method void setLimit(integer $Limit) 设置返回最大数量,最大为20 * @method Agent getAgent() 获取应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @method void setAgent(Agent $Agent) 设置应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 + * @method integer getLimit() 获取指定每页多少条数据,单页最大20 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,单页最大20 * @method array getFilters() 获取查询过滤实名用户,Key为Status,Values为["IsVerified"] 根据第三方系统openId过滤查询员工时,Key为StaffOpenId,Values为["OpenId","OpenId",...] 查询离职员工时,Key为Status,Values为["QuiteJob"] * @method void setFilters(array $Filters) 设置查询过滤实名用户,Key为Status,Values为["IsVerified"] 根据第三方系统openId过滤查询员工时,Key为StaffOpenId,Values为["OpenId","OpenId",...] 查询离职员工时,Key为Status,Values为["QuiteJob"] - * @method integer getOffset() 获取偏移量,默认为0,最大为20000 - * @method void setOffset(integer $Offset) 设置偏移量,默认为0,最大为20000 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大为20000 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大为20000 * @method UserInfo getOperator() 获取暂未开放 * @method void setOperator(UserInfo $Operator) 设置暂未开放 */ class ChannelDescribeEmployeesRequest extends AbstractModel { - /** - * @var integer 返回最大数量,最大为20 - */ - public $Limit; - /** * @var Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 */ public $Agent; + /** + * @var integer 指定每页多少条数据,单页最大20 + */ + public $Limit; + /** * @var array 查询过滤实名用户,Key为Status,Values为["IsVerified"] 根据第三方系统openId过滤查询员工时,Key为StaffOpenId,Values为["OpenId","OpenId",...] @@ -55,7 +55,7 @@ class ChannelDescribeEmployeesRequest extends AbstractModel public $Filters; /** - * @var integer 偏移量,默认为0,最大为20000 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大为20000 */ public $Offset; @@ -66,12 +66,12 @@ class ChannelDescribeEmployeesRequest extends AbstractModel public $Operator; /** - * @param integer $Limit 返回最大数量,最大为20 * @param Agent $Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 + * @param integer $Limit 指定每页多少条数据,单页最大20 * @param array $Filters 查询过滤实名用户,Key为Status,Values为["IsVerified"] 根据第三方系统openId过滤查询员工时,Key为StaffOpenId,Values为["OpenId","OpenId",...] 查询离职员工时,Key为Status,Values为["QuiteJob"] - * @param integer $Offset 偏移量,默认为0,最大为20000 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大为20000 * @param UserInfo $Operator 暂未开放 */ function __construct() @@ -87,15 +87,15 @@ class ChannelDescribeEmployeesRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { - $this->Limit = $param["Limit"]; - } - if (array_key_exists("Agent",$param) and $param["Agent"] !== null) { $this->Agent = new Agent(); $this->Agent->deserialize($param["Agent"]); } + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { $this->Filters = []; foreach ($param["Filters"] as $key => $value){ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeEmployeesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeEmployeesResponse.php index fbe743883..e3495bb5f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeEmployeesResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeEmployeesResponse.php @@ -24,12 +24,12 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setEmployees(array $Employees) 设置员工数据列表 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getOffset() 获取偏移量,默认为0,最大为20000 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setOffset(integer $Offset) 设置偏移量,默认为0,最大为20000 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getLimit() 获取返回最大数量,最大为20 - * @method void setLimit(integer $Limit) 设置返回最大数量,最大为20 + * @method integer getLimit() 获取指定每页多少条数据,单页最大20 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,单页最大20 * @method integer getTotalCount() 获取符合条件的员工数量 * @method void setTotalCount(integer $TotalCount) 设置符合条件的员工数量 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -44,13 +44,13 @@ class ChannelDescribeEmployeesResponse extends AbstractModel public $Employees; /** - * @var integer 偏移量,默认为0,最大为20000 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 注意:此字段可能返回 null,表示取不到有效值。 */ public $Offset; /** - * @var integer 返回最大数量,最大为20 + * @var integer 指定每页多少条数据,单页最大20 */ public $Limit; @@ -67,9 +67,9 @@ class ChannelDescribeEmployeesResponse extends AbstractModel /** * @param array $Employees 员工数据列表 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $Offset 偏移量,默认为0,最大为20000 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大20000 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $Limit 返回最大数量,最大为20 + * @param integer $Limit 指定每页多少条数据,单页最大20 * @param integer $TotalCount 符合条件的员工数量 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeFlowComponentsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeFlowComponentsResponse.php index 2876a1cab..35d641e66 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeFlowComponentsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeFlowComponentsResponse.php @@ -20,9 +20,9 @@ use TencentCloud\Common\AbstractModel; /** * ChannelDescribeFlowComponents返回参数结构体 * - * @method array getRecipientComponentInfos() 获取流程关联的填写控件信息 + * @method array getRecipientComponentInfos() 获取流程关联的填写控件信息,控件会按照参与方进行分类。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setRecipientComponentInfos(array $RecipientComponentInfos) 设置流程关联的填写控件信息 + * @method void setRecipientComponentInfos(array $RecipientComponentInfos) 设置流程关联的填写控件信息,控件会按照参与方进行分类。 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -30,7 +30,7 @@ use TencentCloud\Common\AbstractModel; class ChannelDescribeFlowComponentsResponse extends AbstractModel { /** - * @var array 流程关联的填写控件信息 + * @var array 流程关联的填写控件信息,控件会按照参与方进行分类。 注意:此字段可能返回 null,表示取不到有效值。 */ public $RecipientComponentInfos; @@ -41,7 +41,7 @@ class ChannelDescribeFlowComponentsResponse extends AbstractModel public $RequestId; /** - * @param array $RecipientComponentInfos 流程关联的填写控件信息 + * @param array $RecipientComponentInfos 流程关联的填写控件信息,控件会按照参与方进行分类。 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeRolesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeRolesRequest.php index b685a1fa0..d8243073e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeRolesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeRolesRequest.php @@ -22,10 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method Agent getAgent() 获取应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @method void setAgent(Agent $Agent) 设置应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 - * @method integer getOffset() 获取查询起始偏移,最大2000 - * @method void setOffset(integer $Offset) 设置查询起始偏移,最大2000 - * @method string getLimit() 获取查询数量,最大200 - * @method void setLimit(string $Limit) 设置查询数量,最大200 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @method string getLimit() 获取指定每页多少条数据,单页最大200 + * @method void setLimit(string $Limit) 设置指定每页多少条数据,单页最大200 * @method array getFilters() 获取查询的关键字段: Key:"RoleType",Values:["1"]查询系统角色,Values:["2"]查询自定义角色 Key:"RoleStatus",Values:["1"]查询启用角色,Values:["2"]查询禁用角色 @@ -43,12 +43,12 @@ class ChannelDescribeRolesRequest extends AbstractModel public $Agent; /** - * @var integer 查询起始偏移,最大2000 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 */ public $Offset; /** - * @var string 查询数量,最大200 + * @var string 指定每页多少条数据,单页最大200 */ public $Limit; @@ -67,8 +67,8 @@ Key:"RoleStatus",Values:["1"]查询启用角色,Values:["2"]查询禁用角色 /** * @param Agent $Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 - * @param integer $Offset 查询起始偏移,最大2000 - * @param string $Limit 查询数量,最大200 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @param string $Limit 指定每页多少条数据,单页最大200 * @param array $Filters 查询的关键字段: Key:"RoleType",Values:["1"]查询系统角色,Values:["2"]查询自定义角色 Key:"RoleStatus",Values:["1"]查询启用角色,Values:["2"]查询禁用角色 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeRolesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeRolesResponse.php index 9bd93b9fa..2b5948477 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeRolesResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/ChannelDescribeRolesResponse.php @@ -20,10 +20,10 @@ use TencentCloud\Common\AbstractModel; /** * ChannelDescribeRoles返回参数结构体 * - * @method integer getOffset() 获取页面偏移量,最大2000 - * @method void setOffset(integer $Offset) 设置页面偏移量,最大2000 - * @method integer getLimit() 获取查询数量,最大200 - * @method void setLimit(integer $Limit) 设置查询数量,最大200 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @method integer getLimit() 获取指定每页多少条数据,单页最大200 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,单页最大200 * @method integer getTotalCount() 获取查询角色的总数量 * @method void setTotalCount(integer $TotalCount) 设置查询角色的总数量 * @method array getChannelRoles() 获取角色信息 @@ -36,12 +36,12 @@ use TencentCloud\Common\AbstractModel; class ChannelDescribeRolesResponse extends AbstractModel { /** - * @var integer 页面偏移量,最大2000 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 */ public $Offset; /** - * @var integer 查询数量,最大200 + * @var integer 指定每页多少条数据,单页最大200 */ public $Limit; @@ -62,8 +62,8 @@ class ChannelDescribeRolesResponse extends AbstractModel public $RequestId; /** - * @param integer $Offset 页面偏移量,最大2000 - * @param integer $Limit 查询数量,最大200 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默认从第一页返回。页码从 0 开始,即首页为 0,最大2000 + * @param integer $Limit 指定每页多少条数据,单页最大200 * @param integer $TotalCount 查询角色的总数量 * @param array $ChannelRoles 角色信息 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/Component.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/Component.php index be694127c..1afb0e294 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/Component.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/Component.php @@ -32,9 +32,8 @@ https://cloud.tencent.com/document/product/1323/78346#component-.E4.B8.89.E7.A7. CreateFlowByTemplates发起合同时优先以ComponentId(不为空)填充;否则以ComponentName填充 注: -当GenerateMode=3时,通过"^"来决定是否使用关键字整词匹配能力。 -例: -当GenerateMode=3时,如果传入关键字"^甲方签署^",则会在PDF文件中有且仅有"甲方签署"关键字的地方进行对应操作。 +当GenerateMode=KEYWORD时,通过"^"来决定是否使用关键字整词匹配能力。 +例:当GenerateMode=KEYWORD时,如果传入关键字"^甲方签署^",则会在PDF文件中有且仅有"甲方签署"关键字的地方进行对应操作。 如传入的关键字为"甲方签署",则PDF文件中每个出现关键字的位置都会执行相应操作。 创建控件时,此值为空 @@ -44,9 +43,8 @@ CreateFlowByTemplates发起合同时优先以ComponentId(不为空)填充; CreateFlowByTemplates发起合同时优先以ComponentId(不为空)填充;否则以ComponentName填充 注: -当GenerateMode=3时,通过"^"来决定是否使用关键字整词匹配能力。 -例: -当GenerateMode=3时,如果传入关键字"^甲方签署^",则会在PDF文件中有且仅有"甲方签署"关键字的地方进行对应操作。 +当GenerateMode=KEYWORD时,通过"^"来决定是否使用关键字整词匹配能力。 +例:当GenerateMode=KEYWORD时,如果传入关键字"^甲方签署^",则会在PDF文件中有且仅有"甲方签署"关键字的地方进行对应操作。 如传入的关键字为"甲方签署",则PDF文件中每个出现关键字的位置都会执行相应操作。 创建控件时,此值为空 @@ -93,12 +91,14 @@ SIGN_OPINION - 签署意见控件,用户需要根据配置的签署意见内 SIGN_LEGAL_PERSON_SEAL - 企业法定代表人控件。 表单域的控件不能作为印章和签名控件 - * @method string getComponentName() 获取控件简称,不能超过30个字符 - * @method void setComponentName(string $ComponentName) 设置控件简称,不能超过30个字符 - * @method boolean getComponentRequired() 获取定义控件是否为必填项,默认为false - * @method void setComponentRequired(boolean $ComponentRequired) 设置定义控件是否为必填项,默认为false - * @method string getComponentRecipientId() 获取控件关联的签署方id - * @method void setComponentRecipientId(string $ComponentRecipientId) 设置控件关联的签署方id + * @method string getComponentName() 获取控件简称,不超过30个字符 + * @method void setComponentName(string $ComponentName) 设置控件简称,不超过30个字符 + * @method boolean getComponentRequired() 获取控件是否为必填项, +默认为false-非必填 + * @method void setComponentRequired(boolean $ComponentRequired) 设置控件是否为必填项, +默认为false-非必填 + * @method string getComponentRecipientId() 获取控件关联的参与方ID,对应Recipient结构体中的RecipientId + * @method void setComponentRecipientId(string $ComponentRecipientId) 设置控件关联的参与方ID,对应Recipient结构体中的RecipientId * @method integer getFileIndex() 获取控件所属文件的序号 (文档中文件的排列序号,从0开始) * @method void setFileIndex(integer $FileIndex) 设置控件所属文件的序号 (文档中文件的排列序号,从0开始) * @method string getGenerateMode() 获取控件生成的方式: @@ -353,10 +353,10 @@ SIGN_PAGING_SEAL - 可以指定印章ID * @method void setComponentDateFontSize(integer $ComponentDateFontSize) 设置日期签署控件的字号,默认为 12 签署区日期控件会转换成图片格式并带存证,需要通过字体决定图片大小 - * @method string getDocumentId() 获取控件所属文档的Id, 模块相关接口为空值 - * @method void setDocumentId(string $DocumentId) 设置控件所属文档的Id, 模块相关接口为空值 - * @method string getComponentDescription() 获取控件描述,不能超过30个字符 - * @method void setComponentDescription(string $ComponentDescription) 设置控件描述,不能超过30个字符 + * @method string getDocumentId() 获取控件所属文档的Id, 模板相关接口为空值 + * @method void setDocumentId(string $DocumentId) 设置控件所属文档的Id, 模板相关接口为空值 + * @method string getComponentDescription() 获取控件描述,不超过30个字符 + * @method void setComponentDescription(string $ComponentDescription) 设置控件描述,不超过30个字符 * @method float getOffsetX() 获取指定关键字时横坐标偏移量,单位pt * @method void setOffsetX(float $OffsetX) 设置指定关键字时横坐标偏移量,单位pt * @method float getOffsetY() 获取指定关键字时纵坐标偏移量,单位pt @@ -365,16 +365,38 @@ SIGN_PAGING_SEAL - 可以指定印章ID 如果不为空,属于平台企业预设控件; * @method void setChannelComponentId(string $ChannelComponentId) 设置平台企业控件ID。 如果不为空,属于平台企业预设控件; - * @method string getKeywordOrder() 获取指定关键字排序规则,Positive-正序,Reverse-倒序。传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 + * @method string getKeywordOrder() 获取指定关键字排序规则, +Positive-正序, +Reverse-倒序。 +传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 传入Reverse时会根据关键字在PDF文件内的反序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的最后一个关键字。 - * @method void setKeywordOrder(string $KeywordOrder) 设置指定关键字排序规则,Positive-正序,Reverse-倒序。传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 + * @method void setKeywordOrder(string $KeywordOrder) 设置指定关键字排序规则, +Positive-正序, +Reverse-倒序。 +传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 传入Reverse时会根据关键字在PDF文件内的反序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的最后一个关键字。 - * @method integer getKeywordPage() 获取指定关键字页码,可选参数,指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 - * @method void setKeywordPage(integer $KeywordPage) 设置指定关键字页码,可选参数,指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 - * @method string getRelativeLocation() 获取关键字位置模式,Middle-居中,Below-正下方,Right-正右方,LowerRight-右上角,UpperRight-右下角。示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 - * @method void setRelativeLocation(string $RelativeLocation) 设置关键字位置模式,Middle-居中,Below-正下方,Right-正右方,LowerRight-右上角,UpperRight-右下角。示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 - * @method array getKeywordIndexes() 获取关键字索引,可选参数,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。示例[0,2],说明使用PDF文件内第1个和第3个关键字位置。 - * @method void setKeywordIndexes(array $KeywordIndexes) 设置关键字索引,可选参数,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。示例[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @method integer getKeywordPage() 获取指定关键字页码。 +指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 + * @method void setKeywordPage(integer $KeywordPage) 设置指定关键字页码。 +指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 + * @method string getRelativeLocation() 获取关键字位置模式, +Middle-居中, +Below-正下方, +Right-正右方, +LowerRight-右上角, +UpperRight-右下角。 +示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 + * @method void setRelativeLocation(string $RelativeLocation) 设置关键字位置模式, +Middle-居中, +Below-正下方, +Right-正右方, +LowerRight-右上角, +UpperRight-右下角。 +示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 + * @method array getKeywordIndexes() 获取关键字索引,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。 +示例[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @method void setKeywordIndexes(array $KeywordIndexes) 设置关键字索引,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。 +示例[0,2],说明使用PDF文件内第1个和第3个关键字位置。 * @method string getPlaceholder() 获取填写提示的内容 注意:此字段可能返回 null,表示取不到有效值。 * @method void setPlaceholder(string $Placeholder) 设置填写提示的内容 @@ -388,9 +410,8 @@ class Component extends AbstractModel CreateFlowByTemplates发起合同时优先以ComponentId(不为空)填充;否则以ComponentName填充 注: -当GenerateMode=3时,通过"^"来决定是否使用关键字整词匹配能力。 -例: -当GenerateMode=3时,如果传入关键字"^甲方签署^",则会在PDF文件中有且仅有"甲方签署"关键字的地方进行对应操作。 +当GenerateMode=KEYWORD时,通过"^"来决定是否使用关键字整词匹配能力。 +例:当GenerateMode=KEYWORD时,如果传入关键字"^甲方签署^",则会在PDF文件中有且仅有"甲方签署"关键字的地方进行对应操作。 如传入的关键字为"甲方签署",则PDF文件中每个出现关键字的位置都会执行相应操作。 创建控件时,此值为空 @@ -424,17 +445,18 @@ SIGN_LEGAL_PERSON_SEAL - 企业法定代表人控件。 public $ComponentType; /** - * @var string 控件简称,不能超过30个字符 + * @var string 控件简称,不超过30个字符 */ public $ComponentName; /** - * @var boolean 定义控件是否为必填项,默认为false + * @var boolean 控件是否为必填项, +默认为false-非必填 */ public $ComponentRequired; /** - * @var string 控件关联的签署方id + * @var string 控件关联的参与方ID,对应Recipient结构体中的RecipientId */ public $ComponentRecipientId; @@ -606,12 +628,12 @@ SIGN_PAGING_SEAL - 可以指定印章ID public $ComponentDateFontSize; /** - * @var string 控件所属文档的Id, 模块相关接口为空值 + * @var string 控件所属文档的Id, 模板相关接口为空值 */ public $DocumentId; /** - * @var string 控件描述,不能超过30个字符 + * @var string 控件描述,不超过30个字符 */ public $ComponentDescription; @@ -632,23 +654,34 @@ SIGN_PAGING_SEAL - 可以指定印章ID public $ChannelComponentId; /** - * @var string 指定关键字排序规则,Positive-正序,Reverse-倒序。传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 + * @var string 指定关键字排序规则, +Positive-正序, +Reverse-倒序。 +传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 传入Reverse时会根据关键字在PDF文件内的反序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的最后一个关键字。 */ public $KeywordOrder; /** - * @var integer 指定关键字页码,可选参数,指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 + * @var integer 指定关键字页码。 +指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 */ public $KeywordPage; /** - * @var string 关键字位置模式,Middle-居中,Below-正下方,Right-正右方,LowerRight-右上角,UpperRight-右下角。示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 + * @var string 关键字位置模式, +Middle-居中, +Below-正下方, +Right-正右方, +LowerRight-右上角, +UpperRight-右下角。 +示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 */ public $RelativeLocation; /** - * @var array 关键字索引,可选参数,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。示例[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @var array 关键字索引,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。 +示例[0,2],说明使用PDF文件内第1个和第3个关键字位置。 */ public $KeywordIndexes; @@ -664,9 +697,8 @@ SIGN_PAGING_SEAL - 可以指定印章ID CreateFlowByTemplates发起合同时优先以ComponentId(不为空)填充;否则以ComponentName填充 注: -当GenerateMode=3时,通过"^"来决定是否使用关键字整词匹配能力。 -例: -当GenerateMode=3时,如果传入关键字"^甲方签署^",则会在PDF文件中有且仅有"甲方签署"关键字的地方进行对应操作。 +当GenerateMode=KEYWORD时,通过"^"来决定是否使用关键字整词匹配能力。 +例:当GenerateMode=KEYWORD时,如果传入关键字"^甲方签署^",则会在PDF文件中有且仅有"甲方签署"关键字的地方进行对应操作。 如传入的关键字为"甲方签署",则PDF文件中每个出现关键字的位置都会执行相应操作。 创建控件时,此值为空 @@ -692,9 +724,10 @@ SIGN_OPINION - 签署意见控件,用户需要根据配置的签署意见内 SIGN_LEGAL_PERSON_SEAL - 企业法定代表人控件。 表单域的控件不能作为印章和签名控件 - * @param string $ComponentName 控件简称,不能超过30个字符 - * @param boolean $ComponentRequired 定义控件是否为必填项,默认为false - * @param string $ComponentRecipientId 控件关联的签署方id + * @param string $ComponentName 控件简称,不超过30个字符 + * @param boolean $ComponentRequired 控件是否为必填项, +默认为false-非必填 + * @param string $ComponentRecipientId 控件关联的参与方ID,对应Recipient结构体中的RecipientId * @param integer $FileIndex 控件所属文件的序号 (文档中文件的排列序号,从0开始) * @param string $GenerateMode 控件生成的方式: NORMAL - 普通控件 @@ -822,17 +855,28 @@ SIGN_PAGING_SEAL - 可以指定印章ID * @param integer $ComponentDateFontSize 日期签署控件的字号,默认为 12 签署区日期控件会转换成图片格式并带存证,需要通过字体决定图片大小 - * @param string $DocumentId 控件所属文档的Id, 模块相关接口为空值 - * @param string $ComponentDescription 控件描述,不能超过30个字符 + * @param string $DocumentId 控件所属文档的Id, 模板相关接口为空值 + * @param string $ComponentDescription 控件描述,不超过30个字符 * @param float $OffsetX 指定关键字时横坐标偏移量,单位pt * @param float $OffsetY 指定关键字时纵坐标偏移量,单位pt * @param string $ChannelComponentId 平台企业控件ID。 如果不为空,属于平台企业预设控件; - * @param string $KeywordOrder 指定关键字排序规则,Positive-正序,Reverse-倒序。传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 + * @param string $KeywordOrder 指定关键字排序规则, +Positive-正序, +Reverse-倒序。 +传入Positive时会根据关键字在PDF文件内的顺序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的第一个关键字。 传入Reverse时会根据关键字在PDF文件内的反序进行排列。在指定KeywordIndexes时,0代表在PDF内查找内容时,查找到的最后一个关键字。 - * @param integer $KeywordPage 指定关键字页码,可选参数,指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 - * @param string $RelativeLocation 关键字位置模式,Middle-居中,Below-正下方,Right-正右方,LowerRight-右上角,UpperRight-右下角。示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 - * @param array $KeywordIndexes 关键字索引,可选参数,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。示例[0,2],说明使用PDF文件内第1个和第3个关键字位置。 + * @param integer $KeywordPage 指定关键字页码。 +指定页码后,将只在指定的页码内查找关键字,非该页码的关键字将不会查询出来 + * @param string $RelativeLocation 关键字位置模式, +Middle-居中, +Below-正下方, +Right-正右方, +LowerRight-右上角, +UpperRight-右下角。 +示例:如果设置Middle的关键字盖章,则印章的中心会和关键字的中心重合,如果设置Below,则印章在关键字的正下方 + * @param array $KeywordIndexes 关键字索引,如果一个关键字在PDF文件中存在多个,可以通过关键字索引指定使用第几个关键字作为最后的结果,可指定多个索引。 +示例[0,2],说明使用PDF文件内第1个和第3个关键字位置。 * @param string $Placeholder 填写提示的内容 注意:此字段可能返回 null,表示取不到有效值。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/CreateChannelFlowEvidenceReportResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/CreateChannelFlowEvidenceReportResponse.php index a80088902..8f7028c62 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/CreateChannelFlowEvidenceReportResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/CreateChannelFlowEvidenceReportResponse.php @@ -20,16 +20,22 @@ use TencentCloud\Common\AbstractModel; /** * CreateChannelFlowEvidenceReport返回参数结构体 * - * @method string getReportId() 获取出证报告 ID,用于查询出证报告接口DescribeChannelFlowEvidenceReport时用到 + * @method string getReportId() 获取出证报告 ID,可用户DescribeChannelFlowEvidenceReport接口查询出证PDF的下载地址 + 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setReportId(string $ReportId) 设置出证报告 ID,用于查询出证报告接口DescribeChannelFlowEvidenceReport时用到 + * @method void setReportId(string $ReportId) 设置出证报告 ID,可用户DescribeChannelFlowEvidenceReport接口查询出证PDF的下载地址 + 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getStatus() 获取执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed - * @method void setStatus(string $Status) 设置执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @method string getStatus() 获取出征任务的执行状态,状态列表如下 + +- EvidenceStatusExecuting : 出征任务正在执行中 +- EvidenceStatusSuccess : 出征任务执行成功 +- EvidenceStatusFailed : 出征任务执行失败 + * @method void setStatus(string $Status) 设置出征任务的执行状态,状态列表如下 + +- EvidenceStatusExecuting : 出征任务正在执行中 +- EvidenceStatusSuccess : 出征任务执行成功 +- EvidenceStatusFailed : 出征任务执行失败 * @method string getReportUrl() 获取废除,字段无效 注意:此字段可能返回 null,表示取不到有效值。 * @method void setReportUrl(string $ReportUrl) 设置废除,字段无效 @@ -40,15 +46,18 @@ use TencentCloud\Common\AbstractModel; class CreateChannelFlowEvidenceReportResponse extends AbstractModel { /** - * @var string 出证报告 ID,用于查询出证报告接口DescribeChannelFlowEvidenceReport时用到 + * @var string 出证报告 ID,可用户DescribeChannelFlowEvidenceReport接口查询出证PDF的下载地址 + 注意:此字段可能返回 null,表示取不到有效值。 */ public $ReportId; /** - * @var string 执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @var string 出征任务的执行状态,状态列表如下 + +- EvidenceStatusExecuting : 出征任务正在执行中 +- EvidenceStatusSuccess : 出征任务执行成功 +- EvidenceStatusFailed : 出征任务执行失败 */ public $Status; @@ -64,11 +73,14 @@ class CreateChannelFlowEvidenceReportResponse extends AbstractModel public $RequestId; /** - * @param string $ReportId 出证报告 ID,用于查询出证报告接口DescribeChannelFlowEvidenceReport时用到 + * @param string $ReportId 出证报告 ID,可用户DescribeChannelFlowEvidenceReport接口查询出证PDF的下载地址 + 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $Status 执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @param string $Status 出征任务的执行状态,状态列表如下 + +- EvidenceStatusExecuting : 出征任务正在执行中 +- EvidenceStatusSuccess : 出征任务执行成功 +- EvidenceStatusFailed : 出征任务执行失败 * @param string $ReportUrl 废除,字段无效 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/CreateSignUrlsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/CreateSignUrlsRequest.php index f02d58273..046cff118 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/CreateSignUrlsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/CreateSignUrlsRequest.php @@ -58,6 +58,18 @@ GenerateType为"PERSON"或"FOLLOWER"时必填 * @method void setJumpUrl(string $JumpUrl) 设置签署完之后的H5页面的跳转链接,针对Endpoint为CHANNEL时有效,最大长度1000个字符。 * @method UserInfo getOperator() 获取暂未开放 * @method void setOperator(UserInfo $Operator) 设置暂未开放 + * @method array getHides() 获取生成的签署链接在签署过程隐藏的按钮列表, 可以设置隐藏的按钮列表如下 + +0:合同签署页面更多操作按钮 +1:合同签署页面更多操作的拒绝签署按钮 +2:合同签署页面更多操作的转他人处理按钮 +3:签署成功页的查看详情按钮 + * @method void setHides(array $Hides) 设置生成的签署链接在签署过程隐藏的按钮列表, 可以设置隐藏的按钮列表如下 + +0:合同签署页面更多操作按钮 +1:合同签署页面更多操作的拒绝签署按钮 +2:合同签署页面更多操作的转他人处理按钮 +3:签署成功页的查看详情按钮 */ class CreateSignUrlsRequest extends AbstractModel { @@ -133,6 +145,16 @@ GenerateType为"PERSON"或"FOLLOWER"时必填 */ public $Operator; + /** + * @var array 生成的签署链接在签署过程隐藏的按钮列表, 可以设置隐藏的按钮列表如下 + +0:合同签署页面更多操作按钮 +1:合同签署页面更多操作的拒绝签署按钮 +2:合同签署页面更多操作的转他人处理按钮 +3:签署成功页的查看详情按钮 + */ + public $Hides; + /** * @param Agent $Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @param array $FlowIds 签署流程编号数组,最多支持100个。(备注:该参数和合同组编号必须二选一) @@ -153,6 +175,12 @@ GenerateType为"PERSON"或"FOLLOWER"时必填 * @param boolean $AutoJumpBack Endpoint为"APP" 类型的签署链接,可以设置此值;支持调用方小程序打开签署链接,在电子签小程序完成签署后自动回跳至调用方小程序 * @param string $JumpUrl 签署完之后的H5页面的跳转链接,针对Endpoint为CHANNEL时有效,最大长度1000个字符。 * @param UserInfo $Operator 暂未开放 + * @param array $Hides 生成的签署链接在签署过程隐藏的按钮列表, 可以设置隐藏的按钮列表如下 + +0:合同签署页面更多操作按钮 +1:合同签署页面更多操作的拒绝签署按钮 +2:合同签署页面更多操作的转他人处理按钮 +3:签署成功页的查看详情按钮 */ function __construct() { @@ -220,5 +248,9 @@ GenerateType为"PERSON"或"FOLLOWER"时必填 $this->Operator = new UserInfo(); $this->Operator->deserialize($param["Operator"]); } + + if (array_key_exists("Hides",$param) and $param["Hides"] !== null) { + $this->Hides = $param["Hides"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeChannelFlowEvidenceReportResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeChannelFlowEvidenceReportResponse.php index ddc46476c..f7d681e91 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeChannelFlowEvidenceReportResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeChannelFlowEvidenceReportResponse.php @@ -20,31 +20,37 @@ use TencentCloud\Common\AbstractModel; /** * DescribeChannelFlowEvidenceReport返回参数结构体 * - * @method string getReportUrl() 获取出证报告 URL + * @method string getReportUrl() 获取出证报告下载 URL 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setReportUrl(string $ReportUrl) 设置出证报告 URL + * @method void setReportUrl(string $ReportUrl) 设置出证报告下载 URL 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getStatus() 获取执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed - * @method void setStatus(string $Status) 设置执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @method string getStatus() 获取出征任务的执行状态,状态列表如下 + +- EvidenceStatusExecuting : 出征任务正在执行中 +- EvidenceStatusSuccess : 出征任务执行成功 +- EvidenceStatusFailed : 出征任务执行失败 + * @method void setStatus(string $Status) 设置出征任务的执行状态,状态列表如下 + +- EvidenceStatusExecuting : 出征任务正在执行中 +- EvidenceStatusSuccess : 出征任务执行成功 +- EvidenceStatusFailed : 出征任务执行失败 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class DescribeChannelFlowEvidenceReportResponse extends AbstractModel { /** - * @var string 出证报告 URL + * @var string 出证报告下载 URL 注意:此字段可能返回 null,表示取不到有效值。 */ public $ReportUrl; /** - * @var string 执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @var string 出征任务的执行状态,状态列表如下 + +- EvidenceStatusExecuting : 出征任务正在执行中 +- EvidenceStatusSuccess : 出征任务执行成功 +- EvidenceStatusFailed : 出征任务执行失败 */ public $Status; @@ -54,11 +60,13 @@ class DescribeChannelFlowEvidenceReportResponse extends AbstractModel public $RequestId; /** - * @param string $ReportUrl 出证报告 URL + * @param string $ReportUrl 出证报告下载 URL 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $Status 执行中:EvidenceStatusExecuting -成功:EvidenceStatusSuccess -失败:EvidenceStatusFailed + * @param string $Status 出征任务的执行状态,状态列表如下 + +- EvidenceStatusExecuting : 出征任务正在执行中 +- EvidenceStatusSuccess : 出征任务执行成功 +- EvidenceStatusFailed : 出征任务执行失败 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeFlowDetailInfoRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeFlowDetailInfoRequest.php index 6a48ebdf3..7dfac2898 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeFlowDetailInfoRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeFlowDetailInfoRequest.php @@ -23,11 +23,13 @@ use TencentCloud\Common\AbstractModel; * @method Agent getAgent() 获取应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @method void setAgent(Agent $Agent) 设置应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @method array getFlowIds() 获取合同(流程)编号数组,最多支持100个。 -(备注:该参数和合同组编号必须二选一) +
    备注:该参数和合同组编号必须二选一, 如果填写FlowGroupId则忽略此FlowIds的入参 * @method void setFlowIds(array $FlowIds) 设置合同(流程)编号数组,最多支持100个。 -(备注:该参数和合同组编号必须二选一) - * @method string getFlowGroupId() 获取合同组编号(备注:该参数和合同(流程)编号数组必须二选一) - * @method void setFlowGroupId(string $FlowGroupId) 设置合同组编号(备注:该参数和合同(流程)编号数组必须二选一) +
    备注:该参数和合同组编号必须二选一, 如果填写FlowGroupId则忽略此FlowIds的入参 + * @method string getFlowGroupId() 获取合同组编号 +
    备注:该参数和合同(流程)编号数组必须二选一 + * @method void setFlowGroupId(string $FlowGroupId) 设置合同组编号 +
    备注:该参数和合同(流程)编号数组必须二选一 * @method UserInfo getOperator() 获取暂未开放 * @method void setOperator(UserInfo $Operator) 设置暂未开放 */ @@ -40,12 +42,13 @@ class DescribeFlowDetailInfoRequest extends AbstractModel /** * @var array 合同(流程)编号数组,最多支持100个。 -(备注:该参数和合同组编号必须二选一) +
    备注:该参数和合同组编号必须二选一, 如果填写FlowGroupId则忽略此FlowIds的入参 */ public $FlowIds; /** - * @var string 合同组编号(备注:该参数和合同(流程)编号数组必须二选一) + * @var string 合同组编号 +
    备注:该参数和合同(流程)编号数组必须二选一 */ public $FlowGroupId; @@ -58,8 +61,9 @@ class DescribeFlowDetailInfoRequest extends AbstractModel /** * @param Agent $Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId 必填。 * @param array $FlowIds 合同(流程)编号数组,最多支持100个。 -(备注:该参数和合同组编号必须二选一) - * @param string $FlowGroupId 合同组编号(备注:该参数和合同(流程)编号数组必须二选一) +
    备注:该参数和合同组编号必须二选一, 如果填写FlowGroupId则忽略此FlowIds的入参 + * @param string $FlowGroupId 合同组编号 +
    备注:该参数和合同(流程)编号数组必须二选一 * @param UserInfo $Operator 暂未开放 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeTemplatesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeTemplatesRequest.php index 238b51714..e8a2e8e5c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeTemplatesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeTemplatesRequest.php @@ -20,24 +20,44 @@ use TencentCloud\Common\AbstractModel; /** * DescribeTemplates请求参数结构体 * - * @method Agent getAgent() 获取应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId必填。 - * @method void setAgent(Agent $Agent) 设置应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId必填。 + * @method Agent getAgent() 获取应用相关信息。 +此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId必填。 + * @method void setAgent(Agent $Agent) 设置应用相关信息。 +此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId必填。 * @method string getTemplateId() 获取模板唯一标识,查询单个模板时使用 * @method void setTemplateId(string $TemplateId) 设置模板唯一标识,查询单个模板时使用 - * @method integer getContentType() 获取查询内容:0-模板列表及详情(默认),1-仅模板列表 - * @method void setContentType(integer $ContentType) 设置查询内容:0-模板列表及详情(默认),1-仅模板列表 - * @method integer getLimit() 获取查询个数,默认20,最大100;在查询列表的时候有效 - * @method void setLimit(integer $Limit) 设置查询个数,默认20,最大100;在查询列表的时候有效 - * @method integer getOffset() 获取查询偏移位置,默认0;在查询列表的时候有效 - * @method void setOffset(integer $Offset) 设置查询偏移位置,默认0;在查询列表的时候有效 - * @method boolean getQueryAllComponents() 获取是否返回所有组件信息。默认false,只返回发起方控件;true,返回所有签署方控件 - * @method void setQueryAllComponents(boolean $QueryAllComponents) 设置是否返回所有组件信息。默认false,只返回发起方控件;true,返回所有签署方控件 + * @method integer getContentType() 获取查询内容: +0-模板列表及详情(默认), +1-仅模板列表 + * @method void setContentType(integer $ContentType) 设置查询内容: +0-模板列表及详情(默认), +1-仅模板列表 + * @method integer getLimit() 获取指定每页多少条数据,如果不传默认为20,单页最大100。 + * @method void setLimit(integer $Limit) 设置指定每页多少条数据,如果不传默认为20,单页最大100。 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页,如果不传默从第一页返回。页码从0开始,即首页为0。 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页,如果不传默从第一页返回。页码从0开始,即首页为0。 + * @method boolean getQueryAllComponents() 获取是否返回所有组件信息。 +默认false,只返回发起方控件; +true,返回所有签署方控件 + * @method void setQueryAllComponents(boolean $QueryAllComponents) 设置是否返回所有组件信息。 +默认false,只返回发起方控件; +true,返回所有签署方控件 * @method string getTemplateName() 获取模糊搜索模板名称,最大长度200 * @method void setTemplateName(string $TemplateName) 设置模糊搜索模板名称,最大长度200 - * @method boolean getWithPreviewUrl() 获取是否获取模板预览链接 - * @method void setWithPreviewUrl(boolean $WithPreviewUrl) 设置是否获取模板预览链接 - * @method boolean getWithPdfUrl() 获取是否获取模板的PDF文件链接- 第三方应用集成需要开启白名单时才能使用。 - * @method void setWithPdfUrl(boolean $WithPdfUrl) 设置是否获取模板的PDF文件链接- 第三方应用集成需要开启白名单时才能使用。 + * @method boolean getWithPreviewUrl() 获取是否获取模板预览链接, +默认false-不获取 +true-获取 + * @method void setWithPreviewUrl(boolean $WithPreviewUrl) 设置是否获取模板预览链接, +默认false-不获取 +true-获取 + * @method boolean getWithPdfUrl() 获取是否获取模板的PDF文件链接。 +默认false-不获取 +true-获取 +请联系客户经理开白后使用。 + * @method void setWithPdfUrl(boolean $WithPdfUrl) 设置是否获取模板的PDF文件链接。 +默认false-不获取 +true-获取 +请联系客户经理开白后使用。 * @method string getChannelTemplateId() 获取对应第三方应用平台企业的模板ID * @method void setChannelTemplateId(string $ChannelTemplateId) 设置对应第三方应用平台企业的模板ID * @method UserInfo getOperator() 获取操作者的信息 @@ -46,7 +66,8 @@ use TencentCloud\Common\AbstractModel; class DescribeTemplatesRequest extends AbstractModel { /** - * @var Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId必填。 + * @var Agent 应用相关信息。 +此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId必填。 */ public $Agent; @@ -56,22 +77,26 @@ class DescribeTemplatesRequest extends AbstractModel public $TemplateId; /** - * @var integer 查询内容:0-模板列表及详情(默认),1-仅模板列表 + * @var integer 查询内容: +0-模板列表及详情(默认), +1-仅模板列表 */ public $ContentType; /** - * @var integer 查询个数,默认20,最大100;在查询列表的时候有效 + * @var integer 指定每页多少条数据,如果不传默认为20,单页最大100。 */ public $Limit; /** - * @var integer 查询偏移位置,默认0;在查询列表的时候有效 + * @var integer 查询结果分页返回,此处指定第几页,如果不传默从第一页返回。页码从0开始,即首页为0。 */ public $Offset; /** - * @var boolean 是否返回所有组件信息。默认false,只返回发起方控件;true,返回所有签署方控件 + * @var boolean 是否返回所有组件信息。 +默认false,只返回发起方控件; +true,返回所有签署方控件 */ public $QueryAllComponents; @@ -81,12 +106,17 @@ class DescribeTemplatesRequest extends AbstractModel public $TemplateName; /** - * @var boolean 是否获取模板预览链接 + * @var boolean 是否获取模板预览链接, +默认false-不获取 +true-获取 */ public $WithPreviewUrl; /** - * @var boolean 是否获取模板的PDF文件链接- 第三方应用集成需要开启白名单时才能使用。 + * @var boolean 是否获取模板的PDF文件链接。 +默认false-不获取 +true-获取 +请联系客户经理开白后使用。 */ public $WithPdfUrl; @@ -102,15 +132,25 @@ class DescribeTemplatesRequest extends AbstractModel public $Operator; /** - * @param Agent $Agent 应用相关信息。 此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId必填。 + * @param Agent $Agent 应用相关信息。 +此接口Agent.ProxyOrganizationOpenId、Agent. ProxyOperator.OpenId、Agent.AppId必填。 * @param string $TemplateId 模板唯一标识,查询单个模板时使用 - * @param integer $ContentType 查询内容:0-模板列表及详情(默认),1-仅模板列表 - * @param integer $Limit 查询个数,默认20,最大100;在查询列表的时候有效 - * @param integer $Offset 查询偏移位置,默认0;在查询列表的时候有效 - * @param boolean $QueryAllComponents 是否返回所有组件信息。默认false,只返回发起方控件;true,返回所有签署方控件 + * @param integer $ContentType 查询内容: +0-模板列表及详情(默认), +1-仅模板列表 + * @param integer $Limit 指定每页多少条数据,如果不传默认为20,单页最大100。 + * @param integer $Offset 查询结果分页返回,此处指定第几页,如果不传默从第一页返回。页码从0开始,即首页为0。 + * @param boolean $QueryAllComponents 是否返回所有组件信息。 +默认false,只返回发起方控件; +true,返回所有签署方控件 * @param string $TemplateName 模糊搜索模板名称,最大长度200 - * @param boolean $WithPreviewUrl 是否获取模板预览链接 - * @param boolean $WithPdfUrl 是否获取模板的PDF文件链接- 第三方应用集成需要开启白名单时才能使用。 + * @param boolean $WithPreviewUrl 是否获取模板预览链接, +默认false-不获取 +true-获取 + * @param boolean $WithPdfUrl 是否获取模板的PDF文件链接。 +默认false-不获取 +true-获取 +请联系客户经理开白后使用。 * @param string $ChannelTemplateId 对应第三方应用平台企业的模板ID * @param UserInfo $Operator 操作者的信息 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeTemplatesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeTemplatesResponse.php index e2f604c9a..7d30b7015 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeTemplatesResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/DescribeTemplatesResponse.php @@ -20,36 +20,36 @@ use TencentCloud\Common\AbstractModel; /** * DescribeTemplates返回参数结构体 * - * @method array getTemplates() 获取模板详情 - * @method void setTemplates(array $Templates) 设置模板详情 - * @method integer getTotalCount() 获取查询总数 - * @method void setTotalCount(integer $TotalCount) 设置查询总数 - * @method integer getLimit() 获取查询数量 - * @method void setLimit(integer $Limit) 设置查询数量 - * @method integer getOffset() 获取查询起始偏移 - * @method void setOffset(integer $Offset) 设置查询起始偏移 + * @method array getTemplates() 获取模板列表 + * @method void setTemplates(array $Templates) 设置模板列表 + * @method integer getTotalCount() 获取查询到的总数 + * @method void setTotalCount(integer $TotalCount) 设置查询到的总数 + * @method integer getLimit() 获取每页多少条数据 + * @method void setLimit(integer $Limit) 设置每页多少条数据 + * @method integer getOffset() 获取查询结果分页返回,此处指定第几页。页码从0开始,即首页为0。 + * @method void setOffset(integer $Offset) 设置查询结果分页返回,此处指定第几页。页码从0开始,即首页为0。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class DescribeTemplatesResponse extends AbstractModel { /** - * @var array 模板详情 + * @var array 模板列表 */ public $Templates; /** - * @var integer 查询总数 + * @var integer 查询到的总数 */ public $TotalCount; /** - * @var integer 查询数量 + * @var integer 每页多少条数据 */ public $Limit; /** - * @var integer 查询起始偏移 + * @var integer 查询结果分页返回,此处指定第几页。页码从0开始,即首页为0。 */ public $Offset; @@ -59,10 +59,10 @@ class DescribeTemplatesResponse extends AbstractModel public $RequestId; /** - * @param array $Templates 模板详情 - * @param integer $TotalCount 查询总数 - * @param integer $Limit 查询数量 - * @param integer $Offset 查询起始偏移 + * @param array $Templates 模板列表 + * @param integer $TotalCount 查询到的总数 + * @param integer $Limit 每页多少条数据 + * @param integer $Offset 查询结果分页返回,此处指定第几页。页码从0开始,即首页为0。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FlowApproverDetail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FlowApproverDetail.php index 9a4d78049..77d99a856 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FlowApproverDetail.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FlowApproverDetail.php @@ -39,46 +39,48 @@ use TencentCloud\Common\AbstractModel; * @method void setApproveName(string $ApproveName) 设置签署人姓名 注意:此字段可能返回 null,表示取不到有效值。 * @method string getApproveStatus() 获取当前签署人的状态, 状态如下 - -PENDING 待签署 -FILLPENDING 待填写 -FILLACCEPT 填写完成 -FILLREJECT 拒绝填写 -WAITPICKUP 待领取 -ACCEPT 已签署 -REJECT 拒签 -DEADLINE 过期没人处理 -CANCEL 流程已撤回 -FORWARD 已经转他人处理 -STOP 流程已终止 -RELIEVED 解除协议(已解除) +
    PENDING 待签署 +
    FILLPENDING 待填写 +
    FILLACCEPT 填写完成 +
    FILLREJECT 拒绝填写 +
    WAITPICKUP 待领取 +
    ACCEPT 已签署 +
    REJECT 拒签 +
    DEADLINE 过期没人处理 +
    CANCEL 流程已撤回 +
    FORWARD 已经转他人处理 +
    STOP 流程已终止 +
    RELIEVED 解除协议(已解除) 注意:此字段可能返回 null,表示取不到有效值。 * @method void setApproveStatus(string $ApproveStatus) 设置当前签署人的状态, 状态如下 - -PENDING 待签署 -FILLPENDING 待填写 -FILLACCEPT 填写完成 -FILLREJECT 拒绝填写 -WAITPICKUP 待领取 -ACCEPT 已签署 -REJECT 拒签 -DEADLINE 过期没人处理 -CANCEL 流程已撤回 -FORWARD 已经转他人处理 -STOP 流程已终止 -RELIEVED 解除协议(已解除) +
    PENDING 待签署 +
    FILLPENDING 待填写 +
    FILLACCEPT 填写完成 +
    FILLREJECT 拒绝填写 +
    WAITPICKUP 待领取 +
    ACCEPT 已签署 +
    REJECT 拒签 +
    DEADLINE 过期没人处理 +
    CANCEL 流程已撤回 +
    FORWARD 已经转他人处理 +
    STOP 流程已终止 +
    RELIEVED 解除协议(已解除) 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getApproveMessage() 获取签署人信息 + * @method string getApproveMessage() 获取签署人自定义信息 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setApproveMessage(string $ApproveMessage) 设置签署人信息 + * @method void setApproveMessage(string $ApproveMessage) 设置签署人自定义信息 注意:此字段可能返回 null,表示取不到有效值。 * @method integer getApproveTime() 获取签署人签署时间戳,单位秒 * @method void setApproveTime(integer $ApproveTime) 设置签署人签署时间戳,单位秒 - * @method string getApproveType() 获取参与者类型 (ORGANIZATION企业/PERSON个人) + * @method string getApproveType() 获取参与者类型 +
    ORGANIZATION:企业签署人 +
    PERSON:个人签署人 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setApproveType(string $ApproveType) 设置参与者类型 (ORGANIZATION企业/PERSON个人) + * @method void setApproveType(string $ApproveType) 设置参与者类型 +
    ORGANIZATION:企业签署人 +
    PERSON:个人签署人 注意:此字段可能返回 null,表示取不到有效值。 */ class FlowApproverDetail extends AbstractModel @@ -122,26 +124,25 @@ class FlowApproverDetail extends AbstractModel /** * @var string 当前签署人的状态, 状态如下 - -PENDING 待签署 -FILLPENDING 待填写 -FILLACCEPT 填写完成 -FILLREJECT 拒绝填写 -WAITPICKUP 待领取 -ACCEPT 已签署 -REJECT 拒签 -DEADLINE 过期没人处理 -CANCEL 流程已撤回 -FORWARD 已经转他人处理 -STOP 流程已终止 -RELIEVED 解除协议(已解除) +
    PENDING 待签署 +
    FILLPENDING 待填写 +
    FILLACCEPT 填写完成 +
    FILLREJECT 拒绝填写 +
    WAITPICKUP 待领取 +
    ACCEPT 已签署 +
    REJECT 拒签 +
    DEADLINE 过期没人处理 +
    CANCEL 流程已撤回 +
    FORWARD 已经转他人处理 +
    STOP 流程已终止 +
    RELIEVED 解除协议(已解除) 注意:此字段可能返回 null,表示取不到有效值。 */ public $ApproveStatus; /** - * @var string 签署人信息 + * @var string 签署人自定义信息 注意:此字段可能返回 null,表示取不到有效值。 */ public $ApproveMessage; @@ -152,7 +153,9 @@ RELIEVED 解除协议(已解除) public $ApproveTime; /** - * @var string 参与者类型 (ORGANIZATION企业/PERSON个人) + * @var string 参与者类型 +
    ORGANIZATION:企业签署人 +
    PERSON:个人签署人 注意:此字段可能返回 null,表示取不到有效值。 */ public $ApproveType; @@ -168,25 +171,26 @@ RELIEVED 解除协议(已解除) * @param string $ApproveName 签署人姓名 注意:此字段可能返回 null,表示取不到有效值。 * @param string $ApproveStatus 当前签署人的状态, 状态如下 - -PENDING 待签署 -FILLPENDING 待填写 -FILLACCEPT 填写完成 -FILLREJECT 拒绝填写 -WAITPICKUP 待领取 -ACCEPT 已签署 -REJECT 拒签 -DEADLINE 过期没人处理 -CANCEL 流程已撤回 -FORWARD 已经转他人处理 -STOP 流程已终止 -RELIEVED 解除协议(已解除) +
    PENDING 待签署 +
    FILLPENDING 待填写 +
    FILLACCEPT 填写完成 +
    FILLREJECT 拒绝填写 +
    WAITPICKUP 待领取 +
    ACCEPT 已签署 +
    REJECT 拒签 +
    DEADLINE 过期没人处理 +
    CANCEL 流程已撤回 +
    FORWARD 已经转他人处理 +
    STOP 流程已终止 +
    RELIEVED 解除协议(已解除) 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $ApproveMessage 签署人信息 + * @param string $ApproveMessage 签署人自定义信息 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $ApproveTime 签署人签署时间戳,单位秒 - * @param string $ApproveType 参与者类型 (ORGANIZATION企业/PERSON个人) + * @param string $ApproveType 参与者类型 +
    ORGANIZATION:企业签署人 +
    PERSON:个人签署人 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FlowApproverInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FlowApproverInfo.php index a7ecabdef..73a2c07e3 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FlowApproverInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FlowApproverInfo.php @@ -32,16 +32,18 @@ RecipientId参数: * * @method string getName() 获取签署人姓名,最大长度50个字符 * @method void setName(string $Name) 设置签署人姓名,最大长度50个字符 - * @method string getIdCardType() 获取签署人身份证件类型 + * @method string getIdCardType() 获取签署人的证件类型 1.ID_CARD 居民身份证 2.HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证 3.HONGKONG_AND_MACAO 港澳居民来往内地通行证 - * @method void setIdCardType(string $IdCardType) 设置签署人身份证件类型 +4.OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @method void setIdCardType(string $IdCardType) 设置签署人的证件类型 1.ID_CARD 居民身份证 2.HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证 3.HONGKONG_AND_MACAO 港澳居民来往内地通行证 - * @method string getIdCardNumber() 获取签署人证件号 - * @method void setIdCardNumber(string $IdCardNumber) 设置签署人证件号 +4.OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @method string getIdCardNumber() 获取签署人证件号(长度不超过18位) + * @method void setIdCardNumber(string $IdCardNumber) 设置签署人证件号(长度不超过18位) * @method string getMobile() 获取签署人手机号,脱敏显示。大陆手机号为11位,暂不支持海外手机号。 * @method void setMobile(string $Mobile) 设置签署人手机号,脱敏显示。大陆手机号为11位,暂不支持海外手机号。 * @method string getOrganizationName() 获取企业签署方工商营业执照上的企业名称,签署方为非发起方企业场景下必传,最大长度64个字符; @@ -72,14 +74,14 @@ ENTERPRISESERVER-企业静默签(文件发起时的企业静默签字)。 * @method void setDeadline(integer $Deadline) 设置签署截止时间戳,默认一年 * @method string getCallbackUrl() 获取签署完回调url,最大长度1000个字符 * @method void setCallbackUrl(string $CallbackUrl) 设置签署完回调url,最大长度1000个字符 - * @method array getSignComponents() 获取使用PDF文件直接发起合同时,签署人指定的签署控件 - * @method void setSignComponents(array $SignComponents) 设置使用PDF文件直接发起合同时,签署人指定的签署控件 - * @method array getComponentLimitType() 获取 签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 + * @method array getSignComponents() 获取使用PDF文件直接发起合同时,签署人指定的签署控件;
    使用模板发起合同时,指定本企业印章签署控件的印章ID:
    通过ComponentId或ComponenetName指定签署控件,ComponentValue为印章ID。 + * @method void setSignComponents(array $SignComponents) 设置使用PDF文件直接发起合同时,签署人指定的签署控件;
    使用模板发起合同时,指定本企业印章签署控件的印章ID:
    通过ComponentId或ComponenetName指定签署控件,ComponentValue为印章ID。 + * @method array getComponentLimitType() 获取签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 HANDWRITE – 手写签名 OCR_ESIGN -- AI智能识别手写签名 ESIGN -- 个人印章类型 SYSTEM_ESIGN -- 系统签名(该类型可以在用户签署时根据用户姓名一键生成一个签名来进行签署) - * @method void setComponentLimitType(array $ComponentLimitType) 设置 签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 + * @method void setComponentLimitType(array $ComponentLimitType) 设置签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 HANDWRITE – 手写签名 OCR_ESIGN -- AI智能识别手写签名 ESIGN -- 个人印章类型 @@ -119,15 +121,16 @@ class FlowApproverInfo extends AbstractModel public $Name; /** - * @var string 签署人身份证件类型 + * @var string 签署人的证件类型 1.ID_CARD 居民身份证 2.HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证 3.HONGKONG_AND_MACAO 港澳居民来往内地通行证 +4.OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) */ public $IdCardType; /** - * @var string 签署人证件号 + * @var string 签署人证件号(长度不超过18位) */ public $IdCardNumber; @@ -184,12 +187,12 @@ ENTERPRISESERVER-企业静默签(文件发起时的企业静默签字)。 public $CallbackUrl; /** - * @var array 使用PDF文件直接发起合同时,签署人指定的签署控件 + * @var array 使用PDF文件直接发起合同时,签署人指定的签署控件;
    使用模板发起合同时,指定本企业印章签署控件的印章ID:
    通过ComponentId或ComponenetName指定签署控件,ComponentValue为印章ID。 */ public $SignComponents; /** - * @var array 签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 + * @var array 签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 HANDWRITE – 手写签名 OCR_ESIGN -- AI智能识别手写签名 ESIGN -- 个人印章类型 @@ -244,11 +247,12 @@ ENTERPRISESERVER-企业静默签(文件发起时的企业静默签字)。 /** * @param string $Name 签署人姓名,最大长度50个字符 - * @param string $IdCardType 签署人身份证件类型 + * @param string $IdCardType 签署人的证件类型 1.ID_CARD 居民身份证 2.HONGKONG_MACAO_AND_TAIWAN 港澳台居民居住证 3.HONGKONG_AND_MACAO 港澳居民来往内地通行证 - * @param string $IdCardNumber 签署人证件号 +4.OTHER_CARD_TYPE 其他(需要使用该类型请先联系运营经理) + * @param string $IdCardNumber 签署人证件号(长度不超过18位) * @param string $Mobile 签署人手机号,脱敏显示。大陆手机号为11位,暂不支持海外手机号。 * @param string $OrganizationName 企业签署方工商营业执照上的企业名称,签署方为非发起方企业场景下必传,最大长度64个字符; * @param boolean $NotChannelOrganization 指定签署人非第三方平台子客企业下员工,在ApproverType为ORGANIZATION时指定。 @@ -264,8 +268,8 @@ ENTERPRISESERVER-企业静默签(文件发起时的企业静默签字)。 * @param string $RecipientId 签署流程签署人在模板中对应的签署人Id;在非单方签署、以及非B2C签署的场景下必传,用于指定当前签署方在签署流程中的位置; * @param integer $Deadline 签署截止时间戳,默认一年 * @param string $CallbackUrl 签署完回调url,最大长度1000个字符 - * @param array $SignComponents 使用PDF文件直接发起合同时,签署人指定的签署控件 - * @param array $ComponentLimitType 签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 + * @param array $SignComponents 使用PDF文件直接发起合同时,签署人指定的签署控件;
    使用模板发起合同时,指定本企业印章签署控件的印章ID:
    通过ComponentId或ComponenetName指定签署控件,ComponentValue为印章ID。 + * @param array $ComponentLimitType 签署方控件类型为 SIGN_SIGNATURE时,可以指定签署方签名方式 HANDWRITE – 手写签名 OCR_ESIGN -- AI智能识别手写签名 ESIGN -- 个人印章类型 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FormField.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FormField.php index fae694a33..6e9583b3e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FormField.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/FormField.php @@ -44,9 +44,9 @@ CreateFlowsByTemplates 接口不使用此字段。 注意:此字段可能返回 null,表示取不到有效值。 * @method void setComponentName(string $ComponentName) 设置控件的名字,跟ComponentId二选一,不能全为空 注意:此字段可能返回 null,表示取不到有效值。 - * @method boolean getLockComponentValue() 获取是否锁定模版控件值,锁定后无法修改(用于嵌入式发起合同),true-锁定,false-不锁定 + * @method boolean getLockComponentValue() 获取是否锁定模板控件值,锁定后无法修改(用于嵌入式发起合同),true-锁定,false-不锁定 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setLockComponentValue(boolean $LockComponentValue) 设置是否锁定模版控件值,锁定后无法修改(用于嵌入式发起合同),true-锁定,false-不锁定 + * @method void setLockComponentValue(boolean $LockComponentValue) 设置是否锁定模板控件值,锁定后无法修改(用于嵌入式发起合同),true-锁定,false-不锁定 注意:此字段可能返回 null,表示取不到有效值。 */ class FormField extends AbstractModel @@ -76,7 +76,7 @@ CreateFlowsByTemplates 接口不使用此字段。 public $ComponentName; /** - * @var boolean 是否锁定模版控件值,锁定后无法修改(用于嵌入式发起合同),true-锁定,false-不锁定 + * @var boolean 是否锁定模板控件值,锁定后无法修改(用于嵌入式发起合同),true-锁定,false-不锁定 注意:此字段可能返回 null,表示取不到有效值。 */ public $LockComponentValue; @@ -94,7 +94,7 @@ CreateFlowsByTemplates 接口不使用此字段。 注意:此字段可能返回 null,表示取不到有效值。 * @param string $ComponentName 控件的名字,跟ComponentId二选一,不能全为空 注意:此字段可能返回 null,表示取不到有效值。 - * @param boolean $LockComponentValue 是否锁定模版控件值,锁定后无法修改(用于嵌入式发起合同),true-锁定,false-不锁定 + * @param boolean $LockComponentValue 是否锁定模板控件值,锁定后无法修改(用于嵌入式发起合同),true-锁定,false-不锁定 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/OperateChannelTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/OperateChannelTemplateRequest.php index 0d95b41d7..1260962bf 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/OperateChannelTemplateRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/OperateChannelTemplateRequest.php @@ -20,32 +20,56 @@ use TencentCloud\Common\AbstractModel; /** * OperateChannelTemplate请求参数结构体 * - * @method Agent getAgent() 获取应用相关信息。 此接口Agent.AppId必填。 - * @method void setAgent(Agent $Agent) 设置应用相关信息。 此接口Agent.AppId必填。 - * @method string getOperateType() 获取操作类型,查询:"SELECT",删除:"DELETE",更新:"UPDATE" - * @method void setOperateType(string $OperateType) 设置操作类型,查询:"SELECT",删除:"DELETE",更新:"UPDATE" + * @method Agent getAgent() 获取应用相关信息。 +此接口Agent.AppId必填。 + * @method void setAgent(Agent $Agent) 设置应用相关信息。 +此接口Agent.AppId必填。 + * @method string getOperateType() 获取操作类型, +查询:"SELECT", +删除:"DELETE", +更新:"UPDATE" + * @method void setOperateType(string $OperateType) 设置操作类型, +查询:"SELECT", +删除:"DELETE", +更新:"UPDATE" * @method string getTemplateId() 获取第三方应用平台模板库模板唯一标识 * @method void setTemplateId(string $TemplateId) 设置第三方应用平台模板库模板唯一标识 - * @method string getProxyOrganizationOpenIds() 获取合作企业方第三方机构唯一标识数据,支持多个, 用","进行分隔 - * @method void setProxyOrganizationOpenIds(string $ProxyOrganizationOpenIds) 设置合作企业方第三方机构唯一标识数据,支持多个, 用","进行分隔 - * @method string getAuthTag() 获取模板可见性, 全部可见-"all", 部分可见-"part" - * @method void setAuthTag(string $AuthTag) 设置模板可见性, 全部可见-"all", 部分可见-"part" + * @method string getProxyOrganizationOpenIds() 获取合作企业方第三方机构唯一标识数据. +支持多个, 用","进行分隔 + * @method void setProxyOrganizationOpenIds(string $ProxyOrganizationOpenIds) 设置合作企业方第三方机构唯一标识数据. +支持多个, 用","进行分隔 + * @method string getAuthTag() 获取模板可见性, +全部可见-"all", + 部分可见-"part" + * @method void setAuthTag(string $AuthTag) 设置模板可见性, +全部可见-"all", + 部分可见-"part" + * @method integer getAvailable() 获取当OperateType=UPDATE时,可以通过设置此字段对模板启停用状态进行操作。 +若此字段值为0,则不会修改模板Available, +1为启用模板, +2为停用模板。 +启用后模板可以正常领取。停用后,推送方式为【自动推送】的模板则无法被子客使用,推送方式为【手动领取】的模板则无法出现被模板库被子客领用。如果Available更新失败,会直接返回错误。 + * @method void setAvailable(integer $Available) 设置当OperateType=UPDATE时,可以通过设置此字段对模板启停用状态进行操作。 +若此字段值为0,则不会修改模板Available, +1为启用模板, +2为停用模板。 +启用后模板可以正常领取。停用后,推送方式为【自动推送】的模板则无法被子客使用,推送方式为【手动领取】的模板则无法出现被模板库被子客领用。如果Available更新失败,会直接返回错误。 * @method UserInfo getOperator() 获取暂未开放 * @method void setOperator(UserInfo $Operator) 设置暂未开放 - * @method integer getAvailable() 获取当OperateType=UPADATE时,可以通过设置此字段对模板启停用状态进行操作。若此字段值为0,则不会修改模板Available,1为启用模板,2为停用模板。 -启用后模板可以正常领取。停用后,推送方式为【自动推送】的模板则无法被子客使用,推送方式为【手动领取】的模板则无法出现被模板库被子客领用。如果Available更新失败,会直接返回错误。 - * @method void setAvailable(integer $Available) 设置当OperateType=UPADATE时,可以通过设置此字段对模板启停用状态进行操作。若此字段值为0,则不会修改模板Available,1为启用模板,2为停用模板。 -启用后模板可以正常领取。停用后,推送方式为【自动推送】的模板则无法被子客使用,推送方式为【手动领取】的模板则无法出现被模板库被子客领用。如果Available更新失败,会直接返回错误。 */ class OperateChannelTemplateRequest extends AbstractModel { /** - * @var Agent 应用相关信息。 此接口Agent.AppId必填。 + * @var Agent 应用相关信息。 +此接口Agent.AppId必填。 */ public $Agent; /** - * @var string 操作类型,查询:"SELECT",删除:"DELETE",更新:"UPDATE" + * @var string 操作类型, +查询:"SELECT", +删除:"DELETE", +更新:"UPDATE" */ public $OperateType; @@ -55,15 +79,27 @@ class OperateChannelTemplateRequest extends AbstractModel public $TemplateId; /** - * @var string 合作企业方第三方机构唯一标识数据,支持多个, 用","进行分隔 + * @var string 合作企业方第三方机构唯一标识数据. +支持多个, 用","进行分隔 */ public $ProxyOrganizationOpenIds; /** - * @var string 模板可见性, 全部可见-"all", 部分可见-"part" + * @var string 模板可见性, +全部可见-"all", + 部分可见-"part" */ public $AuthTag; + /** + * @var integer 当OperateType=UPDATE时,可以通过设置此字段对模板启停用状态进行操作。 +若此字段值为0,则不会修改模板Available, +1为启用模板, +2为停用模板。 +启用后模板可以正常领取。停用后,推送方式为【自动推送】的模板则无法被子客使用,推送方式为【手动领取】的模板则无法出现被模板库被子客领用。如果Available更新失败,会直接返回错误。 + */ + public $Available; + /** * @var UserInfo 暂未开放 * @deprecated @@ -71,20 +107,24 @@ class OperateChannelTemplateRequest extends AbstractModel public $Operator; /** - * @var integer 当OperateType=UPADATE时,可以通过设置此字段对模板启停用状态进行操作。若此字段值为0,则不会修改模板Available,1为启用模板,2为停用模板。 -启用后模板可以正常领取。停用后,推送方式为【自动推送】的模板则无法被子客使用,推送方式为【手动领取】的模板则无法出现被模板库被子客领用。如果Available更新失败,会直接返回错误。 - */ - public $Available; - - /** - * @param Agent $Agent 应用相关信息。 此接口Agent.AppId必填。 - * @param string $OperateType 操作类型,查询:"SELECT",删除:"DELETE",更新:"UPDATE" + * @param Agent $Agent 应用相关信息。 +此接口Agent.AppId必填。 + * @param string $OperateType 操作类型, +查询:"SELECT", +删除:"DELETE", +更新:"UPDATE" * @param string $TemplateId 第三方应用平台模板库模板唯一标识 - * @param string $ProxyOrganizationOpenIds 合作企业方第三方机构唯一标识数据,支持多个, 用","进行分隔 - * @param string $AuthTag 模板可见性, 全部可见-"all", 部分可见-"part" - * @param UserInfo $Operator 暂未开放 - * @param integer $Available 当OperateType=UPADATE时,可以通过设置此字段对模板启停用状态进行操作。若此字段值为0,则不会修改模板Available,1为启用模板,2为停用模板。 + * @param string $ProxyOrganizationOpenIds 合作企业方第三方机构唯一标识数据. +支持多个, 用","进行分隔 + * @param string $AuthTag 模板可见性, +全部可见-"all", + 部分可见-"part" + * @param integer $Available 当OperateType=UPDATE时,可以通过设置此字段对模板启停用状态进行操作。 +若此字段值为0,则不会修改模板Available, +1为启用模板, +2为停用模板。 启用后模板可以正常领取。停用后,推送方式为【自动推送】的模板则无法被子客使用,推送方式为【手动领取】的模板则无法出现被模板库被子客领用。如果Available更新失败,会直接返回错误。 + * @param UserInfo $Operator 暂未开放 */ function __construct() { @@ -120,13 +160,13 @@ class OperateChannelTemplateRequest extends AbstractModel $this->AuthTag = $param["AuthTag"]; } + if (array_key_exists("Available",$param) and $param["Available"] !== null) { + $this->Available = $param["Available"]; + } + if (array_key_exists("Operator",$param) and $param["Operator"] !== null) { $this->Operator = new UserInfo(); $this->Operator->deserialize($param["Operator"]); } - - if (array_key_exists("Available",$param) and $param["Available"] !== null) { - $this->Available = $param["Available"]; - } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/OperateChannelTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/OperateChannelTemplateResponse.php index 836087ce8..0b428ef32 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/OperateChannelTemplateResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/OperateChannelTemplateResponse.php @@ -28,13 +28,23 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setTemplateId(string $TemplateId) 设置第三方应用平台模板库模板唯一标识 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getOperateResult() 获取描述模板可见性更改的结果,和参数中Available无关,全部成功-"all-success",部分成功-"part-success", 全部失败-"fail"失败的会在FailMessageList中展示。 + * @method string getOperateResult() 获取描述模板可见性更改的结果,和参数中Available无关。 +全部成功-"all-success", +部分成功-"part-success", +全部失败-"fail",失败的会在FailMessageList中展示。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setOperateResult(string $OperateResult) 设置描述模板可见性更改的结果,和参数中Available无关,全部成功-"all-success",部分成功-"part-success", 全部失败-"fail"失败的会在FailMessageList中展示。 + * @method void setOperateResult(string $OperateResult) 设置描述模板可见性更改的结果,和参数中Available无关。 +全部成功-"all-success", +部分成功-"part-success", +全部失败-"fail",失败的会在FailMessageList中展示。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getAuthTag() 获取模板可见性, 全部可见-"all", 部分可见-"part" + * @method string getAuthTag() 获取模板可见性, +全部可见-"all", +部分可见-"part" 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setAuthTag(string $AuthTag) 设置模板可见性, 全部可见-"all", 部分可见-"part" + * @method void setAuthTag(string $AuthTag) 设置模板可见性, +全部可见-"all", +部分可见-"part" 注意:此字段可能返回 null,表示取不到有效值。 * @method array getProxyOrganizationOpenIds() 获取合作企业方第三方机构唯一标识数据 注意:此字段可能返回 null,表示取不到有效值。 @@ -62,13 +72,18 @@ class OperateChannelTemplateResponse extends AbstractModel public $TemplateId; /** - * @var string 描述模板可见性更改的结果,和参数中Available无关,全部成功-"all-success",部分成功-"part-success", 全部失败-"fail"失败的会在FailMessageList中展示。 + * @var string 描述模板可见性更改的结果,和参数中Available无关。 +全部成功-"all-success", +部分成功-"part-success", +全部失败-"fail",失败的会在FailMessageList中展示。 注意:此字段可能返回 null,表示取不到有效值。 */ public $OperateResult; /** - * @var string 模板可见性, 全部可见-"all", 部分可见-"part" + * @var string 模板可见性, +全部可见-"all", +部分可见-"part" 注意:此字段可能返回 null,表示取不到有效值。 */ public $AuthTag; @@ -95,9 +110,14 @@ class OperateChannelTemplateResponse extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param string $TemplateId 第三方应用平台模板库模板唯一标识 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $OperateResult 描述模板可见性更改的结果,和参数中Available无关,全部成功-"all-success",部分成功-"part-success", 全部失败-"fail"失败的会在FailMessageList中展示。 + * @param string $OperateResult 描述模板可见性更改的结果,和参数中Available无关。 +全部成功-"all-success", +部分成功-"part-success", +全部失败-"fail",失败的会在FailMessageList中展示。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $AuthTag 模板可见性, 全部可见-"all", 部分可见-"part" + * @param string $AuthTag 模板可见性, +全部可见-"all", +部分可见-"part" 注意:此字段可能返回 null,表示取不到有效值。 * @param array $ProxyOrganizationOpenIds 合作企业方第三方机构唯一标识数据 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/Recipient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/Recipient.php index ee02ba49c..1c59a9588 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/Recipient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/Recipient.php @@ -18,61 +18,86 @@ namespace TencentCloud\Essbasic\V20210526\Models; use TencentCloud\Common\AbstractModel; /** - * 签署参与者信息 + * 流程中参与方的信息结构 * - * @method string getRecipientId() 获取签署人唯一标识,在通过模板发起合同的时候对应签署方Id - * @method void setRecipientId(string $RecipientId) 设置签署人唯一标识,在通过模板发起合同的时候对应签署方Id - * @method string getRecipientType() 获取参与者类型。默认为空。ENTERPRISE-企业;INDIVIDUAL-个人;PROMOTER-发起方 - * @method void setRecipientType(string $RecipientType) 设置参与者类型。默认为空。ENTERPRISE-企业;INDIVIDUAL-个人;PROMOTER-发起方 - * @method string getDescription() 获取描述 - * @method void setDescription(string $Description) 设置描述 - * @method string getRoleName() 获取签署方备注角色名 - * @method void setRoleName(string $RoleName) 设置签署方备注角色名 - * @method boolean getRequireValidation() 获取是否需要校验,true-是,false-否 - * @method void setRequireValidation(boolean $RequireValidation) 设置是否需要校验,true-是,false-否 - * @method boolean getRequireSign() 获取是否必须填写,true-是,false-否 - * @method void setRequireSign(boolean $RequireSign) 设置是否必须填写,true-是,false-否 - * @method integer getSignType() 获取签署类型 - * @method void setSignType(integer $SignType) 设置签署类型 + * @method string getRecipientId() 获取签署人唯一标识,在通过模板发起合同的时候对应签署方ID + * @method void setRecipientId(string $RecipientId) 设置签署人唯一标识,在通过模板发起合同的时候对应签署方ID + * @method string getRecipientType() 获取参与者类型,默认为空。 +ENTERPRISE-企业; +INDIVIDUAL-个人; +PROMOTER-发起方 + * @method void setRecipientType(string $RecipientType) 设置参与者类型,默认为空。 +ENTERPRISE-企业; +INDIVIDUAL-个人; +PROMOTER-发起方 + * @method string getDescription() 获取描述信息 + * @method void setDescription(string $Description) 设置描述信息 + * @method string getRoleName() 获取角色名称 + * @method void setRoleName(string $RoleName) 设置角色名称 + * @method boolean getRequireValidation() 获取是否需要校验, +true-是, +false-否 + * @method void setRequireValidation(boolean $RequireValidation) 设置是否需要校验, +true-是, +false-否 + * @method boolean getRequireSign() 获取是否必须填写, +true-是, +false-否 + * @method void setRequireSign(boolean $RequireSign) 设置是否必须填写, +true-是, +false-否 + * @method integer getSignType() 获取内部字段,签署类型 + * @method void setSignType(integer $SignType) 设置内部字段,签署类型 * @method integer getRoutingOrder() 获取签署顺序:数字越小优先级越高 * @method void setRoutingOrder(integer $RoutingOrder) 设置签署顺序:数字越小优先级越高 - * @method boolean getIsPromoter() 获取是否是发起方 - * @method void setIsPromoter(boolean $IsPromoter) 设置是否是发起方 + * @method boolean getIsPromoter() 获取是否是发起方, +true-是 +false-否 + * @method void setIsPromoter(boolean $IsPromoter) 设置是否是发起方, +true-是 +false-否 */ class Recipient extends AbstractModel { /** - * @var string 签署人唯一标识,在通过模板发起合同的时候对应签署方Id + * @var string 签署人唯一标识,在通过模板发起合同的时候对应签署方ID */ public $RecipientId; /** - * @var string 参与者类型。默认为空。ENTERPRISE-企业;INDIVIDUAL-个人;PROMOTER-发起方 + * @var string 参与者类型,默认为空。 +ENTERPRISE-企业; +INDIVIDUAL-个人; +PROMOTER-发起方 */ public $RecipientType; /** - * @var string 描述 + * @var string 描述信息 */ public $Description; /** - * @var string 签署方备注角色名 + * @var string 角色名称 */ public $RoleName; /** - * @var boolean 是否需要校验,true-是,false-否 + * @var boolean 是否需要校验, +true-是, +false-否 */ public $RequireValidation; /** - * @var boolean 是否必须填写,true-是,false-否 + * @var boolean 是否必须填写, +true-是, +false-否 */ public $RequireSign; /** - * @var integer 签署类型 + * @var integer 内部字段,签署类型 */ public $SignType; @@ -82,20 +107,31 @@ class Recipient extends AbstractModel public $RoutingOrder; /** - * @var boolean 是否是发起方 + * @var boolean 是否是发起方, +true-是 +false-否 */ public $IsPromoter; /** - * @param string $RecipientId 签署人唯一标识,在通过模板发起合同的时候对应签署方Id - * @param string $RecipientType 参与者类型。默认为空。ENTERPRISE-企业;INDIVIDUAL-个人;PROMOTER-发起方 - * @param string $Description 描述 - * @param string $RoleName 签署方备注角色名 - * @param boolean $RequireValidation 是否需要校验,true-是,false-否 - * @param boolean $RequireSign 是否必须填写,true-是,false-否 - * @param integer $SignType 签署类型 + * @param string $RecipientId 签署人唯一标识,在通过模板发起合同的时候对应签署方ID + * @param string $RecipientType 参与者类型,默认为空。 +ENTERPRISE-企业; +INDIVIDUAL-个人; +PROMOTER-发起方 + * @param string $Description 描述信息 + * @param string $RoleName 角色名称 + * @param boolean $RequireValidation 是否需要校验, +true-是, +false-否 + * @param boolean $RequireSign 是否必须填写, +true-是, +false-否 + * @param integer $SignType 内部字段,签署类型 * @param integer $RoutingOrder 签署顺序:数字越小优先级越高 - * @param boolean $IsPromoter 是否是发起方 + * @param boolean $IsPromoter 是否是发起方, +true-是 +false-否 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/TemplateInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/TemplateInfo.php index 17e62c172..d4d0b8155 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/TemplateInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/TemplateInfo.php @@ -19,63 +19,87 @@ use TencentCloud\Common\AbstractModel; /** * 此结构体 (TemplateInfo) 用于描述模板的信息。 + +> **模板组成** +> +> 一个模板通常会包含以下结构信息 +>- 模板基本信息 +>- 签署参与方 Recipients,在模板发起合同时用于指定参与方 +>- 填写控件 Components +>- 签署控件 SignComponents * - * @method string getTemplateId() 获取模板ID - * @method void setTemplateId(string $TemplateId) 设置模板ID - * @method string getTemplateName() 获取模板名字 - * @method void setTemplateName(string $TemplateName) 设置模板名字 + * @method string getTemplateId() 获取模板ID,模板的唯一标识 + * @method void setTemplateId(string $TemplateId) 设置模板ID,模板的唯一标识 + * @method string getTemplateName() 获取模板名 + * @method void setTemplateName(string $TemplateName) 设置模板名 * @method string getDescription() 获取模板描述信息 * @method void setDescription(string $Description) 设置模板描述信息 - * @method array getComponents() 获取模板的填充控件信息结构 - * @method void setComponents(array $Components) 设置模板的填充控件信息结构 - * @method array getRecipients() 获取模板中的流程参与人信息 - * @method void setRecipients(array $Recipients) 设置模板中的流程参与人信息 - * @method array getSignComponents() 获取模板中的签署控件信息结构 - * @method void setSignComponents(array $SignComponents) 设置模板中的签署控件信息结构 + * @method array getComponents() 获取模板的填充控件列表 + * @method void setComponents(array $Components) 设置模板的填充控件列表 + * @method array getRecipients() 获取模板中的签署参与方列表 + * @method void setRecipients(array $Recipients) 设置模板中的签署参与方列表 + * @method array getSignComponents() 获取模板中的签署控件列表 + * @method void setSignComponents(array $SignComponents) 设置模板中的签署控件列表 * @method integer getTemplateType() 获取模板类型:1-静默签;3-普通模板 * @method void setTemplateType(integer $TemplateType) 设置模板类型:1-静默签;3-普通模板 * @method boolean getIsPromoter() 获取是否是发起人 ,已弃用 * @method void setIsPromoter(boolean $IsPromoter) 设置是否是发起人 ,已弃用 * @method string getCreator() 获取模板的创建者信息,电子签系统用户ID * @method void setCreator(string $Creator) 设置模板的创建者信息,电子签系统用户ID - * @method integer getCreatedOn() 获取模板创建的时间戳,单位秒 - * @method void setCreatedOn(integer $CreatedOn) 设置模板创建的时间戳,单位秒 - * @method string getPreviewUrl() 获取模板的H5预览链接,可以通过浏览器打开此链接预览模板,或者嵌入到iframe中预览模板。请求参数WithPreviewUrl=true时返回,有效期5分钟。 + * @method integer getCreatedOn() 获取模板创建的时间戳,格式为Unix标准时间戳(秒) + * @method void setCreatedOn(integer $CreatedOn) 设置模板创建的时间戳,格式为Unix标准时间戳(秒) + * @method string getPreviewUrl() 获取模板的H5预览链接,有效期5分钟。 +可以通过浏览器打开此链接预览模板,或者嵌入到iframe中预览模板。 +(此功能开放需要联系客户经理) 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setPreviewUrl(string $PreviewUrl) 设置模板的H5预览链接,可以通过浏览器打开此链接预览模板,或者嵌入到iframe中预览模板。请求参数WithPreviewUrl=true时返回,有效期5分钟。 + * @method void setPreviewUrl(string $PreviewUrl) 设置模板的H5预览链接,有效期5分钟。 +可以通过浏览器打开此链接预览模板,或者嵌入到iframe中预览模板。 +(此功能开放需要联系客户经理) 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getPdfUrl() 获取第三方应用集成-模板PDF文件链接。请求参数WithPdfUrl=true时返回(此功能开放需要联系客户经理),有效期5分钟。 + * @method string getPdfUrl() 获取第三方应用集成-模板PDF文件链接,有效期5分钟。 +请求参数WithPdfUrl=true时返回 +(此功能开放需要联系客户经理)。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setPdfUrl(string $PdfUrl) 设置第三方应用集成-模板PDF文件链接。请求参数WithPdfUrl=true时返回(此功能开放需要联系客户经理),有效期5分钟。 + * @method void setPdfUrl(string $PdfUrl) 设置第三方应用集成-模板PDF文件链接,有效期5分钟。 +请求参数WithPdfUrl=true时返回 +(此功能开放需要联系客户经理)。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getChannelTemplateId() 获取关联的第三方应用平台企业模板ID - * @method void setChannelTemplateId(string $ChannelTemplateId) 设置关联的第三方应用平台企业模板ID - * @method string getChannelTemplateName() 获取关联的三方应用平台平台企业模板名称 + * @method string getChannelTemplateId() 获取本模板关联的第三方应用平台企业模板ID + * @method void setChannelTemplateId(string $ChannelTemplateId) 设置本模板关联的第三方应用平台企业模板ID + * @method string getChannelTemplateName() 获取本模板关联的三方应用平台平台企业模板名称 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setChannelTemplateName(string $ChannelTemplateName) 设置关联的三方应用平台平台企业模板名称 + * @method void setChannelTemplateName(string $ChannelTemplateName) 设置本模板关联的三方应用平台平台企业模板名称 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getChannelAutoSave() 获取0-需要子客企业手动领取平台企业的模板(默认); 1-平台自动设置子客模板 + * @method integer getChannelAutoSave() 获取0-需要子客企业手动领取平台企业的模板(默认); +1-平台自动设置子客模板 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setChannelAutoSave(integer $ChannelAutoSave) 设置0-需要子客企业手动领取平台企业的模板(默认); 1-平台自动设置子客模板 + * @method void setChannelAutoSave(integer $ChannelAutoSave) 设置0-需要子客企业手动领取平台企业的模板(默认); +1-平台自动设置子客模板 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getTemplateVersion() 获取模板版本,全数字字符。默认为空,初始版本为yyyyMMdd001。 + * @method string getTemplateVersion() 获取模板版本,全数字字符。 +默认为空,初始版本为yyyyMMdd001。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setTemplateVersion(string $TemplateVersion) 设置模板版本,全数字字符。默认为空,初始版本为yyyyMMdd001。 + * @method void setTemplateVersion(string $TemplateVersion) 设置模板版本,全数字字符。 +默认为空,初始版本为yyyyMMdd001。 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getAvailable() 获取模板可用状态,取值:1启用(默认),2停用 + * @method integer getAvailable() 获取模板可用状态: +1启用(默认) +2停用 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setAvailable(integer $Available) 设置模板可用状态,取值:1启用(默认),2停用 + * @method void setAvailable(integer $Available) 设置模板可用状态: +1启用(默认) +2停用 注意:此字段可能返回 null,表示取不到有效值。 */ class TemplateInfo extends AbstractModel { /** - * @var string 模板ID + * @var string 模板ID,模板的唯一标识 */ public $TemplateId; /** - * @var string 模板名字 + * @var string 模板名 */ public $TemplateName; @@ -85,17 +109,17 @@ class TemplateInfo extends AbstractModel public $Description; /** - * @var array 模板的填充控件信息结构 + * @var array 模板的填充控件列表 */ public $Components; /** - * @var array 模板中的流程参与人信息 + * @var array 模板中的签署参与方列表 */ public $Recipients; /** - * @var array 模板中的签署控件信息结构 + * @var array 模板中的签署控件列表 */ public $SignComponents; @@ -116,74 +140,90 @@ class TemplateInfo extends AbstractModel public $Creator; /** - * @var integer 模板创建的时间戳,单位秒 + * @var integer 模板创建的时间戳,格式为Unix标准时间戳(秒) */ public $CreatedOn; /** - * @var string 模板的H5预览链接,可以通过浏览器打开此链接预览模板,或者嵌入到iframe中预览模板。请求参数WithPreviewUrl=true时返回,有效期5分钟。 + * @var string 模板的H5预览链接,有效期5分钟。 +可以通过浏览器打开此链接预览模板,或者嵌入到iframe中预览模板。 +(此功能开放需要联系客户经理) 注意:此字段可能返回 null,表示取不到有效值。 */ public $PreviewUrl; /** - * @var string 第三方应用集成-模板PDF文件链接。请求参数WithPdfUrl=true时返回(此功能开放需要联系客户经理),有效期5分钟。 + * @var string 第三方应用集成-模板PDF文件链接,有效期5分钟。 +请求参数WithPdfUrl=true时返回 +(此功能开放需要联系客户经理)。 注意:此字段可能返回 null,表示取不到有效值。 */ public $PdfUrl; /** - * @var string 关联的第三方应用平台企业模板ID + * @var string 本模板关联的第三方应用平台企业模板ID */ public $ChannelTemplateId; /** - * @var string 关联的三方应用平台平台企业模板名称 + * @var string 本模板关联的三方应用平台平台企业模板名称 注意:此字段可能返回 null,表示取不到有效值。 */ public $ChannelTemplateName; /** - * @var integer 0-需要子客企业手动领取平台企业的模板(默认); 1-平台自动设置子客模板 + * @var integer 0-需要子客企业手动领取平台企业的模板(默认); +1-平台自动设置子客模板 注意:此字段可能返回 null,表示取不到有效值。 */ public $ChannelAutoSave; /** - * @var string 模板版本,全数字字符。默认为空,初始版本为yyyyMMdd001。 + * @var string 模板版本,全数字字符。 +默认为空,初始版本为yyyyMMdd001。 注意:此字段可能返回 null,表示取不到有效值。 */ public $TemplateVersion; /** - * @var integer 模板可用状态,取值:1启用(默认),2停用 + * @var integer 模板可用状态: +1启用(默认) +2停用 注意:此字段可能返回 null,表示取不到有效值。 */ public $Available; /** - * @param string $TemplateId 模板ID - * @param string $TemplateName 模板名字 + * @param string $TemplateId 模板ID,模板的唯一标识 + * @param string $TemplateName 模板名 * @param string $Description 模板描述信息 - * @param array $Components 模板的填充控件信息结构 - * @param array $Recipients 模板中的流程参与人信息 - * @param array $SignComponents 模板中的签署控件信息结构 + * @param array $Components 模板的填充控件列表 + * @param array $Recipients 模板中的签署参与方列表 + * @param array $SignComponents 模板中的签署控件列表 * @param integer $TemplateType 模板类型:1-静默签;3-普通模板 * @param boolean $IsPromoter 是否是发起人 ,已弃用 * @param string $Creator 模板的创建者信息,电子签系统用户ID - * @param integer $CreatedOn 模板创建的时间戳,单位秒 - * @param string $PreviewUrl 模板的H5预览链接,可以通过浏览器打开此链接预览模板,或者嵌入到iframe中预览模板。请求参数WithPreviewUrl=true时返回,有效期5分钟。 + * @param integer $CreatedOn 模板创建的时间戳,格式为Unix标准时间戳(秒) + * @param string $PreviewUrl 模板的H5预览链接,有效期5分钟。 +可以通过浏览器打开此链接预览模板,或者嵌入到iframe中预览模板。 +(此功能开放需要联系客户经理) 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $PdfUrl 第三方应用集成-模板PDF文件链接。请求参数WithPdfUrl=true时返回(此功能开放需要联系客户经理),有效期5分钟。 + * @param string $PdfUrl 第三方应用集成-模板PDF文件链接,有效期5分钟。 +请求参数WithPdfUrl=true时返回 +(此功能开放需要联系客户经理)。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $ChannelTemplateId 关联的第三方应用平台企业模板ID - * @param string $ChannelTemplateName 关联的三方应用平台平台企业模板名称 + * @param string $ChannelTemplateId 本模板关联的第三方应用平台企业模板ID + * @param string $ChannelTemplateName 本模板关联的三方应用平台平台企业模板名称 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $ChannelAutoSave 0-需要子客企业手动领取平台企业的模板(默认); 1-平台自动设置子客模板 + * @param integer $ChannelAutoSave 0-需要子客企业手动领取平台企业的模板(默认); +1-平台自动设置子客模板 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $TemplateVersion 模板版本,全数字字符。默认为空,初始版本为yyyyMMdd001。 + * @param string $TemplateVersion 模板版本,全数字字符。 +默认为空,初始版本为yyyyMMdd001。 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $Available 模板可用状态,取值:1启用(默认),2停用 + * @param integer $Available 模板可用状态: +1启用(默认) +2停用 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/WebThemeConfig.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/WebThemeConfig.php new file mode 100644 index 000000000..89bfee3e9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Essbasic/V20210526/Models/WebThemeConfig.php @@ -0,0 +1,77 @@ +true:允许在页面底部隐藏电子签logo +
    默认false,不允许允许在页面底部隐藏电子签logo + * @method void setDisplaySignBrandLogo(boolean $DisplaySignBrandLogo) 设置页面底部是否显示电子签logo +
    true:允许在页面底部隐藏电子签logo +
    默认false,不允许允许在页面底部隐藏电子签logo + * @method string getWebEmbedThemeColor() 获取嵌入式主题颜色 +
    支持十六进制颜色值以及RGB格式颜色值,例如:#D54941,rgb(213, 73, 65) + * @method void setWebEmbedThemeColor(string $WebEmbedThemeColor) 设置嵌入式主题颜色 +
    支持十六进制颜色值以及RGB格式颜色值,例如:#D54941,rgb(213, 73, 65) + */ +class WebThemeConfig extends AbstractModel +{ + /** + * @var boolean 页面底部是否显示电子签logo +
    true:允许在页面底部隐藏电子签logo +
    默认false,不允许允许在页面底部隐藏电子签logo + */ + public $DisplaySignBrandLogo; + + /** + * @var string 嵌入式主题颜色 +
    支持十六进制颜色值以及RGB格式颜色值,例如:#D54941,rgb(213, 73, 65) + */ + public $WebEmbedThemeColor; + + /** + * @param boolean $DisplaySignBrandLogo 页面底部是否显示电子签logo +
    true:允许在页面底部隐藏电子签logo +
    默认false,不允许允许在页面底部隐藏电子签logo + * @param string $WebEmbedThemeColor 嵌入式主题颜色 +
    支持十六进制颜色值以及RGB格式颜色值,例如:#D54941,rgb(213, 73, 65) + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("DisplaySignBrandLogo",$param) and $param["DisplaySignBrandLogo"] !== null) { + $this->DisplaySignBrandLogo = $param["DisplaySignBrandLogo"]; + } + + if (array_key_exists("WebEmbedThemeColor",$param) and $param["WebEmbedThemeColor"] !== null) { + $this->WebEmbedThemeColor = $param["WebEmbedThemeColor"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FaceFusionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FaceFusionRequest.php index ff958db90..8e155f12c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FaceFusionRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FaceFusionRequest.php @@ -36,6 +36,8 @@ use TencentCloud\Common\AbstractModel; 请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。 * @method string getUrl() 获取图片Url地址 * @method void setUrl(string $Url) 设置图片Url地址 + * @method FuseParam getFuseParam() 获取融合参数 + * @method void setFuseParam(FuseParam $FuseParam) 设置融合参数 */ class FaceFusionRequest extends AbstractModel { @@ -75,6 +77,11 @@ class FaceFusionRequest extends AbstractModel */ public $Url; + /** + * @var FuseParam 融合参数 + */ + public $FuseParam; + /** * @param string $ProjectId 活动 ID,请在人脸融合控制台查看。 * @param string $ModelId 素材 ID,请在人脸融合控制台查看。 @@ -84,6 +91,7 @@ class FaceFusionRequest extends AbstractModel * @param integer $CelebrityIdentify 0表示不需要不适宜内容识别,1表示需要不适宜内容识别。默认值为0。 请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。 * @param string $Url 图片Url地址 + * @param FuseParam $FuseParam 融合参数 */ function __construct() { @@ -125,5 +133,10 @@ class FaceFusionRequest extends AbstractModel if (array_key_exists("Url",$param) and $param["Url"] !== null) { $this->Url = $param["Url"]; } + + if (array_key_exists("FuseParam",$param) and $param["FuseParam"] !== null) { + $this->FuseParam = new FuseParam(); + $this->FuseParam->deserialize($param["FuseParam"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FuseFaceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FuseFaceRequest.php index 74fcfc96d..93feba05f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FuseFaceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FuseFaceRequest.php @@ -40,6 +40,8 @@ use TencentCloud\Common\AbstractModel; 请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。 * @method void setCelebrityIdentify(integer $CelebrityIdentify) 设置0表示不需要不适宜内容识别,1表示需要不适宜内容识别。默认值为0。 请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。 + * @method FuseParam getFuseParam() 获取融合参数 + * @method void setFuseParam(FuseParam $FuseParam) 设置融合参数 */ class FuseFaceRequest extends AbstractModel { @@ -81,6 +83,11 @@ class FuseFaceRequest extends AbstractModel */ public $CelebrityIdentify; + /** + * @var FuseParam 融合参数 + */ + public $FuseParam; + /** * @param string $ProjectId 活动 ID,请在人脸融合控制台查看。 * @param string $ModelId 素材 ID,请在人脸融合控制台查看。 @@ -92,6 +99,7 @@ class FuseFaceRequest extends AbstractModel 若此参数不填写,则使用人脸融合控制台中五官参数数值。(换脸版算法暂不支持此参数调整) * @param integer $CelebrityIdentify 0表示不需要不适宜内容识别,1表示需要不适宜内容识别。默认值为0。 请注意,不适宜内容识别服务开启后,您需要根据返回结果自行判断是否调整您的业务逻辑。例如提示您的用户图片非法,请更换图片。 + * @param FuseParam $FuseParam 融合参数 */ function __construct() { @@ -138,5 +146,10 @@ class FuseFaceRequest extends AbstractModel if (array_key_exists("CelebrityIdentify",$param) and $param["CelebrityIdentify"] !== null) { $this->CelebrityIdentify = $param["CelebrityIdentify"]; } + + if (array_key_exists("FuseParam",$param) and $param["FuseParam"] !== null) { + $this->FuseParam = new FuseParam(); + $this->FuseParam->deserialize($param["FuseParam"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FuseParam.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FuseParam.php new file mode 100644 index 000000000..1f2832ab4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/FuseParam.php @@ -0,0 +1,54 @@ +ImageCodecParam = new ImageCodecParam(); + $this->ImageCodecParam->deserialize($param["ImageCodecParam"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentenceEmbeddingRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/ImageCodecParam.php similarity index 60% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentenceEmbeddingRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/ImageCodecParam.php index 8e3a46b3c..f7aceca2f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentenceEmbeddingRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/ImageCodecParam.php @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Facefusion\V20181201\Models; use TencentCloud\Common\AbstractModel; /** - * SentenceEmbedding请求参数结构体 + * 图片编码参数 * - * @method string getText() 获取输入的文本(仅支持UTF-8格式,不超过500字) - * @method void setText(string $Text) 设置输入的文本(仅支持UTF-8格式,不超过500字) + * @method array getMetaData() 获取元数据 + * @method void setMetaData(array $MetaData) 设置元数据 */ -class SentenceEmbeddingRequest extends AbstractModel +class ImageCodecParam extends AbstractModel { /** - * @var string 输入的文本(仅支持UTF-8格式,不超过500字) + * @var array 元数据 */ - public $Text; + public $MetaData; /** - * @param string $Text 输入的文本(仅支持UTF-8格式,不超过500字) + * @param array $MetaData 元数据 */ function __construct() { @@ -46,8 +46,13 @@ class SentenceEmbeddingRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Text",$param) and $param["Text"] !== null) { - $this->Text = $param["Text"]; + if (array_key_exists("MetaData",$param) and $param["MetaData"] !== null) { + $this->MetaData = []; + foreach ($param["MetaData"] as $key => $value){ + $obj = new MetaData(); + $obj->deserialize($value); + array_push($this->MetaData, $obj); + } } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/MetaData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/MetaData.php new file mode 100644 index 000000000..cb4303c61 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20181201/Models/MetaData.php @@ -0,0 +1,65 @@ +MetaKey = $param["MetaKey"]; + } + + if (array_key_exists("MetaValue",$param) and $param["MetaValue"] !== null) { + $this->MetaValue = $param["MetaValue"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/FuseFaceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/FuseFaceRequest.php index f600ff20a..54cf5e85a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/FuseFaceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/FuseFaceRequest.php @@ -50,6 +50,8 @@ use TencentCloud\Common\AbstractModel; 默认在融合结果图右下角添加“本图片为AI合成图片”字样,您可根据自身需要替换为其他的Logo图片。 * @method void setLogoParam(LogoParam $LogoParam) 设置标识内容设置。 默认在融合结果图右下角添加“本图片为AI合成图片”字样,您可根据自身需要替换为其他的Logo图片。 + * @method FuseParam getFuseParam() 获取融合参数。 + * @method void setFuseParam(FuseParam $FuseParam) 设置融合参数。 */ class FuseFaceRequest extends AbstractModel { @@ -100,6 +102,11 @@ class FuseFaceRequest extends AbstractModel */ public $LogoParam; + /** + * @var FuseParam 融合参数。 + */ + public $FuseParam; + /** * @param string $ProjectId 活动 ID,请在人脸融合控制台查看。 * @param string $ModelId 素材 ID,请在人脸融合控制台查看。 @@ -116,6 +123,7 @@ class FuseFaceRequest extends AbstractModel 建议您使用显著标识来提示结果图使用了人脸融合技术,是AI合成的图片。 * @param LogoParam $LogoParam 标识内容设置。 默认在融合结果图右下角添加“本图片为AI合成图片”字样,您可根据自身需要替换为其他的Logo图片。 + * @param FuseParam $FuseParam 融合参数。 */ function __construct() { @@ -167,5 +175,10 @@ class FuseFaceRequest extends AbstractModel $this->LogoParam = new LogoParam(); $this->LogoParam->deserialize($param["LogoParam"]); } + + if (array_key_exists("FuseParam",$param) and $param["FuseParam"] !== null) { + $this->FuseParam = new FuseParam(); + $this->FuseParam->deserialize($param["FuseParam"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/FuseParam.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/FuseParam.php new file mode 100644 index 000000000..ca9fd88a4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/FuseParam.php @@ -0,0 +1,54 @@ +ImageCodecParam = new ImageCodecParam(); + $this->ImageCodecParam->deserialize($param["ImageCodecParam"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordEmbeddingRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/ImageCodecParam.php similarity index 60% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordEmbeddingRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/ImageCodecParam.php index dcdfa56a1..50b8e6f6d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordEmbeddingRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/ImageCodecParam.php @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Facefusion\V20220927\Models; use TencentCloud\Common\AbstractModel; /** - * WordEmbedding请求参数结构体 + * 图片编码参数 * - * @method string getText() 获取输入的词语(仅支持UTF-8格式,不超过20字) - * @method void setText(string $Text) 设置输入的词语(仅支持UTF-8格式,不超过20字) + * @method array getMetaData() 获取元数据 + * @method void setMetaData(array $MetaData) 设置元数据 */ -class WordEmbeddingRequest extends AbstractModel +class ImageCodecParam extends AbstractModel { /** - * @var string 输入的词语(仅支持UTF-8格式,不超过20字) + * @var array 元数据 */ - public $Text; + public $MetaData; /** - * @param string $Text 输入的词语(仅支持UTF-8格式,不超过20字) + * @param array $MetaData 元数据 */ function __construct() { @@ -46,8 +46,13 @@ class WordEmbeddingRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Text",$param) and $param["Text"] !== null) { - $this->Text = $param["Text"]; + if (array_key_exists("MetaData",$param) and $param["MetaData"] !== null) { + $this->MetaData = []; + foreach ($param["MetaData"] as $key => $value){ + $obj = new MetaData(); + $obj->deserialize($value); + array_push($this->MetaData, $obj); + } } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/MetaData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/MetaData.php new file mode 100644 index 000000000..3c936bd69 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Facefusion/V20220927/Models/MetaData.php @@ -0,0 +1,65 @@ +MetaKey = $param["MetaKey"]; + } + + if (array_key_exists("MetaValue",$param) and $param["MetaValue"] !== null) { + $this->MetaValue = $param["MetaValue"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCard2EVerificationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCard2EVerificationResponse.php index 1a3250416..12489a07e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCard2EVerificationResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCard2EVerificationResponse.php @@ -40,6 +40,8 @@ use TencentCloud\Common\AbstractModel; '-2': '姓名校验不通过' '-3': '银行卡号码有误' '-16': '验证中心服务繁忙' + '-17': '验证次数超限,请次日重试' + * @method void setResult(string $Result) 设置认证结果码 计费结果码: '0': '认证通过' @@ -60,6 +62,8 @@ use TencentCloud\Common\AbstractModel; '-2': '姓名校验不通过' '-3': '银行卡号码有误' '-16': '验证中心服务繁忙' + '-17': '验证次数超限,请次日重试' + * @method string getDescription() 获取业务结果描述。 * @method void setDescription(string $Description) 设置业务结果描述。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -88,6 +92,8 @@ class BankCard2EVerificationResponse extends AbstractModel '-2': '姓名校验不通过' '-3': '银行卡号码有误' '-16': '验证中心服务繁忙' + '-17': '验证次数超限,请次日重试' + */ public $Result; @@ -122,6 +128,8 @@ class BankCard2EVerificationResponse extends AbstractModel '-2': '姓名校验不通过' '-3': '银行卡号码有误' '-16': '验证中心服务繁忙' + '-17': '验证次数超限,请次日重试' + * @param string $Description 业务结果描述。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCard4EVerificationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCard4EVerificationResponse.php index 01ad62aba..0ffc0710d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCard4EVerificationResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCard4EVerificationResponse.php @@ -42,6 +42,7 @@ use TencentCloud\Common\AbstractModel; '-4': '银行卡号码有误' '-5': '手机号码不合法' '-18': '验证中心服务繁忙' +'-19': '验证次数超限,请次日重试' * @method void setResult(string $Result) 设置认证结果码 收费结果码: '0': '认证通过' @@ -64,6 +65,7 @@ use TencentCloud\Common\AbstractModel; '-4': '银行卡号码有误' '-5': '手机号码不合法' '-18': '验证中心服务繁忙' +'-19': '验证次数超限,请次日重试' * @method string getDescription() 获取业务结果描述。 * @method void setDescription(string $Description) 设置业务结果描述。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -94,6 +96,7 @@ class BankCard4EVerificationResponse extends AbstractModel '-4': '银行卡号码有误' '-5': '手机号码不合法' '-18': '验证中心服务繁忙' +'-19': '验证次数超限,请次日重试' */ public $Result; @@ -130,6 +133,7 @@ class BankCard4EVerificationResponse extends AbstractModel '-4': '银行卡号码有误' '-5': '手机号码不合法' '-18': '验证中心服务繁忙' +'-19': '验证次数超限,请次日重试' * @param string $Description 业务结果描述。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCardVerificationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCardVerificationResponse.php index 6d3bd2082..e415a843c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCardVerificationResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/BankCardVerificationResponse.php @@ -41,6 +41,7 @@ use TencentCloud\Common\AbstractModel; '-3': '身份证号码有误' '-4': '银行卡号码有误' '-17': '验证中心服务繁忙' +'-18': '验证次数超限,请次日重试' * @method void setResult(string $Result) 设置认证结果码 收费结果码: '0': '认证通过' @@ -62,6 +63,7 @@ use TencentCloud\Common\AbstractModel; '-3': '身份证号码有误' '-4': '银行卡号码有误' '-17': '验证中心服务繁忙' +'-18': '验证次数超限,请次日重试' * @method string getDescription() 获取业务结果描述。 * @method void setDescription(string $Description) 设置业务结果描述。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -91,6 +93,7 @@ class BankCardVerificationResponse extends AbstractModel '-3': '身份证号码有误' '-4': '银行卡号码有误' '-17': '验证中心服务繁忙' +'-18': '验证次数超限,请次日重试' */ public $Result; @@ -126,6 +129,7 @@ class BankCardVerificationResponse extends AbstractModel '-3': '身份证号码有误' '-4': '银行卡号码有误' '-17': '验证中心服务繁忙' +'-18': '验证次数超限,请次日重试' * @param string $Description 业务结果描述。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/CheckIdCardInformationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/CheckIdCardInformationRequest.php index dcea10d47..b01aa6c6f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/CheckIdCardInformationRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/CheckIdCardInformationRequest.php @@ -44,7 +44,7 @@ ImageBase64、ImageUrl二者必须提供其中之一。若都提供了,则按 CopyWarn,复印件告警 BorderCheckWarn,边框和框内遮挡告警 ReshootWarn,翻拍告警 -DetectPsWarn,PS检测告警 +DetectPsWarn,PS检测告警(疑似存在PS痕迹) TempIdWarn,临时身份证告警 Quality,图片质量告警(评价图片模糊程度) @@ -56,7 +56,7 @@ Config = {"CopyWarn":true,"ReshootWarn":true} CopyWarn,复印件告警 BorderCheckWarn,边框和框内遮挡告警 ReshootWarn,翻拍告警 -DetectPsWarn,PS检测告警 +DetectPsWarn,PS检测告警(疑似存在PS痕迹) TempIdWarn,临时身份证告警 Quality,图片质量告警(评价图片模糊程度) @@ -94,7 +94,7 @@ ImageBase64、ImageUrl二者必须提供其中之一。若都提供了,则按 CopyWarn,复印件告警 BorderCheckWarn,边框和框内遮挡告警 ReshootWarn,翻拍告警 -DetectPsWarn,PS检测告警 +DetectPsWarn,PS检测告警(疑似存在PS痕迹) TempIdWarn,临时身份证告警 Quality,图片质量告警(评价图片模糊程度) @@ -126,7 +126,7 @@ ImageBase64、ImageUrl二者必须提供其中之一。若都提供了,则按 CopyWarn,复印件告警 BorderCheckWarn,边框和框内遮挡告警 ReshootWarn,翻拍告警 -DetectPsWarn,PS检测告警 +DetectPsWarn,PS检测告警(疑似存在PS痕迹) TempIdWarn,临时身份证告警 Quality,图片质量告警(评价图片模糊程度) diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/CheckIdCardInformationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/CheckIdCardInformationResponse.php index 9386bf322..133923f22 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/CheckIdCardInformationResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/CheckIdCardInformationResponse.php @@ -47,7 +47,7 @@ use TencentCloud\Common\AbstractModel; -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警。 +-9106 身份证 PS 告警(疑似存在PS痕迹)。 -8001 图片模糊告警 多个会 | 隔开如 "-9101|-9106|-9104" * @method void setWarnings(string $Warnings) 设置告警信息,当在Config中配置了告警信息会停止人像比对,Result返回错误(FailedOperation.OcrWarningOccurred)并有此告警信息,Code 告警码列表和释义: @@ -57,7 +57,7 @@ use TencentCloud\Common\AbstractModel; -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警。 +-9106 身份证 PS 告警(疑似存在PS痕迹)。 -8001 图片模糊告警 多个会 | 隔开如 "-9101|-9106|-9104" * @method float getQuality() 获取图片质量分数,当请求Config中配置图片模糊告警该参数才有意义,取值范围(0~100),目前默认阈值是50分,低于50分会触发模糊告警。 @@ -129,7 +129,7 @@ class CheckIdCardInformationResponse extends AbstractModel -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警。 +-9106 身份证 PS 告警(疑似存在PS痕迹)。 -8001 图片模糊告警 多个会 | 隔开如 "-9101|-9106|-9104" */ @@ -169,7 +169,7 @@ class CheckIdCardInformationResponse extends AbstractModel -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警。 +-9106 身份证 PS 告警(疑似存在PS痕迹)。 -8001 图片模糊告警 多个会 | 隔开如 "-9101|-9106|-9104" * @param float $Quality 图片质量分数,当请求Config中配置图片模糊告警该参数才有意义,取值范围(0~100),目前默认阈值是50分,低于50分会触发模糊告警。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/DetectInfoIdCardData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/DetectInfoIdCardData.php index e6a5a1c9e..e02502029 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/DetectInfoIdCardData.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/DetectInfoIdCardData.php @@ -47,7 +47,7 @@ use TencentCloud\Common\AbstractModel; -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警, +-9106 身份证 PS 告警(疑似存在PS痕迹), -9107 身份证反光告警。 注意:此字段可能返回 null,表示取不到有效值。 * @method void setWarnInfos(array $WarnInfos) 设置身份证人像面告警码,开启身份证告警功能后才会返回,返回数组中可能出现的告警码如下: @@ -57,7 +57,7 @@ use TencentCloud\Common\AbstractModel; -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警, +-9106 身份证 PS 告警(疑似存在PS痕迹), -9107 身份证反光告警。 注意:此字段可能返回 null,表示取不到有效值。 * @method array getBackWarnInfos() 获取身份证国徽面告警码,开启身份证告警功能后才会返回,返回数组中可能出现的告警码如下: @@ -67,7 +67,7 @@ use TencentCloud\Common\AbstractModel; -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警, +-9106 身份证 PS 告警(疑似存在PS痕迹), -9107 身份证反光告警。 注意:此字段可能返回 null,表示取不到有效值。 * @method void setBackWarnInfos(array $BackWarnInfos) 设置身份证国徽面告警码,开启身份证告警功能后才会返回,返回数组中可能出现的告警码如下: @@ -77,7 +77,7 @@ use TencentCloud\Common\AbstractModel; -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警, +-9106 身份证 PS 告警(疑似存在PS痕迹), -9107 身份证反光告警。 注意:此字段可能返回 null,表示取不到有效值。 */ @@ -121,7 +121,7 @@ class DetectInfoIdCardData extends AbstractModel -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警, +-9106 身份证 PS 告警(疑似存在PS痕迹), -9107 身份证反光告警。 注意:此字段可能返回 null,表示取不到有效值。 */ @@ -135,7 +135,7 @@ class DetectInfoIdCardData extends AbstractModel -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警, +-9106 身份证 PS 告警(疑似存在PS痕迹), -9107 身份证反光告警。 注意:此字段可能返回 null,表示取不到有效值。 */ @@ -159,7 +159,7 @@ class DetectInfoIdCardData extends AbstractModel -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警, +-9106 身份证 PS 告警(疑似存在PS痕迹), -9107 身份证反光告警。 注意:此字段可能返回 null,表示取不到有效值。 * @param array $BackWarnInfos 身份证国徽面告警码,开启身份证告警功能后才会返回,返回数组中可能出现的告警码如下: @@ -169,7 +169,7 @@ class DetectInfoIdCardData extends AbstractModel -9103 身份证翻拍告警, -9105 身份证框内遮挡告警, -9104 临时身份证告警, --9106 身份证 PS 告警, +-9106 身份证 PS 告警(疑似存在PS痕迹), -9107 身份证反光告警。 注意:此字段可能返回 null,表示取不到有效值。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/Encryption.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/Encryption.php index a5c1427d7..491d384bf 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/Encryption.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/Encryption.php @@ -21,49 +21,69 @@ use TencentCloud\Common\AbstractModel; * 敏感数据加密 * * @method array getEncryptList() 获取在使用加密服务时,填入要被加密的字段。本接口中可填入加密后的一个或多个字段 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setEncryptList(array $EncryptList) 设置在使用加密服务时,填入要被加密的字段。本接口中可填入加密后的一个或多个字段 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getCiphertextBlob() 获取有加密需求的用户,接入传入kms的CiphertextBlob,关于数据加密可查阅数据加密 文档。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setCiphertextBlob(string $CiphertextBlob) 设置有加密需求的用户,接入传入kms的CiphertextBlob,关于数据加密可查阅数据加密 文档。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getIv() 获取有加密需求的用户,传入CBC加密的初始向量(客户自定义字符串,长度16字符)。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setIv(string $Iv) 设置有加密需求的用户,传入CBC加密的初始向量(客户自定义字符串,长度16字符)。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getAlgorithm() 获取加密使用的算法(支持'AES-256-CBC'、'SM4-GCM'),不传默认为'AES-256-CBC' +注意:此字段可能返回 null,表示取不到有效值。 * @method void setAlgorithm(string $Algorithm) 设置加密使用的算法(支持'AES-256-CBC'、'SM4-GCM'),不传默认为'AES-256-CBC' +注意:此字段可能返回 null,表示取不到有效值。 * @method array getTagList() 获取SM4-GCM算法生成的消息摘要(校验消息完整性时使用) +注意:此字段可能返回 null,表示取不到有效值。 * @method void setTagList(array $TagList) 设置SM4-GCM算法生成的消息摘要(校验消息完整性时使用) +注意:此字段可能返回 null,表示取不到有效值。 */ class Encryption extends AbstractModel { /** * @var array 在使用加密服务时,填入要被加密的字段。本接口中可填入加密后的一个或多个字段 +注意:此字段可能返回 null,表示取不到有效值。 */ public $EncryptList; /** * @var string 有加密需求的用户,接入传入kms的CiphertextBlob,关于数据加密可查阅数据加密 文档。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $CiphertextBlob; /** * @var string 有加密需求的用户,传入CBC加密的初始向量(客户自定义字符串,长度16字符)。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Iv; /** * @var string 加密使用的算法(支持'AES-256-CBC'、'SM4-GCM'),不传默认为'AES-256-CBC' +注意:此字段可能返回 null,表示取不到有效值。 */ public $Algorithm; /** * @var array SM4-GCM算法生成的消息摘要(校验消息完整性时使用) +注意:此字段可能返回 null,表示取不到有效值。 */ public $TagList; /** * @param array $EncryptList 在使用加密服务时,填入要被加密的字段。本接口中可填入加密后的一个或多个字段 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $CiphertextBlob 有加密需求的用户,接入传入kms的CiphertextBlob,关于数据加密可查阅数据加密 文档。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $Iv 有加密需求的用户,传入CBC加密的初始向量(客户自定义字符串,长度16字符)。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $Algorithm 加密使用的算法(支持'AES-256-CBC'、'SM4-GCM'),不传默认为'AES-256-CBC' +注意:此字段可能返回 null,表示取不到有效值。 * @param array $TagList SM4-GCM算法生成的消息摘要(校验消息完整性时使用) +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/GetDetectInfoEnhancedResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/GetDetectInfoEnhancedResponse.php index e70bbd2d2..a5000910f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/GetDetectInfoEnhancedResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Faceid/V20180301/Models/GetDetectInfoEnhancedResponse.php @@ -40,9 +40,9 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setEncryption(Encryption $Encryption) 设置敏感数据加密信息。 注意:此字段可能返回 null,表示取不到有效值。 - * @method IntentionVerifyData getIntentionVerifyData() 获取意愿核身相关信息。若未使用意愿核身功能,该字段返回值可以不处理。 + * @method IntentionVerifyData getIntentionVerifyData() 获取意愿核身朗读模式结果信息。若未使用意愿核身功能,该字段返回值可以不处理。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setIntentionVerifyData(IntentionVerifyData $IntentionVerifyData) 设置意愿核身相关信息。若未使用意愿核身功能,该字段返回值可以不处理。 + * @method void setIntentionVerifyData(IntentionVerifyData $IntentionVerifyData) 设置意愿核身朗读模式结果信息。若未使用意愿核身功能,该字段返回值可以不处理。 注意:此字段可能返回 null,表示取不到有效值。 * @method IntentionQuestionResult getIntentionQuestionResult() 获取意愿核身问答模式结果。若未使用该意愿核身功能,该字段返回值可以不处理。 注意:此字段可能返回 null,表示取不到有效值。 @@ -84,7 +84,7 @@ class GetDetectInfoEnhancedResponse extends AbstractModel public $Encryption; /** - * @var IntentionVerifyData 意愿核身相关信息。若未使用意愿核身功能,该字段返回值可以不处理。 + * @var IntentionVerifyData 意愿核身朗读模式结果信息。若未使用意愿核身功能,该字段返回值可以不处理。 注意:此字段可能返回 null,表示取不到有效值。 */ public $IntentionVerifyData; @@ -111,7 +111,7 @@ class GetDetectInfoEnhancedResponse extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param Encryption $Encryption 敏感数据加密信息。 注意:此字段可能返回 null,表示取不到有效值。 - * @param IntentionVerifyData $IntentionVerifyData 意愿核身相关信息。若未使用意愿核身功能,该字段返回值可以不处理。 + * @param IntentionVerifyData $IntentionVerifyData 意愿核身朗读模式结果信息。若未使用意愿核身功能,该字段返回值可以不处理。 注意:此字段可能返回 null,表示取不到有效值。 * @param IntentionQuestionResult $IntentionQuestionResult 意愿核身问答模式结果。若未使用该意愿核身功能,该字段返回值可以不处理。 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Gme/V20180711/GmeClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Gme/V20180711/GmeClient.php index 22a41387d..dab3c0a2a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Gme/V20180711/GmeClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Gme/V20180711/GmeClient.php @@ -36,15 +36,15 @@ use TencentCloud\Gme\V20180711\Models as Models;
    * @method Models\CreateAppResponse CreateApp(Models\CreateAppRequest $req) 本接口(CreateApp)用于创建一个GME应用。 * @method Models\CreateCustomizationResponse CreateCustomization(Models\CreateCustomizationRequest $req) 用户使用该接口可以创建语音消息转文本热句模型,以供识别调用 - * @method Models\CreateScanUserResponse CreateScanUser(Models\CreateScanUserRequest $req) 新增自定义送检用户 + * @method Models\CreateScanUserResponse CreateScanUser(Models\CreateScanUserRequest $req) 新增自定义送检用户。**接口使用前提**:目前 CreateScanUser 接口通过白名单开放,如需使用,需要 [提交工单申请](https://console.cloud.tencent.com/workorder/category?level1_id=438&level2_id=445&source=0&data_title=%E6%B8%B8%E6%88%8F%E5%A4%9A%E5%AA%92%E4%BD%93%E5%BC%95%E6%93%8EGME&step=1)。 * @method Models\DeleteCustomizationResponse DeleteCustomization(Models\DeleteCustomizationRequest $req) 用户通过该接口可以删除语音消息转文本热句模型 * @method Models\DeleteRoomMemberResponse DeleteRoomMember(Models\DeleteRoomMemberRequest $req) 本接口(DeleteRoomMember)用户删除房间或者剔除房间内用户 - * @method Models\DeleteScanUserResponse DeleteScanUser(Models\DeleteScanUserRequest $req) 删除自定义送检用户 + * @method Models\DeleteScanUserResponse DeleteScanUser(Models\DeleteScanUserRequest $req) 删除自定义送检用户。**接口使用前提**:目前 DeleteScanUser 接口通过白名单开放,如需使用,需要 [提交工单申请](https://console.cloud.tencent.com/workorder/category?level1_id=438&level2_id=445&source=0&data_title=%E6%B8%B8%E6%88%8F%E5%A4%9A%E5%AA%92%E4%BD%93%E5%BC%95%E6%93%8EGME&step=1)。 * @method Models\DescribeAgeDetectTaskResponse DescribeAgeDetectTask(Models\DescribeAgeDetectTaskRequest $req) 查询年龄语音识别任务结果,请求频率10次/秒。该接口目前通过白名单开放试用,如有需求,请提交工单申请。 * @method Models\DescribeAppStatisticsResponse DescribeAppStatistics(Models\DescribeAppStatisticsRequest $req) 本接口(DescribeAppStatistics)用于获取某个GME应用的用量数据。包括实时语音,语音消息及转文本,语音分析等。最长查询周期为最近60天。 * @method Models\DescribeApplicationDataResponse DescribeApplicationData(Models\DescribeApplicationDataRequest $req) 本接口(DescribeApplicationData)用于获取数据详情信息,最多可拉取最近90天的数据。 * @method Models\DescribeApplicationListResponse DescribeApplicationList(Models\DescribeApplicationListRequest $req) 本接口(DescribeApplicationList)用于查询自己账号下的应用列表 - * @method Models\DescribeRealtimeScanConfigResponse DescribeRealtimeScanConfig(Models\DescribeRealtimeScanConfigRequest $req) 获取用户自定义送检信息 + * @method Models\DescribeRealtimeScanConfigResponse DescribeRealtimeScanConfig(Models\DescribeRealtimeScanConfigRequest $req) 获取用户自定义送检信息。**接口使用前提**:目前 DescribeRealtimeScanConfig 接口通过白名单开放,如需使用,需要 [提交工单申请](https://console.cloud.tencent.com/workorder/category?level1_id=438&level2_id=445&source=0&data_title=%E6%B8%B8%E6%88%8F%E5%A4%9A%E5%AA%92%E4%BD%93%E5%BC%95%E6%93%8EGME&step=1)。 * @method Models\DescribeRecordInfoResponse DescribeRecordInfo(Models\DescribeRecordInfoRequest $req) 查询录制任务信息。 * @method Models\DescribeRoomInfoResponse DescribeRoomInfo(Models\DescribeRoomInfoRequest $req) 获取房间内用户信息 * @method Models\DescribeScanResultListResponse DescribeScanResultList(Models\DescribeScanResultListRequest $req) 本接口(DescribeScanResultList)用于查询语音检测结果,查询任务列表最多支持100个。 @@ -198,8 +198,9 @@ use TencentCloud\Gme\V20180711\Models as Models; * @method Models\StartRecordResponse StartRecord(Models\StartRecordRequest $req) 开启录制 * @method Models\StopRecordResponse StopRecord(Models\StopRecordRequest $req) 停止录制 - * @method Models\UpdateScanRoomsResponse UpdateScanRooms(Models\UpdateScanRoomsRequest $req) 更新自定义送检房间号 - * @method Models\UpdateScanUsersResponse UpdateScanUsers(Models\UpdateScanUsersRequest $req) 更新自定义送检用户号 + * @method Models\UpdateScanRoomsResponse UpdateScanRooms(Models\UpdateScanRoomsRequest $req) 更新自定义送检房间号。**接口使用前提**:目前 UpdateScanRooms 接口通过白名单开放,如需使用,需要 [提交工单申请](https://console.cloud.tencent.com/workorder/category?level1_id=438&level2_id=445&source=0&data_title=%E6%B8%B8%E6%88%8F%E5%A4%9A%E5%AA%92%E4%BD%93%E5%BC%95%E6%93%8EGME&step=1)。 + * @method Models\UpdateScanUsersResponse UpdateScanUsers(Models\UpdateScanUsersRequest $req) 更新自定义送检用户号。 +**接口使用前提**:目前 UpdateScanUsers 接口通过白名单开放,如需使用,需要 [提交工单申请](https://console.cloud.tencent.com/workorder/category?level1_id=438&level2_id=445&source=0&data_title=%E6%B8%B8%E6%88%8F%E5%A4%9A%E5%AA%92%E4%BD%93%E5%BC%95%E6%93%8EGME&step=1)。 */ class GmeClient extends AbstractClient diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/GoosefsClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/GoosefsClient.php index e4e3aafde..84635ca64 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/GoosefsClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/GoosefsClient.php @@ -23,11 +23,26 @@ use TencentCloud\Common\Credential; use TencentCloud\Goosefs\V20220519\Models as Models; /** + * @method Models\AddCrossVpcSubnetSupportForClientNodeResponse AddCrossVpcSubnetSupportForClientNode(Models\AddCrossVpcSubnetSupportForClientNodeRequest $req) 为客户端节点添加跨vpc或子网访问能力 + * @method Models\AttachFileSystemBucketResponse AttachFileSystemBucket(Models\AttachFileSystemBucketRequest $req) 为文件系统关联Bucket + * @method Models\BatchAddClientNodesResponse BatchAddClientNodes(Models\BatchAddClientNodesRequest $req) 批量添加客户端节点 + * @method Models\BatchDeleteClientNodesResponse BatchDeleteClientNodes(Models\BatchDeleteClientNodesRequest $req) 批量删除客户端节点 * @method Models\CreateDataRepositoryTaskResponse CreateDataRepositoryTask(Models\CreateDataRepositoryTaskRequest $req) 创建数据流通任务,包括从将文件系统的数据上传到存储桶下, 以及从存储桶下载到文件系统里。 + * @method Models\CreateFileSystemResponse CreateFileSystem(Models\CreateFileSystemRequest $req) 创建文件系统 + * @method Models\DeleteCrossVpcSubnetSupportForClientNodeResponse DeleteCrossVpcSubnetSupportForClientNode(Models\DeleteCrossVpcSubnetSupportForClientNodeRequest $req) 为客户端节点删除跨vpc子网访问能力 + * @method Models\DeleteFileSystemResponse DeleteFileSystem(Models\DeleteFileSystemRequest $req) 删除文件系统 + * @method Models\DescribeClientNodesResponse DescribeClientNodes(Models\DescribeClientNodesRequest $req) 列出集群中所有的客户端节点 * @method Models\DescribeClusterClientTokenResponse DescribeClusterClientToken(Models\DescribeClusterClientTokenRequest $req) 查询GooseFS集群客户端凭证 * @method Models\DescribeClusterRoleTokenResponse DescribeClusterRoleToken(Models\DescribeClusterRoleTokenRequest $req) 查询GooseFS集群角色凭证 * @method Models\DescribeClusterRolesResponse DescribeClusterRoles(Models\DescribeClusterRolesRequest $req) 查询GooseFS集群角色 * @method Models\DescribeDataRepositoryTaskStatusResponse DescribeDataRepositoryTaskStatus(Models\DescribeDataRepositoryTaskStatusRequest $req) 获取数据流通任务实时状态,用作客户端控制 + * @method Models\DescribeFileSystemBucketsResponse DescribeFileSystemBuckets(Models\DescribeFileSystemBucketsRequest $req) 罗列文件系统关联的Bucket映射 + * @method Models\DescribeFileSystemsResponse DescribeFileSystems(Models\DescribeFileSystemsRequest $req) 列出所有的文件系统 + * @method Models\DetachFileSystemBucketResponse DetachFileSystemBucket(Models\DetachFileSystemBucketRequest $req) 解绑文件系统与Bucket的映射 + * @method Models\ExpandCapacityResponse ExpandCapacity(Models\ExpandCapacityRequest $req) 扩展文件系统容量 + * @method Models\ModifyDataRepositoryBandwidthResponse ModifyDataRepositoryBandwidth(Models\ModifyDataRepositoryBandwidthRequest $req) 修改数据流动带宽 + * @method Models\QueryCrossVpcSubnetSupportForClientNodeResponse QueryCrossVpcSubnetSupportForClientNode(Models\QueryCrossVpcSubnetSupportForClientNodeRequest $req) 查询客户端节点跨vpc子网访问能力 + * @method Models\QueryDataRepositoryBandwidthResponse QueryDataRepositoryBandwidth(Models\QueryDataRepositoryBandwidthRequest $req) 查询数据流动带宽 */ class GoosefsClient extends AbstractClient diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AddCrossVpcSubnetSupportForClientNodeRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AddCrossVpcSubnetSupportForClientNodeRequest.php new file mode 100644 index 000000000..4ee5d558d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AddCrossVpcSubnetSupportForClientNodeRequest.php @@ -0,0 +1,66 @@ +FileSystemId = $param["FileSystemId"]; + } + + if (array_key_exists("SubnetInfo",$param) and $param["SubnetInfo"] !== null) { + $this->SubnetInfo = new SubnetInfo(); + $this->SubnetInfo->deserialize($param["SubnetInfo"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AddCrossVpcSubnetSupportForClientNodeResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AddCrossVpcSubnetSupportForClientNodeResponse.php new file mode 100644 index 000000000..e1418775f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AddCrossVpcSubnetSupportForClientNodeResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/Detail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AttachFileSystemBucketRequest.php similarity index 52% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/Detail.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AttachFileSystemBucketRequest.php index 24263d1c3..96f191d1c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/Detail.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AttachFileSystemBucketRequest.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Ocr\V20181119\Models; +namespace TencentCloud\Goosefs\V20220519\Models; use TencentCloud\Common\AbstractModel; /** - * 企业四要素核验结果 + * AttachFileSystemBucket请求参数结构体 * - * @method integer getResult() 获取企业四要素核验结果状态码 - * @method void setResult(integer $Result) 设置企业四要素核验结果状态码 - * @method string getDesc() 获取企业四要素核验结果描述 - * @method void setDesc(string $Desc) 设置企业四要素核验结果描述 + * @method string getFileSystemId() 获取无 + * @method void setFileSystemId(string $FileSystemId) 设置无 + * @method MappedBucket getBucket() 获取关联新Bucket + * @method void setBucket(MappedBucket $Bucket) 设置关联新Bucket */ -class Detail extends AbstractModel +class AttachFileSystemBucketRequest extends AbstractModel { /** - * @var integer 企业四要素核验结果状态码 + * @var string 无 */ - public $Result; + public $FileSystemId; /** - * @var string 企业四要素核验结果描述 + * @var MappedBucket 关联新Bucket */ - public $Desc; + public $Bucket; /** - * @param integer $Result 企业四要素核验结果状态码 - * @param string $Desc 企业四要素核验结果描述 + * @param string $FileSystemId 无 + * @param MappedBucket $Bucket 关联新Bucket */ function __construct() { @@ -54,12 +54,13 @@ class Detail extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Result",$param) and $param["Result"] !== null) { - $this->Result = $param["Result"]; + if (array_key_exists("FileSystemId",$param) and $param["FileSystemId"] !== null) { + $this->FileSystemId = $param["FileSystemId"]; } - if (array_key_exists("Desc",$param) and $param["Desc"] !== null) { - $this->Desc = $param["Desc"]; + if (array_key_exists("Bucket",$param) and $param["Bucket"] !== null) { + $this->Bucket = new MappedBucket(); + $this->Bucket->deserialize($param["Bucket"]); } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AttachFileSystemBucketResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AttachFileSystemBucketResponse.php new file mode 100644 index 000000000..615a60e00 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/AttachFileSystemBucketResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchAddClientNodesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchAddClientNodesRequest.php new file mode 100644 index 000000000..5791e22cd --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchAddClientNodesRequest.php @@ -0,0 +1,82 @@ +FileSystemId = $param["FileSystemId"]; + } + + if (array_key_exists("ClientNodes",$param) and $param["ClientNodes"] !== null) { + $this->ClientNodes = []; + foreach ($param["ClientNodes"] as $key => $value){ + $obj = new LinuxNodeAttribute(); + $obj->deserialize($value); + array_push($this->ClientNodes, $obj); + } + } + + if (array_key_exists("SingleClusterFlag",$param) and $param["SingleClusterFlag"] !== null) { + $this->SingleClusterFlag = $param["SingleClusterFlag"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchAddClientNodesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchAddClientNodesResponse.php new file mode 100644 index 000000000..4aa00b3cf --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchAddClientNodesResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchDeleteClientNodesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchDeleteClientNodesRequest.php new file mode 100644 index 000000000..b9d85d01b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchDeleteClientNodesRequest.php @@ -0,0 +1,82 @@ +FileSystemId = $param["FileSystemId"]; + } + + if (array_key_exists("ClientNodes",$param) and $param["ClientNodes"] !== null) { + $this->ClientNodes = []; + foreach ($param["ClientNodes"] as $key => $value){ + $obj = new LinuxNodeAttribute(); + $obj->deserialize($value); + array_push($this->ClientNodes, $obj); + } + } + + if (array_key_exists("SingleClusterFlag",$param) and $param["SingleClusterFlag"] !== null) { + $this->SingleClusterFlag = $param["SingleClusterFlag"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchDeleteClientNodesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchDeleteClientNodesResponse.php new file mode 100644 index 000000000..35e94b1a9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/BatchDeleteClientNodesResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ClientClusterManagerNodeInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ClientClusterManagerNodeInfo.php new file mode 100644 index 000000000..8811e2c29 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ClientClusterManagerNodeInfo.php @@ -0,0 +1,77 @@ +NodeIp = $param["NodeIp"]; + } + + if (array_key_exists("NodeInstanceId",$param) and $param["NodeInstanceId"] !== null) { + $this->NodeInstanceId = $param["NodeInstanceId"]; + } + + if (array_key_exists("InitialPassword",$param) and $param["InitialPassword"] !== null) { + $this->InitialPassword = $param["InitialPassword"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ClientNodeAttribute.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ClientNodeAttribute.php new file mode 100644 index 000000000..14a5135c1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ClientNodeAttribute.php @@ -0,0 +1,77 @@ +ClientNodeIp = $param["ClientNodeIp"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("ClientType",$param) and $param["ClientType"] !== null) { + $this->ClientType = $param["ClientType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/CreateFileSystemRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/CreateFileSystemRequest.php new file mode 100644 index 000000000..8f89b1d00 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/CreateFileSystemRequest.php @@ -0,0 +1,143 @@ +Type = $param["Type"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { + $this->VpcId = $param["VpcId"]; + } + + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; + } + + if (array_key_exists("Zone",$param) and $param["Zone"] !== null) { + $this->Zone = $param["Zone"]; + } + + if (array_key_exists("Tag",$param) and $param["Tag"] !== null) { + $this->Tag = []; + foreach ($param["Tag"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->Tag, $obj); + } + } + + if (array_key_exists("GooseFSxBuildElements",$param) and $param["GooseFSxBuildElements"] !== null) { + $this->GooseFSxBuildElements = new GooseFSxBuildElement(); + $this->GooseFSxBuildElements->deserialize($param["GooseFSxBuildElements"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/CreateFileSystemResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/CreateFileSystemResponse.php new file mode 100644 index 000000000..676f770c6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/CreateFileSystemResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteCrossVpcSubnetSupportForClientNodeRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteCrossVpcSubnetSupportForClientNodeRequest.php new file mode 100644 index 000000000..1c21dc8a0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteCrossVpcSubnetSupportForClientNodeRequest.php @@ -0,0 +1,66 @@ +FileSystemId = $param["FileSystemId"]; + } + + if (array_key_exists("SubnetInfo",$param) and $param["SubnetInfo"] !== null) { + $this->SubnetInfo = new SubnetInfo(); + $this->SubnetInfo->deserialize($param["SubnetInfo"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteCrossVpcSubnetSupportForClientNodeResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteCrossVpcSubnetSupportForClientNodeResponse.php new file mode 100644 index 000000000..69a5d827b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteCrossVpcSubnetSupportForClientNodeResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteFileSystemRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteFileSystemRequest.php new file mode 100644 index 000000000..a686226a6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteFileSystemRequest.php @@ -0,0 +1,53 @@ +FileSystemId = $param["FileSystemId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteFileSystemResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteFileSystemResponse.php new file mode 100644 index 000000000..d7f9df6b3 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DeleteFileSystemResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeClientNodesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeClientNodesRequest.php new file mode 100644 index 000000000..4a875d7b8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeClientNodesRequest.php @@ -0,0 +1,53 @@ +FileSystemId = $param["FileSystemId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeClientNodesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeClientNodesResponse.php new file mode 100644 index 000000000..edf70562c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeClientNodesResponse.php @@ -0,0 +1,70 @@ +ClientNodes = []; + foreach ($param["ClientNodes"] as $key => $value){ + $obj = new ClientNodeAttribute(); + $obj->deserialize($value); + array_push($this->ClientNodes, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemBucketsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemBucketsRequest.php new file mode 100644 index 000000000..ed89e1574 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemBucketsRequest.php @@ -0,0 +1,53 @@ +FileSystemId = $param["FileSystemId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumClusterListResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemBucketsResponse.php similarity index 72% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumClusterListResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemBucketsResponse.php index c0b8f2435..e831b1562 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetConsortiumClusterListResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemBucketsResponse.php @@ -14,23 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Goosefs\V20220519\Models; use TencentCloud\Common\AbstractModel; /** - * GetConsortiumClusterList返回参数结构体 + * DescribeFileSystemBuckets返回参数结构体 * - * @method array getClusterList() 获取网络列表 - * @method void setClusterList(array $ClusterList) 设置网络列表 + * @method array getBucketList() 获取bucket列表 + * @method void setBucketList(array $BucketList) 设置bucket列表 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class GetConsortiumClusterListResponse extends AbstractModel +class DescribeFileSystemBucketsResponse extends AbstractModel { /** - * @var array 网络列表 + * @var array bucket列表 */ - public $ClusterList; + public $BucketList; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -38,7 +38,7 @@ class GetConsortiumClusterListResponse extends AbstractModel public $RequestId; /** - * @param array $ClusterList 网络列表 + * @param array $BucketList bucket列表 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -54,12 +54,12 @@ class GetConsortiumClusterListResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("ClusterList",$param) and $param["ClusterList"] !== null) { - $this->ClusterList = []; - foreach ($param["ClusterList"] as $key => $value){ - $obj = new BcosClusterItem(); + if (array_key_exists("BucketList",$param) and $param["BucketList"] !== null) { + $this->BucketList = []; + foreach ($param["BucketList"] as $key => $value){ + $obj = new MappedBucket(); $obj->deserialize($value); - array_push($this->ClusterList, $obj); + array_push($this->BucketList, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemsRequest.php similarity index 62% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictsRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemsRequest.php index e14db2690..1bfea3b30 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemsRequest.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Goosefs\V20220519\Models; use TencentCloud\Common\AbstractModel; /** - * DescribeDicts请求参数结构体 + * DescribeFileSystems请求参数结构体 * - * @method integer getLimit() 获取每页数据量,范围为1~100,默认为10。 - * @method void setLimit(integer $Limit) 设置每页数据量,范围为1~100,默认为10。 - * @method integer getOffset() 获取分页偏移量,从0开始,默认为0。 - * @method void setOffset(integer $Offset) 设置分页偏移量,从0开始,默认为0。 + * @method integer getOffset() 获取偏移量 + * @method void setOffset(integer $Offset) 设置偏移量 + * @method integer getLimit() 获取每页的数量 + * @method void setLimit(integer $Limit) 设置每页的数量 */ -class DescribeDictsRequest extends AbstractModel +class DescribeFileSystemsRequest extends AbstractModel { /** - * @var integer 每页数据量,范围为1~100,默认为10。 - */ - public $Limit; - - /** - * @var integer 分页偏移量,从0开始,默认为0。 + * @var integer 偏移量 */ public $Offset; /** - * @param integer $Limit 每页数据量,范围为1~100,默认为10。 - * @param integer $Offset 分页偏移量,从0开始,默认为0。 + * @var integer 每页的数量 + */ + public $Limit; + + /** + * @param integer $Offset 偏移量 + * @param integer $Limit 每页的数量 */ function __construct() { @@ -54,12 +54,12 @@ class DescribeDictsRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { - $this->Limit = $param["Limit"]; - } - if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { $this->Offset = $param["Offset"]; } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemsResponse.php new file mode 100644 index 000000000..d8ebee2b6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DescribeFileSystemsResponse.php @@ -0,0 +1,82 @@ +FSAttributeList = []; + foreach ($param["FSAttributeList"] as $key => $value){ + $obj = new FSAttribute(); + $obj->deserialize($value); + array_push($this->FSAttributeList, $obj); + } + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DetachFileSystemBucketRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DetachFileSystemBucketRequest.php new file mode 100644 index 000000000..a3acf4891 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DetachFileSystemBucketRequest.php @@ -0,0 +1,65 @@ +FileSystemId = $param["FileSystemId"]; + } + + if (array_key_exists("BucketName",$param) and $param["BucketName"] !== null) { + $this->BucketName = $param["BucketName"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DetachFileSystemBucketResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DetachFileSystemBucketResponse.php new file mode 100644 index 000000000..86c7ffdaf --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/DetachFileSystemBucketResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ExpandCapacityRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ExpandCapacityRequest.php new file mode 100644 index 000000000..c4deba00d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ExpandCapacityRequest.php @@ -0,0 +1,65 @@ +FileSystemId = $param["FileSystemId"]; + } + + if (array_key_exists("ExpandedCapacity",$param) and $param["ExpandedCapacity"] !== null) { + $this->ExpandedCapacity = $param["ExpandedCapacity"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ExpandCapacityResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ExpandCapacityResponse.php new file mode 100644 index 000000000..aa3ff43c0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ExpandCapacityResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/FSAttribute.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/FSAttribute.php new file mode 100644 index 000000000..a7a1bb364 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/FSAttribute.php @@ -0,0 +1,199 @@ +Type = $param["Type"]; + } + + if (array_key_exists("FileSystemId",$param) and $param["FileSystemId"] !== null) { + $this->FileSystemId = $param["FileSystemId"]; + } + + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { + $this->CreateTime = $param["CreateTime"]; + } + + if (array_key_exists("GooseFSxAttribute",$param) and $param["GooseFSxAttribute"] !== null) { + $this->GooseFSxAttribute = new GooseFSxAttribute(); + $this->GooseFSxAttribute->deserialize($param["GooseFSxAttribute"]); + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { + $this->VpcId = $param["VpcId"]; + } + + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; + } + + if (array_key_exists("Zone",$param) and $param["Zone"] !== null) { + $this->Zone = $param["Zone"]; + } + + if (array_key_exists("Tag",$param) and $param["Tag"] !== null) { + $this->Tag = []; + foreach ($param["Tag"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->Tag, $obj); + } + } + + if (array_key_exists("ModifyTime",$param) and $param["ModifyTime"] !== null) { + $this->ModifyTime = $param["ModifyTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/GooseFSxAttribute.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/GooseFSxAttribute.php new file mode 100644 index 000000000..a724525e3 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/GooseFSxAttribute.php @@ -0,0 +1,99 @@ +Model = $param["Model"]; + } + + if (array_key_exists("Capacity",$param) and $param["Capacity"] !== null) { + $this->Capacity = $param["Capacity"]; + } + + if (array_key_exists("MappedBucketList",$param) and $param["MappedBucketList"] !== null) { + $this->MappedBucketList = []; + foreach ($param["MappedBucketList"] as $key => $value){ + $obj = new MappedBucket(); + $obj->deserialize($value); + array_push($this->MappedBucketList, $obj); + } + } + + if (array_key_exists("ClientManagerNodeList",$param) and $param["ClientManagerNodeList"] !== null) { + $this->ClientManagerNodeList = []; + foreach ($param["ClientManagerNodeList"] as $key => $value){ + $obj = new ClientClusterManagerNodeInfo(); + $obj->deserialize($value); + array_push($this->ClientManagerNodeList, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/GooseFSxBuildElement.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/GooseFSxBuildElement.php new file mode 100644 index 000000000..f02d9787d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/GooseFSxBuildElement.php @@ -0,0 +1,82 @@ +Model = $param["Model"]; + } + + if (array_key_exists("Capacity",$param) and $param["Capacity"] !== null) { + $this->Capacity = $param["Capacity"]; + } + + if (array_key_exists("MappedBucketList",$param) and $param["MappedBucketList"] !== null) { + $this->MappedBucketList = []; + foreach ($param["MappedBucketList"] as $key => $value){ + $obj = new MappedBucket(); + $obj->deserialize($value); + array_push($this->MappedBucketList, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/LinuxNodeAttribute.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/LinuxNodeAttribute.php new file mode 100644 index 000000000..7319fd35d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/LinuxNodeAttribute.php @@ -0,0 +1,89 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { + $this->VpcId = $param["VpcId"]; + } + + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; + } + + if (array_key_exists("LinuxClientNodeIp",$param) and $param["LinuxClientNodeIp"] !== null) { + $this->LinuxClientNodeIp = $param["LinuxClientNodeIp"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/MappedBucket.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/MappedBucket.php new file mode 100644 index 000000000..9a168c12b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/MappedBucket.php @@ -0,0 +1,141 @@ +BucketName = $param["BucketName"]; + } + + if (array_key_exists("FileSystemPath",$param) and $param["FileSystemPath"] !== null) { + $this->FileSystemPath = $param["FileSystemPath"]; + } + + if (array_key_exists("DataRepositoryTaskAutoStrategy",$param) and $param["DataRepositoryTaskAutoStrategy"] !== null) { + $this->DataRepositoryTaskAutoStrategy = $param["DataRepositoryTaskAutoStrategy"]; + } + + if (array_key_exists("RuleId",$param) and $param["RuleId"] !== null) { + $this->RuleId = $param["RuleId"]; + } + + if (array_key_exists("RuleDescription",$param) and $param["RuleDescription"] !== null) { + $this->RuleDescription = $param["RuleDescription"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ModifyDataRepositoryBandwidthRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ModifyDataRepositoryBandwidthRequest.php new file mode 100644 index 000000000..171c54864 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ModifyDataRepositoryBandwidthRequest.php @@ -0,0 +1,65 @@ +FileSystemId = $param["FileSystemId"]; + } + + if (array_key_exists("Bandwidth",$param) and $param["Bandwidth"] !== null) { + $this->Bandwidth = $param["Bandwidth"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ModifyDataRepositoryBandwidthResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ModifyDataRepositoryBandwidthResponse.php new file mode 100644 index 000000000..a4c9e8f2b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/ModifyDataRepositoryBandwidthResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryCrossVpcSubnetSupportForClientNodeRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryCrossVpcSubnetSupportForClientNodeRequest.php new file mode 100644 index 000000000..37463e5a3 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryCrossVpcSubnetSupportForClientNodeRequest.php @@ -0,0 +1,53 @@ +FileSystemId = $param["FileSystemId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextClassificationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryCrossVpcSubnetSupportForClientNodeResponse.php similarity index 67% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextClassificationResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryCrossVpcSubnetSupportForClientNodeResponse.php index 223c72061..056bedecd 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextClassificationResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryCrossVpcSubnetSupportForClientNodeResponse.php @@ -14,23 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Goosefs\V20220519\Models; use TencentCloud\Common\AbstractModel; /** - * TextClassification返回参数结构体 + * QueryCrossVpcSubnetSupportForClientNode返回参数结构体 * - * @method array getClasses() 获取文本分类结果(文本分类映射表请参见附录) - * @method void setClasses(array $Classes) 设置文本分类结果(文本分类映射表请参见附录) + * @method array getSubnetInfoCollection() 获取支持的子网信息集合 + * @method void setSubnetInfoCollection(array $SubnetInfoCollection) 设置支持的子网信息集合 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class TextClassificationResponse extends AbstractModel +class QueryCrossVpcSubnetSupportForClientNodeResponse extends AbstractModel { /** - * @var array 文本分类结果(文本分类映射表请参见附录) + * @var array 支持的子网信息集合 */ - public $Classes; + public $SubnetInfoCollection; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -38,7 +38,7 @@ class TextClassificationResponse extends AbstractModel public $RequestId; /** - * @param array $Classes 文本分类结果(文本分类映射表请参见附录) + * @param array $SubnetInfoCollection 支持的子网信息集合 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -54,12 +54,12 @@ class TextClassificationResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Classes",$param) and $param["Classes"] !== null) { - $this->Classes = []; - foreach ($param["Classes"] as $key => $value){ - $obj = new ClassificationResult(); + if (array_key_exists("SubnetInfoCollection",$param) and $param["SubnetInfoCollection"] !== null) { + $this->SubnetInfoCollection = []; + foreach ($param["SubnetInfoCollection"] as $key => $value){ + $obj = new SubnetInfo(); $obj->deserialize($value); - array_push($this->Classes, $obj); + array_push($this->SubnetInfoCollection, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryDataRepositoryBandwidthRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryDataRepositoryBandwidthRequest.php new file mode 100644 index 000000000..812e2671c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryDataRepositoryBandwidthRequest.php @@ -0,0 +1,53 @@ +FileSystemId = $param["FileSystemId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GenerateCoupletResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryDataRepositoryBandwidthResponse.php similarity index 51% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GenerateCoupletResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryDataRepositoryBandwidthResponse.php index 3d3258eb5..2b44430f7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GenerateCoupletResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/QueryDataRepositoryBandwidthResponse.php @@ -14,37 +14,37 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Goosefs\V20220519\Models; use TencentCloud\Common\AbstractModel; /** - * GenerateCouplet返回参数结构体 + * QueryDataRepositoryBandwidth返回参数结构体 * - * @method string getTopScroll() 获取横批。 - * @method void setTopScroll(string $TopScroll) 设置横批。 - * @method array getContent() 获取上联与下联。 - * @method void setContent(array $Content) 设置上联与下联。 - * @method string getRandomCause() 获取当对联随机生成时,展示随机生成原因。 - * @method void setRandomCause(string $RandomCause) 设置当对联随机生成时,展示随机生成原因。 + * @method integer getBandwidth() 获取数据流动带宽, 单位MB/s + * @method void setBandwidth(integer $Bandwidth) 设置数据流动带宽, 单位MB/s + * @method integer getBandwidthStatus() 获取带宽状态。1:待扩容;2:运行中;3:扩容中 + * @method void setBandwidthStatus(integer $BandwidthStatus) 设置带宽状态。1:待扩容;2:运行中;3:扩容中 + * @method integer getMinBandwidth() 获取能设置的最小带宽, 单位MB/s + * @method void setMinBandwidth(integer $MinBandwidth) 设置能设置的最小带宽, 单位MB/s * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class GenerateCoupletResponse extends AbstractModel +class QueryDataRepositoryBandwidthResponse extends AbstractModel { /** - * @var string 横批。 + * @var integer 数据流动带宽, 单位MB/s */ - public $TopScroll; + public $Bandwidth; /** - * @var array 上联与下联。 + * @var integer 带宽状态。1:待扩容;2:运行中;3:扩容中 */ - public $Content; + public $BandwidthStatus; /** - * @var string 当对联随机生成时,展示随机生成原因。 + * @var integer 能设置的最小带宽, 单位MB/s */ - public $RandomCause; + public $MinBandwidth; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -52,9 +52,9 @@ class GenerateCoupletResponse extends AbstractModel public $RequestId; /** - * @param string $TopScroll 横批。 - * @param array $Content 上联与下联。 - * @param string $RandomCause 当对联随机生成时,展示随机生成原因。 + * @param integer $Bandwidth 数据流动带宽, 单位MB/s + * @param integer $BandwidthStatus 带宽状态。1:待扩容;2:运行中;3:扩容中 + * @param integer $MinBandwidth 能设置的最小带宽, 单位MB/s * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -70,16 +70,16 @@ class GenerateCoupletResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("TopScroll",$param) and $param["TopScroll"] !== null) { - $this->TopScroll = $param["TopScroll"]; + if (array_key_exists("Bandwidth",$param) and $param["Bandwidth"] !== null) { + $this->Bandwidth = $param["Bandwidth"]; } - if (array_key_exists("Content",$param) and $param["Content"] !== null) { - $this->Content = $param["Content"]; + if (array_key_exists("BandwidthStatus",$param) and $param["BandwidthStatus"] !== null) { + $this->BandwidthStatus = $param["BandwidthStatus"]; } - if (array_key_exists("RandomCause",$param) and $param["RandomCause"] !== null) { - $this->RandomCause = $param["RandomCause"]; + if (array_key_exists("MinBandwidth",$param) and $param["MinBandwidth"] !== null) { + $this->MinBandwidth = $param["MinBandwidth"]; } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/SubnetInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/SubnetInfo.php new file mode 100644 index 000000000..8a7ad5703 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/SubnetInfo.php @@ -0,0 +1,73 @@ +VpcId = $param["VpcId"]; + } + + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/Keyword.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/Tag.php similarity index 59% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/Keyword.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/Tag.php index d9824c8db..231500bcd 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/Keyword.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Goosefs/V20220519/Models/Tag.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Goosefs\V20220519\Models; use TencentCloud\Common\AbstractModel; /** - * 关键词提取结果 + * 文件系统关联的标签 * - * @method float getScore() 获取权重 - * @method void setScore(float $Score) 设置权重 - * @method string getWord() 获取关键词 - * @method void setWord(string $Word) 设置关键词 + * @method string getKey() 获取标签键 + * @method void setKey(string $Key) 设置标签键 + * @method string getValue() 获取标签值 + * @method void setValue(string $Value) 设置标签值 */ -class Keyword extends AbstractModel +class Tag extends AbstractModel { /** - * @var float 权重 + * @var string 标签键 */ - public $Score; + public $Key; /** - * @var string 关键词 + * @var string 标签值 */ - public $Word; + public $Value; /** - * @param float $Score 权重 - * @param string $Word 关键词 + * @param string $Key 标签键 + * @param string $Value 标签值 */ function __construct() { @@ -54,12 +54,12 @@ class Keyword extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Score",$param) and $param["Score"] !== null) { - $this->Score = $param["Score"]; + if (array_key_exists("Key",$param) and $param["Key"] !== null) { + $this->Key = $param["Key"]; } - if (array_key_exists("Word",$param) and $param["Word"] !== null) { - $this->Word = $param["Word"]; + if (array_key_exists("Value",$param) and $param["Value"] !== null) { + $this->Value = $param["Value"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iai/V20180301/Models/FaceDetailAttributesInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iai/V20180301/Models/FaceDetailAttributesInfo.php index 9008cb9ac..39194fc5b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iai/V20180301/Models/FaceDetailAttributesInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iai/V20180301/Models/FaceDetailAttributesInfo.php @@ -25,9 +25,9 @@ use TencentCloud\Common\AbstractModel; 若 FaceAttributesType 没有输入相关类型,则FaceDetaiAttributesInfo返回的细项不具备参考意义。 * * @method integer getAge() 获取年龄 [0,65],其中65代表“65岁及以上”。 -FaceAttributesType 不为含Age 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 +FaceAttributesType 不含Age 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 * @method void setAge(integer $Age) 设置年龄 [0,65],其中65代表“65岁及以上”。 -FaceAttributesType 不为含Age 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 +FaceAttributesType 不含Age 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 * @method integer getBeauty() 获取美丑打分[0,100]。 FaceAttributesType 不含 Beauty 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 * @method void setBeauty(integer $Beauty) 设置美丑打分[0,100]。 @@ -107,7 +107,7 @@ class FaceDetailAttributesInfo extends AbstractModel { /** * @var integer 年龄 [0,65],其中65代表“65岁及以上”。 -FaceAttributesType 不为含Age 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 +FaceAttributesType 不含Age 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 */ public $Age; @@ -210,7 +210,7 @@ FaceAttributesType 不含 Smile 或检测超过 5 张人脸时,此参数仍返 /** * @param integer $Age 年龄 [0,65],其中65代表“65岁及以上”。 -FaceAttributesType 不为含Age 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 +FaceAttributesType 不含Age 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 * @param integer $Beauty 美丑打分[0,100]。 FaceAttributesType 不含 Beauty 或检测超过 5 张人脸时,此参数仍返回,但不具备参考意义。 * @param AttributeItem $Emotion 情绪,可识别自然、高兴、惊讶、生气、悲伤、厌恶、害怕。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iai/V20180301/Models/Hat.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iai/V20180301/Models/Hat.php index 90af4bad5..034c1e35f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iai/V20180301/Models/Hat.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iai/V20180301/Models/Hat.php @@ -25,9 +25,9 @@ AttributeItem对应的Type为 —— 0:不戴帽子,1:普通帽子,2: * @method void setStyle(AttributeItem $Style) 设置帽子佩戴状态信息。 AttributeItem对应的Type为 —— 0:不戴帽子,1:普通帽子,2:头盔,3:保安帽。 * @method AttributeItem getColor() 获取帽子颜色。 -AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄色系,3:蓝色系,4:黑色系,5:灰白色系,6:混色系子。 +AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄色系,3:蓝色系,4:黑色系,5:灰白色系,6:混色系。 * @method void setColor(AttributeItem $Color) 设置帽子颜色。 -AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄色系,3:蓝色系,4:黑色系,5:灰白色系,6:混色系子。 +AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄色系,3:蓝色系,4:黑色系,5:灰白色系,6:混色系。 */ class Hat extends AbstractModel { @@ -39,7 +39,7 @@ AttributeItem对应的Type为 —— 0:不戴帽子,1:普通帽子,2: /** * @var AttributeItem 帽子颜色。 -AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄色系,3:蓝色系,4:黑色系,5:灰白色系,6:混色系子。 +AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄色系,3:蓝色系,4:黑色系,5:灰白色系,6:混色系。 */ public $Color; @@ -47,7 +47,7 @@ AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄 * @param AttributeItem $Style 帽子佩戴状态信息。 AttributeItem对应的Type为 —— 0:不戴帽子,1:普通帽子,2:头盔,3:保安帽。 * @param AttributeItem $Color 帽子颜色。 -AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄色系,3:蓝色系,4:黑色系,5:灰白色系,6:混色系子。 +AttributeItem对应的Type为 —— 0:不戴帽子,1:红色系,2:黄色系,3:蓝色系,4:黑色系,5:灰白色系,6:混色系。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/CLSLogItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/CLSLogItem.php index 4e13158d0..22f7b88d5 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/CLSLogItem.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/CLSLogItem.php @@ -36,6 +36,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTime(string $Time) 设置日志时间 * @method string getUserid() 获取腾讯云账号 * @method void setUserid(string $Userid) 设置腾讯云账号 + * @method string getUserId() 获取腾讯云账号 + * @method void setUserId(string $UserId) 设置腾讯云账号 */ class CLSLogItem extends AbstractModel { @@ -76,9 +78,15 @@ class CLSLogItem extends AbstractModel /** * @var string 腾讯云账号 + * @deprecated */ public $Userid; + /** + * @var string 腾讯云账号 + */ + public $UserId; + /** * @param string $Content 日志内容 * @param string $DeviceName 设备名称 @@ -88,6 +96,7 @@ class CLSLogItem extends AbstractModel * @param string $Scene 模块 * @param string $Time 日志时间 * @param string $Userid 腾讯云账号 + * @param string $UserId 腾讯云账号 */ function __construct() { @@ -133,5 +142,9 @@ class CLSLogItem extends AbstractModel if (array_key_exists("Userid",$param) and $param["Userid"] !== null) { $this->Userid = $param["Userid"]; } + + if (array_key_exists("UserId",$param) and $param["UserId"] !== null) { + $this->UserId = $param["UserId"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/DescribeDeviceResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/DescribeDeviceResponse.php index cc3be22d9..9ccaa5b57 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/DescribeDeviceResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/DescribeDeviceResponse.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getDeviceName() 获取设备名 * @method void setDeviceName(string $DeviceName) 设置设备名 - * @method integer getOnline() 获取设备是否在线,0不在线,1在线 - * @method void setOnline(integer $Online) 设置设备是否在线,0不在线,1在线 + * @method integer getOnline() 获取设备是否在线,0不在线,1在线,3未激活 + * @method void setOnline(integer $Online) 设置设备是否在线,0不在线,1在线,3未激活 * @method integer getLoginTime() 获取设备登录时间 * @method void setLoginTime(integer $LoginTime) 设置设备登录时间 * @method string getVersion() 获取设备固件版本 @@ -90,6 +90,8 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setCreateUserId(integer $CreateUserId) 设置创建者账号ID 注意:此字段可能返回 null,表示取不到有效值。 + * @method string getNBIoTDeviceID() 获取NB IoT运营商处的DeviceID + * @method void setNBIoTDeviceID(string $NBIoTDeviceID) 设置NB IoT运营商处的DeviceID * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -101,7 +103,7 @@ class DescribeDeviceResponse extends AbstractModel public $DeviceName; /** - * @var integer 设备是否在线,0不在线,1在线 + * @var integer 设备是否在线,0不在线,1在线,3未激活 */ public $Online; @@ -157,6 +159,7 @@ class DescribeDeviceResponse extends AbstractModel /** * @var string NB IoT运营商处的DeviceID + * @deprecated */ public $NbiotDeviceID; @@ -230,6 +233,11 @@ class DescribeDeviceResponse extends AbstractModel */ public $CreateUserId; + /** + * @var string NB IoT运营商处的DeviceID + */ + public $NBIoTDeviceID; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -237,7 +245,7 @@ class DescribeDeviceResponse extends AbstractModel /** * @param string $DeviceName 设备名 - * @param integer $Online 设备是否在线,0不在线,1在线 + * @param integer $Online 设备是否在线,0不在线,1在线,3未激活 * @param integer $LoginTime 设备登录时间 * @param string $Version 设备固件版本 * @param integer $LastUpdateTime 设备最后更新时间 @@ -271,6 +279,7 @@ class DescribeDeviceResponse extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $CreateUserId 创建者账号ID 注意:此字段可能返回 null,表示取不到有效值。 + * @param string $NBIoTDeviceID NB IoT运营商处的DeviceID * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -396,6 +405,10 @@ class DescribeDeviceResponse extends AbstractModel $this->CreateUserId = $param["CreateUserId"]; } + if (array_key_exists("NBIoTDeviceID",$param) and $param["NBIoTDeviceID"] !== null) { + $this->NBIoTDeviceID = $param["NBIoTDeviceID"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/DeviceInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/DeviceInfo.php index dddde0948..ab1bde2bd 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/DeviceInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/DeviceInfo.php @@ -90,6 +90,8 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setCreateUserId(integer $CreateUserId) 设置创建者 Uin 注意:此字段可能返回 null,表示取不到有效值。 + * @method string getNBIoTDeviceID() 获取NB IOT运营商处的DeviceID + * @method void setNBIoTDeviceID(string $NBIoTDeviceID) 设置NB IOT运营商处的DeviceID */ class DeviceInfo extends AbstractModel { @@ -145,6 +147,7 @@ class DeviceInfo extends AbstractModel /** * @var string NB IOT运营商处的DeviceID + * @deprecated */ public $NbiotDeviceID; @@ -228,6 +231,11 @@ class DeviceInfo extends AbstractModel */ public $CreateUserId; + /** + * @var string NB IOT运营商处的DeviceID + */ + public $NBIoTDeviceID; + /** * @param string $DeviceName 设备名 * @param integer $Online 设备是否在线,0不在线,1在线 @@ -264,6 +272,7 @@ class DeviceInfo extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $CreateUserId 创建者 Uin 注意:此字段可能返回 null,表示取不到有效值。 + * @param string $NBIoTDeviceID NB IOT运营商处的DeviceID */ function __construct() { @@ -387,5 +396,9 @@ class DeviceInfo extends AbstractModel if (array_key_exists("CreateUserId",$param) and $param["CreateUserId"] !== null) { $this->CreateUserId = $param["CreateUserId"]; } + + if (array_key_exists("NBIoTDeviceID",$param) and $param["NBIoTDeviceID"] !== null) { + $this->NBIoTDeviceID = $param["NBIoTDeviceID"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/ProductProperties.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/ProductProperties.php index 1b6b6e99e..ba464f369 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/ProductProperties.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotcloud/V20210408/Models/ProductProperties.php @@ -58,6 +58,8 @@ use TencentCloud\Common\AbstractModel; * @method void setDeviceLimit(integer $DeviceLimit) 设置设备限制 * @method integer getForbiddenStatus() 获取产品禁用状态 * @method void setForbiddenStatus(integer $ForbiddenStatus) 设置产品禁用状态 + * @method string getAppEUI() 获取LoRa产品运营侧APPEUI,只有LoRa产品需要填写 + * @method void setAppEUI(string $AppEUI) 设置LoRa产品运营侧APPEUI,只有LoRa产品需要填写 */ class ProductProperties extends AbstractModel { @@ -94,6 +96,7 @@ class ProductProperties extends AbstractModel /** * @var string LoRa产品运营侧APPEUI,只有LoRa产品需要填写 + * @deprecated */ public $Appeui; @@ -152,6 +155,11 @@ class ProductProperties extends AbstractModel */ public $ForbiddenStatus; + /** + * @var string LoRa产品运营侧APPEUI,只有LoRa产品需要填写 + */ + public $AppEUI; + /** * @param string $ProductDescription 产品描述 * @param string $EncryptionType 加密类型,1表示证书认证,2表示签名认证。如不填写,默认值是1 @@ -172,6 +180,7 @@ class ProductProperties extends AbstractModel * @param integer $OriginUserId 划归的产品,展示为源用户ID,其余为空 * @param integer $DeviceLimit 设备限制 * @param integer $ForbiddenStatus 产品禁用状态 + * @param string $AppEUI LoRa产品运营侧APPEUI,只有LoRa产品需要填写 */ function __construct() { @@ -257,5 +266,9 @@ class ProductProperties extends AbstractModel if (array_key_exists("ForbiddenStatus",$param) and $param["ForbiddenStatus"] !== null) { $this->ForbiddenStatus = $param["ForbiddenStatus"]; } + + if (array_key_exists("AppEUI",$param) and $param["AppEUI"] !== null) { + $this->AppEUI = $param["AppEUI"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/IotvideoClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/IotvideoClient.php index 2a97f0049..77577bbd1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/IotvideoClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/IotvideoClient.php @@ -41,6 +41,7 @@ use TencentCloud\Iotvideo\V20211125\Models as Models; * @method Models\CreateForwardRuleResponse CreateForwardRule(Models\CreateForwardRuleRequest $req) 创建转发规则 * @method Models\CreateProductResponse CreateProduct(Models\CreateProductRequest $req) 创建产品 * @method Models\CreateTaskFileUrlResponse CreateTaskFileUrl(Models\CreateTaskFileUrlRequest $req) 本接口(CreateTaskFileUrl)用于获取产品级任务文件上传链接 + * @method Models\DeleteCloudStorageEventResponse DeleteCloudStorageEvent(Models\DeleteCloudStorageEventRequest $req) 删除云存事件 * @method Models\DeleteDeviceResponse DeleteDevice(Models\DeleteDeviceRequest $req) 删除设备 * @method Models\DeleteFirmwareResponse DeleteFirmware(Models\DeleteFirmwareRequest $req) 本接口(DeleteFirmware)用于删除固件 * @method Models\DeleteForwardRuleResponse DeleteForwardRule(Models\DeleteForwardRuleRequest $req) 删除转发规则 @@ -73,6 +74,7 @@ use TencentCloud\Iotvideo\V20211125\Models as Models; * @method Models\DescribeDeviceDataHistoryResponse DescribeDeviceDataHistory(Models\DescribeDeviceDataHistoryRequest $req) 获取设备在指定时间范围内上报的历史数据。 * @method Models\DescribeDeviceDataStatsResponse DescribeDeviceDataStats(Models\DescribeDeviceDataStatsRequest $req) 查询设备数据统计 * @method Models\DescribeDeviceEventHistoryResponse DescribeDeviceEventHistory(Models\DescribeDeviceEventHistoryRequest $req) 获取设备的历史事件 + * @method Models\DescribeDevicePackagesResponse DescribeDevicePackages(Models\DescribeDevicePackagesRequest $req) 根据设备信息拉取有效套餐列表 * @method Models\DescribeDeviceStatusLogResponse DescribeDeviceStatusLog(Models\DescribeDeviceStatusLogRequest $req) 获取设备上下线日志 * @method Models\DescribeDevicesResponse DescribeDevices(Models\DescribeDevicesRequest $req) 获取设备列表 * @method Models\DescribeFirmwareResponse DescribeFirmware(Models\DescribeFirmwareRequest $req) 本接口(DescribeFirmware)用于查询固件信息 @@ -112,6 +114,7 @@ use TencentCloud\Iotvideo\V20211125\Models as Models; * @method Models\PublishMessageResponse PublishMessage(Models\PublishMessageRequest $req) 本接口(PublishMessage)用于使用自定义透传协议进行设备远控 * @method Models\ReportAliveDeviceResponse ReportAliveDevice(Models\ReportAliveDeviceRequest $req) 上报活跃设备 * @method Models\ResetCloudStorageResponse ResetCloudStorage(Models\ResetCloudStorageRequest $req) 重置云存服务 + * @method Models\ResetCloudStorageEventResponse ResetCloudStorageEvent(Models\ResetCloudStorageEventRequest $req) 重置云存事件 * @method Models\RetryDeviceFirmwareTaskResponse RetryDeviceFirmwareTask(Models\RetryDeviceFirmwareTaskRequest $req) 本接口用于重试设备升级任务 * @method Models\SetForwardAuthResponse SetForwardAuth(Models\SetForwardAuthRequest $req) 设置转发权限 * @method Models\TransferCloudStorageResponse TransferCloudStorage(Models\TransferCloudStorageRequest $req) 转移云存服务 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DeleteCloudStorageEventRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DeleteCloudStorageEventRequest.php new file mode 100644 index 000000000..91d12c6b8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DeleteCloudStorageEventRequest.php @@ -0,0 +1,113 @@ +ProductId = $param["ProductId"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("EventId",$param) and $param["EventId"] !== null) { + $this->EventId = $param["EventId"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("UserId",$param) and $param["UserId"] !== null) { + $this->UserId = $param["UserId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DeleteCloudStorageEventResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DeleteCloudStorageEventResponse.php new file mode 100644 index 000000000..99a3a3d4c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DeleteCloudStorageEventResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeCloudStorageThumbnailResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeCloudStorageThumbnailResponse.php index 1c931c301..2caffcf0f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeCloudStorageThumbnailResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeCloudStorageThumbnailResponse.php @@ -22,6 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getThumbnailURL() 获取缩略图访问地址 * @method void setThumbnailURL(string $ThumbnailURL) 设置缩略图访问地址 + * @method integer getExpireTime() 获取缩略图访问地址的过期时间 + * @method void setExpireTime(integer $ExpireTime) 设置缩略图访问地址的过期时间 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -32,6 +34,11 @@ class DescribeCloudStorageThumbnailResponse extends AbstractModel */ public $ThumbnailURL; + /** + * @var integer 缩略图访问地址的过期时间 + */ + public $ExpireTime; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -39,6 +46,7 @@ class DescribeCloudStorageThumbnailResponse extends AbstractModel /** * @param string $ThumbnailURL 缩略图访问地址 + * @param integer $ExpireTime 缩略图访问地址的过期时间 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -58,6 +66,10 @@ class DescribeCloudStorageThumbnailResponse extends AbstractModel $this->ThumbnailURL = $param["ThumbnailURL"]; } + if (array_key_exists("ExpireTime",$param) and $param["ExpireTime"] !== null) { + $this->ExpireTime = $param["ExpireTime"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeDevicePackagesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeDevicePackagesRequest.php new file mode 100644 index 000000000..5c92d2da5 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeDevicePackagesRequest.php @@ -0,0 +1,89 @@ +ProductId = $param["ProductId"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionProResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeDevicePackagesResponse.php similarity index 65% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionProResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeDevicePackagesResponse.php index 95d3ddd8a..6f715056f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionProResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/DescribeDevicePackagesResponse.php @@ -14,33 +14,33 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iotvideo\V20211125\Models; use TencentCloud\Common\AbstractModel; /** - * TextCorrectionPro返回参数结构体 + * DescribeDevicePackages返回参数结构体 * - * @method array getCCITokens() 获取纠错详情 + * @method integer getTotalCount() 获取有效云存套餐数量 + * @method void setTotalCount(integer $TotalCount) 设置有效云存套餐数量 + * @method array getPackages() 获取有效云存套餐列表 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setCCITokens(array $CCITokens) 设置纠错详情 + * @method void setPackages(array $Packages) 设置有效云存套餐列表 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getResultText() 获取纠错后的文本 - * @method void setResultText(string $ResultText) 设置纠错后的文本 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class TextCorrectionProResponse extends AbstractModel +class DescribeDevicePackagesResponse extends AbstractModel { /** - * @var array 纠错详情 -注意:此字段可能返回 null,表示取不到有效值。 + * @var integer 有效云存套餐数量 */ - public $CCITokens; + public $TotalCount; /** - * @var string 纠错后的文本 + * @var array 有效云存套餐列表 +注意:此字段可能返回 null,表示取不到有效值。 */ - public $ResultText; + public $Packages; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -48,9 +48,9 @@ class TextCorrectionProResponse extends AbstractModel public $RequestId; /** - * @param array $CCITokens 纠错详情 + * @param integer $TotalCount 有效云存套餐数量 + * @param array $Packages 有效云存套餐列表 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $ResultText 纠错后的文本 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -66,17 +66,17 @@ class TextCorrectionProResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("CCITokens",$param) and $param["CCITokens"] !== null) { - $this->CCITokens = []; - foreach ($param["CCITokens"] as $key => $value){ - $obj = new CCIToken(); - $obj->deserialize($value); - array_push($this->CCITokens, $obj); - } + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; } - if (array_key_exists("ResultText",$param) and $param["ResultText"] !== null) { - $this->ResultText = $param["ResultText"]; + if (array_key_exists("Packages",$param) and $param["Packages"] !== null) { + $this->Packages = []; + foreach ($param["Packages"] as $key => $value){ + $obj = new PackageInfo(); + $obj->deserialize($value); + array_push($this->Packages, $obj); + } } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/PackageInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/PackageInfo.php new file mode 100644 index 000000000..87170dd2c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/PackageInfo.php @@ -0,0 +1,125 @@ +Status = $param["Status"]; + } + + if (array_key_exists("CSType",$param) and $param["CSType"] !== null) { + $this->CSType = $param["CSType"]; + } + + if (array_key_exists("CSShiftDuration",$param) and $param["CSShiftDuration"] !== null) { + $this->CSShiftDuration = $param["CSShiftDuration"]; + } + + if (array_key_exists("CSExpiredTime",$param) and $param["CSExpiredTime"] !== null) { + $this->CSExpiredTime = $param["CSExpiredTime"]; + } + + if (array_key_exists("CreatedAt",$param) and $param["CreatedAt"] !== null) { + $this->CreatedAt = $param["CreatedAt"]; + } + + if (array_key_exists("UpdatedAt",$param) and $param["UpdatedAt"] !== null) { + $this->UpdatedAt = $param["UpdatedAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/ResetCloudStorageEventRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/ResetCloudStorageEventRequest.php new file mode 100644 index 000000000..208e542c5 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/ResetCloudStorageEventRequest.php @@ -0,0 +1,77 @@ +ProductId = $param["ProductId"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("UserId",$param) and $param["UserId"] !== null) { + $this->UserId = $param["UserId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/ResetCloudStorageEventResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/ResetCloudStorageEventResponse.php new file mode 100644 index 000000000..a9e20ef40 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iotvideo/V20211125/Models/ResetCloudStorageEventResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/IssClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/IssClient.php new file mode 100644 index 000000000..882747f0c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/IssClient.php @@ -0,0 +1,141 @@ + 该功能本质是拉取设备本地录像数据上云(即存在 IPC 摄像头存储卡或 NVR 硬盘中的录像),操作时需先设定录像时间段(即想要上云的设备本地录像),再设定上云时间段和上云倍速,平台将于上云时间段倍速拉取设备对应前一天的录像时间段数据。 + +> 设定需至少满足(上云时间段=前一天的录像时间段/上云倍速),建议上云时间段可多设定10%左右的时间,避免因网络波动导致数据拉取不完整。 + * @method Models\AddRecordPlanResponse AddRecordPlan(Models\AddRecordPlanRequest $req) 用于新增实时上云计划 + * @method Models\AddRecordRetrieveTaskResponse AddRecordRetrieveTask(Models\AddRecordRetrieveTaskRequest $req) 用于新建取回任务 + * @method Models\AddRecordTemplateResponse AddRecordTemplate(Models\AddRecordTemplateRequest $req) 用于新增实时上云模板 + * @method Models\AddStreamAuthResponse AddStreamAuth(Models\AddStreamAuthRequest $req) 用于设置推拉流鉴权配置。 + * @method Models\AddUserDeviceResponse AddUserDevice(Models\AddUserDeviceRequest $req) 用于新增单个设备。添加设备之后,可根据返回结果到设备上进行配置,配置后等待设备注册/推流。 + * @method Models\CheckDomainResponse CheckDomain(Models\CheckDomainRequest $req) 用于检测域名是否备案。 + * @method Models\ControlDevicePTZResponse ControlDevicePTZ(Models\ControlDevicePTZRequest $req) 用于设备通道云台控制,包括转动、变倍、变焦、光圈等。 + * @method Models\ControlDevicePresetResponse ControlDevicePreset(Models\ControlDevicePresetRequest $req) 用于操作设备预置位,包括设置、删除、调用。 + * @method Models\ControlDeviceStreamResponse ControlDeviceStream(Models\ControlDeviceStreamRequest $req) 用于获取设备的实时开流地址。 + * @method Models\ControlRecordResponse ControlRecord(Models\ControlRecordRequest $req) 用于录像回放过程中的倍速、跳转、播放/暂停/停止等控制。 + * @method Models\ControlRecordTimelineResponse ControlRecordTimeline(Models\ControlRecordTimelineRequest $req) 用于查询设备本地录像时间轴信息,为NVR/IPC本地存储的录像。 + * @method Models\DeleteAITaskResponse DeleteAITask(Models\DeleteAITaskRequest $req) 删除AI任务 + * @method Models\DeleteDomainResponse DeleteDomain(Models\DeleteDomainRequest $req) 用于删除域名。 + * @method Models\DeleteGatewayResponse DeleteGateway(Models\DeleteGatewayRequest $req) 用于删除网关。 + * @method Models\DeleteOrganizationResponse DeleteOrganization(Models\DeleteOrganizationRequest $req) 用于删除组织。 + * @method Models\DeleteRecordBackupPlanResponse DeleteRecordBackupPlan(Models\DeleteRecordBackupPlanRequest $req) 用于删除录像上云模板。 + * @method Models\DeleteRecordBackupTemplateResponse DeleteRecordBackupTemplate(Models\DeleteRecordBackupTemplateRequest $req) 用于删除录像上云模板。 + * @method Models\DeleteRecordPlanResponse DeleteRecordPlan(Models\DeleteRecordPlanRequest $req) 用于删除实时上云计划 + * @method Models\DeleteRecordRetrieveTaskResponse DeleteRecordRetrieveTask(Models\DeleteRecordRetrieveTaskRequest $req) 用于删除取回任务 + * @method Models\DeleteRecordTemplateResponse DeleteRecordTemplate(Models\DeleteRecordTemplateRequest $req) 用于删除实时上云模板 + * @method Models\DeleteUserDeviceResponse DeleteUserDevice(Models\DeleteUserDeviceRequest $req) 用于删除已添加的设备。 + * @method Models\DescribeAITaskResponse DescribeAITask(Models\DescribeAITaskRequest $req) 获取AI任务详情 + * @method Models\DescribeAITaskResultResponse DescribeAITaskResult(Models\DescribeAITaskResultRequest $req) 获取AI任务识别结果 + * @method Models\DescribeCNAMEResponse DescribeCNAME(Models\DescribeCNAMERequest $req) 用于根据服务节点获取 CNAME 值。 + * @method Models\DescribeDeviceChannelResponse DescribeDeviceChannel(Models\DescribeDeviceChannelRequest $req) 用于查询设备的通道。 + * @method Models\DescribeDevicePresetResponse DescribeDevicePreset(Models\DescribeDevicePresetRequest $req) 用于查询设备通道预置位信息。 + * @method Models\DescribeDeviceRegionResponse DescribeDeviceRegion(Models\DescribeDeviceRegionRequest $req) 用于添加设备时,查询设备可以使用的服务节点,查询结果为已经绑定了域名的服务节点。 + * @method Models\DescribeDomainResponse DescribeDomain(Models\DescribeDomainRequest $req) 用于查询添加的域名列表。 + * @method Models\DescribeDomainRegionResponse DescribeDomainRegion(Models\DescribeDomainRegionRequest $req) 用于用户添加域名时,查询可以绑定的服务节点,结果为平台支持的所有服务节点。(注意:每个服务节点只能绑定一个域名) + * @method Models\DescribeGatewayResponse DescribeGateway(Models\DescribeGatewayRequest $req) 用于获取网关详情。 + * @method Models\DescribeGatewayMonitorResponse DescribeGatewayMonitor(Models\DescribeGatewayMonitorRequest $req) 用于获取网关的数据及流量监控信息。 + * @method Models\DescribeGatewayProtocolResponse DescribeGatewayProtocol(Models\DescribeGatewayProtocolRequest $req) 用于查询网关接入协议。 + * @method Models\DescribeGatewayVersionResponse DescribeGatewayVersion(Models\DescribeGatewayVersionRequest $req) 查询网关服务版本 + * @method Models\DescribeOrganizationResponse DescribeOrganization(Models\DescribeOrganizationRequest $req) 用于查询组织。 + * @method Models\DescribeRecordBackupPlanResponse DescribeRecordBackupPlan(Models\DescribeRecordBackupPlanRequest $req) 用于查询录像上云计划详情。 + * @method Models\DescribeRecordBackupTemplateResponse DescribeRecordBackupTemplate(Models\DescribeRecordBackupTemplateRequest $req) 用于查询录像上云模板详情。 + * @method Models\DescribeRecordFileResponse DescribeRecordFile(Models\DescribeRecordFileRequest $req) 用于查询设备云端录像时间轴信息(即为视频上云后设置录像计划后云存储的录像) + * @method Models\DescribeRecordPlanResponse DescribeRecordPlan(Models\DescribeRecordPlanRequest $req) 用于查询实时上云计划详情 + * @method Models\DescribeRecordPlaybackUrlResponse DescribeRecordPlaybackUrl(Models\DescribeRecordPlaybackUrlRequest $req) 用于获取云端录像回放url地址 + * @method Models\DescribeRecordRetrieveTaskResponse DescribeRecordRetrieveTask(Models\DescribeRecordRetrieveTaskRequest $req) 用于查询云录像取回任务详情 + * @method Models\DescribeRecordTemplateResponse DescribeRecordTemplate(Models\DescribeRecordTemplateRequest $req) 用于查询实时上云模板详情 + * @method Models\DescribeStreamAuthResponse DescribeStreamAuth(Models\DescribeStreamAuthRequest $req) 用于查询推拉流鉴权配置。 + * @method Models\DescribeUserDeviceResponse DescribeUserDevice(Models\DescribeUserDeviceRequest $req) 用于查询设备的详细信息。 + * @method Models\DescribeVideoDownloadUrlResponse DescribeVideoDownloadUrl(Models\DescribeVideoDownloadUrlRequest $req) 用于获取云录像下载 url + * @method Models\ListAITasksResponse ListAITasks(Models\ListAITasksRequest $req) 获取AI任务列表 + * @method Models\ListDevicesResponse ListDevices(Models\ListDevicesRequest $req) 用于获取对应组织下的设备列表。 + * @method Models\ListGatewaysResponse ListGateways(Models\ListGatewaysRequest $req) 用于获取网关列表。 + * @method Models\ListOrganizationChannelNumbersResponse ListOrganizationChannelNumbers(Models\ListOrganizationChannelNumbersRequest $req) 用于查询组织目录下的未添加到实时上云计划中的通道数量 + * @method Models\ListOrganizationChannelsResponse ListOrganizationChannels(Models\ListOrganizationChannelsRequest $req) 用于查询组织目录下的通道列表 + * @method Models\ListRecordBackupPlanDevicesResponse ListRecordBackupPlanDevices(Models\ListRecordBackupPlanDevicesRequest $req) 用于查询录像上云计划下的设备通道列表。 + * @method Models\ListRecordBackupPlansResponse ListRecordBackupPlans(Models\ListRecordBackupPlansRequest $req) 用于查询录像上云计划列表。 + * @method Models\ListRecordBackupTemplatesResponse ListRecordBackupTemplates(Models\ListRecordBackupTemplatesRequest $req) 用于查询录像上云模板列表。 + * @method Models\ListRecordPlanChannelsResponse ListRecordPlanChannels(Models\ListRecordPlanChannelsRequest $req) 用于查询用户下所有实时上云计划中的通道列表 + * @method Models\ListRecordPlanDevicesResponse ListRecordPlanDevices(Models\ListRecordPlanDevicesRequest $req) 用于查询实时上云计划下的设备通道列表 + * @method Models\ListRecordPlansResponse ListRecordPlans(Models\ListRecordPlansRequest $req) 用于查询实时上云计划列表 + * @method Models\ListRecordRetrieveTasksResponse ListRecordRetrieveTasks(Models\ListRecordRetrieveTasksRequest $req) 用于查询取回任务列表 + * @method Models\ListRecordTemplatesResponse ListRecordTemplates(Models\ListRecordTemplatesRequest $req) 用于查询实时上云模板列表 + * @method Models\PlayRecordResponse PlayRecord(Models\PlayRecordRequest $req) 用于获取设备本地录像 URL 地址。 + * @method Models\RefreshDeviceChannelResponse RefreshDeviceChannel(Models\RefreshDeviceChannelRequest $req) 用于刷新国标设备的通道(接口调用后,触发向设备请求通道列表,新增的通道入库,设备上已删除的通道需自行删除、后台不自动删除)。 + * @method Models\UpdateAITaskResponse UpdateAITask(Models\UpdateAITaskRequest $req) 更新AI任务 + * @method Models\UpdateAITaskStatusResponse UpdateAITaskStatus(Models\UpdateAITaskStatusRequest $req) 更新 AI 任务状态 + * @method Models\UpdateDeviceOrganizationResponse UpdateDeviceOrganization(Models\UpdateDeviceOrganizationRequest $req) 用于批量更改设备的组织。 + * @method Models\UpdateDeviceStatusResponse UpdateDeviceStatus(Models\UpdateDeviceStatusRequest $req) 用于启用/禁用设备,禁用后拒绝设备注册。 + * @method Models\UpdateGatewayResponse UpdateGateway(Models\UpdateGatewayRequest $req) 用于修改网关信息(支持对网关名称和描述的修改)。 + * @method Models\UpdateOrganizationResponse UpdateOrganization(Models\UpdateOrganizationRequest $req) 用于修改组织。 + * @method Models\UpdateRecordBackupPlanResponse UpdateRecordBackupPlan(Models\UpdateRecordBackupPlanRequest $req) 用于修改录像上云计划。 + * @method Models\UpdateRecordBackupTemplateResponse UpdateRecordBackupTemplate(Models\UpdateRecordBackupTemplateRequest $req) 用于修改录像上云模板。 + * @method Models\UpdateRecordPlanResponse UpdateRecordPlan(Models\UpdateRecordPlanRequest $req) 用于修改实时上云计划 + * @method Models\UpdateRecordTemplateResponse UpdateRecordTemplate(Models\UpdateRecordTemplateRequest $req) 用于修改实时上云模板 + * @method Models\UpdateUserDeviceResponse UpdateUserDevice(Models\UpdateUserDeviceRequest $req) 用于修改设备的配置信息。 + * @method Models\UpgradeGatewayResponse UpgradeGateway(Models\UpgradeGatewayRequest $req) 用于网关升级(支持对所有待更新的服务一键升级)。 + */ + +class IssClient extends AbstractClient +{ + /** + * @var string + */ + protected $endpoint = "iss.tencentcloudapi.com"; + + /** + * @var string + */ + protected $service = "iss"; + + /** + * @var string + */ + protected $version = "2023-05-17"; + + /** + * @param Credential $credential + * @param string $region + * @param ClientProfile|null $profile + * @throws TencentCloudSDKException + */ + function __construct($credential, $region, $profile=null) + { + parent::__construct($this->endpoint, $this->version, $credential, $region, $profile); + } + + public function returnResponse($action, $response) + { + $respClass = "TencentCloud"."\\".ucfirst("iss")."\\"."V20230517\\Models"."\\".ucfirst($action)."Response"; + $obj = new $respClass(); + $obj->deserialize($response); + return $obj; + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AIConfig.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AIConfig.php new file mode 100644 index 000000000..aa13b8fb2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AIConfig.php @@ -0,0 +1,82 @@ +DetectType = $param["DetectType"]; + } + + if (array_key_exists("TimeInterval",$param) and $param["TimeInterval"] !== null) { + $this->TimeInterval = $param["TimeInterval"]; + } + + if (array_key_exists("OperTimeSlot",$param) and $param["OperTimeSlot"] !== null) { + $this->OperTimeSlot = []; + foreach ($param["OperTimeSlot"] as $key => $value){ + $obj = new OperTimeSlot(); + $obj->deserialize($value); + array_push($this->OperTimeSlot, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskInfo.php new file mode 100644 index 000000000..6baac62c7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskInfo.php @@ -0,0 +1,154 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Desc",$param) and $param["Desc"] !== null) { + $this->Desc = $param["Desc"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("ChannelList",$param) and $param["ChannelList"] !== null) { + $this->ChannelList = $param["ChannelList"]; + } + + if (array_key_exists("CallbackUrl",$param) and $param["CallbackUrl"] !== null) { + $this->CallbackUrl = $param["CallbackUrl"]; + } + + if (array_key_exists("Templates",$param) and $param["Templates"] !== null) { + $this->Templates = []; + foreach ($param["Templates"] as $key => $value){ + $obj = new AITemplates(); + $obj->deserialize($value); + array_push($this->Templates, $obj); + } + } + + if (array_key_exists("CreatedTime",$param) and $param["CreatedTime"] !== null) { + $this->CreatedTime = $param["CreatedTime"]; + } + + if (array_key_exists("UpdatedTime",$param) and $param["UpdatedTime"] !== null) { + $this->UpdatedTime = $param["UpdatedTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskResultData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskResultData.php new file mode 100644 index 000000000..70f489125 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskResultData.php @@ -0,0 +1,82 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("AIResultCount",$param) and $param["AIResultCount"] !== null) { + $this->AIResultCount = $param["AIResultCount"]; + } + + if (array_key_exists("AIResults",$param) and $param["AIResults"] !== null) { + $this->AIResults = new AITaskResultInfo(); + $this->AIResults->deserialize($param["AIResults"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskResultInfo.php new file mode 100644 index 000000000..e44733e6e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITaskResultInfo.php @@ -0,0 +1,209 @@ +Body = []; + foreach ($param["Body"] as $key => $value){ + $obj = new BodyAIResultInfo(); + $obj->deserialize($value); + array_push($this->Body, $obj); + } + } + + if (array_key_exists("Pet",$param) and $param["Pet"] !== null) { + $this->Pet = []; + foreach ($param["Pet"] as $key => $value){ + $obj = new PetAIResultInfo(); + $obj->deserialize($value); + array_push($this->Pet, $obj); + } + } + + if (array_key_exists("Car",$param) and $param["Car"] !== null) { + $this->Car = []; + foreach ($param["Car"] as $key => $value){ + $obj = new CarAIResultInfo(); + $obj->deserialize($value); + array_push($this->Car, $obj); + } + } + + if (array_key_exists("ChefHat",$param) and $param["ChefHat"] !== null) { + $this->ChefHat = []; + foreach ($param["ChefHat"] as $key => $value){ + $obj = new ChefHatAIResultInfo(); + $obj->deserialize($value); + array_push($this->ChefHat, $obj); + } + } + + if (array_key_exists("ChefCloth",$param) and $param["ChefCloth"] !== null) { + $this->ChefCloth = []; + foreach ($param["ChefCloth"] as $key => $value){ + $obj = new ChefClothAIResultInfo(); + $obj->deserialize($value); + array_push($this->ChefCloth, $obj); + } + } + + if (array_key_exists("FaceMask",$param) and $param["FaceMask"] !== null) { + $this->FaceMask = []; + foreach ($param["FaceMask"] as $key => $value){ + $obj = new FaceMaskAIResultInfo(); + $obj->deserialize($value); + array_push($this->FaceMask, $obj); + } + } + + if (array_key_exists("Smoking",$param) and $param["Smoking"] !== null) { + $this->Smoking = []; + foreach ($param["Smoking"] as $key => $value){ + $obj = new SmokingAIResultInfo(); + $obj->deserialize($value); + array_push($this->Smoking, $obj); + } + } + + if (array_key_exists("PhoneCall",$param) and $param["PhoneCall"] !== null) { + $this->PhoneCall = []; + foreach ($param["PhoneCall"] as $key => $value){ + $obj = new PhoneCallAIResultInfo(); + $obj->deserialize($value); + array_push($this->PhoneCall, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITemplates.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITemplates.php new file mode 100644 index 000000000..e43cf0eac --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AITemplates.php @@ -0,0 +1,79 @@ +Tag = $param["Tag"]; + } + + if (array_key_exists("AIConfig",$param) and $param["AIConfig"] !== null) { + $this->AIConfig = new AIConfig(); + $this->AIConfig->deserialize($param["AIConfig"]); + } + + if (array_key_exists("SnapshotConfig",$param) and $param["SnapshotConfig"] !== null) { + $this->SnapshotConfig = new SnapshotConfig(); + $this->SnapshotConfig->deserialize($param["SnapshotConfig"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddAITaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddAITaskRequest.php new file mode 100644 index 000000000..a37aefa5c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddAITaskRequest.php @@ -0,0 +1,118 @@ +Name = $param["Name"]; + } + + if (array_key_exists("ChannelList",$param) and $param["ChannelList"] !== null) { + $this->ChannelList = $param["ChannelList"]; + } + + if (array_key_exists("Templates",$param) and $param["Templates"] !== null) { + $this->Templates = []; + foreach ($param["Templates"] as $key => $value){ + $obj = new AITemplates(); + $obj->deserialize($value); + array_push($this->Templates, $obj); + } + } + + if (array_key_exists("Desc",$param) and $param["Desc"] !== null) { + $this->Desc = $param["Desc"]; + } + + if (array_key_exists("CallbackUrl",$param) and $param["CallbackUrl"] !== null) { + $this->CallbackUrl = $param["CallbackUrl"]; + } + + if (array_key_exists("IsStartTheTask",$param) and $param["IsStartTheTask"] !== null) { + $this->IsStartTheTask = $param["IsStartTheTask"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateDictResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddAITaskResponse.php similarity index 78% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateDictResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddAITaskResponse.php index 04d1c0254..8b8068261 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateDictResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddAITaskResponse.php @@ -14,26 +14,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * CreateDict返回参数结构体 + * AddAITask返回参数结构体 * - * @method string getDictId() 获取创建的自定义词库ID。 + * @method AITaskInfo getData() 获取AI任务信息 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setDictId(string $DictId) 设置创建的自定义词库ID。 + * @method void setData(AITaskInfo $Data) 设置AI任务信息 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class CreateDictResponse extends AbstractModel +class AddAITaskResponse extends AbstractModel { /** - * @var string 创建的自定义词库ID。 + * @var AITaskInfo AI任务信息 注意:此字段可能返回 null,表示取不到有效值。 */ - public $DictId; + public $Data; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -41,7 +41,7 @@ class CreateDictResponse extends AbstractModel public $RequestId; /** - * @param string $DictId 创建的自定义词库ID。 + * @param AITaskInfo $Data AI任务信息 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -58,8 +58,9 @@ class CreateDictResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("DictId",$param) and $param["DictId"] !== null) { - $this->DictId = $param["DictId"]; + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = new AITaskInfo(); + $this->Data->deserialize($param["Data"]); } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddDeviceData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddDeviceData.php new file mode 100644 index 000000000..bd1e9fc67 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddDeviceData.php @@ -0,0 +1,333 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("Code",$param) and $param["Code"] !== null) { + $this->Code = $param["Code"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("AccessProtocol",$param) and $param["AccessProtocol"] !== null) { + $this->AccessProtocol = $param["AccessProtocol"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("ClusterName",$param) and $param["ClusterName"] !== null) { + $this->ClusterName = $param["ClusterName"]; + } + + if (array_key_exists("TransportProtocol",$param) and $param["TransportProtocol"] !== null) { + $this->TransportProtocol = $param["TransportProtocol"]; + } + + if (array_key_exists("Password",$param) and $param["Password"] !== null) { + $this->Password = $param["Password"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("GatewayId",$param) and $param["GatewayId"] !== null) { + $this->GatewayId = $param["GatewayId"]; + } + + if (array_key_exists("ProtocolType",$param) and $param["ProtocolType"] !== null) { + $this->ProtocolType = $param["ProtocolType"]; + } + + if (array_key_exists("Ip",$param) and $param["Ip"] !== null) { + $this->Ip = $param["Ip"]; + } + + if (array_key_exists("Port",$param) and $param["Port"] !== null) { + $this->Port = $param["Port"]; + } + + if (array_key_exists("Username",$param) and $param["Username"] !== null) { + $this->Username = $param["Username"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrgData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrgData.php new file mode 100644 index 000000000..4ceb361fa --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrgData.php @@ -0,0 +1,169 @@ +OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("ParentId",$param) and $param["ParentId"] !== null) { + $this->ParentId = $param["ParentId"]; + } + + if (array_key_exists("Level",$param) and $param["Level"] !== null) { + $this->Level = $param["Level"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + + if (array_key_exists("ParentIds",$param) and $param["ParentIds"] !== null) { + $this->ParentIds = $param["ParentIds"]; + } + + if (array_key_exists("Total",$param) and $param["Total"] !== null) { + $this->Total = $param["Total"]; + } + + if (array_key_exists("Online",$param) and $param["Online"] !== null) { + $this->Online = $param["Online"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrganizationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrganizationRequest.php new file mode 100644 index 000000000..465c00280 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrganizationRequest.php @@ -0,0 +1,65 @@ +Name = $param["Name"]; + } + + if (array_key_exists("ParentId",$param) and $param["ParentId"] !== null) { + $this->ParentId = $param["ParentId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrganizationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrganizationResponse.php new file mode 100644 index 000000000..10a9dd15a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddOrganizationResponse.php @@ -0,0 +1,66 @@ +Data = new AddOrgData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanData.php new file mode 100644 index 000000000..b0958ce09 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanData.php @@ -0,0 +1,150 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("PlanName",$param) and $param["PlanName"] !== null) { + $this->PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("ChannelCount",$param) and $param["ChannelCount"] !== null) { + $this->ChannelCount = $param["ChannelCount"]; + } + + if (array_key_exists("CreateAt",$param) and $param["CreateAt"] !== null) { + $this->CreateAt = $param["CreateAt"]; + } + + if (array_key_exists("UpdateAt",$param) and $param["UpdateAt"] !== null) { + $this->UpdateAt = $param["UpdateAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanRequest.php new file mode 100644 index 000000000..29b1f0d8e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanRequest.php @@ -0,0 +1,119 @@ +TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("PlanName",$param) and $param["PlanName"] !== null) { + $this->PlanName = $param["PlanName"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Channels",$param) and $param["Channels"] !== null) { + $this->Channels = []; + foreach ($param["Channels"] as $key => $value){ + $obj = new ChannelInfo(); + $obj->deserialize($value); + array_push($this->Channels, $obj); + } + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanResponse.php new file mode 100644 index 000000000..9c03e8666 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupPlanResponse.php @@ -0,0 +1,66 @@ +Data = new AddRecordBackupPlanData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateData.php new file mode 100644 index 000000000..1e79e757c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateData.php @@ -0,0 +1,163 @@ +TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("TemplateName",$param) and $param["TemplateName"] !== null) { + $this->TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + + if (array_key_exists("DevTimeSections",$param) and $param["DevTimeSections"] !== null) { + $this->DevTimeSections = []; + foreach ($param["DevTimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->DevTimeSections, $obj); + } + } + + if (array_key_exists("Scale",$param) and $param["Scale"] !== null) { + $this->Scale = $param["Scale"]; + } + + if (array_key_exists("CreateAt",$param) and $param["CreateAt"] !== null) { + $this->CreateAt = $param["CreateAt"]; + } + + if (array_key_exists("UpdateAt",$param) and $param["UpdateAt"] !== null) { + $this->UpdateAt = $param["UpdateAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateRequest.php new file mode 100644 index 000000000..a63918b53 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateRequest.php @@ -0,0 +1,99 @@ +TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + + if (array_key_exists("DevTimeSections",$param) and $param["DevTimeSections"] !== null) { + $this->DevTimeSections = []; + foreach ($param["DevTimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->DevTimeSections, $obj); + } + } + + if (array_key_exists("Scale",$param) and $param["Scale"] !== null) { + $this->Scale = $param["Scale"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateResponse.php new file mode 100644 index 000000000..0b54d797a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordBackupTemplateResponse.php @@ -0,0 +1,66 @@ +Data = new AddRecordBackupTemplateData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordPlanRequest.php new file mode 100644 index 000000000..606ea698f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordPlanRequest.php @@ -0,0 +1,131 @@ +PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("StreamType",$param) and $param["StreamType"] !== null) { + $this->StreamType = $param["StreamType"]; + } + + if (array_key_exists("Channels",$param) and $param["Channels"] !== null) { + $this->Channels = []; + foreach ($param["Channels"] as $key => $value){ + $obj = new ChannelInfo(); + $obj->deserialize($value); + array_push($this->Channels, $obj); + } + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordPlanResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordPlanResponse.php new file mode 100644 index 000000000..2f804448c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordPlanResponse.php @@ -0,0 +1,66 @@ +Data = new RecordPlanOptData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskData.php new file mode 100644 index 000000000..f60bdef49 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskData.php @@ -0,0 +1,153 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("TaskName",$param) and $param["TaskName"] !== null) { + $this->TaskName = $param["TaskName"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("Mode",$param) and $param["Mode"] !== null) { + $this->Mode = $param["Mode"]; + } + + if (array_key_exists("Expiration",$param) and $param["Expiration"] !== null) { + $this->Expiration = $param["Expiration"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("Capacity",$param) and $param["Capacity"] !== null) { + $this->Capacity = $param["Capacity"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskRequest.php new file mode 100644 index 000000000..0b497b93c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskRequest.php @@ -0,0 +1,130 @@ +TaskName = $param["TaskName"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("Mode",$param) and $param["Mode"] !== null) { + $this->Mode = $param["Mode"]; + } + + if (array_key_exists("Expiration",$param) and $param["Expiration"] !== null) { + $this->Expiration = $param["Expiration"]; + } + + if (array_key_exists("Channels",$param) and $param["Channels"] !== null) { + $this->Channels = []; + foreach ($param["Channels"] as $key => $value){ + $obj = new ChannelInfo(); + $obj->deserialize($value); + array_push($this->Channels, $obj); + } + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskResponse.php new file mode 100644 index 000000000..a29c89cde --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordRetrieveTaskResponse.php @@ -0,0 +1,66 @@ +Data = new AddRecordRetrieveTaskData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordTemplateRequest.php new file mode 100644 index 000000000..e4714eb22 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordTemplateRequest.php @@ -0,0 +1,70 @@ +TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordTemplateResponse.php new file mode 100644 index 000000000..08e900bd8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddRecordTemplateResponse.php @@ -0,0 +1,66 @@ +Data = new RecordTemplateInfo(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthData.php new file mode 100644 index 000000000..0a71eb991 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthData.php @@ -0,0 +1,169 @@ +Id = $param["Id"]; + } + + if (array_key_exists("PullState",$param) and $param["PullState"] !== null) { + $this->PullState = $param["PullState"]; + } + + if (array_key_exists("PullSecret",$param) and $param["PullSecret"] !== null) { + $this->PullSecret = $param["PullSecret"]; + } + + if (array_key_exists("PullExpired",$param) and $param["PullExpired"] !== null) { + $this->PullExpired = $param["PullExpired"]; + } + + if (array_key_exists("PushState",$param) and $param["PushState"] !== null) { + $this->PushState = $param["PushState"]; + } + + if (array_key_exists("PushSecret",$param) and $param["PushSecret"] !== null) { + $this->PushSecret = $param["PushSecret"]; + } + + if (array_key_exists("PushExpired",$param) and $param["PushExpired"] !== null) { + $this->PushExpired = $param["PushExpired"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthRequest.php new file mode 100644 index 000000000..7bda5542d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthRequest.php @@ -0,0 +1,125 @@ +Id = $param["Id"]; + } + + if (array_key_exists("PullState",$param) and $param["PullState"] !== null) { + $this->PullState = $param["PullState"]; + } + + if (array_key_exists("PullSecret",$param) and $param["PullSecret"] !== null) { + $this->PullSecret = $param["PullSecret"]; + } + + if (array_key_exists("PullExpired",$param) and $param["PullExpired"] !== null) { + $this->PullExpired = $param["PullExpired"]; + } + + if (array_key_exists("PushState",$param) and $param["PushState"] !== null) { + $this->PushState = $param["PushState"]; + } + + if (array_key_exists("PushSecret",$param) and $param["PushSecret"] !== null) { + $this->PushSecret = $param["PushSecret"]; + } + + if (array_key_exists("PushExpired",$param) and $param["PushExpired"] !== null) { + $this->PushExpired = $param["PushExpired"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthResponse.php new file mode 100644 index 000000000..f4b336322 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddStreamAuthResponse.php @@ -0,0 +1,66 @@ +Data = new AddStreamAuthData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddUserDeviceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddUserDeviceRequest.php new file mode 100644 index 000000000..b6f7d7646 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddUserDeviceRequest.php @@ -0,0 +1,197 @@ +Name = $param["Name"]; + } + + if (array_key_exists("AccessProtocol",$param) and $param["AccessProtocol"] !== null) { + $this->AccessProtocol = $param["AccessProtocol"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("TransportProtocol",$param) and $param["TransportProtocol"] !== null) { + $this->TransportProtocol = $param["TransportProtocol"]; + } + + if (array_key_exists("Password",$param) and $param["Password"] !== null) { + $this->Password = $param["Password"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("GatewayId",$param) and $param["GatewayId"] !== null) { + $this->GatewayId = $param["GatewayId"]; + } + + if (array_key_exists("ProtocolType",$param) and $param["ProtocolType"] !== null) { + $this->ProtocolType = $param["ProtocolType"]; + } + + if (array_key_exists("Ip",$param) and $param["Ip"] !== null) { + $this->Ip = $param["Ip"]; + } + + if (array_key_exists("Port",$param) and $param["Port"] !== null) { + $this->Port = $param["Port"]; + } + + if (array_key_exists("Username",$param) and $param["Username"] !== null) { + $this->Username = $param["Username"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddUserDeviceResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddUserDeviceResponse.php new file mode 100644 index 000000000..69728f9f7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/AddUserDeviceResponse.php @@ -0,0 +1,66 @@ +Data = new AddDeviceData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/BaseAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/BaseAIResultInfo.php new file mode 100644 index 000000000..26c25cc42 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/BaseAIResultInfo.php @@ -0,0 +1,78 @@ +Name = $param["Name"]; + } + + if (array_key_exists("Score",$param) and $param["Score"] !== null) { + $this->Score = $param["Score"]; + } + + if (array_key_exists("Location",$param) and $param["Location"] !== null) { + $this->Location = new Location(); + $this->Location->deserialize($param["Location"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/BodyAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/BodyAIResultInfo.php new file mode 100644 index 000000000..7ebd3bc4a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/BodyAIResultInfo.php @@ -0,0 +1,82 @@ +Time = $param["Time"]; + } + + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("BodyInfo",$param) and $param["BodyInfo"] !== null) { + $this->BodyInfo = []; + foreach ($param["BodyInfo"] as $key => $value){ + $obj = new BaseAIResultInfo(); + $obj->deserialize($value); + array_push($this->BodyInfo, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CarAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CarAIResultInfo.php new file mode 100644 index 000000000..cbb012055 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CarAIResultInfo.php @@ -0,0 +1,139 @@ +Serial = $param["Serial"]; + } + + if (array_key_exists("Brand",$param) and $param["Brand"] !== null) { + $this->Brand = $param["Brand"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("Color",$param) and $param["Color"] !== null) { + $this->Color = $param["Color"]; + } + + if (array_key_exists("Confidence",$param) and $param["Confidence"] !== null) { + $this->Confidence = $param["Confidence"]; + } + + if (array_key_exists("Year",$param) and $param["Year"] !== null) { + $this->Year = $param["Year"]; + } + + if (array_key_exists("PlateContent",$param) and $param["PlateContent"] !== null) { + $this->PlateContent = new PlateContent(); + $this->PlateContent->deserialize($param["PlateContent"]); + } + + if (array_key_exists("Location",$param) and $param["Location"] !== null) { + $this->Location = new Location(); + $this->Location->deserialize($param["Location"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChannelInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChannelInfo.php new file mode 100644 index 000000000..96fb3c224 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChannelInfo.php @@ -0,0 +1,65 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("ChannelId",$param) and $param["ChannelId"] !== null) { + $this->ChannelId = $param["ChannelId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CheckDomainRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CheckDomainRequest.php new file mode 100644 index 000000000..18e4b8b7a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CheckDomainRequest.php @@ -0,0 +1,65 @@ +PlayDomain = $param["PlayDomain"]; + } + + if (array_key_exists("InternalDomain",$param) and $param["InternalDomain"] !== null) { + $this->InternalDomain = $param["InternalDomain"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CheckDomainResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CheckDomainResponse.php new file mode 100644 index 000000000..12e496962 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/CheckDomainResponse.php @@ -0,0 +1,65 @@ +Data = $param["Data"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChefClothAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChefClothAIResultInfo.php new file mode 100644 index 000000000..b6cd07a44 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChefClothAIResultInfo.php @@ -0,0 +1,82 @@ +Time = $param["Time"]; + } + + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("ChefClothInfoInfo",$param) and $param["ChefClothInfoInfo"] !== null) { + $this->ChefClothInfoInfo = []; + foreach ($param["ChefClothInfoInfo"] as $key => $value){ + $obj = new BaseAIResultInfo(); + $obj->deserialize($value); + array_push($this->ChefClothInfoInfo, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChefHatAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChefHatAIResultInfo.php new file mode 100644 index 000000000..6384a788a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ChefHatAIResultInfo.php @@ -0,0 +1,82 @@ +Time = $param["Time"]; + } + + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("ChefHatInfo",$param) and $param["ChefHatInfo"] !== null) { + $this->ChefHatInfo = []; + foreach ($param["ChefHatInfo"] as $key => $value){ + $obj = new BaseAIResultInfo(); + $obj->deserialize($value); + array_push($this->ChefHatInfo, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePTZRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePTZRequest.php new file mode 100644 index 000000000..72e635382 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePTZRequest.php @@ -0,0 +1,93 @@ +ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("Speed",$param) and $param["Speed"] !== null) { + $this->Speed = $param["Speed"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePTZResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePTZResponse.php new file mode 100644 index 000000000..a59fbeeaf --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePTZResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePresetRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePresetRequest.php new file mode 100644 index 000000000..1ca02deac --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePresetRequest.php @@ -0,0 +1,85 @@ +ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("Cmd",$param) and $param["Cmd"] !== null) { + $this->Cmd = $param["Cmd"]; + } + + if (array_key_exists("Index",$param) and $param["Index"] !== null) { + $this->Index = $param["Index"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePresetResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePresetResponse.php new file mode 100644 index 000000000..9b6e231e4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDevicePresetResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ConnectionPoolInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamData.php similarity index 50% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ConnectionPoolInfo.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamData.php index ab7f282c8..71634e6f6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ConnectionPoolInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamData.php @@ -14,51 +14,51 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * 连接池信息 + * 获取开流地址返回数据 * - * @method boolean getConnectionPool() 获取是否开启了连接池 + * @method string getFlv() 获取flv 流地址 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setConnectionPool(boolean $ConnectionPool) 设置是否开启了连接池 + * @method void setFlv(string $Flv) 设置flv 流地址 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getConnectionPoolType() 获取连接池类型:SessionConnectionPool(会话级别连接池) + * @method string getHls() 获取hls 流地址 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setConnectionPoolType(string $ConnectionPoolType) 设置连接池类型:SessionConnectionPool(会话级别连接池) + * @method void setHls(string $Hls) 设置hls 流地址 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getPoolConnectionTimeOut() 获取连接池保持阈值:单位(秒) + * @method string getRtmp() 获取rtmp 流地址 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setPoolConnectionTimeOut(integer $PoolConnectionTimeOut) 设置连接池保持阈值:单位(秒) + * @method void setRtmp(string $Rtmp) 设置rtmp 流地址 注意:此字段可能返回 null,表示取不到有效值。 */ -class ConnectionPoolInfo extends AbstractModel +class ControlDeviceStreamData extends AbstractModel { /** - * @var boolean 是否开启了连接池 + * @var string flv 流地址 注意:此字段可能返回 null,表示取不到有效值。 */ - public $ConnectionPool; + public $Flv; /** - * @var string 连接池类型:SessionConnectionPool(会话级别连接池) + * @var string hls 流地址 注意:此字段可能返回 null,表示取不到有效值。 */ - public $ConnectionPoolType; + public $Hls; /** - * @var integer 连接池保持阈值:单位(秒) + * @var string rtmp 流地址 注意:此字段可能返回 null,表示取不到有效值。 */ - public $PoolConnectionTimeOut; + public $Rtmp; /** - * @param boolean $ConnectionPool 是否开启了连接池 + * @param string $Flv flv 流地址 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $ConnectionPoolType 连接池类型:SessionConnectionPool(会话级别连接池) + * @param string $Hls hls 流地址 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $PoolConnectionTimeOut 连接池保持阈值:单位(秒) + * @param string $Rtmp rtmp 流地址 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -74,16 +74,16 @@ class ConnectionPoolInfo extends AbstractModel if ($param === null) { return; } - if (array_key_exists("ConnectionPool",$param) and $param["ConnectionPool"] !== null) { - $this->ConnectionPool = $param["ConnectionPool"]; + if (array_key_exists("Flv",$param) and $param["Flv"] !== null) { + $this->Flv = $param["Flv"]; } - if (array_key_exists("ConnectionPoolType",$param) and $param["ConnectionPoolType"] !== null) { - $this->ConnectionPoolType = $param["ConnectionPoolType"]; + if (array_key_exists("Hls",$param) and $param["Hls"] !== null) { + $this->Hls = $param["Hls"]; } - if (array_key_exists("PoolConnectionTimeOut",$param) and $param["PoolConnectionTimeOut"] !== null) { - $this->PoolConnectionTimeOut = $param["PoolConnectionTimeOut"]; + if (array_key_exists("Rtmp",$param) and $param["Rtmp"] !== null) { + $this->Rtmp = $param["Rtmp"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamRequest.php new file mode 100644 index 000000000..00433be1b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamRequest.php @@ -0,0 +1,105 @@ +ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("StreamType",$param) and $param["StreamType"] !== null) { + $this->StreamType = $param["StreamType"]; + } + + if (array_key_exists("Resolution",$param) and $param["Resolution"] !== null) { + $this->Resolution = $param["Resolution"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamResponse.php new file mode 100644 index 000000000..9787ba68e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlDeviceStreamResponse.php @@ -0,0 +1,66 @@ +Data = new ControlDeviceStreamData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordRequest.php new file mode 100644 index 000000000..4f6465117 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordRequest.php @@ -0,0 +1,101 @@ +ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("Session",$param) and $param["Session"] !== null) { + $this->Session = $param["Session"]; + } + + if (array_key_exists("ControlAction",$param) and $param["ControlAction"] !== null) { + $this->ControlAction = $param["ControlAction"]; + } + + if (array_key_exists("Position",$param) and $param["Position"] !== null) { + $this->Position = $param["Position"]; + } + + if (array_key_exists("Scale",$param) and $param["Scale"] !== null) { + $this->Scale = $param["Scale"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/UpdateDictResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordResponse.php similarity index 92% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/UpdateDictResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordResponse.php index fbce98b04..d352781da 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/UpdateDictResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordResponse.php @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * UpdateDict返回参数结构体 + * ControlRecord返回参数结构体 * * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class UpdateDictResponse extends AbstractModel +class ControlRecordResponse extends AbstractModel { /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordTimelineRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordTimelineRequest.php new file mode 100644 index 000000000..21b482c5d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordTimelineRequest.php @@ -0,0 +1,77 @@ +ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("Start",$param) and $param["Start"] !== null) { + $this->Start = $param["Start"]; + } + + if (array_key_exists("End",$param) and $param["End"] !== null) { + $this->End = $param["End"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/KeywordsExtractionResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordTimelineResponse.php similarity index 75% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/KeywordsExtractionResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordTimelineResponse.php index 311ee0c69..6791ca4f1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/KeywordsExtractionResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ControlRecordTimelineResponse.php @@ -14,26 +14,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * KeywordsExtraction返回参数结构体 + * ControlRecordTimeline返回参数结构体 * - * @method array getKeywords() 获取关键词提取结果 + * @method array getData() 获取返回数据 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setKeywords(array $Keywords) 设置关键词提取结果 + * @method void setData(array $Data) 设置返回数据 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class KeywordsExtractionResponse extends AbstractModel +class ControlRecordTimelineResponse extends AbstractModel { /** - * @var array 关键词提取结果 + * @var array 返回数据 注意:此字段可能返回 null,表示取不到有效值。 */ - public $Keywords; + public $Data; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -41,7 +41,7 @@ class KeywordsExtractionResponse extends AbstractModel public $RequestId; /** - * @param array $Keywords 关键词提取结果 + * @param array $Data 返回数据 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -58,12 +58,12 @@ class KeywordsExtractionResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Keywords",$param) and $param["Keywords"] !== null) { - $this->Keywords = []; - foreach ($param["Keywords"] as $key => $value){ - $obj = new Keyword(); + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new Timeline(); $obj->deserialize($value); - array_push($this->Keywords, $obj); + array_push($this->Data, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/QueryBarCodeRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteAITaskRequest.php similarity index 67% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/QueryBarCodeRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteAITaskRequest.php index 787e12015..b217e281d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/QueryBarCodeRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteAITaskRequest.php @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Ocr\V20181119\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * QueryBarCode请求参数结构体 + * DeleteAITask请求参数结构体 * - * @method string getBarCode() 获取条形码 - * @method void setBarCode(string $BarCode) 设置条形码 + * @method string getTaskId() 获取AI任务ID + * @method void setTaskId(string $TaskId) 设置AI任务ID */ -class QueryBarCodeRequest extends AbstractModel +class DeleteAITaskRequest extends AbstractModel { /** - * @var string 条形码 + * @var string AI任务ID */ - public $BarCode; + public $TaskId; /** - * @param string $BarCode 条形码 + * @param string $TaskId AI任务ID */ function __construct() { @@ -46,8 +46,8 @@ class QueryBarCodeRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("BarCode",$param) and $param["BarCode"] !== null) { - $this->BarCode = $param["BarCode"]; + if (array_key_exists("TaskId",$param) and $param["TaskId"] !== null) { + $this->TaskId = $param["TaskId"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/AddLabelResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteAITaskResponse.php similarity index 92% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/AddLabelResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteAITaskResponse.php index 03ac58fcc..4e4cd3b86 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/AddLabelResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteAITaskResponse.php @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * AddLabel返回参数结构体 + * DeleteAITask返回参数结构体 * * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class AddLabelResponse extends AbstractModel +class DeleteAITaskResponse extends AbstractModel { /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteDomainRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteDomainRequest.php new file mode 100644 index 000000000..dca44e7cc --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteDomainRequest.php @@ -0,0 +1,53 @@ +Id = $param["Id"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteDictResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteDomainResponse.php similarity index 92% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteDictResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteDomainResponse.php index 9534f0bab..e067a8e3e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteDictResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteDomainResponse.php @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * DeleteDict返回参数结构体 + * DeleteDomain返回参数结构体 * * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class DeleteDictResponse extends AbstractModel +class DeleteDomainResponse extends AbstractModel { /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteGatewayRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteGatewayRequest.php new file mode 100644 index 000000000..7682d4dda --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteGatewayRequest.php @@ -0,0 +1,53 @@ +GatewayId = $param["GatewayId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateWordItemsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteGatewayResponse.php similarity index 92% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateWordItemsResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteGatewayResponse.php index f1ca2a8ed..c80b7026c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateWordItemsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteGatewayResponse.php @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * CreateWordItems返回参数结构体 + * DeleteGateway返回参数结构体 * * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class CreateWordItemsResponse extends AbstractModel +class DeleteGatewayResponse extends AbstractModel { /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/AddLabelRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteOrganizationRequest.php similarity index 56% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/AddLabelRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteOrganizationRequest.php index d6a4848b0..c2a4faec3 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/AddLabelRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteOrganizationRequest.php @@ -14,32 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * AddLabel请求参数结构体 + * DeleteOrganization请求参数结构体 * - * @method integer getLabelId() 获取标签ID - * @method void setLabelId(integer $LabelId) 设置标签ID - * @method string getDid() 获取tdid - * @method void setDid(string $Did) 设置tdid + * @method string getOrganizationId() 获取组织ID(从查询组织接口DescribeOrganization中获取) + * @method void setOrganizationId(string $OrganizationId) 设置组织ID(从查询组织接口DescribeOrganization中获取) */ -class AddLabelRequest extends AbstractModel +class DeleteOrganizationRequest extends AbstractModel { /** - * @var integer 标签ID + * @var string 组织ID(从查询组织接口DescribeOrganization中获取) */ - public $LabelId; + public $OrganizationId; /** - * @var string tdid - */ - public $Did; - - /** - * @param integer $LabelId 标签ID - * @param string $Did tdid + * @param string $OrganizationId 组织ID(从查询组织接口DescribeOrganization中获取) */ function __construct() { @@ -54,12 +46,8 @@ class AddLabelRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("LabelId",$param) and $param["LabelId"] !== null) { - $this->LabelId = $param["LabelId"]; - } - - if (array_key_exists("Did",$param) and $param["Did"] !== null) { - $this->Did = $param["Did"]; + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteOrganizationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteOrganizationResponse.php new file mode 100644 index 000000000..a93956294 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteOrganizationResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupPlanRequest.php new file mode 100644 index 000000000..884db9a7b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupPlanRequest.php @@ -0,0 +1,53 @@ +PlanId = $param["PlanId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyVipVPortResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupPlanResponse.php similarity index 91% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyVipVPortResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupPlanResponse.php index 1f49b6557..37131760f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyVipVPortResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupPlanResponse.php @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * ModifyCDBProxyVipVPort返回参数结构体 + * DeleteRecordBackupPlan返回参数结构体 * * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class ModifyCDBProxyVipVPortResponse extends AbstractModel +class DeleteRecordBackupPlanResponse extends AbstractModel { /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupTemplateRequest.php new file mode 100644 index 000000000..9baaf543d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupTemplateRequest.php @@ -0,0 +1,53 @@ +TemplateId = $param["TemplateId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupTemplateResponse.php new file mode 100644 index 000000000..5fa870824 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordBackupTemplateResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordPlanRequest.php new file mode 100644 index 000000000..04d8a67a0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordPlanRequest.php @@ -0,0 +1,53 @@ +PlanId = $param["PlanId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordPlanResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordPlanResponse.php new file mode 100644 index 000000000..3e277f54d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordPlanResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordRetrieveTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordRetrieveTaskRequest.php new file mode 100644 index 000000000..551c3e277 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordRetrieveTaskRequest.php @@ -0,0 +1,53 @@ +TaskId = $param["TaskId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordRetrieveTaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordRetrieveTaskResponse.php new file mode 100644 index 000000000..fb279f32c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordRetrieveTaskResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordTemplateRequest.php new file mode 100644 index 000000000..d52d09ba1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordTemplateRequest.php @@ -0,0 +1,53 @@ +TemplateId = $param["TemplateId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordTemplateResponse.php new file mode 100644 index 000000000..c2681b531 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteRecordTemplateResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionProRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteUserDeviceRequest.php similarity index 58% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionProRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteUserDeviceRequest.php index 2d1cdeeec..9c35308c3 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionProRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteUserDeviceRequest.php @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * TextCorrectionPro请求参数结构体 + * DeleteUserDevice请求参数结构体 * - * @method string getText() 获取待纠错的文本(仅支持UTF-8格式,不超过128字符) - * @method void setText(string $Text) 设置待纠错的文本(仅支持UTF-8格式,不超过128字符) + * @method string getDeviceId() 获取设备ID(从获取设备列表ListDevices接口中获取) + * @method void setDeviceId(string $DeviceId) 设置设备ID(从获取设备列表ListDevices接口中获取) */ -class TextCorrectionProRequest extends AbstractModel +class DeleteUserDeviceRequest extends AbstractModel { /** - * @var string 待纠错的文本(仅支持UTF-8格式,不超过128字符) + * @var string 设备ID(从获取设备列表ListDevices接口中获取) */ - public $Text; + public $DeviceId; /** - * @param string $Text 待纠错的文本(仅支持UTF-8格式,不超过128字符) + * @param string $DeviceId 设备ID(从获取设备列表ListDevices接口中获取) */ function __construct() { @@ -46,8 +46,8 @@ class TextCorrectionProRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Text",$param) and $param["Text"] !== null) { - $this->Text = $param["Text"]; + if (array_key_exists("DeviceId",$param) and $param["DeviceId"] !== null) { + $this->DeviceId = $param["DeviceId"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteUserDeviceResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteUserDeviceResponse.php new file mode 100644 index 000000000..ebcd118d2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DeleteUserDeviceResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskRequest.php new file mode 100644 index 000000000..62960fcaa --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskRequest.php @@ -0,0 +1,53 @@ +TaskId = $param["TaskId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyConnectionPoolResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResponse.php similarity index 77% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyConnectionPoolResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResponse.php index 3afec4971..3722c382f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/ModifyCDBProxyConnectionPoolResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResponse.php @@ -14,26 +14,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * ModifyCDBProxyConnectionPool返回参数结构体 + * DescribeAITask返回参数结构体 * - * @method string getAsyncRequestId() 获取异步处理ID + * @method AITaskInfo getData() 获取AI任务详情 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setAsyncRequestId(string $AsyncRequestId) 设置异步处理ID + * @method void setData(AITaskInfo $Data) 设置AI任务详情 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class ModifyCDBProxyConnectionPoolResponse extends AbstractModel +class DescribeAITaskResponse extends AbstractModel { /** - * @var string 异步处理ID + * @var AITaskInfo AI任务详情 注意:此字段可能返回 null,表示取不到有效值。 */ - public $AsyncRequestId; + public $Data; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -41,7 +41,7 @@ class ModifyCDBProxyConnectionPoolResponse extends AbstractModel public $RequestId; /** - * @param string $AsyncRequestId 异步处理ID + * @param AITaskInfo $Data AI任务详情 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -58,8 +58,9 @@ class ModifyCDBProxyConnectionPoolResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("AsyncRequestId",$param) and $param["AsyncRequestId"] !== null) { - $this->AsyncRequestId = $param["AsyncRequestId"]; + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = new AITaskInfo(); + $this->Data->deserialize($param["Data"]); } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResultRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResultRequest.php new file mode 100644 index 000000000..8b8270639 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResultRequest.php @@ -0,0 +1,137 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("ChannelId",$param) and $param["ChannelId"] !== null) { + $this->ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("Object",$param) and $param["Object"] !== null) { + $this->Object = $param["Object"]; + } + + if (array_key_exists("DetectType",$param) and $param["DetectType"] !== null) { + $this->DetectType = $param["DetectType"]; + } + + if (array_key_exists("BeginTime",$param) and $param["BeginTime"] !== null) { + $this->BeginTime = $param["BeginTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("PageNumber",$param) and $param["PageNumber"] !== null) { + $this->PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResultResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResultResponse.php new file mode 100644 index 000000000..2f6fe33f6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeAITaskResultResponse.php @@ -0,0 +1,82 @@ +Data = new AITaskResultData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeCNAMERequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeCNAMERequest.php new file mode 100644 index 000000000..e0b1c132b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeCNAMERequest.php @@ -0,0 +1,53 @@ +ClusterId = $param["ClusterId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeCNAMEResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeCNAMEResponse.php new file mode 100644 index 000000000..0543c0721 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeCNAMEResponse.php @@ -0,0 +1,65 @@ +Data = $param["Data"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelData.php new file mode 100644 index 000000000..d2e61d7c3 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelData.php @@ -0,0 +1,201 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("ChannelId",$param) and $param["ChannelId"] !== null) { + $this->ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("ChannelCode",$param) and $param["ChannelCode"] !== null) { + $this->ChannelCode = $param["ChannelCode"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("PTZType",$param) and $param["PTZType"] !== null) { + $this->PTZType = $param["PTZType"]; + } + + if (array_key_exists("Manufacturer",$param) and $param["Manufacturer"] !== null) { + $this->Manufacturer = $param["Manufacturer"]; + } + + if (array_key_exists("Resolution",$param) and $param["Resolution"] !== null) { + $this->Resolution = $param["Resolution"]; + } + + if (array_key_exists("State",$param) and $param["State"] !== null) { + $this->State = $param["State"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelRequest.php new file mode 100644 index 000000000..70b4775e5 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelRequest.php @@ -0,0 +1,53 @@ +DeviceId = $param["DeviceId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelResponse.php new file mode 100644 index 000000000..ea05d106a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceChannelResponse.php @@ -0,0 +1,70 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new DescribeDeviceChannelData(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceData.php new file mode 100644 index 000000000..31d38b729 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceData.php @@ -0,0 +1,461 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("Code",$param) and $param["Code"] !== null) { + $this->Code = $param["Code"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("AccessProtocol",$param) and $param["AccessProtocol"] !== null) { + $this->AccessProtocol = $param["AccessProtocol"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("ClusterName",$param) and $param["ClusterName"] !== null) { + $this->ClusterName = $param["ClusterName"]; + } + + if (array_key_exists("TransportProtocol",$param) and $param["TransportProtocol"] !== null) { + $this->TransportProtocol = $param["TransportProtocol"]; + } + + if (array_key_exists("Password",$param) and $param["Password"] !== null) { + $this->Password = $param["Password"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("SipId",$param) and $param["SipId"] !== null) { + $this->SipId = $param["SipId"]; + } + + if (array_key_exists("SipDomain",$param) and $param["SipDomain"] !== null) { + $this->SipDomain = $param["SipDomain"]; + } + + if (array_key_exists("SipIp",$param) and $param["SipIp"] !== null) { + $this->SipIp = $param["SipIp"]; + } + + if (array_key_exists("SipPort",$param) and $param["SipPort"] !== null) { + $this->SipPort = $param["SipPort"]; + } + + if (array_key_exists("PushStreamUrl",$param) and $param["PushStreamUrl"] !== null) { + $this->PushStreamUrl = $param["PushStreamUrl"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("GatewayId",$param) and $param["GatewayId"] !== null) { + $this->GatewayId = $param["GatewayId"]; + } + + if (array_key_exists("GatewayName",$param) and $param["GatewayName"] !== null) { + $this->GatewayName = $param["GatewayName"]; + } + + if (array_key_exists("ProtocolTypeName",$param) and $param["ProtocolTypeName"] !== null) { + $this->ProtocolTypeName = $param["ProtocolTypeName"]; + } + + if (array_key_exists("ProtocolType",$param) and $param["ProtocolType"] !== null) { + $this->ProtocolType = $param["ProtocolType"]; + } + + if (array_key_exists("Ip",$param) and $param["Ip"] !== null) { + $this->Ip = $param["Ip"]; + } + + if (array_key_exists("Port",$param) and $param["Port"] !== null) { + $this->Port = $param["Port"]; + } + + if (array_key_exists("Username",$param) and $param["Username"] !== null) { + $this->Username = $param["Username"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } + + if (array_key_exists("Manufacturer",$param) and $param["Manufacturer"] !== null) { + $this->Manufacturer = $param["Manufacturer"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetData.php new file mode 100644 index 000000000..325a1c93b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetData.php @@ -0,0 +1,73 @@ +Index = $param["Index"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetRequest.php new file mode 100644 index 000000000..e66d1b933 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetRequest.php @@ -0,0 +1,53 @@ +ChannelId = $param["ChannelId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetResponse.php new file mode 100644 index 000000000..9e079caca --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDevicePresetResponse.php @@ -0,0 +1,70 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new DescribeDevicePresetData(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceRegion.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceRegion.php new file mode 100644 index 000000000..7744be95d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceRegion.php @@ -0,0 +1,89 @@ +Label = $param["Label"]; + } + + if (array_key_exists("Value",$param) and $param["Value"] !== null) { + $this->Value = $param["Value"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceRegionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceRegionRequest.php new file mode 100644 index 000000000..e24e09151 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDeviceRegionRequest.php @@ -0,0 +1,47 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new DescribeDeviceRegion(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainData.php new file mode 100644 index 000000000..52b2f43a2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainData.php @@ -0,0 +1,153 @@ +Id = $param["Id"]; + } + + if (array_key_exists("PlayDomain",$param) and $param["PlayDomain"] !== null) { + $this->PlayDomain = $param["PlayDomain"]; + } + + if (array_key_exists("InternalDomain",$param) and $param["InternalDomain"] !== null) { + $this->InternalDomain = $param["InternalDomain"]; + } + + if (array_key_exists("HaveCert",$param) and $param["HaveCert"] !== null) { + $this->HaveCert = $param["HaveCert"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("ClusterName",$param) and $param["ClusterName"] !== null) { + $this->ClusterName = $param["ClusterName"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRegionData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRegionData.php new file mode 100644 index 000000000..ecbb91a50 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRegionData.php @@ -0,0 +1,89 @@ +Label = $param["Label"]; + } + + if (array_key_exists("Value",$param) and $param["Value"] !== null) { + $this->Value = $param["Value"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRegionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRegionRequest.php new file mode 100644 index 000000000..c78ad4747 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRegionRequest.php @@ -0,0 +1,47 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new DescribeDomainRegionData(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRequest.php new file mode 100644 index 000000000..335bf7e05 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeDomainRequest.php @@ -0,0 +1,47 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new DescribeDomainData(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayData.php new file mode 100644 index 000000000..d9010da63 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayData.php @@ -0,0 +1,222 @@ +GatewayId = $param["GatewayId"]; + } + + if (array_key_exists("GwId",$param) and $param["GwId"] !== null) { + $this->GwId = $param["GwId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("ClusterName",$param) and $param["ClusterName"] !== null) { + $this->ClusterName = $param["ClusterName"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("Version",$param) and $param["Version"] !== null) { + $this->Version = []; + foreach ($param["Version"] as $key => $value){ + $obj = new GatewayVersion(); + $obj->deserialize($value); + array_push($this->Version, $obj); + } + } + + if (array_key_exists("DeviceNum",$param) and $param["DeviceNum"] !== null) { + $this->DeviceNum = $param["DeviceNum"]; + } + + if (array_key_exists("CreatedAt",$param) and $param["CreatedAt"] !== null) { + $this->CreatedAt = $param["CreatedAt"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitor.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitor.php new file mode 100644 index 000000000..a6a86fa6b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitor.php @@ -0,0 +1,185 @@ +DeviceTotal = $param["DeviceTotal"]; + } + + if (array_key_exists("DeviceOnline",$param) and $param["DeviceOnline"] !== null) { + $this->DeviceOnline = $param["DeviceOnline"]; + } + + if (array_key_exists("DeviceOffline",$param) and $param["DeviceOffline"] !== null) { + $this->DeviceOffline = $param["DeviceOffline"]; + } + + if (array_key_exists("ChannelTotal",$param) and $param["ChannelTotal"] !== null) { + $this->ChannelTotal = $param["ChannelTotal"]; + } + + if (array_key_exists("ChannelOnline",$param) and $param["ChannelOnline"] !== null) { + $this->ChannelOnline = $param["ChannelOnline"]; + } + + if (array_key_exists("ChannelOffline",$param) and $param["ChannelOffline"] !== null) { + $this->ChannelOffline = $param["ChannelOffline"]; + } + + if (array_key_exists("UpFlow",$param) and $param["UpFlow"] !== null) { + $this->UpFlow = $param["UpFlow"]; + } + + if (array_key_exists("ChannelPull",$param) and $param["ChannelPull"] !== null) { + $this->ChannelPull = $param["ChannelPull"]; + } + + if (array_key_exists("ChannelUnPull",$param) and $param["ChannelUnPull"] !== null) { + $this->ChannelUnPull = $param["ChannelUnPull"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitorRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitorRequest.php new file mode 100644 index 000000000..f28e3ee91 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitorRequest.php @@ -0,0 +1,53 @@ +GatewayId = $param["GatewayId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitorResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitorResponse.php new file mode 100644 index 000000000..5ab8c76ec --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayMonitorResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeGatewayMonitor(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayProtocolData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayProtocolData.php new file mode 100644 index 000000000..e955c3e89 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayProtocolData.php @@ -0,0 +1,89 @@ +TypeCode = $param["TypeCode"]; + } + + if (array_key_exists("Value",$param) and $param["Value"] !== null) { + $this->Value = $param["Value"]; + } + + if (array_key_exists("Label",$param) and $param["Label"] !== null) { + $this->Label = $param["Label"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayProtocolRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayProtocolRequest.php new file mode 100644 index 000000000..4e37825c3 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayProtocolRequest.php @@ -0,0 +1,47 @@ +ConsortiumList = []; - foreach ($param["ConsortiumList"] as $key => $value){ - $obj = new ConsortiumItem(); + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new DescribeGatewayProtocolData(); $obj->deserialize($value); - array_push($this->ConsortiumList, $obj); + array_push($this->Data, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayRequest.php new file mode 100644 index 000000000..18d928056 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayRequest.php @@ -0,0 +1,53 @@ +GatewayId = $param["GatewayId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayResponse.php new file mode 100644 index 000000000..7b48eecc9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeGatewayData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/Address.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersion.php similarity index 55% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/Address.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersion.php index 39c1bbbee..4b46c9b3a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/Address.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersion.php @@ -14,75 +14,75 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * 地址 + * 查询网关服务版本信息返回数据 * - * @method string getVip() 获取地址 + * @method string getName() 获取服务名 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setVip(string $Vip) 设置地址 + * @method void setName(string $Name) 设置服务名 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getVPort() 获取端口 + * @method string getVersion() 获取服务版本 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setVPort(integer $VPort) 设置端口 + * @method void setVersion(string $Version) 设置服务版本 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getUniqVpcId() 获取私有网络ID + * @method string getLatestVersion() 获取服务最新版本 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setUniqVpcId(string $UniqVpcId) 设置私有网络ID + * @method void setLatestVersion(string $LatestVersion) 设置服务最新版本 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getUniqSubnet() 获取私有网络子网ID + * @method boolean getIsUpdate() 获取是否需要更新 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setUniqSubnet(string $UniqSubnet) 设置私有网络子网ID + * @method void setIsUpdate(boolean $IsUpdate) 设置是否需要更新 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getDesc() 获取描述 + * @method array getUpgradeInfo() 获取升级信息 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setDesc(string $Desc) 设置描述 + * @method void setUpgradeInfo(array $UpgradeInfo) 设置升级信息 注意:此字段可能返回 null,表示取不到有效值。 */ -class Address extends AbstractModel +class DescribeGatewayVersion extends AbstractModel { /** - * @var string 地址 + * @var string 服务名 注意:此字段可能返回 null,表示取不到有效值。 */ - public $Vip; + public $Name; /** - * @var integer 端口 + * @var string 服务版本 注意:此字段可能返回 null,表示取不到有效值。 */ - public $VPort; + public $Version; /** - * @var string 私有网络ID + * @var string 服务最新版本 注意:此字段可能返回 null,表示取不到有效值。 */ - public $UniqVpcId; + public $LatestVersion; /** - * @var string 私有网络子网ID + * @var boolean 是否需要更新 注意:此字段可能返回 null,表示取不到有效值。 */ - public $UniqSubnet; + public $IsUpdate; /** - * @var string 描述 + * @var array 升级信息 注意:此字段可能返回 null,表示取不到有效值。 */ - public $Desc; + public $UpgradeInfo; /** - * @param string $Vip 地址 + * @param string $Name 服务名 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $VPort 端口 + * @param string $Version 服务版本 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $UniqVpcId 私有网络ID + * @param string $LatestVersion 服务最新版本 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $UniqSubnet 私有网络子网ID + * @param boolean $IsUpdate 是否需要更新 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $Desc 描述 + * @param array $UpgradeInfo 升级信息 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -98,24 +98,24 @@ class Address extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Vip",$param) and $param["Vip"] !== null) { - $this->Vip = $param["Vip"]; + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; } - if (array_key_exists("VPort",$param) and $param["VPort"] !== null) { - $this->VPort = $param["VPort"]; + if (array_key_exists("Version",$param) and $param["Version"] !== null) { + $this->Version = $param["Version"]; } - if (array_key_exists("UniqVpcId",$param) and $param["UniqVpcId"] !== null) { - $this->UniqVpcId = $param["UniqVpcId"]; + if (array_key_exists("LatestVersion",$param) and $param["LatestVersion"] !== null) { + $this->LatestVersion = $param["LatestVersion"]; } - if (array_key_exists("UniqSubnet",$param) and $param["UniqSubnet"] !== null) { - $this->UniqSubnet = $param["UniqSubnet"]; + if (array_key_exists("IsUpdate",$param) and $param["IsUpdate"] !== null) { + $this->IsUpdate = $param["IsUpdate"]; } - if (array_key_exists("Desc",$param) and $param["Desc"] !== null) { - $this->Desc = $param["Desc"]; + if (array_key_exists("UpgradeInfo",$param) and $param["UpgradeInfo"] !== null) { + $this->UpgradeInfo = $param["UpgradeInfo"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionData.php new file mode 100644 index 000000000..6201f61a9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionData.php @@ -0,0 +1,62 @@ +Services = []; + foreach ($param["Services"] as $key => $value){ + $obj = new DescribeGatewayVersion(); + $obj->deserialize($value); + array_push($this->Services, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionRequest.php new file mode 100644 index 000000000..994dbb966 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionRequest.php @@ -0,0 +1,53 @@ +GatewayId = $param["GatewayId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionResponse.php new file mode 100644 index 000000000..ca1f94570 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeGatewayVersionResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeGatewayVersionData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeOrganizationData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeOrganizationData.php new file mode 100644 index 000000000..a24a86ad6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeOrganizationData.php @@ -0,0 +1,169 @@ +OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("ParentId",$param) and $param["ParentId"] !== null) { + $this->ParentId = $param["ParentId"]; + } + + if (array_key_exists("Level",$param) and $param["Level"] !== null) { + $this->Level = $param["Level"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + + if (array_key_exists("ParentIds",$param) and $param["ParentIds"] !== null) { + $this->ParentIds = $param["ParentIds"]; + } + + if (array_key_exists("Total",$param) and $param["Total"] !== null) { + $this->Total = $param["Total"]; + } + + if (array_key_exists("Online",$param) and $param["Online"] !== null) { + $this->Online = $param["Online"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeOrganizationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeOrganizationRequest.php new file mode 100644 index 000000000..b44e51f87 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeOrganizationRequest.php @@ -0,0 +1,47 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new DescribeOrganizationData(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanData.php new file mode 100644 index 000000000..a2c19d985 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanData.php @@ -0,0 +1,150 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("PlanName",$param) and $param["PlanName"] !== null) { + $this->PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("ChannelCount",$param) and $param["ChannelCount"] !== null) { + $this->ChannelCount = $param["ChannelCount"]; + } + + if (array_key_exists("CreateAt",$param) and $param["CreateAt"] !== null) { + $this->CreateAt = $param["CreateAt"]; + } + + if (array_key_exists("UpdateAt",$param) and $param["UpdateAt"] !== null) { + $this->UpdateAt = $param["UpdateAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanRequest.php new file mode 100644 index 000000000..be8eec12e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanRequest.php @@ -0,0 +1,53 @@ +PlanId = $param["PlanId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanResponse.php new file mode 100644 index 000000000..b3c36ce7d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupPlanResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeRecordBackupPlanData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateData.php new file mode 100644 index 000000000..dbb36747d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateData.php @@ -0,0 +1,163 @@ +TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("TemplateName",$param) and $param["TemplateName"] !== null) { + $this->TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + + if (array_key_exists("DevTimeSections",$param) and $param["DevTimeSections"] !== null) { + $this->DevTimeSections = []; + foreach ($param["DevTimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->DevTimeSections, $obj); + } + } + + if (array_key_exists("Scale",$param) and $param["Scale"] !== null) { + $this->Scale = $param["Scale"]; + } + + if (array_key_exists("CreateAt",$param) and $param["CreateAt"] !== null) { + $this->CreateAt = $param["CreateAt"]; + } + + if (array_key_exists("UpdateAt",$param) and $param["UpdateAt"] !== null) { + $this->UpdateAt = $param["UpdateAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateRequest.php new file mode 100644 index 000000000..fa87c800d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateRequest.php @@ -0,0 +1,53 @@ +TemplateId = $param["TemplateId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateResponse.php new file mode 100644 index 000000000..fd39f43ce --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordBackupTemplateResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeRecordBackupTemplateData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileData.php new file mode 100644 index 000000000..198a89221 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileData.php @@ -0,0 +1,74 @@ +Tips = $param["Tips"]; + } + + if (array_key_exists("List",$param) and $param["List"] !== null) { + $this->List = []; + foreach ($param["List"] as $key => $value){ + $obj = new RecordTimeLine(); + $obj->deserialize($value); + array_push($this->List, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileRequest.php new file mode 100644 index 000000000..27e083eae --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileRequest.php @@ -0,0 +1,89 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("ChannelId",$param) and $param["ChannelId"] !== null) { + $this->ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileResponse.php new file mode 100644 index 000000000..3d88d3a04 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordFileResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeRecordFileData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlanRequest.php new file mode 100644 index 000000000..8d96ce223 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlanRequest.php @@ -0,0 +1,53 @@ +PlanId = $param["PlanId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlanResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlanResponse.php new file mode 100644 index 000000000..c92d10377 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlanResponse.php @@ -0,0 +1,66 @@ +Data = new RecordPlanBaseInfo(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlaybackUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlaybackUrlRequest.php new file mode 100644 index 000000000..5a78b6e0a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlaybackUrlRequest.php @@ -0,0 +1,77 @@ +ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlaybackUrlResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlaybackUrlResponse.php new file mode 100644 index 000000000..a73cdf70b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordPlaybackUrlResponse.php @@ -0,0 +1,66 @@ +Data = new RecordPlaybackUrl(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskData.php new file mode 100644 index 000000000..ae0e1fee4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskData.php @@ -0,0 +1,182 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("TaskName",$param) and $param["TaskName"] !== null) { + $this->TaskName = $param["TaskName"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("Mode",$param) and $param["Mode"] !== null) { + $this->Mode = $param["Mode"]; + } + + if (array_key_exists("Expiration",$param) and $param["Expiration"] !== null) { + $this->Expiration = $param["Expiration"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("Capacity",$param) and $param["Capacity"] !== null) { + $this->Capacity = $param["Capacity"]; + } + + if (array_key_exists("Channels",$param) and $param["Channels"] !== null) { + $this->Channels = []; + foreach ($param["Channels"] as $key => $value){ + $obj = new RecordRetrieveTaskChannelInfo(); + $obj->deserialize($value); + array_push($this->Channels, $obj); + } + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("ChannelCount",$param) and $param["ChannelCount"] !== null) { + $this->ChannelCount = $param["ChannelCount"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskRequest.php new file mode 100644 index 000000000..74452fbf4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskRequest.php @@ -0,0 +1,53 @@ +TaskId = $param["TaskId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskResponse.php new file mode 100644 index 000000000..68eb2667e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordRetrieveTaskResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeRecordRetrieveTaskData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordTemplateRequest.php new file mode 100644 index 000000000..eb4dc6d99 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordTemplateRequest.php @@ -0,0 +1,53 @@ +TemplateId = $param["TemplateId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordTemplateResponse.php new file mode 100644 index 000000000..c400925b7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeRecordTemplateResponse.php @@ -0,0 +1,66 @@ +Data = new RecordTemplateInfo(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeStreamAuthData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeStreamAuthData.php new file mode 100644 index 000000000..3934f32a8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeStreamAuthData.php @@ -0,0 +1,169 @@ +Id = $param["Id"]; + } + + if (array_key_exists("PullState",$param) and $param["PullState"] !== null) { + $this->PullState = $param["PullState"]; + } + + if (array_key_exists("PullSecret",$param) and $param["PullSecret"] !== null) { + $this->PullSecret = $param["PullSecret"]; + } + + if (array_key_exists("PullExpired",$param) and $param["PullExpired"] !== null) { + $this->PullExpired = $param["PullExpired"]; + } + + if (array_key_exists("PushState",$param) and $param["PushState"] !== null) { + $this->PushState = $param["PushState"]; + } + + if (array_key_exists("PushSecret",$param) and $param["PushSecret"] !== null) { + $this->PushSecret = $param["PushSecret"]; + } + + if (array_key_exists("PushExpired",$param) and $param["PushExpired"] !== null) { + $this->PushExpired = $param["PushExpired"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeStreamAuthRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeStreamAuthRequest.php new file mode 100644 index 000000000..128833b6d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeStreamAuthRequest.php @@ -0,0 +1,47 @@ +Data = new DescribeStreamAuthData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DependencyParsingRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeUserDeviceRequest.php similarity index 58% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DependencyParsingRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeUserDeviceRequest.php index c616ef304..c86817040 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DependencyParsingRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeUserDeviceRequest.php @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * DependencyParsing请求参数结构体 + * DescribeUserDevice请求参数结构体 * - * @method string getText() 获取待分析的文本(仅支持UTF-8格式,不超过200字) - * @method void setText(string $Text) 设置待分析的文本(仅支持UTF-8格式,不超过200字) + * @method string getDeviceId() 获取设备ID(从获取设备列表接口ListDevices中获取) + * @method void setDeviceId(string $DeviceId) 设置设备ID(从获取设备列表接口ListDevices中获取) */ -class DependencyParsingRequest extends AbstractModel +class DescribeUserDeviceRequest extends AbstractModel { /** - * @var string 待分析的文本(仅支持UTF-8格式,不超过200字) + * @var string 设备ID(从获取设备列表接口ListDevices中获取) */ - public $Text; + public $DeviceId; /** - * @param string $Text 待分析的文本(仅支持UTF-8格式,不超过200字) + * @param string $DeviceId 设备ID(从获取设备列表接口ListDevices中获取) */ function __construct() { @@ -46,8 +46,8 @@ class DependencyParsingRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Text",$param) and $param["Text"] !== null) { - $this->Text = $param["Text"]; + if (array_key_exists("DeviceId",$param) and $param["DeviceId"] !== null) { + $this->DeviceId = $param["DeviceId"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeUserDeviceResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeUserDeviceResponse.php new file mode 100644 index 000000000..e4c553549 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeUserDeviceResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeDeviceData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlData.php new file mode 100644 index 000000000..e4579917e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlData.php @@ -0,0 +1,101 @@ +Url = $param["Url"]; + } + + if (array_key_exists("ActualBeginTime",$param) and $param["ActualBeginTime"] !== null) { + $this->ActualBeginTime = $param["ActualBeginTime"]; + } + + if (array_key_exists("ActualEndTime",$param) and $param["ActualEndTime"] !== null) { + $this->ActualEndTime = $param["ActualEndTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlRequest.php new file mode 100644 index 000000000..e700142d9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlRequest.php @@ -0,0 +1,101 @@ +ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("BeginTime",$param) and $param["BeginTime"] !== null) { + $this->BeginTime = $param["BeginTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("FileType",$param) and $param["FileType"] !== null) { + $this->FileType = $param["FileType"]; + } + + if (array_key_exists("IsRespActualTime",$param) and $param["IsRespActualTime"] !== null) { + $this->IsRespActualTime = $param["IsRespActualTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlResponse.php new file mode 100644 index 000000000..6f2201c20 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/DescribeVideoDownloadUrlResponse.php @@ -0,0 +1,66 @@ +Data = new DescribeVideoDownloadUrlData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/FaceMaskAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/FaceMaskAIResultInfo.php new file mode 100644 index 000000000..82ce7077b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/FaceMaskAIResultInfo.php @@ -0,0 +1,82 @@ +Time = $param["Time"]; + } + + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("FaceMaskInfo",$param) and $param["FaceMaskInfo"] !== null) { + $this->FaceMaskInfo = []; + foreach ($param["FaceMaskInfo"] as $key => $value){ + $obj = new BaseAIResultInfo(); + $obj->deserialize($value); + array_push($this->FaceMaskInfo, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/GatewayVersion.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/GatewayVersion.php new file mode 100644 index 000000000..45d796df2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/GatewayVersion.php @@ -0,0 +1,73 @@ +Name = $param["Name"]; + } + + if (array_key_exists("Version",$param) and $param["Version"] !== null) { + $this->Version = $param["Version"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/GatewaysData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/GatewaysData.php new file mode 100644 index 000000000..3fc6c0f66 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/GatewaysData.php @@ -0,0 +1,201 @@ +GatewayId = $param["GatewayId"]; + } + + if (array_key_exists("GwId",$param) and $param["GwId"] !== null) { + $this->GwId = $param["GwId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("ClusterName",$param) and $param["ClusterName"] !== null) { + $this->ClusterName = $param["ClusterName"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("CreatedAt",$param) and $param["CreatedAt"] !== null) { + $this->CreatedAt = $param["CreatedAt"]; + } + + if (array_key_exists("DeviceNum",$param) and $param["DeviceNum"] !== null) { + $this->DeviceNum = $param["DeviceNum"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/LifeCycleData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/LifeCycleData.php new file mode 100644 index 000000000..c6b68cd54 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/LifeCycleData.php @@ -0,0 +1,65 @@ +Transition = $param["Transition"]; + } + + if (array_key_exists("Expiration",$param) and $param["Expiration"] !== null) { + $this->Expiration = $param["Expiration"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITaskData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITaskData.php new file mode 100644 index 000000000..5784d0329 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITaskData.php @@ -0,0 +1,62 @@ +List = []; + foreach ($param["List"] as $key => $value){ + $obj = new AITaskInfo(); + $obj->deserialize($value); + array_push($this->List, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITasksRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITasksRequest.php new file mode 100644 index 000000000..173443a1b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITasksRequest.php @@ -0,0 +1,89 @@ +IsContainChannelList = $param["IsContainChannelList"]; + } + + if (array_key_exists("IsContainTemplate",$param) and $param["IsContainTemplate"] !== null) { + $this->IsContainTemplate = $param["IsContainTemplate"]; + } + + if (array_key_exists("PageNumber",$param) and $param["PageNumber"] !== null) { + $this->PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITasksResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITasksResponse.php new file mode 100644 index 000000000..6c45b1b51 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListAITasksResponse.php @@ -0,0 +1,82 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = new ListAITaskData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDeviceInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDeviceInfo.php new file mode 100644 index 000000000..743cf6124 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDeviceInfo.php @@ -0,0 +1,197 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("Code",$param) and $param["Code"] !== null) { + $this->Code = $param["Code"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("TransportProtocol",$param) and $param["TransportProtocol"] !== null) { + $this->TransportProtocol = $param["TransportProtocol"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("Password",$param) and $param["Password"] !== null) { + $this->Password = $param["Password"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("ClusterName",$param) and $param["ClusterName"] !== null) { + $this->ClusterName = $param["ClusterName"]; + } + + if (array_key_exists("AccessProtocol",$param) and $param["AccessProtocol"] !== null) { + $this->AccessProtocol = $param["AccessProtocol"]; + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("ChannelNum",$param) and $param["ChannelNum"] !== null) { + $this->ChannelNum = $param["ChannelNum"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDevicesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDevicesRequest.php new file mode 100644 index 000000000..82fc0e617 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDevicesRequest.php @@ -0,0 +1,161 @@ +OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("IsContainSubLevel",$param) and $param["IsContainSubLevel"] !== null) { + $this->IsContainSubLevel = $param["IsContainSubLevel"]; + } + + if (array_key_exists("AccessProtocol",$param) and $param["AccessProtocol"] !== null) { + $this->AccessProtocol = $param["AccessProtocol"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("Keyword",$param) and $param["Keyword"] !== null) { + $this->Keyword = $param["Keyword"]; + } + + if (array_key_exists("CurrentUin",$param) and $param["CurrentUin"] !== null) { + $this->CurrentUin = $param["CurrentUin"]; + } + + if (array_key_exists("PageNumber",$param) and $param["PageNumber"] !== null) { + $this->PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDevicesResponse.php similarity index 71% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictsResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDevicesResponse.php index 656a8ad59..78a33c583 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListDevicesResponse.php @@ -14,33 +14,33 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * DescribeDicts返回参数结构体 + * ListDevices返回参数结构体 * - * @method integer getTotalCount() 获取记录总条数。 - * @method void setTotalCount(integer $TotalCount) 设置记录总条数。 - * @method array getDicts() 获取自定义词库信息列表。 + * @method array getData() 获取设备列表详情 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setDicts(array $Dicts) 设置自定义词库信息列表。 + * @method void setData(array $Data) 设置设备列表详情 注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getTotalCount() 获取设备总数 + * @method void setTotalCount(integer $TotalCount) 设置设备总数 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class DescribeDictsResponse extends AbstractModel +class ListDevicesResponse extends AbstractModel { /** - * @var integer 记录总条数。 - */ - public $TotalCount; - - /** - * @var array 自定义词库信息列表。 + * @var array 设备列表详情 注意:此字段可能返回 null,表示取不到有效值。 */ - public $Dicts; + public $Data; + + /** + * @var integer 设备总数 + */ + public $TotalCount; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -48,9 +48,9 @@ class DescribeDictsResponse extends AbstractModel public $RequestId; /** - * @param integer $TotalCount 记录总条数。 - * @param array $Dicts 自定义词库信息列表。 + * @param array $Data 设备列表详情 注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $TotalCount 设备总数 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -66,17 +66,17 @@ class DescribeDictsResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { - $this->TotalCount = $param["TotalCount"]; + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new ListDeviceInfo(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } } - if (array_key_exists("Dicts",$param) and $param["Dicts"] !== null) { - $this->Dicts = []; - foreach ($param["Dicts"] as $key => $value){ - $obj = new DictInfo(); - $obj->deserialize($value); - array_push($this->Dicts, $obj); - } + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysData.php new file mode 100644 index 000000000..ee94da9ab --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysData.php @@ -0,0 +1,78 @@ +List = []; + foreach ($param["List"] as $key => $value){ + $obj = new GatewaysData(); + $obj->deserialize($value); + array_push($this->List, $obj); + } + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysRequest.php new file mode 100644 index 000000000..aa8a51a9b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysRequest.php @@ -0,0 +1,101 @@ +PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordSimilarityResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysResponse.php similarity index 75% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordSimilarityResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysResponse.php index 781f0b33a..79186ae63 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordSimilarityResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListGatewaysResponse.php @@ -14,23 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * WordSimilarity返回参数结构体 + * ListGateways返回参数结构体 * - * @method float getSimilarity() 获取两个词语的相似度 - * @method void setSimilarity(float $Similarity) 设置两个词语的相似度 + * @method ListGatewaysData getData() 获取返回数据 + * @method void setData(ListGatewaysData $Data) 设置返回数据 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class WordSimilarityResponse extends AbstractModel +class ListGatewaysResponse extends AbstractModel { /** - * @var float 两个词语的相似度 + * @var ListGatewaysData 返回数据 */ - public $Similarity; + public $Data; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -38,7 +38,7 @@ class WordSimilarityResponse extends AbstractModel public $RequestId; /** - * @param float $Similarity 两个词语的相似度 + * @param ListGatewaysData $Data 返回数据 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -54,8 +54,9 @@ class WordSimilarityResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Similarity",$param) and $param["Similarity"] !== null) { - $this->Similarity = $param["Similarity"]; + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = new ListGatewaysData(); + $this->Data->deserialize($param["Data"]); } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersData.php new file mode 100644 index 000000000..fc52f063d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersData.php @@ -0,0 +1,65 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("NotInPlanCount",$param) and $param["NotInPlanCount"] !== null) { + $this->NotInPlanCount = $param["NotInPlanCount"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersRequest.php new file mode 100644 index 000000000..2394f9c26 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersRequest.php @@ -0,0 +1,53 @@ +OrganizationId = $param["OrganizationId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersResponse.php new file mode 100644 index 000000000..83aecb57a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelNumbersResponse.php @@ -0,0 +1,66 @@ +Data = new ListOrganizationChannelNumbersData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsData.php new file mode 100644 index 000000000..7836d5161 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsData.php @@ -0,0 +1,98 @@ +PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("List",$param) and $param["List"] !== null) { + $this->List = []; + foreach ($param["List"] as $key => $value){ + $obj = new OrganizationChannelInfo(); + $obj->deserialize($value); + array_push($this->List, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsRequest.php new file mode 100644 index 000000000..bfeb0176f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsRequest.php @@ -0,0 +1,109 @@ +OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("PageNumber",$param) and $param["PageNumber"] !== null) { + $this->PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("ChannelName",$param) and $param["ChannelName"] !== null) { + $this->ChannelName = $param["ChannelName"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsResponse.php new file mode 100644 index 000000000..b1aedd819 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListOrganizationChannelsResponse.php @@ -0,0 +1,66 @@ +Data = new ListOrganizationChannelsData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanData.php new file mode 100644 index 000000000..0f746f28a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanData.php @@ -0,0 +1,150 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("PlanName",$param) and $param["PlanName"] !== null) { + $this->PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("ChannelCount",$param) and $param["ChannelCount"] !== null) { + $this->ChannelCount = $param["ChannelCount"]; + } + + if (array_key_exists("CreateAt",$param) and $param["CreateAt"] !== null) { + $this->CreateAt = $param["CreateAt"]; + } + + if (array_key_exists("UpdateAt",$param) and $param["UpdateAt"] !== null) { + $this->UpdateAt = $param["UpdateAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesData.php new file mode 100644 index 000000000..c6b114363 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesData.php @@ -0,0 +1,106 @@ +PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("List",$param) and $param["List"] !== null) { + $this->List = new RecordPlanChannelInfo(); + $this->List->deserialize($param["List"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesRequest.php new file mode 100644 index 000000000..ea7ce0d6b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesRequest.php @@ -0,0 +1,113 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("ChannelName",$param) and $param["ChannelName"] !== null) { + $this->ChannelName = $param["ChannelName"]; + } + + if (array_key_exists("OrganizationName",$param) and $param["OrganizationName"] !== null) { + $this->OrganizationName = $param["OrganizationName"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("PageNumber",$param) and $param["PageNumber"] !== null) { + $this->PageNumber = $param["PageNumber"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesResponse.php new file mode 100644 index 000000000..dda4f3433 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlanDevicesResponse.php @@ -0,0 +1,66 @@ +Data = new ListRecordBackupPlanDevicesData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlansRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlansRequest.php new file mode 100644 index 000000000..ac136589d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupPlansRequest.php @@ -0,0 +1,47 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new ListRecordBackupPlanData(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupTemplatesData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupTemplatesData.php new file mode 100644 index 000000000..b80d8c148 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupTemplatesData.php @@ -0,0 +1,163 @@ +TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("TemplateName",$param) and $param["TemplateName"] !== null) { + $this->TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + + if (array_key_exists("DevTimeSections",$param) and $param["DevTimeSections"] !== null) { + $this->DevTimeSections = []; + foreach ($param["DevTimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->DevTimeSections, $obj); + } + } + + if (array_key_exists("Scale",$param) and $param["Scale"] !== null) { + $this->Scale = $param["Scale"]; + } + + if (array_key_exists("CreateAt",$param) and $param["CreateAt"] !== null) { + $this->CreateAt = $param["CreateAt"]; + } + + if (array_key_exists("UpdateAt",$param) and $param["UpdateAt"] !== null) { + $this->UpdateAt = $param["UpdateAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupTemplatesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupTemplatesRequest.php new file mode 100644 index 000000000..cbd75d0ca --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordBackupTemplatesRequest.php @@ -0,0 +1,47 @@ +RankIssueResult = []; - foreach ($param["RankIssueResult"] as $key => $value){ - $obj = new CptIssueRank(); + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new ListRecordBackupTemplatesData(); $obj->deserialize($value); - array_push($this->RankIssueResult, $obj); + array_push($this->Data, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanChannelsData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanChannelsData.php new file mode 100644 index 000000000..f80b6046c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanChannelsData.php @@ -0,0 +1,57 @@ +List = $param["List"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanChannelsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanChannelsRequest.php new file mode 100644 index 000000000..e787dc090 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanChannelsRequest.php @@ -0,0 +1,47 @@ +Data = new ListRecordPlanChannelsData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesData.php new file mode 100644 index 000000000..4a377e941 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesData.php @@ -0,0 +1,98 @@ +PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("List",$param) and $param["List"] !== null) { + $this->List = []; + foreach ($param["List"] as $key => $value){ + $obj = new RecordPlanChannelInfo(); + $obj->deserialize($value); + array_push($this->List, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesRequest.php new file mode 100644 index 000000000..22a3cd24e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesRequest.php @@ -0,0 +1,125 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("PageNumber",$param) and $param["PageNumber"] !== null) { + $this->PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("ChannelName",$param) and $param["ChannelName"] !== null) { + $this->ChannelName = $param["ChannelName"]; + } + + if (array_key_exists("OrganizationName",$param) and $param["OrganizationName"] !== null) { + $this->OrganizationName = $param["OrganizationName"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesResponse.php new file mode 100644 index 000000000..4a5b35df0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlanDevicesResponse.php @@ -0,0 +1,66 @@ +Data = new ListRecordPlanDevicesData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlansRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlansRequest.php new file mode 100644 index 000000000..ac3c1cbe9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordPlansRequest.php @@ -0,0 +1,47 @@ +Results = []; - foreach ($param["Results"] as $key => $value){ - $obj = new SearchResult(); + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new RecordPlanBaseInfo(); $obj->deserialize($value); - array_push($this->Results, $obj); + array_push($this->Data, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordRetrieveTasksRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordRetrieveTasksRequest.php new file mode 100644 index 000000000..7614dfe74 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordRetrieveTasksRequest.php @@ -0,0 +1,47 @@ +Dicts = []; - foreach ($param["Dicts"] as $key => $value){ - $obj = new DictInfo(); + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new RecordRetrieveTaskDetailsInfo(); $obj->deserialize($value); - array_push($this->Dicts, $obj); + array_push($this->Data, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordTemplatesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordTemplatesRequest.php new file mode 100644 index 000000000..5e9020605 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/ListRecordTemplatesRequest.php @@ -0,0 +1,47 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new RecordTemplateInfo(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/Location.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/Location.php new file mode 100644 index 000000000..d0bce283c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/Location.php @@ -0,0 +1,89 @@ +X = $param["X"]; + } + + if (array_key_exists("Y",$param) and $param["Y"] !== null) { + $this->Y = $param["Y"]; + } + + if (array_key_exists("Width",$param) and $param["Width"] !== null) { + $this->Width = $param["Width"]; + } + + if (array_key_exists("Height",$param) and $param["Height"] !== null) { + $this->Height = $param["Height"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/OperTimeSlot.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/OperTimeSlot.php new file mode 100644 index 000000000..27975a911 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/OperTimeSlot.php @@ -0,0 +1,65 @@ +Start = $param["Start"]; + } + + if (array_key_exists("End",$param) and $param["End"] !== null) { + $this->End = $param["End"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/OrganizationChannelInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/OrganizationChannelInfo.php new file mode 100644 index 000000000..d522b8228 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/OrganizationChannelInfo.php @@ -0,0 +1,109 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("ChannelId",$param) and $param["ChannelId"] !== null) { + $this->ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("ChannelName",$param) and $param["ChannelName"] !== null) { + $this->ChannelName = $param["ChannelName"]; + } + + if (array_key_exists("InPlan",$param) and $param["InPlan"] !== null) { + $this->InPlan = $param["InPlan"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PetAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PetAIResultInfo.php new file mode 100644 index 000000000..2954a6dec --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PetAIResultInfo.php @@ -0,0 +1,82 @@ +Time = $param["Time"]; + } + + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("PetInfo",$param) and $param["PetInfo"] !== null) { + $this->PetInfo = []; + foreach ($param["PetInfo"] as $key => $value){ + $obj = new BaseAIResultInfo(); + $obj->deserialize($value); + array_push($this->PetInfo, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PhoneCallAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PhoneCallAIResultInfo.php new file mode 100644 index 000000000..bb1cf81b0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PhoneCallAIResultInfo.php @@ -0,0 +1,82 @@ +Time = $param["Time"]; + } + + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("PhoneCallInfo",$param) and $param["PhoneCallInfo"] !== null) { + $this->PhoneCallInfo = []; + foreach ($param["PhoneCallInfo"] as $key => $value){ + $obj = new BaseAIResultInfo(); + $obj->deserialize($value); + array_push($this->PhoneCallInfo, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlateContent.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlateContent.php new file mode 100644 index 000000000..2eec0a37d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlateContent.php @@ -0,0 +1,90 @@ +Plate = $param["Plate"]; + } + + if (array_key_exists("Color",$param) and $param["Color"] !== null) { + $this->Color = $param["Color"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("Location",$param) and $param["Location"] !== null) { + $this->Location = new Location(); + $this->Location->deserialize($param["Location"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordData.php similarity index 57% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordData.php index 114564cf0..ce8437462 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextCorrectionRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordData.php @@ -14,24 +14,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * TextCorrection请求参数结构体 + * 本地录像播放url数据结构 * - * @method string getText() 获取待纠错的文本(仅支持UTF-8格式,不超过2000字符) - * @method void setText(string $Text) 设置待纠错的文本(仅支持UTF-8格式,不超过2000字符) + * @method string getFlv() 获取录像播放地址 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setFlv(string $Flv) 设置录像播放地址 +注意:此字段可能返回 null,表示取不到有效值。 */ -class TextCorrectionRequest extends AbstractModel +class PlayRecordData extends AbstractModel { /** - * @var string 待纠错的文本(仅支持UTF-8格式,不超过2000字符) + * @var string 录像播放地址 +注意:此字段可能返回 null,表示取不到有效值。 */ - public $Text; + public $Flv; /** - * @param string $Text 待纠错的文本(仅支持UTF-8格式,不超过2000字符) + * @param string $Flv 录像播放地址 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { @@ -46,8 +50,8 @@ class TextCorrectionRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Text",$param) and $param["Text"] !== null) { - $this->Text = $param["Text"]; + if (array_key_exists("Flv",$param) and $param["Flv"] !== null) { + $this->Flv = $param["Flv"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordRequest.php new file mode 100644 index 000000000..dd517cb29 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordRequest.php @@ -0,0 +1,101 @@ +ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("Start",$param) and $param["Start"] !== null) { + $this->Start = $param["Start"]; + } + + if (array_key_exists("End",$param) and $param["End"] !== null) { + $this->End = $param["End"]; + } + + if (array_key_exists("StreamType",$param) and $param["StreamType"] !== null) { + $this->StreamType = $param["StreamType"]; + } + + if (array_key_exists("Resolution",$param) and $param["Resolution"] !== null) { + $this->Resolution = $param["Resolution"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordResponse.php new file mode 100644 index 000000000..37d6a51e7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/PlayRecordResponse.php @@ -0,0 +1,66 @@ +Data = new PlayRecordData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanBaseInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanBaseInfo.php new file mode 100644 index 000000000..d442925d4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanBaseInfo.php @@ -0,0 +1,146 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("PlanName",$param) and $param["PlanName"] !== null) { + $this->PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("StreamType",$param) and $param["StreamType"] !== null) { + $this->StreamType = $param["StreamType"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("ChannelCount",$param) and $param["ChannelCount"] !== null) { + $this->ChannelCount = $param["ChannelCount"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanChannelInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanChannelInfo.php new file mode 100644 index 000000000..a2a103bf1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanChannelInfo.php @@ -0,0 +1,113 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("ChannelId",$param) and $param["ChannelId"] !== null) { + $this->ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("ChannelName",$param) and $param["ChannelName"] !== null) { + $this->ChannelName = $param["ChannelName"]; + } + + if (array_key_exists("OrganizationName",$param) and $param["OrganizationName"] !== null) { + $this->OrganizationName = $param["OrganizationName"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanOptData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanOptData.php new file mode 100644 index 000000000..d18df7ba5 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlanOptData.php @@ -0,0 +1,122 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("PlanName",$param) and $param["PlanName"] !== null) { + $this->PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("StreamType",$param) and $param["StreamType"] !== null) { + $this->StreamType = $param["StreamType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlaybackUrl.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlaybackUrl.php new file mode 100644 index 000000000..c592f1423 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordPlaybackUrl.php @@ -0,0 +1,53 @@ +Hls = $param["Hls"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordRetrieveTaskChannelInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordRetrieveTaskChannelInfo.php new file mode 100644 index 000000000..8569aa87c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordRetrieveTaskChannelInfo.php @@ -0,0 +1,101 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("DeviceName",$param) and $param["DeviceName"] !== null) { + $this->DeviceName = $param["DeviceName"]; + } + + if (array_key_exists("ChannelId",$param) and $param["ChannelId"] !== null) { + $this->ChannelId = $param["ChannelId"]; + } + + if (array_key_exists("ChannelName",$param) and $param["ChannelName"] !== null) { + $this->ChannelName = $param["ChannelName"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordRetrieveTaskDetailsInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordRetrieveTaskDetailsInfo.php new file mode 100644 index 000000000..2227d1a65 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordRetrieveTaskDetailsInfo.php @@ -0,0 +1,165 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("TaskName",$param) and $param["TaskName"] !== null) { + $this->TaskName = $param["TaskName"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("Mode",$param) and $param["Mode"] !== null) { + $this->Mode = $param["Mode"]; + } + + if (array_key_exists("Expiration",$param) and $param["Expiration"] !== null) { + $this->Expiration = $param["Expiration"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("Capacity",$param) and $param["Capacity"] !== null) { + $this->Capacity = $param["Capacity"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("ChannelCount",$param) and $param["ChannelCount"] !== null) { + $this->ChannelCount = $param["ChannelCount"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTemplateInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTemplateInfo.php new file mode 100644 index 000000000..b37b0ead5 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTemplateInfo.php @@ -0,0 +1,82 @@ +TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("TemplateName",$param) and $param["TemplateName"] !== null) { + $this->TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetCredentialCptRankRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTemplateTimeSections.php similarity index 51% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetCredentialCptRankRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTemplateTimeSections.php index 27eaa8905..d43b5c7ab 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetCredentialCptRankRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTemplateTimeSections.php @@ -14,40 +14,40 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * GetCredentialCptRank请求参数结构体 + * 上云模板的时间片段数据格式 * - * @method string getStartTime() 获取开始时间(支持到天 2021-4-23) - * @method void setStartTime(string $StartTime) 设置开始时间(支持到天 2021-4-23) - * @method string getEndTime() 获取结束时间(支持到天 2021-4-23) - * @method void setEndTime(string $EndTime) 设置结束时间(支持到天 2021-4-23) - * @method string getClusterId() 获取网络ID - * @method void setClusterId(string $ClusterId) 设置网络ID + * @method integer getDayOfWeek() 获取周日期,取值范围1~7(对应周一~周日 + * @method void setDayOfWeek(integer $DayOfWeek) 设置周日期,取值范围1~7(对应周一~周日 + * @method string getStartTime() 获取开始时间,格式:HH:MM:SS,范围:[00:00:00~23:59:59] + * @method void setStartTime(string $StartTime) 设置开始时间,格式:HH:MM:SS,范围:[00:00:00~23:59:59] + * @method string getEndTime() 获取结束时间,格式:HH:MM:SS,范围:[00:00:00~23:59:59] + * @method void setEndTime(string $EndTime) 设置结束时间,格式:HH:MM:SS,范围:[00:00:00~23:59:59] */ -class GetCredentialCptRankRequest extends AbstractModel +class RecordTemplateTimeSections extends AbstractModel { /** - * @var string 开始时间(支持到天 2021-4-23) + * @var integer 周日期,取值范围1~7(对应周一~周日 + */ + public $DayOfWeek; + + /** + * @var string 开始时间,格式:HH:MM:SS,范围:[00:00:00~23:59:59] */ public $StartTime; /** - * @var string 结束时间(支持到天 2021-4-23) + * @var string 结束时间,格式:HH:MM:SS,范围:[00:00:00~23:59:59] */ public $EndTime; /** - * @var string 网络ID - */ - public $ClusterId; - - /** - * @param string $StartTime 开始时间(支持到天 2021-4-23) - * @param string $EndTime 结束时间(支持到天 2021-4-23) - * @param string $ClusterId 网络ID + * @param integer $DayOfWeek 周日期,取值范围1~7(对应周一~周日 + * @param string $StartTime 开始时间,格式:HH:MM:SS,范围:[00:00:00~23:59:59] + * @param string $EndTime 结束时间,格式:HH:MM:SS,范围:[00:00:00~23:59:59] */ function __construct() { @@ -62,6 +62,10 @@ class GetCredentialCptRankRequest extends AbstractModel if ($param === null) { return; } + if (array_key_exists("DayOfWeek",$param) and $param["DayOfWeek"] !== null) { + $this->DayOfWeek = $param["DayOfWeek"]; + } + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { $this->StartTime = $param["StartTime"]; } @@ -69,9 +73,5 @@ class GetCredentialCptRankRequest extends AbstractModel if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { $this->EndTime = $param["EndTime"]; } - - if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { - $this->ClusterId = $param["ClusterId"]; - } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTimeLine.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTimeLine.php new file mode 100644 index 000000000..f34f8fcb9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RecordTimeLine.php @@ -0,0 +1,65 @@ +Begin = $param["Begin"]; + } + + if (array_key_exists("End",$param) and $param["End"] !== null) { + $this->End = $param["End"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RefreshDeviceChannelRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RefreshDeviceChannelRequest.php new file mode 100644 index 000000000..462c99dd2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RefreshDeviceChannelRequest.php @@ -0,0 +1,53 @@ +DeviceId = $param["DeviceId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RefreshDeviceChannelResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RefreshDeviceChannelResponse.php new file mode 100644 index 000000000..3ea2b7fde --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/RefreshDeviceChannelResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/SmokingAIResultInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/SmokingAIResultInfo.php new file mode 100644 index 000000000..55374201a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/SmokingAIResultInfo.php @@ -0,0 +1,82 @@ +Time = $param["Time"]; + } + + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("SmokingInfo",$param) and $param["SmokingInfo"] !== null) { + $this->SmokingInfo = []; + foreach ($param["SmokingInfo"] as $key => $value){ + $obj = new BaseAIResultInfo(); + $obj->deserialize($value); + array_push($this->SmokingInfo, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/SnapshotConfig.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/SnapshotConfig.php new file mode 100644 index 000000000..8ecda054a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/SnapshotConfig.php @@ -0,0 +1,70 @@ +TimeInterval = $param["TimeInterval"]; + } + + if (array_key_exists("OperTimeSlot",$param) and $param["OperTimeSlot"] !== null) { + $this->OperTimeSlot = []; + foreach ($param["OperTimeSlot"] as $key => $value){ + $obj = new OperTimeSlot(); + $obj->deserialize($value); + array_push($this->OperTimeSlot, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/Timeline.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/Timeline.php new file mode 100644 index 000000000..1f77e4db0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/Timeline.php @@ -0,0 +1,73 @@ +Begin = $param["Begin"]; + } + + if (array_key_exists("End",$param) and $param["End"] !== null) { + $this->End = $param["End"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskRequest.php new file mode 100644 index 000000000..14047e450 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskRequest.php @@ -0,0 +1,130 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Desc",$param) and $param["Desc"] !== null) { + $this->Desc = $param["Desc"]; + } + + if (array_key_exists("ChannelList",$param) and $param["ChannelList"] !== null) { + $this->ChannelList = $param["ChannelList"]; + } + + if (array_key_exists("CallbackUrl",$param) and $param["CallbackUrl"] !== null) { + $this->CallbackUrl = $param["CallbackUrl"]; + } + + if (array_key_exists("IsStartTheTask",$param) and $param["IsStartTheTask"] !== null) { + $this->IsStartTheTask = $param["IsStartTheTask"]; + } + + if (array_key_exists("Templates",$param) and $param["Templates"] !== null) { + $this->Templates = []; + foreach ($param["Templates"] as $key => $value){ + $obj = new AITemplates(); + $obj->deserialize($value); + array_push($this->Templates, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskResponse.php new file mode 100644 index 000000000..c20718ce0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskResponse.php @@ -0,0 +1,70 @@ +Data = new AITaskInfo(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskStatusRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskStatusRequest.php new file mode 100644 index 000000000..c9f895d02 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskStatusRequest.php @@ -0,0 +1,65 @@ +TaskId = $param["TaskId"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskStatusResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskStatusResponse.php new file mode 100644 index 000000000..2097919c2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateAITaskStatusResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceData.php new file mode 100644 index 000000000..d1d32fdae --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceData.php @@ -0,0 +1,333 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("Code",$param) and $param["Code"] !== null) { + $this->Code = $param["Code"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("AccessProtocol",$param) and $param["AccessProtocol"] !== null) { + $this->AccessProtocol = $param["AccessProtocol"]; + } + + if (array_key_exists("Type",$param) and $param["Type"] !== null) { + $this->Type = $param["Type"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("ClusterName",$param) and $param["ClusterName"] !== null) { + $this->ClusterName = $param["ClusterName"]; + } + + if (array_key_exists("TransportProtocol",$param) and $param["TransportProtocol"] !== null) { + $this->TransportProtocol = $param["TransportProtocol"]; + } + + if (array_key_exists("Password",$param) and $param["Password"] !== null) { + $this->Password = $param["Password"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("GatewayId",$param) and $param["GatewayId"] !== null) { + $this->GatewayId = $param["GatewayId"]; + } + + if (array_key_exists("ProtocolType",$param) and $param["ProtocolType"] !== null) { + $this->ProtocolType = $param["ProtocolType"]; + } + + if (array_key_exists("Ip",$param) and $param["Ip"] !== null) { + $this->Ip = $param["Ip"]; + } + + if (array_key_exists("Port",$param) and $param["Port"] !== null) { + $this->Port = $param["Port"]; + } + + if (array_key_exists("Username",$param) and $param["Username"] !== null) { + $this->Username = $param["Username"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceOrganizationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceOrganizationRequest.php new file mode 100644 index 000000000..d7f64f3e8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceOrganizationRequest.php @@ -0,0 +1,65 @@ +DeviceIds = $param["DeviceIds"]; + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceOrganizationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceOrganizationResponse.php new file mode 100644 index 000000000..32bde3106 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceOrganizationResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceStatusRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceStatusRequest.php new file mode 100644 index 000000000..b03677b8f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceStatusRequest.php @@ -0,0 +1,65 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceStatusResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceStatusResponse.php new file mode 100644 index 000000000..e82fac324 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateDeviceStatusResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayData.php new file mode 100644 index 000000000..6d0bcd6e5 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayData.php @@ -0,0 +1,201 @@ +GatewayId = $param["GatewayId"]; + } + + if (array_key_exists("GwId",$param) and $param["GwId"] !== null) { + $this->GwId = $param["GwId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { + $this->ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("ClusterName",$param) and $param["ClusterName"] !== null) { + $this->ClusterName = $param["ClusterName"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("CreatedAt",$param) and $param["CreatedAt"] !== null) { + $this->CreatedAt = $param["CreatedAt"]; + } + + if (array_key_exists("Secret",$param) and $param["Secret"] !== null) { + $this->Secret = $param["Secret"]; + } + + if (array_key_exists("Version",$param) and $param["Version"] !== null) { + $this->Version = $param["Version"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayRequest.php new file mode 100644 index 000000000..bedd94a41 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayRequest.php @@ -0,0 +1,77 @@ +GatewayId = $param["GatewayId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayResponse.php new file mode 100644 index 000000000..8045bd0e9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateGatewayResponse.php @@ -0,0 +1,66 @@ +Data = new UpdateGatewayData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrgData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrgData.php new file mode 100644 index 000000000..154fb3527 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrgData.php @@ -0,0 +1,169 @@ +OrganizationId = $param["OrganizationId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("ParentId",$param) and $param["ParentId"] !== null) { + $this->ParentId = $param["ParentId"]; + } + + if (array_key_exists("Level",$param) and $param["Level"] !== null) { + $this->Level = $param["Level"]; + } + + if (array_key_exists("AppId",$param) and $param["AppId"] !== null) { + $this->AppId = $param["AppId"]; + } + + if (array_key_exists("ParentIds",$param) and $param["ParentIds"] !== null) { + $this->ParentIds = $param["ParentIds"]; + } + + if (array_key_exists("Total",$param) and $param["Total"] !== null) { + $this->Total = $param["Total"]; + } + + if (array_key_exists("Online",$param) and $param["Online"] !== null) { + $this->Online = $param["Online"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateDictRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrganizationRequest.php similarity index 54% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateDictRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrganizationRequest.php index 142136c42..a52be61b4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateDictRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrganizationRequest.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Iss\V20230517\Models; use TencentCloud\Common\AbstractModel; /** - * CreateDict请求参数结构体 + * UpdateOrganization请求参数结构体 * - * @method string getName() 获取自定义词库名称,不超过20字。 - * @method void setName(string $Name) 设置自定义词库名称,不超过20字。 - * @method string getDescription() 获取自定义词库描述,不超过100字。 - * @method void setDescription(string $Description) 设置自定义词库描述,不超过100字。 + * @method string getOrganizationId() 获取组织ID(从查询组织接口DescribeOrganization中获取) + * @method void setOrganizationId(string $OrganizationId) 设置组织ID(从查询组织接口DescribeOrganization中获取) + * @method string getName() 获取组织名称 + * @method void setName(string $Name) 设置组织名称 */ -class CreateDictRequest extends AbstractModel +class UpdateOrganizationRequest extends AbstractModel { /** - * @var string 自定义词库名称,不超过20字。 + * @var string 组织ID(从查询组织接口DescribeOrganization中获取) + */ + public $OrganizationId; + + /** + * @var string 组织名称 */ public $Name; /** - * @var string 自定义词库描述,不超过100字。 - */ - public $Description; - - /** - * @param string $Name 自定义词库名称,不超过20字。 - * @param string $Description 自定义词库描述,不超过100字。 + * @param string $OrganizationId 组织ID(从查询组织接口DescribeOrganization中获取) + * @param string $Name 组织名称 */ function __construct() { @@ -54,12 +54,12 @@ class CreateDictRequest extends AbstractModel if ($param === null) { return; } + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + if (array_key_exists("Name",$param) and $param["Name"] !== null) { $this->Name = $param["Name"]; } - - if (array_key_exists("Description",$param) and $param["Description"] !== null) { - $this->Description = $param["Description"]; - } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrganizationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrganizationResponse.php new file mode 100644 index 000000000..fbd72ab2c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateOrganizationResponse.php @@ -0,0 +1,66 @@ +Data = new UpdateOrgData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanData.php new file mode 100644 index 000000000..0eea2ccab --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanData.php @@ -0,0 +1,150 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("PlanName",$param) and $param["PlanName"] !== null) { + $this->PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("ChannelCount",$param) and $param["ChannelCount"] !== null) { + $this->ChannelCount = $param["ChannelCount"]; + } + + if (array_key_exists("CreateAt",$param) and $param["CreateAt"] !== null) { + $this->CreateAt = $param["CreateAt"]; + } + + if (array_key_exists("UpdateAt",$param) and $param["UpdateAt"] !== null) { + $this->UpdateAt = $param["UpdateAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanModify.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanModify.php new file mode 100644 index 000000000..adf096566 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanModify.php @@ -0,0 +1,126 @@ +PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Add",$param) and $param["Add"] !== null) { + $this->Add = $param["Add"]; + } + + if (array_key_exists("Del",$param) and $param["Del"] !== null) { + $this->Del = $param["Del"]; + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanRequest.php new file mode 100644 index 000000000..ba9176293 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanRequest.php @@ -0,0 +1,66 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("Mod",$param) and $param["Mod"] !== null) { + $this->Mod = new UpdateRecordBackupPlanModify(); + $this->Mod->deserialize($param["Mod"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanResponse.php new file mode 100644 index 000000000..e22faa090 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupPlanResponse.php @@ -0,0 +1,66 @@ +Data = new UpdateRecordBackupPlanData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateData.php new file mode 100644 index 000000000..45852b883 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateData.php @@ -0,0 +1,163 @@ +TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("TemplateName",$param) and $param["TemplateName"] !== null) { + $this->TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + + if (array_key_exists("DevTimeSections",$param) and $param["DevTimeSections"] !== null) { + $this->DevTimeSections = []; + foreach ($param["DevTimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->DevTimeSections, $obj); + } + } + + if (array_key_exists("Scale",$param) and $param["Scale"] !== null) { + $this->Scale = $param["Scale"]; + } + + if (array_key_exists("CreateAt",$param) and $param["CreateAt"] !== null) { + $this->CreateAt = $param["CreateAt"]; + } + + if (array_key_exists("UpdateAt",$param) and $param["UpdateAt"] !== null) { + $this->UpdateAt = $param["UpdateAt"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateModify.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateModify.php new file mode 100644 index 000000000..e1b1871aa --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateModify.php @@ -0,0 +1,99 @@ +TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + + if (array_key_exists("DevTimeSections",$param) and $param["DevTimeSections"] !== null) { + $this->DevTimeSections = []; + foreach ($param["DevTimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->DevTimeSections, $obj); + } + } + + if (array_key_exists("Scale",$param) and $param["Scale"] !== null) { + $this->Scale = $param["Scale"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateRequest.php new file mode 100644 index 000000000..1e59318e7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateRequest.php @@ -0,0 +1,66 @@ +TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Mod",$param) and $param["Mod"] !== null) { + $this->Mod = new UpdateRecordBackupTemplateModify(); + $this->Mod->deserialize($param["Mod"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateResponse.php new file mode 100644 index 000000000..d5a8f5330 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordBackupTemplateResponse.php @@ -0,0 +1,66 @@ +Data = new UpdateRecordBackupTemplateData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanData.php new file mode 100644 index 000000000..55d4f2ed4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanData.php @@ -0,0 +1,143 @@ +PlanName = $param["PlanName"]; + } + + if (array_key_exists("TemplateId",$param) and $param["TemplateId"] !== null) { + $this->TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Describe",$param) and $param["Describe"] !== null) { + $this->Describe = $param["Describe"]; + } + + if (array_key_exists("StreamType",$param) and $param["StreamType"] !== null) { + $this->StreamType = $param["StreamType"]; + } + + if (array_key_exists("LifeCycle",$param) and $param["LifeCycle"] !== null) { + $this->LifeCycle = new LifeCycleData(); + $this->LifeCycle->deserialize($param["LifeCycle"]); + } + + if (array_key_exists("Add",$param) and $param["Add"] !== null) { + $this->Add = []; + foreach ($param["Add"] as $key => $value){ + $obj = new ChannelInfo(); + $obj->deserialize($value); + array_push($this->Add, $obj); + } + } + + if (array_key_exists("Del",$param) and $param["Del"] !== null) { + $this->Del = $param["Del"]; + } + + if (array_key_exists("OrganizationId",$param) and $param["OrganizationId"] !== null) { + $this->OrganizationId = $param["OrganizationId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanRequest.php new file mode 100644 index 000000000..d51b3f188 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanRequest.php @@ -0,0 +1,66 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("Mod",$param) and $param["Mod"] !== null) { + $this->Mod = new UpdateRecordPlanData(); + $this->Mod->deserialize($param["Mod"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanResponse.php new file mode 100644 index 000000000..c1fe15f5f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordPlanResponse.php @@ -0,0 +1,66 @@ +Data = new RecordPlanOptData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateData.php new file mode 100644 index 000000000..758ae79e1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateData.php @@ -0,0 +1,70 @@ +TemplateName = $param["TemplateName"]; + } + + if (array_key_exists("TimeSections",$param) and $param["TimeSections"] !== null) { + $this->TimeSections = []; + foreach ($param["TimeSections"] as $key => $value){ + $obj = new RecordTemplateTimeSections(); + $obj->deserialize($value); + array_push($this->TimeSections, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateRequest.php new file mode 100644 index 000000000..a1076113e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateRequest.php @@ -0,0 +1,66 @@ +TemplateId = $param["TemplateId"]; + } + + if (array_key_exists("Mod",$param) and $param["Mod"] !== null) { + $this->Mod = new UpdateRecordTemplateData(); + $this->Mod->deserialize($param["Mod"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateResponse.php new file mode 100644 index 000000000..51742e6f9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateRecordTemplateResponse.php @@ -0,0 +1,66 @@ +Data = new RecordTemplateInfo(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateUserDeviceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateUserDeviceRequest.php new file mode 100644 index 000000000..524e58d40 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateUserDeviceRequest.php @@ -0,0 +1,137 @@ +DeviceId = $param["DeviceId"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("TransportProtocol",$param) and $param["TransportProtocol"] !== null) { + $this->TransportProtocol = $param["TransportProtocol"]; + } + + if (array_key_exists("Password",$param) and $param["Password"] !== null) { + $this->Password = $param["Password"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("Ip",$param) and $param["Ip"] !== null) { + $this->Ip = $param["Ip"]; + } + + if (array_key_exists("Port",$param) and $param["Port"] !== null) { + $this->Port = $param["Port"]; + } + + if (array_key_exists("Username",$param) and $param["Username"] !== null) { + $this->Username = $param["Username"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateUserDeviceResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateUserDeviceResponse.php new file mode 100644 index 000000000..3fd47be42 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpdateUserDeviceResponse.php @@ -0,0 +1,66 @@ +Data = new UpdateDeviceData(); + $this->Data->deserialize($param["Data"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpgradeGatewayRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpgradeGatewayRequest.php new file mode 100644 index 000000000..3eb8deea9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpgradeGatewayRequest.php @@ -0,0 +1,53 @@ +GatewayId = $param["GatewayId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpgradeGatewayResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpgradeGatewayResponse.php new file mode 100644 index 000000000..3f9ef67a7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Iss/V20230517/Models/UpgradeGatewayResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/CreateRoomRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/CreateRoomRequest.php index b3e9aa69a..f9ba14953 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/CreateRoomRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/CreateRoomRequest.php @@ -96,6 +96,10 @@ video 纯视频 1 只看老师和助教 * @method integer getVideoOrientation() 获取横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 * @method void setVideoOrientation(integer $VideoOrientation) 设置横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 + * @method integer getIsGradingRequiredPostClass() 获取开启课后评分。 0:不开启(默认) 1:开启 + * @method void setIsGradingRequiredPostClass(integer $IsGradingRequiredPostClass) 设置开启课后评分。 0:不开启(默认) 1:开启 + * @method integer getRoomType() 获取房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) + * @method void setRoomType(integer $RoomType) 设置房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) */ class CreateRoomRequest extends AbstractModel { @@ -217,6 +221,16 @@ video 纯视频 */ public $VideoOrientation; + /** + * @var integer 开启课后评分。 0:不开启(默认) 1:开启 + */ + public $IsGradingRequiredPostClass; + + /** + * @var integer 房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) + */ + public $RoomType; + /** * @param string $Name 房间名称。 * @param integer $StartTime 预定的房间开始时间,unix时间戳(秒)。 @@ -256,6 +270,8 @@ video 纯视频 0 收看全部角色音视频(默认) 1 只看老师和助教 * @param integer $VideoOrientation 横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 + * @param integer $IsGradingRequiredPostClass 开启课后评分。 0:不开启(默认) 1:开启 + * @param integer $RoomType 房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) */ function __construct() { @@ -349,5 +365,13 @@ video 纯视频 if (array_key_exists("VideoOrientation",$param) and $param["VideoOrientation"] !== null) { $this->VideoOrientation = $param["VideoOrientation"]; } + + if (array_key_exists("IsGradingRequiredPostClass",$param) and $param["IsGradingRequiredPostClass"] !== null) { + $this->IsGradingRequiredPostClass = $param["IsGradingRequiredPostClass"]; + } + + if (array_key_exists("RoomType",$param) and $param["RoomType"] !== null) { + $this->RoomType = $param["RoomType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/DescribeRoomResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/DescribeRoomResponse.php index a57823252..ec58119d5 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/DescribeRoomResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/DescribeRoomResponse.php @@ -30,6 +30,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTeacherId(string $TeacherId) 设置老师的UserId。 * @method integer getSdkAppId() 获取低代码互动课堂的SdkAppId。 * @method void setSdkAppId(integer $SdkAppId) 设置低代码互动课堂的SdkAppId。 + * @method integer getAudienceType() 获取观看类型。互动观看 (默认) + * @method void setAudienceType(integer $AudienceType) 设置观看类型。互动观看 (默认) * @method integer getResolution() 获取分辨率。可以有如下取值: 1 标清 2 高清 @@ -92,6 +94,10 @@ video 纯视频 1 只看老师和助教 * @method integer getVideoOrientation() 获取横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 * @method void setVideoOrientation(integer $VideoOrientation) 设置横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 + * @method integer getIsGradingRequiredPostClass() 获取开启课后评分。 0:不开启(默认) 1:开启 + * @method void setIsGradingRequiredPostClass(integer $IsGradingRequiredPostClass) 设置开启课后评分。 0:不开启(默认) 1:开启 + * @method integer getRoomType() 获取房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) + * @method void setRoomType(integer $RoomType) 设置房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -122,6 +128,11 @@ class DescribeRoomResponse extends AbstractModel */ public $SdkAppId; + /** + * @var integer 观看类型。互动观看 (默认) + */ + public $AudienceType; + /** * @var integer 分辨率。可以有如下取值: 1 标清 @@ -205,6 +216,16 @@ video 纯视频 */ public $VideoOrientation; + /** + * @var integer 开启课后评分。 0:不开启(默认) 1:开启 + */ + public $IsGradingRequiredPostClass; + + /** + * @var integer 房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) + */ + public $RoomType; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -216,6 +237,7 @@ video 纯视频 * @param integer $EndTime 预定的房间结束时间,unix时间戳(秒)。 * @param string $TeacherId 老师的UserId。 * @param integer $SdkAppId 低代码互动课堂的SdkAppId。 + * @param integer $AudienceType 观看类型。互动观看 (默认) * @param integer $Resolution 分辨率。可以有如下取值: 1 标清 2 高清 @@ -247,6 +269,8 @@ video 纯视频 0 收看全部角色音视频(默认) 1 只看老师和助教 * @param integer $VideoOrientation 横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 + * @param integer $IsGradingRequiredPostClass 开启课后评分。 0:不开启(默认) 1:开启 + * @param integer $RoomType 房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -282,6 +306,10 @@ video 纯视频 $this->SdkAppId = $param["SdkAppId"]; } + if (array_key_exists("AudienceType",$param) and $param["AudienceType"] !== null) { + $this->AudienceType = $param["AudienceType"]; + } + if (array_key_exists("Resolution",$param) and $param["Resolution"] !== null) { $this->Resolution = $param["Resolution"]; } @@ -334,6 +362,14 @@ video 纯视频 $this->VideoOrientation = $param["VideoOrientation"]; } + if (array_key_exists("IsGradingRequiredPostClass",$param) and $param["IsGradingRequiredPostClass"] !== null) { + $this->IsGradingRequiredPostClass = $param["IsGradingRequiredPostClass"]; + } + + if (array_key_exists("RoomType",$param) and $param["RoomType"] !== null) { + $this->RoomType = $param["RoomType"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/EventInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/EventInfo.php index 946562a02..7da4f4bd9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/EventInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/EventInfo.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTimestamp(integer $Timestamp) 设置事件发生的秒级unix时间戳。 * @method string getEventType() 获取事件类型,有以下值: RoomStart:房间开始 RoomEnd:房间结束 MemberJoin:成员加入 MemberQuit:成员退出 RecordFinish:录制结束 -Camera0n: 摄像头打开 -Camera0ff: 摄像头关闭 +CameraOn: 摄像头打开 +CameraOff: 摄像头关闭 MicOn: 麦克风打开 MicOff: 麦克风关闭 ScreenOn: 屏幕共享打开 @@ -34,8 +34,8 @@ VisibleOn: 页面可见 VisibleOff: 页面不可见 * @method void setEventType(string $EventType) 设置事件类型,有以下值: RoomStart:房间开始 RoomEnd:房间结束 MemberJoin:成员加入 MemberQuit:成员退出 RecordFinish:录制结束 -Camera0n: 摄像头打开 -Camera0ff: 摄像头关闭 +CameraOn: 摄像头打开 +CameraOff: 摄像头关闭 MicOn: 麦克风打开 MicOff: 麦克风关闭 ScreenOn: 屏幕共享打开 @@ -57,8 +57,8 @@ class EventInfo extends AbstractModel /** * @var string 事件类型,有以下值: RoomStart:房间开始 RoomEnd:房间结束 MemberJoin:成员加入 MemberQuit:成员退出 RecordFinish:录制结束 -Camera0n: 摄像头打开 -Camera0ff: 摄像头关闭 +CameraOn: 摄像头打开 +CameraOff: 摄像头关闭 MicOn: 麦克风打开 MicOff: 麦克风关闭 ScreenOn: 屏幕共享打开 @@ -78,8 +78,8 @@ VisibleOff: 页面不可见 * @param integer $Timestamp 事件发生的秒级unix时间戳。 * @param string $EventType 事件类型,有以下值: RoomStart:房间开始 RoomEnd:房间结束 MemberJoin:成员加入 MemberQuit:成员退出 RecordFinish:录制结束 -Camera0n: 摄像头打开 -Camera0ff: 摄像头关闭 +CameraOn: 摄像头打开 +CameraOff: 摄像头关闭 MicOn: 麦克风打开 MicOff: 麦克风关闭 ScreenOn: 屏幕共享打开 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/GetRoomEventRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/GetRoomEventRequest.php index 20630d529..bb515960f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/GetRoomEventRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/GetRoomEventRequest.php @@ -34,12 +34,28 @@ RoomEnd:房间结束 MemberJoin:成员加入 MemberQuit:成员退出 RecordFinish:录制结束 +CameraOn: 摄像头打开 +CameraOff: 摄像头关闭 +MicOn: 麦克风打开 +MicOff: 麦克风关闭 +ScreenOn: 屏幕共享打开 +ScreenOff: 屏幕共享关闭 +VisibleOn: 页面可见 +VisibleOff: 页面不可见 * @method void setKeyword(string $Keyword) 设置搜索事件类型。有以下事件类型: RoomStart:房间开始 RoomEnd:房间结束 MemberJoin:成员加入 MemberQuit:成员退出 RecordFinish:录制结束 +CameraOn: 摄像头打开 +CameraOff: 摄像头关闭 +MicOn: 麦克风打开 +MicOff: 麦克风关闭 +ScreenOn: 屏幕共享打开 +ScreenOff: 屏幕共享关闭 +VisibleOn: 页面可见 +VisibleOff: 页面不可见 */ class GetRoomEventRequest extends AbstractModel { @@ -70,6 +86,14 @@ RoomEnd:房间结束 MemberJoin:成员加入 MemberQuit:成员退出 RecordFinish:录制结束 +CameraOn: 摄像头打开 +CameraOff: 摄像头关闭 +MicOn: 麦克风打开 +MicOff: 麦克风关闭 +ScreenOn: 屏幕共享打开 +ScreenOff: 屏幕共享关闭 +VisibleOn: 页面可见 +VisibleOff: 页面不可见 */ public $Keyword; @@ -84,6 +108,14 @@ RoomEnd:房间结束 MemberJoin:成员加入 MemberQuit:成员退出 RecordFinish:录制结束 +CameraOn: 摄像头打开 +CameraOff: 摄像头关闭 +MicOn: 麦克风打开 +MicOff: 麦克风关闭 +ScreenOn: 屏幕共享打开 +ScreenOff: 屏幕共享关闭 +VisibleOn: 页面可见 +VisibleOff: 页面不可见 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/ModifyRoomRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/ModifyRoomRequest.php index 98fc55bd6..3773b8816 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/ModifyRoomRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/ModifyRoomRequest.php @@ -92,6 +92,10 @@ video 纯视频 1 只看老师和助教 * @method integer getVideoOrientation() 获取横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 * @method void setVideoOrientation(integer $VideoOrientation) 设置横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 + * @method integer getIsGradingRequiredPostClass() 获取开启课后评分。 0:不开启(默认) 1:开启 + * @method void setIsGradingRequiredPostClass(integer $IsGradingRequiredPostClass) 设置开启课后评分。 0:不开启(默认) 1:开启 + * @method integer getRoomType() 获取房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) + * @method void setRoomType(integer $RoomType) 设置房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) */ class ModifyRoomRequest extends AbstractModel { @@ -199,6 +203,16 @@ video 纯视频 */ public $VideoOrientation; + /** + * @var integer 开启课后评分。 0:不开启(默认) 1:开启 + */ + public $IsGradingRequiredPostClass; + + /** + * @var integer 房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) + */ + public $RoomType; + /** * @param integer $RoomId 房间ID。 * @param integer $SdkAppId 低代码互动课堂的SdkAppId @@ -236,6 +250,8 @@ video 纯视频 0 收看全部角色音视频(默认) 1 只看老师和助教 * @param integer $VideoOrientation 横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 + * @param integer $IsGradingRequiredPostClass 开启课后评分。 0:不开启(默认) 1:开启 + * @param integer $RoomType 房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) */ function __construct() { @@ -317,5 +333,13 @@ video 纯视频 if (array_key_exists("VideoOrientation",$param) and $param["VideoOrientation"] !== null) { $this->VideoOrientation = $param["VideoOrientation"]; } + + if (array_key_exists("IsGradingRequiredPostClass",$param) and $param["IsGradingRequiredPostClass"] !== null) { + $this->IsGradingRequiredPostClass = $param["IsGradingRequiredPostClass"]; + } + + if (array_key_exists("RoomType",$param) and $param["RoomType"] !== null) { + $this->RoomType = $param["RoomType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/RoomInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/RoomInfo.php index 5ce1f17f3..164e0beeb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/RoomInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/RoomInfo.php @@ -58,6 +58,10 @@ use TencentCloud\Common\AbstractModel; * @method void setInteractionMode(integer $InteractionMode) 设置开启专注模式。 0 收看全部角色音视频(默认) 1 只看老师和助教 * @method integer getVideoOrientation() 获取横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 * @method void setVideoOrientation(integer $VideoOrientation) 设置横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 + * @method integer getIsGradingRequiredPostClass() 获取开启课后评分。 0:不开启(默认) 1:开启 + * @method void setIsGradingRequiredPostClass(integer $IsGradingRequiredPostClass) 设置开启课后评分。 0:不开启(默认) 1:开启 + * @method integer getRoomType() 获取房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) + * @method void setRoomType(integer $RoomType) 设置房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) */ class RoomInfo extends AbstractModel { @@ -156,6 +160,16 @@ class RoomInfo extends AbstractModel */ public $VideoOrientation; + /** + * @var integer 开启课后评分。 0:不开启(默认) 1:开启 + */ + public $IsGradingRequiredPostClass; + + /** + * @var integer 房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) + */ + public $RoomType; + /** * @param string $Name 房间名称。 * @param integer $StartTime 预定的房间开始时间,unix时间戳。 @@ -176,6 +190,8 @@ class RoomInfo extends AbstractModel * @param integer $EnableDirectControl 打开学生麦克风/摄像头的授权开关 * @param integer $InteractionMode 开启专注模式。 0 收看全部角色音视频(默认) 1 只看老师和助教 * @param integer $VideoOrientation 横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 + * @param integer $IsGradingRequiredPostClass 开启课后评分。 0:不开启(默认) 1:开启 + * @param integer $RoomType 房间类型: 0 小班课(默认值); 1 大班课; 2 1V1 (后续扩展) */ function __construct() { @@ -265,5 +281,13 @@ class RoomInfo extends AbstractModel if (array_key_exists("VideoOrientation",$param) and $param["VideoOrientation"] !== null) { $this->VideoOrientation = $param["VideoOrientation"]; } + + if (array_key_exists("IsGradingRequiredPostClass",$param) and $param["IsGradingRequiredPostClass"] !== null) { + $this->IsGradingRequiredPostClass = $param["IsGradingRequiredPostClass"]; + } + + if (array_key_exists("RoomType",$param) and $param["RoomType"] !== null) { + $this->RoomType = $param["RoomType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/RoomItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/RoomItem.php index 5f8156035..1f2ddee31 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/RoomItem.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lcic/V20220817/Models/RoomItem.php @@ -83,6 +83,14 @@ use TencentCloud\Common\AbstractModel; * @method integer getVideoOrientation() 获取横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 注意:此字段可能返回 null,表示取不到有效值。 * @method void setVideoOrientation(integer $VideoOrientation) 设置横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsGradingRequiredPostClass() 获取开启课后评分。 0:不开启(默认) 1:开启 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsGradingRequiredPostClass(integer $IsGradingRequiredPostClass) 设置开启课后评分。 0:不开启(默认) 1:开启 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getRoomType() 获取房间类型。0:小班课(默认值);1:大班课;2:1V1(后续扩展) +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setRoomType(integer $RoomType) 设置房间类型。0:小班课(默认值);1:大班课;2:1V1(后续扩展) 注意:此字段可能返回 null,表示取不到有效值。 */ class RoomItem extends AbstractModel @@ -179,6 +187,18 @@ class RoomItem extends AbstractModel */ public $VideoOrientation; + /** + * @var integer 开启课后评分。 0:不开启(默认) 1:开启 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsGradingRequiredPostClass; + + /** + * @var integer 房间类型。0:小班课(默认值);1:大班课;2:1V1(后续扩展) +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $RoomType; + /** * @param string $Name 名称 注意:此字段可能返回 null,表示取不到有效值。 @@ -211,6 +231,10 @@ class RoomItem extends AbstractModel * @param integer $InteractionMode 开启专注模式。 0 收看全部角色音视频(默认) 1 只看老师和助教 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $VideoOrientation 横竖屏。0:横屏开播(默认值); 1:竖屏开播,当前仅支持移动端的纯视频类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsGradingRequiredPostClass 开启课后评分。 0:不开启(默认) 1:开启 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $RoomType 房间类型。0:小班课(默认值);1:大班课;2:1V1(后续扩展) 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -285,5 +309,13 @@ class RoomItem extends AbstractModel if (array_key_exists("VideoOrientation",$param) and $param["VideoOrientation"] !== null) { $this->VideoOrientation = $param["VideoOrientation"]; } + + if (array_key_exists("IsGradingRequiredPostClass",$param) and $param["IsGradingRequiredPostClass"] !== null) { + $this->IsGradingRequiredPostClass = $param["IsGradingRequiredPostClass"]; + } + + if (array_key_exists("RoomType",$param) and $param["RoomType"] !== null) { + $this->RoomType = $param["RoomType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/LighthouseClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/LighthouseClient.php index de9ac6caa..982b00574 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/LighthouseClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/LighthouseClient.php @@ -89,6 +89,10 @@ use TencentCloud\Lighthouse\V20200324\Models as Models; * @method Models\DescribeDisksResponse DescribeDisks(Models\DescribeDisksRequest $req) 本接口(DescribeDisks)用于查询云硬盘信息。 * @method Models\DescribeDisksDeniedActionsResponse DescribeDisksDeniedActions(Models\DescribeDisksDeniedActionsRequest $req) 本接口(DescribeDisksDeniedActions)用于查询一个或多个云硬盘的操作限制列表信息。 * @method Models\DescribeDisksReturnableResponse DescribeDisksReturnable(Models\DescribeDisksReturnableRequest $req) 本接口(DescribeDisksReturnable)用于查询云硬盘是否可退还。 + * @method Models\DescribeDockerActivitiesResponse DescribeDockerActivities(Models\DescribeDockerActivitiesRequest $req) 查询实例内的Docker活动列表。 + * @method Models\DescribeDockerContainerConfigurationResponse DescribeDockerContainerConfiguration(Models\DescribeDockerContainerConfigurationRequest $req) 查询实例内的Docker容器配置信息 + * @method Models\DescribeDockerContainerDetailResponse DescribeDockerContainerDetail(Models\DescribeDockerContainerDetailRequest $req) 查询实例内的Docker容器详情 + * @method Models\DescribeDockerContainersResponse DescribeDockerContainers(Models\DescribeDockerContainersRequest $req) 查询实例内的容器列表。 * @method Models\DescribeFirewallRulesResponse DescribeFirewallRules(Models\DescribeFirewallRulesRequest $req) 本接口(DescribeFirewallRules)用于查询实例的防火墙规则。 * @method Models\DescribeFirewallRulesTemplateResponse DescribeFirewallRulesTemplate(Models\DescribeFirewallRulesTemplateRequest $req) 本接口(DescribeFirewallRulesTemplate)用于查询防火墙规则模板。 * @method Models\DescribeGeneralResourceQuotasResponse DescribeGeneralResourceQuotas(Models\DescribeGeneralResourceQuotasRequest $req) 本接口(DescribeGeneralResourceQuotas)用于查询通用资源配额信息。 @@ -155,6 +159,8 @@ https://img.qcloud.com/qcloud/app/active_vnc/index.html?InstanceVncUrl=wss%3A%2F * @method Models\ModifyDiskBackupsAttributeResponse ModifyDiskBackupsAttribute(Models\ModifyDiskBackupsAttributeRequest $req) 本接口 (ModifyDiskBackupsAttribute) 用于修改云硬盘备份点属性。 * @method Models\ModifyDisksAttributeResponse ModifyDisksAttribute(Models\ModifyDisksAttributeRequest $req) 本接口(ModifyDisksAttribute)用于修改云硬盘属性。 * @method Models\ModifyDisksRenewFlagResponse ModifyDisksRenewFlag(Models\ModifyDisksRenewFlagRequest $req) 本接口(ModifyDisksRenewFlag)用于修改云硬盘续费标识。 + * @method Models\ModifyDockerContainerResponse ModifyDockerContainer(Models\ModifyDockerContainerRequest $req) 修改实例内的Docker容器,之后可以通过返回的ActivityId调用DescribeDockerActivities接口查询重建情况。 +请注意:本接口会重新创建并运行实例内的Docker容器。 * @method Models\ModifyFirewallRuleDescriptionResponse ModifyFirewallRuleDescription(Models\ModifyFirewallRuleDescriptionRequest $req) 本接口(ModifyFirewallRuleDescription)用于修改单条防火墙规则描述。 * FirewallVersion 用于指定要操作的防火墙的版本。传入 FirewallVersion 版本号若不等于当前防火墙的最新版本,将返回失败;若不传 FirewallVersion 则直接修改防火墙规则备注。 @@ -199,6 +205,8 @@ https://img.qcloud.com/qcloud/app/active_vnc/index.html?InstanceVncUrl=wss%3A%2F * 接口调用成功时,实例会进入 REBOOTING 状态;重启实例成功时,实例会进入 RUNNING 状态。 * 支持批量操作,每次请求批量实例的上限为 100。 * 本接口为异步接口,请求发送成功后会返回一个 RequestId,此时操作并未立即完成。实例操作结果可以通过调用 DescribeInstances 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 + * @method Models\RemoveDockerContainersResponse RemoveDockerContainers(Models\RemoveDockerContainersRequest $req) 删除实例内的Docker容器,之后可以通过返回的ActivityId调用DescribeDockerActivities接口查询删除情况。 + * @method Models\RenameDockerContainerResponse RenameDockerContainer(Models\RenameDockerContainerRequest $req) 重命名实例内的Docker容器,之后可以通过返回的ActivityId调用DescribeDockerActivities接口查询重命名情况。 * @method Models\RenewDisksResponse RenewDisks(Models\RenewDisksRequest $req) 本接口(RenewDisks)用于续费一个或多个轻量应用服务器云硬盘。 只有状态为 ATTACHED,UNATTACHED 或 SHUTDOWN 的数据盘才可以进行此操作。 @@ -208,6 +216,7 @@ https://img.qcloud.com/qcloud/app/active_vnc/index.html?InstanceVncUrl=wss%3A%2F * 只有状态为 RUNNING,STOPPED 或 SHUTDOWN 的实例才可以进行此操作。 * 支持批量操作。每次请求批量实例的上限为 100。 * 本接口为异步接口,请求发送成功后会返回一个 RequestId,此时操作并未立即完成。实例操作结果可以通过调用 DescribeInstances 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 + * @method Models\RerunDockerContainerResponse RerunDockerContainer(Models\RerunDockerContainerRequest $req) 重新创建并运行实例内的Docker容器,之后可以通过返回的ActivityId调用DescribeDockerActivities接口查询重建情况。 * @method Models\ResetAttachCcnResponse ResetAttachCcn(Models\ResetAttachCcnRequest $req) 本接口 (ResetAttachCcn) 用于关联云联网实例申请过期时,重新申请关联操作。 * @method Models\ResetInstanceResponse ResetInstance(Models\ResetInstanceRequest $req) 本接口(ResetInstance)用于重装指定实例上的镜像。 @@ -221,12 +230,16 @@ https://img.qcloud.com/qcloud/app/active_vnc/index.html?InstanceVncUrl=wss%3A%2F * 建议对运行中的实例先手动关机,然后再进行密码重置。如实例处于运行中状态,本接口操作过程中会对实例进行关机操作,尝试正常关机失败后进行强制关机。 * 本接口为异步接口,请求发送成功后会返回一个 RequestId,此时操作并未立即完成。实例操作结果可以通过调用 DescribeInstances 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 注意:强制关机的效果等同于关闭物理计算机的电源开关。强制关机可能会导致数据丢失或文件系统损坏。 + * @method Models\RestartDockerContainersResponse RestartDockerContainers(Models\RestartDockerContainersRequest $req) 重启实例内的Docker容器,之后可以通过返回的ActivityId调用DescribeDockerActivities接口查询重启情况。 + * @method Models\RunDockerContainersResponse RunDockerContainers(Models\RunDockerContainersRequest $req) 创建并运行多个Docker容器,之后可以通过返回的ActivityIds调用DescribeDockerActivities接口查询创建情况。 + * @method Models\StartDockerContainersResponse StartDockerContainers(Models\StartDockerContainersRequest $req) 启动实例内的Docker容器,之后可以通过返回的ActivityId调用DescribeDockerActivities接口查询启动情况。 * @method Models\StartInstancesResponse StartInstances(Models\StartInstancesRequest $req) 本接口(StartInstances)用于启动一个或多个实例。 * 只有状态为 STOPPED 的实例才可以进行此操作。 * 接口调用成功时,实例会进入 STARTING 状态;启动实例成功时,实例会进入 RUNNING 状态。 * 支持批量操作。每次请求批量实例的上限为 100。 * 本接口为异步接口,请求发送成功后会返回一个 RequestId,此时操作并未立即完成。实例操作结果可以通过调用 DescribeInstances 接口查询,如果实例的最新操作状态(LatestOperationState)为“SUCCESS”,则代表操作成功。 + * @method Models\StopDockerContainersResponse StopDockerContainers(Models\StopDockerContainersRequest $req) 停止实例内的Docker容器,之后可以通过返回的ActivityId调用DescribeDockerActivities接口查询停止情况。 * @method Models\StopInstancesResponse StopInstances(Models\StopInstancesRequest $req) 本接口(StopInstances)用于关闭一个或多个实例。 * 只有状态为 RUNNING 的实例才可以进行此操作。 * 接口调用成功时,实例会进入 STOPPING 状态;关闭实例成功时,实例会进入 STOPPED 状态。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerActivitiesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerActivitiesRequest.php new file mode 100644 index 000000000..5c4e20ebf --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerActivitiesRequest.php @@ -0,0 +1,113 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ActivityIds",$param) and $param["ActivityIds"] !== null) { + $this->ActivityIds = $param["ActivityIds"]; + } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("CreatedTimeBegin",$param) and $param["CreatedTimeBegin"] !== null) { + $this->CreatedTimeBegin = $param["CreatedTimeBegin"]; + } + + if (array_key_exists("CreatedTimeEnd",$param) and $param["CreatedTimeEnd"] !== null) { + $this->CreatedTimeEnd = $param["CreatedTimeEnd"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerActivitiesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerActivitiesResponse.php new file mode 100644 index 000000000..32807e2a0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerActivitiesResponse.php @@ -0,0 +1,82 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("DockerActivitySet",$param) and $param["DockerActivitySet"] !== null) { + $this->DockerActivitySet = []; + foreach ($param["DockerActivitySet"] as $key => $value){ + $obj = new DockerActivity(); + $obj->deserialize($value); + array_push($this->DockerActivitySet, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerConfigurationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerConfigurationRequest.php new file mode 100644 index 000000000..ed3be3257 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerConfigurationRequest.php @@ -0,0 +1,65 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ContainerId",$param) and $param["ContainerId"] !== null) { + $this->ContainerId = $param["ContainerId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerConfigurationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerConfigurationResponse.php new file mode 100644 index 000000000..bf99f8166 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerConfigurationResponse.php @@ -0,0 +1,66 @@ +ContainerConfiguration = new DockerContainerConfiguration(); + $this->ContainerConfiguration->deserialize($param["ContainerConfiguration"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCDBProxyRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerDetailRequest.php similarity index 64% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCDBProxyRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerDetailRequest.php index 79be380a9..fe282967e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeCDBProxyRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerDetailRequest.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Lighthouse\V20200324\Models; use TencentCloud\Common\AbstractModel; /** - * DescribeCDBProxy请求参数结构体 + * DescribeDockerContainerDetail请求参数结构体 * - * @method string getInstanceId() 获取实例ID - * @method void setInstanceId(string $InstanceId) 设置实例ID - * @method string getProxyGroupId() 获取代理组ID - * @method void setProxyGroupId(string $ProxyGroupId) 设置代理组ID + * @method string getInstanceId() 获取实例ID。 + * @method void setInstanceId(string $InstanceId) 设置实例ID。 + * @method string getContainerId() 获取容器ID。 + * @method void setContainerId(string $ContainerId) 设置容器ID。 */ -class DescribeCDBProxyRequest extends AbstractModel +class DescribeDockerContainerDetailRequest extends AbstractModel { /** - * @var string 实例ID + * @var string 实例ID。 */ public $InstanceId; /** - * @var string 代理组ID + * @var string 容器ID。 */ - public $ProxyGroupId; + public $ContainerId; /** - * @param string $InstanceId 实例ID - * @param string $ProxyGroupId 代理组ID + * @param string $InstanceId 实例ID。 + * @param string $ContainerId 容器ID。 */ function __construct() { @@ -58,8 +58,8 @@ class DescribeCDBProxyRequest extends AbstractModel $this->InstanceId = $param["InstanceId"]; } - if (array_key_exists("ProxyGroupId",$param) and $param["ProxyGroupId"] !== null) { - $this->ProxyGroupId = $param["ProxyGroupId"]; + if (array_key_exists("ContainerId",$param) and $param["ContainerId"] !== null) { + $this->ContainerId = $param["ContainerId"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerDetailResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerDetailResponse.php new file mode 100644 index 000000000..ebac957de --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainerDetailResponse.php @@ -0,0 +1,65 @@ +ContainerDetail = $param["ContainerDetail"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainersRequest.php new file mode 100644 index 000000000..b5b88db90 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainersRequest.php @@ -0,0 +1,134 @@ +container-id按照【容器ID】进行过滤。 +类型:String +必选:否 +
  • container-name
  • 按照【容器名称】进行过滤。 +类型:String +必选:否 +每次请求的 Filters 的上限为 10,Filter.Values 的上限为 5。参数不支持同时指定 ContainerIds 和 Filters。 + * @method void setFilters(array $Filters) 设置过滤器列表。 +
  • container-id
  • 按照【容器ID】进行过滤。 +类型:String +必选:否 +
  • container-name
  • 按照【容器名称】进行过滤。 +类型:String +必选:否 +每次请求的 Filters 的上限为 10,Filter.Values 的上限为 5。参数不支持同时指定 ContainerIds 和 Filters。 + */ +class DescribeDockerContainersRequest extends AbstractModel +{ + /** + * @var string 实例ID。 + */ + public $InstanceId; + + /** + * @var array 容器ID列表。 + */ + public $ContainerIds; + + /** + * @var integer 返回数量,默认为 20,最大值为 100。 + */ + public $Limit; + + /** + * @var integer 偏移量,默认为 0。 + */ + public $Offset; + + /** + * @var array 过滤器列表。 +
  • container-id
  • 按照【容器ID】进行过滤。 +类型:String +必选:否 +
  • container-name
  • 按照【容器名称】进行过滤。 +类型:String +必选:否 +每次请求的 Filters 的上限为 10,Filter.Values 的上限为 5。参数不支持同时指定 ContainerIds 和 Filters。 + */ + public $Filters; + + /** + * @param string $InstanceId 实例ID。 + * @param array $ContainerIds 容器ID列表。 + * @param integer $Limit 返回数量,默认为 20,最大值为 100。 + * @param integer $Offset 偏移量,默认为 0。 + * @param array $Filters 过滤器列表。 +
  • container-id
  • 按照【容器ID】进行过滤。 +类型:String +必选:否 +
  • container-name
  • 按照【容器名称】进行过滤。 +类型:String +必选:否 +每次请求的 Filters 的上限为 10,Filter.Values 的上限为 5。参数不支持同时指定 ContainerIds 和 Filters。 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("InstanceId",$param) and $param["InstanceId"] !== null) { + $this->InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ContainerIds",$param) and $param["ContainerIds"] !== null) { + $this->ContainerIds = $param["ContainerIds"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new Filter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainersResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainersResponse.php new file mode 100644 index 000000000..ca3a92e07 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DescribeDockerContainersResponse.php @@ -0,0 +1,82 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("DockerContainerSet",$param) and $param["DockerContainerSet"] !== null) { + $this->DockerContainerSet = []; + foreach ($param["DockerContainerSet"] as $key => $value){ + $obj = new DockerContainer(); + $obj->deserialize($value); + array_push($this->DockerContainerSet, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DockerActivity.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DockerActivity.php new file mode 100644 index 000000000..0a66f2492 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DockerActivity.php @@ -0,0 +1,145 @@ +INIT:表示初始化,活动尚未执行 +
  • OPERATING:表示活动执行中
  • +
  • SUCCESS:表示活动执行成功
  • +
  • FAILED:表示活动执行失败
  • + * @method void setActivityState(string $ActivityState) 设置活动状态。取值范围: +
  • INIT:表示初始化,活动尚未执行
  • +
  • OPERATING:表示活动执行中
  • +
  • SUCCESS:表示活动执行成功
  • +
  • FAILED:表示活动执行失败
  • + * @method string getActivityCommandOutput() 获取活动执行的命令输出,以base64编码。 + * @method void setActivityCommandOutput(string $ActivityCommandOutput) 设置活动执行的命令输出,以base64编码。 + * @method array getContainerIds() 获取容器ID列表。 + * @method void setContainerIds(array $ContainerIds) 设置容器ID列表。 + * @method string getCreatedTime() 获取创建时间。按照 ISO8601 标准表示,并且使用 UTC 时间。 + * @method void setCreatedTime(string $CreatedTime) 设置创建时间。按照 ISO8601 标准表示,并且使用 UTC 时间。 + * @method string getEndTime() 获取结束时间。按照 ISO8601 标准表示,并且使用 UTC 时间。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setEndTime(string $EndTime) 设置结束时间。按照 ISO8601 标准表示,并且使用 UTC 时间。 +注意:此字段可能返回 null,表示取不到有效值。 + */ +class DockerActivity extends AbstractModel +{ + /** + * @var string 活动ID。 + */ + public $ActivityId; + + /** + * @var string 活动名称。 + */ + public $ActivityName; + + /** + * @var string 活动状态。取值范围: +
  • INIT:表示初始化,活动尚未执行
  • +
  • OPERATING:表示活动执行中
  • +
  • SUCCESS:表示活动执行成功
  • +
  • FAILED:表示活动执行失败
  • + */ + public $ActivityState; + + /** + * @var string 活动执行的命令输出,以base64编码。 + */ + public $ActivityCommandOutput; + + /** + * @var array 容器ID列表。 + */ + public $ContainerIds; + + /** + * @var string 创建时间。按照 ISO8601 标准表示,并且使用 UTC 时间。 + */ + public $CreatedTime; + + /** + * @var string 结束时间。按照 ISO8601 标准表示,并且使用 UTC 时间。 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $EndTime; + + /** + * @param string $ActivityId 活动ID。 + * @param string $ActivityName 活动名称。 + * @param string $ActivityState 活动状态。取值范围: +
  • INIT:表示初始化,活动尚未执行
  • +
  • OPERATING:表示活动执行中
  • +
  • SUCCESS:表示活动执行成功
  • +
  • FAILED:表示活动执行失败
  • + * @param string $ActivityCommandOutput 活动执行的命令输出,以base64编码。 + * @param array $ContainerIds 容器ID列表。 + * @param string $CreatedTime 创建时间。按照 ISO8601 标准表示,并且使用 UTC 时间。 + * @param string $EndTime 结束时间。按照 ISO8601 标准表示,并且使用 UTC 时间。 +注意:此字段可能返回 null,表示取不到有效值。 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("ActivityId",$param) and $param["ActivityId"] !== null) { + $this->ActivityId = $param["ActivityId"]; + } + + if (array_key_exists("ActivityName",$param) and $param["ActivityName"] !== null) { + $this->ActivityName = $param["ActivityName"]; + } + + if (array_key_exists("ActivityState",$param) and $param["ActivityState"] !== null) { + $this->ActivityState = $param["ActivityState"]; + } + + if (array_key_exists("ActivityCommandOutput",$param) and $param["ActivityCommandOutput"] !== null) { + $this->ActivityCommandOutput = $param["ActivityCommandOutput"]; + } + + if (array_key_exists("ContainerIds",$param) and $param["ContainerIds"] !== null) { + $this->ContainerIds = $param["ContainerIds"]; + } + + if (array_key_exists("CreatedTime",$param) and $param["CreatedTime"] !== null) { + $this->CreatedTime = $param["CreatedTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DockerContainer.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DockerContainer.php new file mode 100644 index 000000000..0d70b8c8a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/DockerContainer.php @@ -0,0 +1,159 @@ +ContainerId = $param["ContainerId"]; + } + + if (array_key_exists("ContainerName",$param) and $param["ContainerName"] !== null) { + $this->ContainerName = $param["ContainerName"]; + } + + if (array_key_exists("ContainerImage",$param) and $param["ContainerImage"] !== null) { + $this->ContainerImage = $param["ContainerImage"]; + } + + if (array_key_exists("Command",$param) and $param["Command"] !== null) { + $this->Command = $param["Command"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("State",$param) and $param["State"] !== null) { + $this->State = $param["State"]; + } + + if (array_key_exists("PublishPortSet",$param) and $param["PublishPortSet"] !== null) { + $this->PublishPortSet = []; + foreach ($param["PublishPortSet"] as $key => $value){ + $obj = new DockerContainerPublishPort(); + $obj->deserialize($value); + array_push($this->PublishPortSet, $obj); + } + } + + if (array_key_exists("VolumeSet",$param) and $param["VolumeSet"] !== null) { + $this->VolumeSet = []; + foreach ($param["VolumeSet"] as $key => $value){ + $obj = new DockerContainerVolume(); + $obj->deserialize($value); + array_push($this->VolumeSet, $obj); + } + } + + if (array_key_exists("CreatedTime",$param) and $param["CreatedTime"] !== null) { + $this->CreatedTime = $param["CreatedTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/LoginConfiguration.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/LoginConfiguration.php index 74920a379..2704c141a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/LoginConfiguration.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/LoginConfiguration.php @@ -30,6 +30,8 @@ use TencentCloud\Common\AbstractModel; * @method void setPassword(string $Password) 设置实例登录密码。具体按照操作系统的复杂度要求。 `LINUX_UNIX` 实例密码必须 8-30 位,推荐使用 12 位以上密码,不能包含空格, 不能以“/”开头,至少包含以下字符中的三种不同字符,字符种类:
  • 小写字母:[a-z]
  • 大写字母:[A-Z]
  • 数字:0-9
  • 特殊字符: ()\`\~!@#$%^&\*-+=\_|{}[]:;' <>,.?/
  • `WINDOWS` 实例密码必须 12-30 位,不能包含空格, 不能以“/”开头且不包括用户名,至少包含以下字符中的三种不同字符
  • 小写字母:[a-z]
  • 大写字母:[A-Z]
  • 数字: 0-9
  • 特殊字符:()\`~!@#$%^&\*-+=\_|{}[]:;' <>,.?/ + * @method array getKeyIds() 获取密钥ID列表,最多同时指定5个密钥。关联密钥后,就可以通过对应的私钥来访问实例。密钥与密码不能同时指定,同时WINDOWS操作系统不支持指定密钥。密钥ID列表可以通过[DescribeKeyPairs](https://cloud.tencent.com/document/product/1207/55540)接口获取。 + * @method void setKeyIds(array $KeyIds) 设置密钥ID列表,最多同时指定5个密钥。关联密钥后,就可以通过对应的私钥来访问实例。密钥与密码不能同时指定,同时WINDOWS操作系统不支持指定密钥。密钥ID列表可以通过[DescribeKeyPairs](https://cloud.tencent.com/document/product/1207/55540)接口获取。 */ class LoginConfiguration extends AbstractModel { @@ -46,12 +48,18 @@ class LoginConfiguration extends AbstractModel */ public $Password; + /** + * @var array 密钥ID列表,最多同时指定5个密钥。关联密钥后,就可以通过对应的私钥来访问实例。密钥与密码不能同时指定,同时WINDOWS操作系统不支持指定密钥。密钥ID列表可以通过[DescribeKeyPairs](https://cloud.tencent.com/document/product/1207/55540)接口获取。 + */ + public $KeyIds; + /** * @param string $AutoGeneratePassword
  • "YES"代表选择自动生成密码,这时不指定Password字段。
  • "NO"代表选择自定义密码,这时要指定Password字段。
  • * @param string $Password 实例登录密码。具体按照操作系统的复杂度要求。 `LINUX_UNIX` 实例密码必须 8-30 位,推荐使用 12 位以上密码,不能包含空格, 不能以“/”开头,至少包含以下字符中的三种不同字符,字符种类:
  • 小写字母:[a-z]
  • 大写字母:[A-Z]
  • 数字:0-9
  • 特殊字符: ()\`\~!@#$%^&\*-+=\_|{}[]:;' <>,.?/
  • `WINDOWS` 实例密码必须 12-30 位,不能包含空格, 不能以“/”开头且不包括用户名,至少包含以下字符中的三种不同字符
  • 小写字母:[a-z]
  • 大写字母:[A-Z]
  • 数字: 0-9
  • 特殊字符:()\`~!@#$%^&\*-+=\_|{}[]:;' <>,.?/ + * @param array $KeyIds 密钥ID列表,最多同时指定5个密钥。关联密钥后,就可以通过对应的私钥来访问实例。密钥与密码不能同时指定,同时WINDOWS操作系统不支持指定密钥。密钥ID列表可以通过[DescribeKeyPairs](https://cloud.tencent.com/document/product/1207/55540)接口获取。 */ function __construct() { @@ -73,5 +81,9 @@ class LoginConfiguration extends AbstractModel if (array_key_exists("Password",$param) and $param["Password"] !== null) { $this->Password = $param["Password"]; } + + if (array_key_exists("KeyIds",$param) and $param["KeyIds"] !== null) { + $this->KeyIds = $param["KeyIds"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/ModifyDockerContainerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/ModifyDockerContainerRequest.php new file mode 100644 index 000000000..a72c91326 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/ModifyDockerContainerRequest.php @@ -0,0 +1,164 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ContainerId",$param) and $param["ContainerId"] !== null) { + $this->ContainerId = $param["ContainerId"]; + } + + if (array_key_exists("Envs",$param) and $param["Envs"] !== null) { + $this->Envs = []; + foreach ($param["Envs"] as $key => $value){ + $obj = new ContainerEnv(); + $obj->deserialize($value); + array_push($this->Envs, $obj); + } + } + + if (array_key_exists("PublishPorts",$param) and $param["PublishPorts"] !== null) { + $this->PublishPorts = []; + foreach ($param["PublishPorts"] as $key => $value){ + $obj = new DockerContainerPublishPort(); + $obj->deserialize($value); + array_push($this->PublishPorts, $obj); + } + } + + if (array_key_exists("Volumes",$param) and $param["Volumes"] !== null) { + $this->Volumes = []; + foreach ($param["Volumes"] as $key => $value){ + $obj = new DockerContainerVolume(); + $obj->deserialize($value); + array_push($this->Volumes, $obj); + } + } + + if (array_key_exists("Command",$param) and $param["Command"] !== null) { + $this->Command = $param["Command"]; + } + + if (array_key_exists("RestartPolicy",$param) and $param["RestartPolicy"] !== null) { + $this->RestartPolicy = $param["RestartPolicy"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/ModifyDockerContainerResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/ModifyDockerContainerResponse.php new file mode 100644 index 000000000..52c6327dc --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/ModifyDockerContainerResponse.php @@ -0,0 +1,65 @@ +DockerActivityId = $param["DockerActivityId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RemoveDockerContainersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RemoveDockerContainersRequest.php new file mode 100644 index 000000000..36bc3a87e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RemoveDockerContainersRequest.php @@ -0,0 +1,65 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ContainerIds",$param) and $param["ContainerIds"] !== null) { + $this->ContainerIds = $param["ContainerIds"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RemoveDockerContainersResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RemoveDockerContainersResponse.php new file mode 100644 index 000000000..add99ea9e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RemoveDockerContainersResponse.php @@ -0,0 +1,65 @@ +DockerActivityId = $param["DockerActivityId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RenameDockerContainerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RenameDockerContainerRequest.php new file mode 100644 index 000000000..31017e014 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RenameDockerContainerRequest.php @@ -0,0 +1,77 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ContainerId",$param) and $param["ContainerId"] !== null) { + $this->ContainerId = $param["ContainerId"]; + } + + if (array_key_exists("ContainerName",$param) and $param["ContainerName"] !== null) { + $this->ContainerName = $param["ContainerName"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RenameDockerContainerResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RenameDockerContainerResponse.php new file mode 100644 index 000000000..c66d500ed --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RenameDockerContainerResponse.php @@ -0,0 +1,65 @@ +DockerActivityId = $param["DockerActivityId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RerunDockerContainerRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RerunDockerContainerRequest.php new file mode 100644 index 000000000..ea22732d1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RerunDockerContainerRequest.php @@ -0,0 +1,78 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ContainerConfiguration",$param) and $param["ContainerConfiguration"] !== null) { + $this->ContainerConfiguration = new DockerContainerConfiguration(); + $this->ContainerConfiguration->deserialize($param["ContainerConfiguration"]); + } + + if (array_key_exists("ContainerId",$param) and $param["ContainerId"] !== null) { + $this->ContainerId = $param["ContainerId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RerunDockerContainerResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RerunDockerContainerResponse.php new file mode 100644 index 000000000..ab1365c2a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RerunDockerContainerResponse.php @@ -0,0 +1,65 @@ +DockerActivityId = $param["DockerActivityId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RestartDockerContainersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RestartDockerContainersRequest.php new file mode 100644 index 000000000..309fa97e1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RestartDockerContainersRequest.php @@ -0,0 +1,65 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ContainerIds",$param) and $param["ContainerIds"] !== null) { + $this->ContainerIds = $param["ContainerIds"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RestartDockerContainersResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RestartDockerContainersResponse.php new file mode 100644 index 000000000..758e93010 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RestartDockerContainersResponse.php @@ -0,0 +1,65 @@ +DockerActivityId = $param["DockerActivityId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RunDockerContainersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RunDockerContainersRequest.php new file mode 100644 index 000000000..c7c8dd2f8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RunDockerContainersRequest.php @@ -0,0 +1,70 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("Containers",$param) and $param["Containers"] !== null) { + $this->Containers = []; + foreach ($param["Containers"] as $key => $value){ + $obj = new DockerContainerConfiguration(); + $obj->deserialize($value); + array_push($this->Containers, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RunDockerContainersResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RunDockerContainersResponse.php new file mode 100644 index 000000000..eb6f2fb0b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/RunDockerContainersResponse.php @@ -0,0 +1,65 @@ +DockerActivitySet = $param["DockerActivitySet"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StartDockerContainersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StartDockerContainersRequest.php new file mode 100644 index 000000000..ebe400355 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StartDockerContainersRequest.php @@ -0,0 +1,65 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("ContainerIds",$param) and $param["ContainerIds"] !== null) { + $this->ContainerIds = $param["ContainerIds"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StartDockerContainersResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StartDockerContainersResponse.php new file mode 100644 index 000000000..ce824af03 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StartDockerContainersResponse.php @@ -0,0 +1,65 @@ +DockerActivityId = $param["DockerActivityId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/QueryCDBProxyRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StopDockerContainersRequest.php similarity index 64% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/QueryCDBProxyRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StopDockerContainersRequest.php index cf6595e50..5d2f1fa27 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/QueryCDBProxyRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StopDockerContainersRequest.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Lighthouse\V20200324\Models; use TencentCloud\Common\AbstractModel; /** - * QueryCDBProxy请求参数结构体 + * StopDockerContainers请求参数结构体 * - * @method string getInstanceId() 获取实例ID - * @method void setInstanceId(string $InstanceId) 设置实例ID - * @method string getProxyGroupId() 获取代理ID - * @method void setProxyGroupId(string $ProxyGroupId) 设置代理ID + * @method string getInstanceId() 获取实例ID。 + * @method void setInstanceId(string $InstanceId) 设置实例ID。 + * @method array getContainerIds() 获取容器ID列表。 + * @method void setContainerIds(array $ContainerIds) 设置容器ID列表。 */ -class QueryCDBProxyRequest extends AbstractModel +class StopDockerContainersRequest extends AbstractModel { /** - * @var string 实例ID + * @var string 实例ID。 */ public $InstanceId; /** - * @var string 代理ID + * @var array 容器ID列表。 */ - public $ProxyGroupId; + public $ContainerIds; /** - * @param string $InstanceId 实例ID - * @param string $ProxyGroupId 代理ID + * @param string $InstanceId 实例ID。 + * @param array $ContainerIds 容器ID列表。 */ function __construct() { @@ -58,8 +58,8 @@ class QueryCDBProxyRequest extends AbstractModel $this->InstanceId = $param["InstanceId"]; } - if (array_key_exists("ProxyGroupId",$param) and $param["ProxyGroupId"] !== null) { - $this->ProxyGroupId = $param["ProxyGroupId"]; + if (array_key_exists("ContainerIds",$param) and $param["ContainerIds"] !== null) { + $this->ContainerIds = $param["ContainerIds"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StopDockerContainersResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StopDockerContainersResponse.php new file mode 100644 index 000000000..9c14ee477 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Lighthouse/V20200324/Models/StopDockerContainersResponse.php @@ -0,0 +1,65 @@ +DockerActivityId = $param["DockerActivityId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/LiveClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/LiveClient.php index 6414df383..7e50d597c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/LiveClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/LiveClient.php @@ -130,14 +130,18 @@ DomainName+AppName+StreamName+TemplateId唯一标识单个转码规则,如需 * @method Models\DeletePullStreamConfigResponse DeletePullStreamConfig(Models\DeletePullStreamConfigRequest $req) 删除直播拉流配置。该接口已下线,请使用新接口 DeleteLivePullStreamTask。 * @method Models\DeleteRecordTaskResponse DeleteRecordTask(Models\DeleteRecordTaskRequest $req) 删除录制任务配置。删除操作不影响正在运行当中的任务,仅对删除之后新的推流有效。 * @method Models\DeleteScreenshotTaskResponse DeleteScreenshotTask(Models\DeleteScreenshotTaskRequest $req) 删除截图任务配置。删除操作不影响正在运行当中的任务,仅对删除之后新的推流有效。 - * @method Models\DescribeAllStreamPlayInfoListResponse DescribeAllStreamPlayInfoList(Models\DescribeAllStreamPlayInfoListRequest $req) 输入某个时间点(1分钟维度),查询该时间点所有流的下行信息。 + * @method Models\DescribeAllStreamPlayInfoListResponse DescribeAllStreamPlayInfoList(Models\DescribeAllStreamPlayInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +输入某个时间点(1分钟维度),查询该时间点所有流的下行信息。 * @method Models\DescribeAreaBillBandwidthAndFluxListResponse DescribeAreaBillBandwidthAndFluxList(Models\DescribeAreaBillBandwidthAndFluxListRequest $req) 海外分区直播播放带宽和流量数据查询。 * @method Models\DescribeBillBandwidthAndFluxListResponse DescribeBillBandwidthAndFluxList(Models\DescribeBillBandwidthAndFluxListRequest $req) 直播播放带宽和流量数据查询。 - * @method Models\DescribeCallbackRecordsListResponse DescribeCallbackRecordsList(Models\DescribeCallbackRecordsListRequest $req) 用于查询回调事件。 + * @method Models\DescribeCallbackRecordsListResponse DescribeCallbackRecordsList(Models\DescribeCallbackRecordsListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +用于查询回调事件。 * @method Models\DescribeConcurrentRecordStreamNumResponse DescribeConcurrentRecordStreamNum(Models\DescribeConcurrentRecordStreamNumRequest $req) 查询并发录制路数,对慢直播和普通直播适用。 * @method Models\DescribeDeliverBandwidthListResponse DescribeDeliverBandwidthList(Models\DescribeDeliverBandwidthListRequest $req) 查询直播转推计费带宽,查询时间范围最大支持3个月内的数据,时间跨度最长31天。 - * @method Models\DescribeGroupProIspPlayInfoListResponse DescribeGroupProIspPlayInfoList(Models\DescribeGroupProIspPlayInfoListRequest $req) 查询按省份和运营商分组的下行播放数据。 - * @method Models\DescribeHttpStatusInfoListResponse DescribeHttpStatusInfoList(Models\DescribeHttpStatusInfoListRequest $req) 查询某段时间内5分钟粒度的各播放http状态码的个数。 + * @method Models\DescribeGroupProIspPlayInfoListResponse DescribeGroupProIspPlayInfoList(Models\DescribeGroupProIspPlayInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询按省份和运营商分组的下行播放数据。 + * @method Models\DescribeHttpStatusInfoListResponse DescribeHttpStatusInfoList(Models\DescribeHttpStatusInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询某段时间内5分钟粒度的各播放http状态码的个数。 备注:数据延迟1小时,如10:00-10:59点的数据12点才能查到。 * @method Models\DescribeLiveCallbackRulesResponse DescribeLiveCallbackRules(Models\DescribeLiveCallbackRulesRequest $req) 获取回调规则列表 * @method Models\DescribeLiveCallbackTemplateResponse DescribeLiveCallbackTemplate(Models\DescribeLiveCallbackTemplateRequest $req) 获取单个回调模板。 @@ -148,7 +152,8 @@ DomainName+AppName+StreamName+TemplateId唯一标识单个转码规则,如需 * @method Models\DescribeLiveDomainResponse DescribeLiveDomain(Models\DescribeLiveDomainRequest $req) 查询直播域名信息。 * @method Models\DescribeLiveDomainCertResponse DescribeLiveDomainCert(Models\DescribeLiveDomainCertRequest $req) 获取域名证书信息。 * @method Models\DescribeLiveDomainCertBindingsResponse DescribeLiveDomainCertBindings(Models\DescribeLiveDomainCertBindingsRequest $req) 查询绑定证书的域名列表。 - * @method Models\DescribeLiveDomainPlayInfoListResponse DescribeLiveDomainPlayInfoList(Models\DescribeLiveDomainPlayInfoListRequest $req) 查询实时的域名维度下行播放数据,由于数据处理有耗时,接口默认查询4分钟前的准实时数据。 + * @method Models\DescribeLiveDomainPlayInfoListResponse DescribeLiveDomainPlayInfoList(Models\DescribeLiveDomainPlayInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询实时的域名维度下行播放数据,由于数据处理有耗时,接口默认查询4分钟前的准实时数据。 * @method Models\DescribeLiveDomainRefererResponse DescribeLiveDomainReferer(Models\DescribeLiveDomainRefererRequest $req) 查询直播域名 Referer 黑白名单配置。 由于 Referer 信息包含在 http 协议中,在开启配置后,播放协议为 rtmp 或 WebRTC 不会校验 Referer 配置,仍可正常播放。如需配置 Referer 鉴权建议使用 http-flv 或 http-hls 协议播放。 * @method Models\DescribeLiveDomainsResponse DescribeLiveDomains(Models\DescribeLiveDomainsRequest $req) 根据域名状态、类型等信息查询用户的域名信息。 @@ -185,7 +190,8 @@ DomainName+AppName+StreamName+TemplateId唯一标识单个转码规则,如需 * @method Models\DescribeLiveStreamPublishedListResponse DescribeLiveStreamPublishedList(Models\DescribeLiveStreamPublishedListRequest $req) 返回已经推过流的流列表。
    注意:分页最多支持查询1万条记录,可通过调整查询时间范围来获取更多数据。 - * @method Models\DescribeLiveStreamPushInfoListResponse DescribeLiveStreamPushInfoList(Models\DescribeLiveStreamPushInfoListRequest $req) 查询所有实时流的推流信息,包括客户端IP,服务端IP,帧率,码率,域名,开始推流时间。 + * @method Models\DescribeLiveStreamPushInfoListResponse DescribeLiveStreamPushInfoList(Models\DescribeLiveStreamPushInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询所有实时流的推流信息,包括客户端IP,服务端IP,帧率,码率,域名,开始推流时间。 * @method Models\DescribeLiveStreamStateResponse DescribeLiveStreamState(Models\DescribeLiveStreamStateRequest $req) 返回直播中、无推流或者禁播等状态。 使用建议: @@ -199,7 +205,8 @@ DomainName+AppName+StreamName+TemplateId唯一标识单个转码规则,如需 * @method Models\DescribeLiveTimeShiftBillInfoListResponse DescribeLiveTimeShiftBillInfoList(Models\DescribeLiveTimeShiftBillInfoListRequest $req) 提供给客户对账,按天统计,维度:推流域名、时移文件时长(累加)、配置天数(不累加)、时移总时长(累加)。 * @method Models\DescribeLiveTimeShiftRulesResponse DescribeLiveTimeShiftRules(Models\DescribeLiveTimeShiftRulesRequest $req) 获取直播时移规则列表。 * @method Models\DescribeLiveTimeShiftTemplatesResponse DescribeLiveTimeShiftTemplates(Models\DescribeLiveTimeShiftTemplatesRequest $req) 获取直播时移模板。 - * @method Models\DescribeLiveTranscodeDetailInfoResponse DescribeLiveTranscodeDetailInfo(Models\DescribeLiveTranscodeDetailInfoRequest $req) 支持查询某天或某段时间的转码详细信息。由于转码数据量较大,如果查询时间跨度太长可能会拉不到数据,可以尝试将查询时间范围缩小些再重试。 + * @method Models\DescribeLiveTranscodeDetailInfoResponse DescribeLiveTranscodeDetailInfo(Models\DescribeLiveTranscodeDetailInfoRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +支持查询某天或某段时间的转码详细信息。由于转码数据量较大,如果查询时间跨度太长可能会拉不到数据,可以尝试将查询时间范围缩小些再重试。 * @method Models\DescribeLiveTranscodeRulesResponse DescribeLiveTranscodeRules(Models\DescribeLiveTranscodeRulesRequest $req) 获取转码规则列表 * @method Models\DescribeLiveTranscodeTemplateResponse DescribeLiveTranscodeTemplate(Models\DescribeLiveTranscodeTemplateRequest $req) 获取单个转码模板。 * @method Models\DescribeLiveTranscodeTemplatesResponse DescribeLiveTranscodeTemplates(Models\DescribeLiveTranscodeTemplatesRequest $req) 获取转码模板列表。 @@ -213,12 +220,14 @@ DomainName+AppName+StreamName+TemplateId唯一标识单个转码规则,如需 * @method Models\DescribeLiveXP2PDetailInfoListResponse DescribeLiveXP2PDetailInfoList(Models\DescribeLiveXP2PDetailInfoListRequest $req) P2P流数据查询接口,用来获取流量、卡播和起播信息。 * @method Models\DescribeLogDownloadListResponse DescribeLogDownloadList(Models\DescribeLogDownloadListRequest $req) 批量获取日志URL。 * @method Models\DescribeMonitorReportResponse DescribeMonitorReport(Models\DescribeMonitorReportRequest $req) 用来查询监播场次7天内的智能识别、断流、低帧率等信息的汇总报告。 - * @method Models\DescribePlayErrorCodeDetailInfoListResponse DescribePlayErrorCodeDetailInfoList(Models\DescribePlayErrorCodeDetailInfoListRequest $req) 查询下行播放错误码信息,某段时间内1分钟粒度的各http错误码出现的次数,包括4xx,5xx。 - - - * @method Models\DescribePlayErrorCodeSumInfoListResponse DescribePlayErrorCodeSumInfoList(Models\DescribePlayErrorCodeSumInfoListRequest $req) 查询下行播放错误码信息。 - * @method Models\DescribeProIspPlaySumInfoListResponse DescribeProIspPlaySumInfoList(Models\DescribeProIspPlaySumInfoListRequest $req) 查询某段时间内每个国家地区每个省份每个运营商的平均每秒流量,总流量,总请求数信息。 - * @method Models\DescribeProvinceIspPlayInfoListResponse DescribeProvinceIspPlayInfoList(Models\DescribeProvinceIspPlayInfoListRequest $req) 查询某省份某运营商下行播放数据,包括带宽,流量,请求数,并发连接数信息。 + * @method Models\DescribePlayErrorCodeDetailInfoListResponse DescribePlayErrorCodeDetailInfoList(Models\DescribePlayErrorCodeDetailInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询下行播放错误码信息,某段时间内1分钟粒度的各http错误码出现的次数,包括4xx,5xx。 + * @method Models\DescribePlayErrorCodeSumInfoListResponse DescribePlayErrorCodeSumInfoList(Models\DescribePlayErrorCodeSumInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询下行播放错误码信息。 + * @method Models\DescribeProIspPlaySumInfoListResponse DescribeProIspPlaySumInfoList(Models\DescribeProIspPlaySumInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询某段时间内每个国家地区每个省份每个运营商的平均每秒流量,总流量,总请求数信息。 + * @method Models\DescribeProvinceIspPlayInfoListResponse DescribeProvinceIspPlayInfoList(Models\DescribeProvinceIspPlayInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询某省份某运营商下行播放数据,包括带宽,流量,请求数,并发连接数信息。 * @method Models\DescribePullStreamConfigsResponse DescribePullStreamConfigs(Models\DescribePullStreamConfigsRequest $req) 查询直播拉流配置。该接口已下线,请使用新接口 DescribeLivePullStreamTasks。 * @method Models\DescribePushBandwidthAndFluxListResponse DescribePushBandwidthAndFluxList(Models\DescribePushBandwidthAndFluxListRequest $req) 直播推流带宽和流量数据查询。 推流计费会先取全球推流用量和全球播放用量进行比较,满足计费条件后再按各地区用量出账。详情参见[计费文档](https://cloud.tencent.com/document/product/267/34175)。 @@ -232,12 +241,16 @@ DomainName+AppName+StreamName+TemplateId唯一标识单个转码规则,如需 - 使用前提 1. 仅用于查询由 CreateScreenshotTask接口创建的截图任务。 2. 不能查询被 DeleteScreenshotTask接口删除以及已过期(平台侧保留3个月)的截图任务。 - * @method Models\DescribeStreamDayPlayInfoListResponse DescribeStreamDayPlayInfoList(Models\DescribeStreamDayPlayInfoListRequest $req) 查询天维度每条流的播放数据,包括总流量等。 - * @method Models\DescribeStreamPlayInfoListResponse DescribeStreamPlayInfoList(Models\DescribeStreamPlayInfoListRequest $req) 查询播放数据,支持按流名称查询详细播放数据,也可按播放域名查询详细总数据,数据延迟4分钟左右。 - * @method Models\DescribeStreamPushInfoListResponse DescribeStreamPushInfoList(Models\DescribeStreamPushInfoListRequest $req) 查询流id的上行推流质量数据,包括音视频的帧率,码率,流逝时间,编码格式等。 + * @method Models\DescribeStreamDayPlayInfoListResponse DescribeStreamDayPlayInfoList(Models\DescribeStreamDayPlayInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询天维度每条流的播放数据,包括总流量等。 + * @method Models\DescribeStreamPlayInfoListResponse DescribeStreamPlayInfoList(Models\DescribeStreamPlayInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询播放数据,支持按流名称查询详细播放数据,也可按播放域名查询详细总数据,数据延迟4分钟左右。 + * @method Models\DescribeStreamPushInfoListResponse DescribeStreamPushInfoList(Models\DescribeStreamPushInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询流id的上行推流质量数据,包括音视频的帧率,码率,流逝时间,编码格式等。 * @method Models\DescribeTimeShiftRecordDetailResponse DescribeTimeShiftRecordDetail(Models\DescribeTimeShiftRecordDetailRequest $req) 前提调用 DescribeTimeShiftStreamList 获得请求必要参数。查询指定范围内的时移流录制详情,最大支持24小时范围查询。 * @method Models\DescribeTimeShiftStreamListResponse DescribeTimeShiftStreamList(Models\DescribeTimeShiftStreamListRequest $req) 查询某个时间范围内所有时移流列表。最大支持查询24小时内的数据。 - * @method Models\DescribeTopClientIpSumInfoListResponse DescribeTopClientIpSumInfoList(Models\DescribeTopClientIpSumInfoListRequest $req) 查询某段时间top n客户端ip汇总信息(暂支持top 1000) + * @method Models\DescribeTopClientIpSumInfoListResponse DescribeTopClientIpSumInfoList(Models\DescribeTopClientIpSumInfoListRequest $req) 该接口为监控数据接口,数据采集及统计方式与计费数据不同,仅供运营分析使用,不能用于计费对账参考。 +查询某段时间top n客户端ip汇总信息(暂支持top 1000) * @method Models\DescribeTranscodeTaskNumResponse DescribeTranscodeTaskNum(Models\DescribeTranscodeTaskNumRequest $req) 查询转码任务数。 * @method Models\DescribeUploadStreamNumsResponse DescribeUploadStreamNums(Models\DescribeUploadStreamNumsRequest $req) 直播上行路数查询。 * @method Models\DescribeVisitTopSumInfoListResponse DescribeVisitTopSumInfoList(Models\DescribeVisitTopSumInfoListRequest $req) 查询某时间段top n的域名或流id信息(暂支持top 1000)。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CommonMixInputParam.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CommonMixInputParam.php index f920e503b..e2c6c0df4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CommonMixInputParam.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CommonMixInputParam.php @@ -30,6 +30,8 @@ use TencentCloud\Common\AbstractModel; * @method void setLayoutParams(CommonMixLayoutParams $LayoutParams) 设置输入流布局参数。 * @method CommonMixCropParams getCropParams() 获取输入流裁剪参数。 * @method void setCropParams(CommonMixCropParams $CropParams) 设置输入流裁剪参数。 + * @method MixPortraitSegmentParams getPortraitSegmentParams() 获取抠图参数。 + * @method void setPortraitSegmentParams(MixPortraitSegmentParams $PortraitSegmentParams) 设置抠图参数。 */ class CommonMixInputParam extends AbstractModel { @@ -50,12 +52,18 @@ class CommonMixInputParam extends AbstractModel */ public $CropParams; + /** + * @var MixPortraitSegmentParams 抠图参数。 + */ + public $PortraitSegmentParams; + /** * @param string $InputStreamName 输入流名称。80字节以内,仅含字母、数字以及下划线的字符串。 当LayoutParams.InputType=0(音视频)/4(纯音频)/5(纯视频)时,该值为需要混流的流名称。 当LayoutParams.InputType=2(图片)/3(画布)时,该值仅用作标识输入,可用类似Canvas1、Pictrue1的名称。 * @param CommonMixLayoutParams $LayoutParams 输入流布局参数。 * @param CommonMixCropParams $CropParams 输入流裁剪参数。 + * @param MixPortraitSegmentParams $PortraitSegmentParams 抠图参数。 */ function __construct() { @@ -83,5 +91,10 @@ class CommonMixInputParam extends AbstractModel $this->CropParams = new CommonMixCropParams(); $this->CropParams->deserialize($param["CropParams"]); } + + if (array_key_exists("PortraitSegmentParams",$param) and $param["PortraitSegmentParams"] !== null) { + $this->PortraitSegmentParams = new MixPortraitSegmentParams(); + $this->PortraitSegmentParams->deserialize($param["PortraitSegmentParams"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CreateLivePullStreamTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CreateLivePullStreamTaskRequest.php index 1ff481e77..755cfcea5 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CreateLivePullStreamTaskRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CreateLivePullStreamTaskRequest.php @@ -40,6 +40,7 @@ SourceType 为点播(PullVodPushLive)可以填多个,上限30个。 4. 视频编码格式仅支持: H264, H265。 5. 音频编码格式仅支持: AAC。 6. 点播源请使用小文件,尽量时长保持在1小时内,较大文件打开和续播耗时较久,耗时超过15秒会有无法正常转推风险。 +7. 避免使用低频存储的文件,该类文件因低频存储,拉取时容易出现慢速,影响拉转推质量。 * @method void setSourceUrls(array $SourceUrls) 设置拉流源 url 列表。 SourceType 为直播(PullLivePushLive)只可以填1个, SourceType 为点播(PullVodPushLive)可以填多个,上限30个。 @@ -52,6 +53,7 @@ SourceType 为点播(PullVodPushLive)可以填多个,上限30个。 4. 视频编码格式仅支持: H264, H265。 5. 音频编码格式仅支持: AAC。 6. 点播源请使用小文件,尽量时长保持在1小时内,较大文件打开和续播耗时较久,耗时超过15秒会有无法正常转推风险。 +7. 避免使用低频存储的文件,该类文件因低频存储,拉取时容易出现慢速,影响拉转推质量。 * @method string getDomainName() 获取推流域名。 将拉取过来的流推到该域名。 注意:如果目标地址为非云直播,且样式不同于云直播,请使用 ToUrl 传入完整推流地址,详细用法请参考 ToUrl 参数说明。 @@ -230,6 +232,7 @@ SourceType 为点播(PullVodPushLive)可以填多个,上限30个。 4. 视频编码格式仅支持: H264, H265。 5. 音频编码格式仅支持: AAC。 6. 点播源请使用小文件,尽量时长保持在1小时内,较大文件打开和续播耗时较久,耗时超过15秒会有无法正常转推风险。 +7. 避免使用低频存储的文件,该类文件因低频存储,拉取时容易出现慢速,影响拉转推质量。 */ public $SourceUrls; @@ -403,6 +406,7 @@ SourceType 为点播(PullVodPushLive)可以填多个,上限30个。 4. 视频编码格式仅支持: H264, H265。 5. 音频编码格式仅支持: AAC。 6. 点播源请使用小文件,尽量时长保持在1小时内,较大文件打开和续播耗时较久,耗时超过15秒会有无法正常转推风险。 +7. 避免使用低频存储的文件,该类文件因低频存储,拉取时容易出现慢速,影响拉转推质量。 * @param string $DomainName 推流域名。 将拉取过来的流推到该域名。 注意:如果目标地址为非云直播,且样式不同于云直播,请使用 ToUrl 传入完整推流地址,详细用法请参考 ToUrl 参数说明。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CreateLiveRecordTemplateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CreateLiveRecordTemplateRequest.php index cbf4472d4..6046b98bb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CreateLiveRecordTemplateRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/CreateLiveRecordTemplateRequest.php @@ -43,7 +43,9 @@ use TencentCloud\Common\AbstractModel; * @method RecordParam getMp3Param() 获取Mp3录制参数,开启Mp3录制时设置。 * @method void setMp3Param(RecordParam $Mp3Param) 设置Mp3录制参数,开启Mp3录制时设置。 * @method boolean getRemoveWatermark() 获取是否去除水印,类型为慢直播时此参数无效。 +如果为false,则录制水印流或转码流;如果为true,则录制原始流。 * @method void setRemoveWatermark(boolean $RemoveWatermark) 设置是否去除水印,类型为慢直播时此参数无效。 +如果为false,则录制水印流或转码流;如果为true,则录制原始流。 * @method FlvSpecialParam getFlvSpecialParam() 获取FLV 录制特殊参数。 * @method void setFlvSpecialParam(FlvSpecialParam $FlvSpecialParam) 设置FLV 录制特殊参数。 */ @@ -98,6 +100,7 @@ class CreateLiveRecordTemplateRequest extends AbstractModel /** * @var boolean 是否去除水印,类型为慢直播时此参数无效。 +如果为false,则录制水印流或转码流;如果为true,则录制原始流。 */ public $RemoveWatermark; @@ -119,6 +122,7 @@ class CreateLiveRecordTemplateRequest extends AbstractModel * @param HlsSpecialParam $HlsSpecialParam HLS专属录制参数。 * @param RecordParam $Mp3Param Mp3录制参数,开启Mp3录制时设置。 * @param boolean $RemoveWatermark 是否去除水印,类型为慢直播时此参数无效。 +如果为false,则录制水印流或转码流;如果为true,则录制原始流。 * @param FlvSpecialParam $FlvSpecialParam FLV 录制特殊参数。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeGroupProIspPlayInfoListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeGroupProIspPlayInfoListRequest.php index 3cd4f1e53..2031f117a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeGroupProIspPlayInfoListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeGroupProIspPlayInfoListRequest.php @@ -20,11 +20,23 @@ use TencentCloud\Common\AbstractModel; /** * DescribeGroupProIspPlayInfoList请求参数结构体 * - * @method string getStartTime() 获取起始时间点,格式为yyyy-mm-dd HH:MM:SS。 - * @method void setStartTime(string $StartTime) 设置起始时间点,格式为yyyy-mm-dd HH:MM:SS。 - * @method string getEndTime() 获取结束时间点,格式为yyyy-mm-dd HH:MM:SS + * @method string getStartTime() 获取起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setStartTime(string $StartTime) 设置起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method string getEndTime() 获取结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 时间跨度在(0,3小时],支持最近1个月数据查询。 - * @method void setEndTime(string $EndTime) 设置结束时间点,格式为yyyy-mm-dd HH:MM:SS + * @method void setEndTime(string $EndTime) 设置结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 时间跨度在(0,3小时],支持最近1个月数据查询。 * @method array getPlayDomains() 获取播放域名,默认为不填,表示求总体数据。 * @method void setPlayDomains(array $PlayDomains) 设置播放域名,默认为不填,表示求总体数据。 @@ -38,12 +50,18 @@ use TencentCloud\Common\AbstractModel; class DescribeGroupProIspPlayInfoListRequest extends AbstractModel { /** - * @var string 起始时间点,格式为yyyy-mm-dd HH:MM:SS。 + * @var string 起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $StartTime; /** - * @var string 结束时间点,格式为yyyy-mm-dd HH:MM:SS + * @var string 结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 时间跨度在(0,3小时],支持最近1个月数据查询。 */ public $EndTime; @@ -69,8 +87,14 @@ class DescribeGroupProIspPlayInfoListRequest extends AbstractModel public $MainlandOrOversea; /** - * @param string $StartTime 起始时间点,格式为yyyy-mm-dd HH:MM:SS。 - * @param string $EndTime 结束时间点,格式为yyyy-mm-dd HH:MM:SS + * @param string $StartTime 起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @param string $EndTime 结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 时间跨度在(0,3小时],支持最近1个月数据查询。 * @param array $PlayDomains 播放域名,默认为不填,表示求总体数据。 * @param array $ProvinceNames 省份列表,默认不填,则返回各省份的数据。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeHttpStatusInfoListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeHttpStatusInfoListRequest.php index 5a2300dd9..c9b37dc37 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeHttpStatusInfoListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeHttpStatusInfoListRequest.php @@ -20,31 +20,40 @@ use TencentCloud\Common\AbstractModel; /** * DescribeHttpStatusInfoList请求参数结构体 * - * @method string getStartTime() 获取起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @method void setStartTime(string $StartTime) 设置起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @method string getEndTime() 获取结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 -注:最大时间跨度支持1天,支持最近3个月的数据查询。 - * @method void setEndTime(string $EndTime) 设置结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 -注:最大时间跨度支持1天,支持最近3个月的数据查询。 + * @method string getStartTime() 获取起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setStartTime(string $StartTime) 设置起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method string getEndTime() 获取结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setEndTime(string $EndTime) 设置结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @method array getPlayDomains() 获取播放域名列表。 * @method void setPlayDomains(array $PlayDomains) 设置播放域名列表。 */ class DescribeHttpStatusInfoListRequest extends AbstractModel { /** - * @var string 起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @var string 起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $StartTime; /** - * @var string 结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 -注:最大时间跨度支持1天,支持最近3个月的数据查询。 + * @var string 结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $EndTime; @@ -54,11 +63,14 @@ class DescribeHttpStatusInfoListRequest extends AbstractModel public $PlayDomains; /** - * @param string $StartTime 起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @param string $EndTime 结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 -注:最大时间跨度支持1天,支持最近3个月的数据查询。 + * @param string $StartTime 起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @param string $EndTime 结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @param array $PlayDomains 播放域名列表。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribePlayErrorCodeDetailInfoListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribePlayErrorCodeDetailInfoListRequest.php index 2e3b96e9f..2ccadacf4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribePlayErrorCodeDetailInfoListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribePlayErrorCodeDetailInfoListRequest.php @@ -20,15 +20,23 @@ use TencentCloud\Common\AbstractModel; /** * DescribePlayErrorCodeDetailInfoList请求参数结构体 * - * @method string getStartTime() 获取起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @method void setStartTime(string $StartTime) 设置起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @method string getEndTime() 获取结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @method string getStartTime() 获取起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setStartTime(string $StartTime) 设置起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method string getEndTime() 获取结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 - * @method void setEndTime(string $EndTime) 设置结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @method void setEndTime(string $EndTime) 设置结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 * @method integer getGranularity() 获取查询粒度: 1-1分钟粒度。 @@ -44,14 +52,18 @@ use TencentCloud\Common\AbstractModel; class DescribePlayErrorCodeDetailInfoListRequest extends AbstractModel { /** - * @var string 起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @var string 起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $StartTime; /** - * @var string 结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @var string 结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 */ public $EndTime; @@ -78,10 +90,14 @@ class DescribePlayErrorCodeDetailInfoListRequest extends AbstractModel public $MainlandOrOversea; /** - * @param string $StartTime 起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @param string $EndTime 结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @param string $StartTime 起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @param string $EndTime 结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 * @param integer $Granularity 查询粒度: 1-1分钟粒度。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeProIspPlaySumInfoListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeProIspPlaySumInfoListRequest.php index bbcc54062..93558d4ac 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeProIspPlaySumInfoListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeProIspPlaySumInfoListRequest.php @@ -20,15 +20,23 @@ use TencentCloud\Common\AbstractModel; /** * DescribeProIspPlaySumInfoList请求参数结构体 * - * @method string getStartTime() 获取起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @method void setStartTime(string $StartTime) 设置起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @method string getEndTime() 获取结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @method string getStartTime() 获取起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setStartTime(string $StartTime) 设置起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method string getEndTime() 获取结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 - * @method void setEndTime(string $EndTime) 设置结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @method void setEndTime(string $EndTime) 设置结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 * @method string getStatType() 获取统计的类型,可选值:”Province”(省份),”Isp”(运营商),“CountryOrArea”(国家或地区)。 * @method void setStatType(string $StatType) 设置统计的类型,可选值:”Province”(省份),”Isp”(运营商),“CountryOrArea”(国家或地区)。 @@ -46,14 +54,18 @@ use TencentCloud\Common\AbstractModel; class DescribeProIspPlaySumInfoListRequest extends AbstractModel { /** - * @var string 起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @var string 起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $StartTime; /** - * @var string 结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @var string 结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 */ public $EndTime; @@ -89,10 +101,14 @@ class DescribeProIspPlaySumInfoListRequest extends AbstractModel public $OutLanguage; /** - * @param string $StartTime 起始时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 - * @param string $EndTime 结束时间,北京时间, -格式:yyyy-mm-dd HH:MM:SS。 + * @param string $StartTime 起始时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @param string $EndTime 结束时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 * @param string $StatType 统计的类型,可选值:”Province”(省份),”Isp”(运营商),“CountryOrArea”(国家或地区)。 * @param array $PlayDomains 播放域名列表,不填则为全部。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeProvinceIspPlayInfoListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeProvinceIspPlayInfoListRequest.php index b1d5fe569..675d7abcf 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeProvinceIspPlayInfoListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeProvinceIspPlayInfoListRequest.php @@ -20,15 +20,23 @@ use TencentCloud\Common\AbstractModel; /** * DescribeProvinceIspPlayInfoList请求参数结构体 * - * @method string getStartTime() 获取起始时间点,当前使用北京时间, -例:2019-02-21 10:00:00。 - * @method void setStartTime(string $StartTime) 设置起始时间点,当前使用北京时间, -例:2019-02-21 10:00:00。 - * @method string getEndTime() 获取结束时间点,当前使用北京时间, -例:2019-02-21 12:00:00。 + * @method string getStartTime() 获取起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setStartTime(string $StartTime) 设置起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method string getEndTime() 获取结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 - * @method void setEndTime(string $EndTime) 设置结束时间点,当前使用北京时间, -例:2019-02-21 12:00:00。 + * @method void setEndTime(string $EndTime) 设置结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 * @method integer getGranularity() 获取支持如下粒度: 1:1分钟粒度(跨度不支持超过1天) @@ -64,14 +72,18 @@ use TencentCloud\Common\AbstractModel; class DescribeProvinceIspPlayInfoListRequest extends AbstractModel { /** - * @var string 起始时间点,当前使用北京时间, -例:2019-02-21 10:00:00。 + * @var string 起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $StartTime; /** - * @var string 结束时间点,当前使用北京时间, -例:2019-02-21 12:00:00。 + * @var string 结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 */ public $EndTime; @@ -120,10 +132,14 @@ class DescribeProvinceIspPlayInfoListRequest extends AbstractModel public $IpType; /** - * @param string $StartTime 起始时间点,当前使用北京时间, -例:2019-02-21 10:00:00。 - * @param string $EndTime 结束时间点,当前使用北京时间, -例:2019-02-21 12:00:00。 + * @param string $StartTime 起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @param string $EndTime 结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 注:EndTime 和 StartTime 只支持最近1天的数据查询。 * @param integer $Granularity 支持如下粒度: 1:1分钟粒度(跨度不支持超过1天) diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeStreamPushInfoListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeStreamPushInfoListRequest.php index b97329c14..b5cb4b36e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeStreamPushInfoListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeStreamPushInfoListRequest.php @@ -22,10 +22,24 @@ use TencentCloud\Common\AbstractModel; * * @method string getStreamName() 获取流名称。 * @method void setStreamName(string $StreamName) 设置流名称。 - * @method string getStartTime() 获取起始时间点,北京时间,格式为yyyy-mm-dd HH:MM:SS。 - * @method void setStartTime(string $StartTime) 设置起始时间点,北京时间,格式为yyyy-mm-dd HH:MM:SS。 - * @method string getEndTime() 获取结束时间点,北京时间,格式为yyyy-mm-dd HH:MM:SS,支持查询最近7天数据,建议查询时间跨度在3小时之内。 - * @method void setEndTime(string $EndTime) 设置结束时间点,北京时间,格式为yyyy-mm-dd HH:MM:SS,支持查询最近7天数据,建议查询时间跨度在3小时之内。 + * @method string getStartTime() 获取起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setStartTime(string $StartTime) 设置起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method string getEndTime() 获取结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 +支持查询最近7天数据,建议查询时间跨度在3小时之内。 + * @method void setEndTime(string $EndTime) 设置结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 +支持查询最近7天数据,建议查询时间跨度在3小时之内。 * @method string getPushDomain() 获取推流域名。 * @method void setPushDomain(string $PushDomain) 设置推流域名。 * @method string getAppName() 获取推流路径,与推流和播放地址中的AppName保持一致,默认为 live。 @@ -39,12 +53,19 @@ class DescribeStreamPushInfoListRequest extends AbstractModel public $StreamName; /** - * @var string 起始时间点,北京时间,格式为yyyy-mm-dd HH:MM:SS。 + * @var string 起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $StartTime; /** - * @var string 结束时间点,北京时间,格式为yyyy-mm-dd HH:MM:SS,支持查询最近7天数据,建议查询时间跨度在3小时之内。 + * @var string 结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 +支持查询最近7天数据,建议查询时间跨度在3小时之内。 */ public $EndTime; @@ -60,8 +81,15 @@ class DescribeStreamPushInfoListRequest extends AbstractModel /** * @param string $StreamName 流名称。 - * @param string $StartTime 起始时间点,北京时间,格式为yyyy-mm-dd HH:MM:SS。 - * @param string $EndTime 结束时间点,北京时间,格式为yyyy-mm-dd HH:MM:SS,支持查询最近7天数据,建议查询时间跨度在3小时之内。 + * @param string $StartTime 起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @param string $EndTime 结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 +支持查询最近7天数据,建议查询时间跨度在3小时之内。 * @param string $PushDomain 推流域名。 * @param string $AppName 推流路径,与推流和播放地址中的AppName保持一致,默认为 live。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeTopClientIpSumInfoListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeTopClientIpSumInfoListRequest.php index 6eff5dc47..04aa36edf 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeTopClientIpSumInfoListRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/DescribeTopClientIpSumInfoListRequest.php @@ -20,11 +20,23 @@ use TencentCloud\Common\AbstractModel; /** * DescribeTopClientIpSumInfoList请求参数结构体 * - * @method string getStartTime() 获取起始时间点,格式为yyyy-mm-dd HH:MM:SS。 - * @method void setStartTime(string $StartTime) 设置起始时间点,格式为yyyy-mm-dd HH:MM:SS。 - * @method string getEndTime() 获取结束时间点,格式为yyyy-mm-dd HH:MM:SS + * @method string getStartTime() 获取起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setStartTime(string $StartTime) 设置起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method string getEndTime() 获取结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 时间跨度在[0,4小时],支持最近1天数据查询。 - * @method void setEndTime(string $EndTime) 设置结束时间点,格式为yyyy-mm-dd HH:MM:SS + * @method void setEndTime(string $EndTime) 设置结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 时间跨度在[0,4小时],支持最近1天数据查询。 * @method array getPlayDomains() 获取播放域名,默认为不填,表示求总体数据。 * @method void setPlayDomains(array $PlayDomains) 设置播放域名,默认为不填,表示求总体数据。 @@ -42,12 +54,18 @@ use TencentCloud\Common\AbstractModel; class DescribeTopClientIpSumInfoListRequest extends AbstractModel { /** - * @var string 起始时间点,格式为yyyy-mm-dd HH:MM:SS。 + * @var string 起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $StartTime; /** - * @var string 结束时间点,格式为yyyy-mm-dd HH:MM:SS + * @var string 结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 时间跨度在[0,4小时],支持最近1天数据查询。 */ public $EndTime; @@ -83,8 +101,14 @@ class DescribeTopClientIpSumInfoListRequest extends AbstractModel public $OutLanguage; /** - * @param string $StartTime 起始时间点,格式为yyyy-mm-dd HH:MM:SS。 - * @param string $EndTime 结束时间点,格式为yyyy-mm-dd HH:MM:SS + * @param string $StartTime 起始时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @param string $EndTime 结束时间点, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 时间跨度在[0,4小时],支持最近1天数据查询。 * @param array $PlayDomains 播放域名,默认为不填,表示求总体数据。 * @param integer $PageNum 页号,范围是[1,1000],默认值是1。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/HttpCodeValue.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/HttpCodeValue.php index faf43429f..8b0e4e805 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/HttpCodeValue.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/HttpCodeValue.php @@ -20,8 +20,14 @@ use TencentCloud\Common\AbstractModel; /** * HTTP返回码数据信息 * - * @method string getTime() 获取时间,格式:yyyy-mm-dd HH:MM:SS。 - * @method void setTime(string $Time) 设置时间,格式:yyyy-mm-dd HH:MM:SS。 + * @method string getTime() 获取时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setTime(string $Time) 设置时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @method integer getNumbers() 获取次数。 * @method void setNumbers(integer $Numbers) 设置次数。 * @method float getPercentage() 获取占比。 @@ -30,7 +36,10 @@ use TencentCloud\Common\AbstractModel; class HttpCodeValue extends AbstractModel { /** - * @var string 时间,格式:yyyy-mm-dd HH:MM:SS。 + * @var string 时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $Time; @@ -45,7 +54,10 @@ class HttpCodeValue extends AbstractModel public $Percentage; /** - * @param string $Time 时间,格式:yyyy-mm-dd HH:MM:SS。 + * @param string $Time 时间, +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @param integer $Numbers 次数。 * @param float $Percentage 占比。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/HttpStatusData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/HttpStatusData.php index 4bbbc54d1..fbcc6f45a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/HttpStatusData.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/HttpStatusData.php @@ -21,9 +21,13 @@ use TencentCloud\Common\AbstractModel; * 播放错误码信息 * * @method string getTime() 获取数据时间点, -格式:yyyy-mm-dd HH:MM:SS。 +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @method void setTime(string $Time) 设置数据时间点, -格式:yyyy-mm-dd HH:MM:SS。 +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @method array getHttpStatusInfoList() 获取播放状态码详细信息。 * @method void setHttpStatusInfoList(array $HttpStatusInfoList) 设置播放状态码详细信息。 */ @@ -31,7 +35,9 @@ class HttpStatusData extends AbstractModel { /** * @var string 数据时间点, -格式:yyyy-mm-dd HH:MM:SS。 +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $Time; @@ -42,7 +48,9 @@ class HttpStatusData extends AbstractModel /** * @param string $Time 数据时间点, -格式:yyyy-mm-dd HH:MM:SS。 +使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @param array $HttpStatusInfoList 播放状态码详细信息。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/MixPortraitSegmentParams.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/MixPortraitSegmentParams.php new file mode 100644 index 000000000..9401b94bc --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/MixPortraitSegmentParams.php @@ -0,0 +1,85 @@ +Color = $param["Color"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/PushQualityData.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/PushQualityData.php index fbbed9ad3..b4780e043 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/PushQualityData.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Live/V20180801/Models/PushQualityData.php @@ -20,8 +20,12 @@ use TencentCloud\Common\AbstractModel; /** * 某条流的推流质量详情数据。 * - * @method string getTime() 获取数据时间,格式: %Y-%m-%d %H:%M:%S.%ms,精确到毫秒级。 - * @method void setTime(string $Time) 设置数据时间,格式: %Y-%m-%d %H:%M:%S.%ms,精确到毫秒级。 + * @method string getTime() 获取数据时间,使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 + * @method void setTime(string $Time) 设置数据时间,使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @method string getPushDomain() 获取推流域名。 * @method void setPushDomain(string $PushDomain) 设置推流域名。 * @method string getAppName() 获取推流路径。 @@ -72,7 +76,9 @@ use TencentCloud\Common\AbstractModel; class PushQualityData extends AbstractModel { /** - * @var string 数据时间,格式: %Y-%m-%d %H:%M:%S.%ms,精确到毫秒级。 + * @var string 数据时间,使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 */ public $Time; @@ -188,7 +194,9 @@ class PushQualityData extends AbstractModel public $ServerIp; /** - * @param string $Time 数据时间,格式: %Y-%m-%d %H:%M:%S.%ms,精确到毫秒级。 + * @param string $Time 数据时间,使用UTC格式时间, +例如:2019-01-08T10:00:00Z。 +注意:北京时间值为 UTC 时间值 + 8 小时,格式按照 ISO 8601 标准表示,详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。 * @param string $PushDomain 推流域名。 * @param string $AppName 推流路径。 * @param string $ClientIp 推流客户端 IP。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mna/V20210119/Models/GetDevicesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mna/V20210119/Models/GetDevicesRequest.php index 045cf8b11..61b69307c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mna/V20210119/Models/GetDevicesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mna/V20210119/Models/GetDevicesRequest.php @@ -26,6 +26,14 @@ use TencentCloud\Common\AbstractModel; * @method void setPageNumber(integer $PageNumber) 设置当前查看页码,PageSize、PageNumber值均为-1 时,按照1页无限制条数匹配所有设备 * @method string getKeyword() 获取搜索设备的关键字(ID或者设备名),为空时匹配所有设备 * @method void setKeyword(string $Keyword) 设置搜索设备的关键字(ID或者设备名),为空时匹配所有设备 + * @method integer getDeviceType() 获取DeviceType +不传:返回所有设备; +1:自有设备; +2:三方设备 + * @method void setDeviceType(integer $DeviceType) 设置DeviceType +不传:返回所有设备; +1:自有设备; +2:三方设备 */ class GetDevicesRequest extends AbstractModel { @@ -44,10 +52,22 @@ class GetDevicesRequest extends AbstractModel */ public $Keyword; + /** + * @var integer DeviceType +不传:返回所有设备; +1:自有设备; +2:三方设备 + */ + public $DeviceType; + /** * @param integer $PageSize 每页显示记录数,PageSize、PageNumber值均为-1 时,按照1页无限制条数匹配所有设备 * @param integer $PageNumber 当前查看页码,PageSize、PageNumber值均为-1 时,按照1页无限制条数匹配所有设备 * @param string $Keyword 搜索设备的关键字(ID或者设备名),为空时匹配所有设备 + * @param integer $DeviceType DeviceType +不传:返回所有设备; +1:自有设备; +2:三方设备 */ function __construct() { @@ -73,5 +93,9 @@ class GetDevicesRequest extends AbstractModel if (array_key_exists("Keyword",$param) and $param["Keyword"] !== null) { $this->Keyword = $param["Keyword"]; } + + if (array_key_exists("DeviceType",$param) and $param["DeviceType"] !== null) { + $this->DeviceType = $param["DeviceType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/AudioTemplateInfoForUpdate.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/AudioTemplateInfoForUpdate.php index 481aa8281..785528935 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/AudioTemplateInfoForUpdate.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/AudioTemplateInfoForUpdate.php @@ -36,6 +36,7 @@ use TencentCloud\Common\AbstractModel; 当外层参数 Container 为 hls 时,可选值为:
  • libfdk_aac;
  • libmp3lame。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @method void setCodec(string $Codec) 设置音频流的编码格式。 当外层参数 Container 为 mp3 时,可选值为:
  • libmp3lame。
  • @@ -52,30 +53,39 @@ use TencentCloud\Common\AbstractModel; 当外层参数 Container 为 hls 时,可选值为:
  • libfdk_aac;
  • libmp3lame。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getBitrate() 获取音频流的码率,取值范围:0 和 [26, 256],单位:kbps。 当取值为 0,表示音频码率和原始音频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setBitrate(integer $Bitrate) 设置音频流的码率,取值范围:0 和 [26, 256],单位:kbps。 当取值为 0,表示音频码率和原始音频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getSampleRate() 获取音频流的采样率,可选值:
  • 32000
  • 44100
  • 48000
  • 单位:Hz。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setSampleRate(integer $SampleRate) 设置音频流的采样率,可选值:
  • 32000
  • 44100
  • 48000
  • 单位:Hz。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getAudioChannel() 获取音频通道方式,可选值:
  • 1:单通道
  • 2:双通道
  • 6:立体声
  • 当媒体的封装格式是音频格式时(flac,ogg,mp3,m4a)时,声道数不允许设为立体声。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setAudioChannel(integer $AudioChannel) 设置音频通道方式,可选值:
  • 1:单通道
  • 2:双通道
  • 6:立体声
  • 当媒体的封装格式是音频格式时(flac,ogg,mp3,m4a)时,声道数不允许设为立体声。 +注意:此字段可能返回 null,表示取不到有效值。 * @method array getStreamSelects() 获取指定输出要保留的音频轨道。默认是全部保留源的。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setStreamSelects(array $StreamSelects) 设置指定输出要保留的音频轨道。默认是全部保留源的。 +注意:此字段可能返回 null,表示取不到有效值。 */ class AudioTemplateInfoForUpdate extends AbstractModel { @@ -96,11 +106,13 @@ class AudioTemplateInfoForUpdate extends AbstractModel 当外层参数 Container 为 hls 时,可选值为:
  • libfdk_aac;
  • libmp3lame。
  • +注意:此字段可能返回 null,表示取不到有效值。 */ public $Codec; /** * @var integer 音频流的码率,取值范围:0 和 [26, 256],单位:kbps。 当取值为 0,表示音频码率和原始音频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Bitrate; @@ -110,6 +122,7 @@ class AudioTemplateInfoForUpdate extends AbstractModel
  • 44100
  • 48000
  • 单位:Hz。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $SampleRate; @@ -119,11 +132,13 @@ class AudioTemplateInfoForUpdate extends AbstractModel
  • 2:双通道
  • 6:立体声
  • 当媒体的封装格式是音频格式时(flac,ogg,mp3,m4a)时,声道数不允许设为立体声。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $AudioChannel; /** * @var array 指定输出要保留的音频轨道。默认是全部保留源的。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $StreamSelects; @@ -144,18 +159,23 @@ class AudioTemplateInfoForUpdate extends AbstractModel 当外层参数 Container 为 hls 时,可选值为:
  • libfdk_aac;
  • libmp3lame。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Bitrate 音频流的码率,取值范围:0 和 [26, 256],单位:kbps。 当取值为 0,表示音频码率和原始音频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $SampleRate 音频流的采样率,可选值:
  • 32000
  • 44100
  • 48000
  • 单位:Hz。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $AudioChannel 音频通道方式,可选值:
  • 1:单通道
  • 2:双通道
  • 6:立体声
  • 当媒体的封装格式是音频格式时(flac,ogg,mp3,m4a)时,声道数不允许设为立体声。 +注意:此字段可能返回 null,表示取不到有效值。 * @param array $StreamSelects 指定输出要保留的音频轨道。默认是全部保留源的。 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/OverrideTranscodeParameter.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/OverrideTranscodeParameter.php index f424849c3..1fc32031b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/OverrideTranscodeParameter.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/OverrideTranscodeParameter.php @@ -49,6 +49,10 @@ use TencentCloud\Common\AbstractModel; * @method array getAddonAudioStream() 获取外挂音轨参数。 注意:此字段可能返回 null,表示取不到有效值。 * @method void setAddonAudioStream(array $AddonAudioStream) 设置外挂音轨参数。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getStdExtInfo() 获取转码扩展字段。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setStdExtInfo(string $StdExtInfo) 设置转码扩展字段。 注意:此字段可能返回 null,表示取不到有效值。 */ class OverrideTranscodeParameter extends AbstractModel @@ -100,6 +104,12 @@ class OverrideTranscodeParameter extends AbstractModel */ public $AddonAudioStream; + /** + * @var string 转码扩展字段。 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $StdExtInfo; + /** * @param string $Container 封装格式,可选值:mp4、flv、hls、mp3、flac、ogg、m4a。其中,mp3、flac、ogg、m4a 为纯音频文件。 * @param integer $RemoveVideo 是否去除视频数据,取值: @@ -115,6 +125,8 @@ class OverrideTranscodeParameter extends AbstractModel * @param SubtitleTemplate $SubtitleTemplate 字幕流配置参数。 注意:此字段可能返回 null,表示取不到有效值。 * @param array $AddonAudioStream 外挂音轨参数。 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $StdExtInfo 转码扩展字段。 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -170,5 +182,9 @@ class OverrideTranscodeParameter extends AbstractModel array_push($this->AddonAudioStream, $obj); } } + + if (array_key_exists("StdExtInfo",$param) and $param["StdExtInfo"] !== null) { + $this->StdExtInfo = $param["StdExtInfo"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/S3InputInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/S3InputInfo.php index 70781a290..5e55b15ec 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/S3InputInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/S3InputInfo.php @@ -21,26 +21,37 @@ use TencentCloud\Common\AbstractModel; * AWS S3存储输入 * * @method string getS3Bucket() 获取S3 bucket。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setS3Bucket(string $S3Bucket) 设置S3 bucket。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getS3Region() 获取S3 bucket 对应的区域,目前支持: us-east-1 eu-west-3 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setS3Region(string $S3Region) 设置S3 bucket 对应的区域,目前支持: us-east-1 eu-west-3 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getS3Object() 获取S3 bucket 中的媒体资源路径。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setS3Object(string $S3Object) 设置S3 bucket 中的媒体资源路径。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getS3SecretId() 获取AWS 内网访问 媒体资源的秘钥id。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setS3SecretId(string $S3SecretId) 设置AWS 内网访问 媒体资源的秘钥id。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getS3SecretKey() 获取AWS 内网访问 媒体资源的秘钥key。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setS3SecretKey(string $S3SecretKey) 设置AWS 内网访问 媒体资源的秘钥key。 +注意:此字段可能返回 null,表示取不到有效值。 */ class S3InputInfo extends AbstractModel { /** * @var string S3 bucket。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $S3Bucket; @@ -49,33 +60,42 @@ class S3InputInfo extends AbstractModel us-east-1 eu-west-3 +注意:此字段可能返回 null,表示取不到有效值。 */ public $S3Region; /** * @var string S3 bucket 中的媒体资源路径。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $S3Object; /** * @var string AWS 内网访问 媒体资源的秘钥id。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $S3SecretId; /** * @var string AWS 内网访问 媒体资源的秘钥key。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $S3SecretKey; /** * @param string $S3Bucket S3 bucket。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $S3Region S3 bucket 对应的区域,目前支持: us-east-1 eu-west-3 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $S3Object S3 bucket 中的媒体资源路径。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $S3SecretId AWS 内网访问 媒体资源的秘钥id。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $S3SecretKey AWS 内网访问 媒体资源的秘钥key。 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/SubtitleTemplate.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/SubtitleTemplate.php index 506aec8a9..c4f3b28eb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/SubtitleTemplate.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/SubtitleTemplate.php @@ -21,43 +21,57 @@ use TencentCloud\Common\AbstractModel; * 字幕流配置参数。 * * @method string getPath() 获取要压制到视频中的字幕文件地址。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setPath(string $Path) 设置要压制到视频中的字幕文件地址。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getStreamIndex() 获取指定要压制到视频中的字幕轨道,如果有指定Path,则Path 优先级更高。Path 和 StreamIndex 至少指定一个。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setStreamIndex(integer $StreamIndex) 设置指定要压制到视频中的字幕轨道,如果有指定Path,则Path 优先级更高。Path 和 StreamIndex 至少指定一个。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getFontType() 获取字体类型,
  • hei.ttf:黑体
  • song.ttf:宋体
  • simkai.ttf:楷体
  • arial.ttf:仅支持英文
  • 默认hei.ttf +注意:此字段可能返回 null,表示取不到有效值。 * @method void setFontType(string $FontType) 设置字体类型,
  • hei.ttf:黑体
  • song.ttf:宋体
  • simkai.ttf:楷体
  • arial.ttf:仅支持英文
  • 默认hei.ttf +注意:此字段可能返回 null,表示取不到有效值。 * @method string getFontSize() 获取字体大小,格式:Npx,N 为数值,不指定则以字幕文件中为准。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setFontSize(string $FontSize) 设置字体大小,格式:Npx,N 为数值,不指定则以字幕文件中为准。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getFontColor() 获取字体颜色,格式:0xRRGGBB,默认值:0xFFFFFF(白色) +注意:此字段可能返回 null,表示取不到有效值。 * @method void setFontColor(string $FontColor) 设置字体颜色,格式:0xRRGGBB,默认值:0xFFFFFF(白色) +注意:此字段可能返回 null,表示取不到有效值。 * @method float getFontAlpha() 获取文字透明度,取值范围:(0, 1]
  • 0:完全透明
  • 1:完全不透明
  • 默认值:1。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setFontAlpha(float $FontAlpha) 设置文字透明度,取值范围:(0, 1]
  • 0:完全透明
  • 1:完全不透明
  • 默认值:1。 +注意:此字段可能返回 null,表示取不到有效值。 */ class SubtitleTemplate extends AbstractModel { /** * @var string 要压制到视频中的字幕文件地址。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Path; /** * @var integer 指定要压制到视频中的字幕轨道,如果有指定Path,则Path 优先级更高。Path 和 StreamIndex 至少指定一个。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $StreamIndex; @@ -68,16 +82,19 @@ class SubtitleTemplate extends AbstractModel
  • simkai.ttf:楷体
  • arial.ttf:仅支持英文
  • 默认hei.ttf +注意:此字段可能返回 null,表示取不到有效值。 */ public $FontType; /** * @var string 字体大小,格式:Npx,N 为数值,不指定则以字幕文件中为准。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $FontSize; /** * @var string 字体颜色,格式:0xRRGGBB,默认值:0xFFFFFF(白色) +注意:此字段可能返回 null,表示取不到有效值。 */ public $FontColor; @@ -86,24 +103,31 @@ class SubtitleTemplate extends AbstractModel
  • 0:完全透明
  • 1:完全不透明
  • 默认值:1。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $FontAlpha; /** * @param string $Path 要压制到视频中的字幕文件地址。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $StreamIndex 指定要压制到视频中的字幕轨道,如果有指定Path,则Path 优先级更高。Path 和 StreamIndex 至少指定一个。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $FontType 字体类型,
  • hei.ttf:黑体
  • song.ttf:宋体
  • simkai.ttf:楷体
  • arial.ttf:仅支持英文
  • 默认hei.ttf +注意:此字段可能返回 null,表示取不到有效值。 * @param string $FontSize 字体大小,格式:Npx,N 为数值,不指定则以字幕文件中为准。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $FontColor 字体颜色,格式:0xRRGGBB,默认值:0xFFFFFF(白色) +注意:此字段可能返回 null,表示取不到有效值。 * @param float $FontAlpha 文字透明度,取值范围:(0, 1]
  • 0:完全透明
  • 1:完全不透明
  • 默认值:1。 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/TEHDConfigForUpdate.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/TEHDConfigForUpdate.php index ddb159e0d..3c31451ae 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/TEHDConfigForUpdate.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/TEHDConfigForUpdate.php @@ -24,12 +24,16 @@ use TencentCloud\Common\AbstractModel;
  • TEHD-100:极速高清-100(视频极速高清)。
  • TEHD-200:极速高清-200(音频极速高清)。
  • 不填代表不修改。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setType(string $Type) 设置极速高清类型,可选值:
  • TEHD-100:极速高清-100(视频极速高清)。
  • TEHD-200:极速高清-200(音频极速高清)。
  • 不填代表不修改。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getMaxVideoBitrate() 获取视频码率上限,不填代表不修改。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setMaxVideoBitrate(integer $MaxVideoBitrate) 设置视频码率上限,不填代表不修改。 +注意:此字段可能返回 null,表示取不到有效值。 */ class TEHDConfigForUpdate extends AbstractModel { @@ -38,11 +42,13 @@ class TEHDConfigForUpdate extends AbstractModel
  • TEHD-100:极速高清-100(视频极速高清)。
  • TEHD-200:极速高清-200(音频极速高清)。
  • 不填代表不修改。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Type; /** * @var integer 视频码率上限,不填代表不修改。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $MaxVideoBitrate; @@ -51,7 +57,9 @@ class TEHDConfigForUpdate extends AbstractModel
  • TEHD-100:极速高清-100(视频极速高清)。
  • TEHD-200:极速高清-200(音频极速高清)。
  • 不填代表不修改。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $MaxVideoBitrate 视频码率上限,不填代表不修改。 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/VideoTemplateInfoForUpdate.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/VideoTemplateInfoForUpdate.php index 3375b847e..28cad3a66 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/VideoTemplateInfoForUpdate.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Mps/V20190612/Models/VideoTemplateInfoForUpdate.php @@ -26,64 +26,84 @@ use TencentCloud\Common\AbstractModel;
  • av1:AOMedia Video 1 编码
  • 注意:目前 H.265 编码必须指定分辨率,并且需要在 640*480 以内。 注意:av1 编码容器目前只支持 mp4 。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setCodec(string $Codec) 设置视频流的编码格式,可选值:
  • libx264:H.264 编码
  • libx265:H.265 编码
  • av1:AOMedia Video 1 编码
  • 注意:目前 H.265 编码必须指定分辨率,并且需要在 640*480 以内。 注意:av1 编码容器目前只支持 mp4 。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getFps() 获取视频帧率,取值范围:[0, 120],单位:Hz。 当取值为 0,表示帧率和原始视频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setFps(integer $Fps) 设置视频帧率,取值范围:[0, 120],单位:Hz。 当取值为 0,表示帧率和原始视频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getBitrate() 获取视频流的码率,取值范围:0 和 [128, 35000],单位:kbps。 当取值为 0,表示视频码率和原始视频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setBitrate(integer $Bitrate) 设置视频流的码率,取值范围:0 和 [128, 35000],单位:kbps。 当取值为 0,表示视频码率和原始视频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getResolutionAdaptive() 获取分辨率自适应,可选值:
  • open:开启,此时,Width 代表视频的长边,Height 表示视频的短边;
  • close:关闭,此时,Width 代表视频的宽度,Height 表示视频的高度。
  • 注意:自适应模式时,Width不能小于Height。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setResolutionAdaptive(string $ResolutionAdaptive) 设置分辨率自适应,可选值:
  • open:开启,此时,Width 代表视频的长边,Height 表示视频的短边;
  • close:关闭,此时,Width 代表视频的宽度,Height 表示视频的高度。
  • 注意:自适应模式时,Width不能小于Height。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getWidth() 获取视频流宽度(或长边)的最大值,取值范围:0 和 [128, 4096],单位:px。
  • 当 Width、Height 均为 0,则分辨率同源;
  • 当 Width 为 0,Height 非 0,则 Width 按比例缩放;
  • 当 Width 非 0,Height 为 0,则 Height 按比例缩放;
  • 当 Width、Height 均非 0,则分辨率按用户指定。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @method void setWidth(integer $Width) 设置视频流宽度(或长边)的最大值,取值范围:0 和 [128, 4096],单位:px。
  • 当 Width、Height 均为 0,则分辨率同源;
  • 当 Width 为 0,Height 非 0,则 Width 按比例缩放;
  • 当 Width 非 0,Height 为 0,则 Height 按比例缩放;
  • 当 Width、Height 均非 0,则分辨率按用户指定。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getHeight() 获取视频流高度(或短边)的最大值,取值范围:0 和 [128, 4096],单位:px。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setHeight(integer $Height) 设置视频流高度(或短边)的最大值,取值范围:0 和 [128, 4096],单位:px。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getGop() 获取关键帧 I 帧之间的间隔,取值范围:0 和 [1, 100000],单位:帧数。当填 0 时,系统将自动设置 gop 长度。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setGop(integer $Gop) 设置关键帧 I 帧之间的间隔,取值范围:0 和 [1, 100000],单位:帧数。当填 0 时,系统将自动设置 gop 长度。 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getFillType() 获取填充方式,当视频流配置宽高参数与原始视频的宽高比不一致时,对转码的处理方式,即为“填充”。可选填充方式:
  • stretch:拉伸,对每一帧进行拉伸,填满整个画面,可能导致转码后的视频被“压扁“或者“拉长“;
  • black:留黑,保持视频宽高比不变,边缘剩余部分使用黑色填充。
  • white:留白,保持视频宽高比不变,边缘剩余部分使用白色填充。
  • gauss:高斯模糊,保持视频宽高比不变,边缘剩余部分使用高斯模糊填充。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @method void setFillType(string $FillType) 设置填充方式,当视频流配置宽高参数与原始视频的宽高比不一致时,对转码的处理方式,即为“填充”。可选填充方式:
  • stretch:拉伸,对每一帧进行拉伸,填满整个画面,可能导致转码后的视频被“压扁“或者“拉长“;
  • black:留黑,保持视频宽高比不变,边缘剩余部分使用黑色填充。
  • white:留白,保持视频宽高比不变,边缘剩余部分使用白色填充。
  • gauss:高斯模糊,保持视频宽高比不变,边缘剩余部分使用高斯模糊填充。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getVcrf() 获取视频恒定码率控制因子。取值范围为[0, 51],填0表示禁用该参数。 如果没有特殊需求,不建议指定该参数。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setVcrf(integer $Vcrf) 设置视频恒定码率控制因子。取值范围为[0, 51],填0表示禁用该参数。 如果没有特殊需求,不建议指定该参数。 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getContentAdaptStream() 获取内容自适应编码。可选值:
  • 0:不开启
  • 1:开启
  • 默认值: 0. 当开启该参数时,将会自适应生成多个不同分辨率,不同码率的码流, 其中VideoTemplate的宽和高为多个码流中的最大分辨率,VideoTemplate中的码率为多个码流中的最高码率, VideoTemplate中的vcrf为多个码流中的最高质量。 当不设置分辨率、码率和vcrf时, ContentAdaptStream 参数生成的最高分辨率为视频源的分辨率,视频质量为接近vmaf95分。 若要开启该参数或了解计费细节, 请联系您的腾讯云商务。 +注意:此字段可能返回 null,表示取不到有效值。 * @method void setContentAdaptStream(integer $ContentAdaptStream) 设置内容自适应编码。可选值:
  • 0:不开启
  • 1:开启
  • 默认值: 0. 当开启该参数时,将会自适应生成多个不同分辨率,不同码率的码流, 其中VideoTemplate的宽和高为多个码流中的最大分辨率,VideoTemplate中的码率为多个码流中的最高码率, VideoTemplate中的vcrf为多个码流中的最高质量。 当不设置分辨率、码率和vcrf时, ContentAdaptStream 参数生成的最高分辨率为视频源的分辨率,视频质量为接近vmaf95分。 若要开启该参数或了解计费细节, 请联系您的腾讯云商务。 +注意:此字段可能返回 null,表示取不到有效值。 */ class VideoTemplateInfoForUpdate extends AbstractModel { @@ -94,18 +114,21 @@ class VideoTemplateInfoForUpdate extends AbstractModel
  • av1:AOMedia Video 1 编码
  • 注意:目前 H.265 编码必须指定分辨率,并且需要在 640*480 以内。 注意:av1 编码容器目前只支持 mp4 。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Codec; /** * @var integer 视频帧率,取值范围:[0, 120],单位:Hz。 当取值为 0,表示帧率和原始视频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Fps; /** * @var integer 视频流的码率,取值范围:0 和 [128, 35000],单位:kbps。 当取值为 0,表示视频码率和原始视频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Bitrate; @@ -114,6 +137,7 @@ class VideoTemplateInfoForUpdate extends AbstractModel
  • open:开启,此时,Width 代表视频的长边,Height 表示视频的短边;
  • close:关闭,此时,Width 代表视频的宽度,Height 表示视频的高度。
  • 注意:自适应模式时,Width不能小于Height。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $ResolutionAdaptive; @@ -123,16 +147,19 @@ class VideoTemplateInfoForUpdate extends AbstractModel
  • 当 Width 为 0,Height 非 0,则 Width 按比例缩放;
  • 当 Width 非 0,Height 为 0,则 Height 按比例缩放;
  • 当 Width、Height 均非 0,则分辨率按用户指定。
  • +注意:此字段可能返回 null,表示取不到有效值。 */ public $Width; /** * @var integer 视频流高度(或短边)的最大值,取值范围:0 和 [128, 4096],单位:px。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Height; /** * @var integer 关键帧 I 帧之间的间隔,取值范围:0 和 [1, 100000],单位:帧数。当填 0 时,系统将自动设置 gop 长度。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Gop; @@ -142,12 +169,14 @@ class VideoTemplateInfoForUpdate extends AbstractModel
  • black:留黑,保持视频宽高比不变,边缘剩余部分使用黑色填充。
  • white:留白,保持视频宽高比不变,边缘剩余部分使用白色填充。
  • gauss:高斯模糊,保持视频宽高比不变,边缘剩余部分使用高斯模糊填充。
  • +注意:此字段可能返回 null,表示取不到有效值。 */ public $FillType; /** * @var integer 视频恒定码率控制因子。取值范围为[0, 51],填0表示禁用该参数。 如果没有特殊需求,不建议指定该参数。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $Vcrf; @@ -156,6 +185,7 @@ class VideoTemplateInfoForUpdate extends AbstractModel
  • 0:不开启
  • 1:开启
  • 默认值: 0. 当开启该参数时,将会自适应生成多个不同分辨率,不同码率的码流, 其中VideoTemplate的宽和高为多个码流中的最大分辨率,VideoTemplate中的码率为多个码流中的最高码率, VideoTemplate中的vcrf为多个码流中的最高质量。 当不设置分辨率、码率和vcrf时, ContentAdaptStream 参数生成的最高分辨率为视频源的分辨率,视频质量为接近vmaf95分。 若要开启该参数或了解计费细节, 请联系您的腾讯云商务。 +注意:此字段可能返回 null,表示取不到有效值。 */ public $ContentAdaptStream; @@ -166,32 +196,42 @@ class VideoTemplateInfoForUpdate extends AbstractModel
  • av1:AOMedia Video 1 编码
  • 注意:目前 H.265 编码必须指定分辨率,并且需要在 640*480 以内。 注意:av1 编码容器目前只支持 mp4 。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Fps 视频帧率,取值范围:[0, 120],单位:Hz。 当取值为 0,表示帧率和原始视频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Bitrate 视频流的码率,取值范围:0 和 [128, 35000],单位:kbps。 当取值为 0,表示视频码率和原始视频保持一致。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $ResolutionAdaptive 分辨率自适应,可选值:
  • open:开启,此时,Width 代表视频的长边,Height 表示视频的短边;
  • close:关闭,此时,Width 代表视频的宽度,Height 表示视频的高度。
  • 注意:自适应模式时,Width不能小于Height。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Width 视频流宽度(或长边)的最大值,取值范围:0 和 [128, 4096],单位:px。
  • 当 Width、Height 均为 0,则分辨率同源;
  • 当 Width 为 0,Height 非 0,则 Width 按比例缩放;
  • 当 Width 非 0,Height 为 0,则 Height 按比例缩放;
  • 当 Width、Height 均非 0,则分辨率按用户指定。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Height 视频流高度(或短边)的最大值,取值范围:0 和 [128, 4096],单位:px。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Gop 关键帧 I 帧之间的间隔,取值范围:0 和 [1, 100000],单位:帧数。当填 0 时,系统将自动设置 gop 长度。 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $FillType 填充方式,当视频流配置宽高参数与原始视频的宽高比不一致时,对转码的处理方式,即为“填充”。可选填充方式:
  • stretch:拉伸,对每一帧进行拉伸,填满整个画面,可能导致转码后的视频被“压扁“或者“拉长“;
  • black:留黑,保持视频宽高比不变,边缘剩余部分使用黑色填充。
  • white:留白,保持视频宽高比不变,边缘剩余部分使用白色填充。
  • gauss:高斯模糊,保持视频宽高比不变,边缘剩余部分使用高斯模糊填充。
  • +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Vcrf 视频恒定码率控制因子。取值范围为[0, 51],填0表示禁用该参数。 如果没有特殊需求,不建议指定该参数。 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $ContentAdaptStream 内容自适应编码。可选值:
  • 0:不开启
  • 1:开启
  • 默认值: 0. 当开启该参数时,将会自适应生成多个不同分辨率,不同码率的码流, 其中VideoTemplate的宽和高为多个码流中的最大分辨率,VideoTemplate中的码率为多个码流中的最高码率, VideoTemplate中的vcrf为多个码流中的最高质量。 当不设置分辨率、码率和vcrf时, ContentAdaptStream 参数生成的最高分辨率为视频源的分辨率,视频质量为接近vmaf95分。 若要开启该参数或了解计费细节, 请联系您的腾讯云商务。 +注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidAppInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidAppInfo.php new file mode 100644 index 000000000..6c90dc29d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidAppInfo.php @@ -0,0 +1,157 @@ +AppMd5 = $param["AppMd5"]; + } + + if (array_key_exists("AppSize",$param) and $param["AppSize"] !== null) { + $this->AppSize = $param["AppSize"]; + } + + if (array_key_exists("AppUrl",$param) and $param["AppUrl"] !== null) { + $this->AppUrl = $param["AppUrl"]; + } + + if (array_key_exists("AppName",$param) and $param["AppName"] !== null) { + $this->AppName = $param["AppName"]; + } + + if (array_key_exists("AppPkgName",$param) and $param["AppPkgName"] !== null) { + $this->AppPkgName = $param["AppPkgName"]; + } + + if (array_key_exists("AppFileName",$param) and $param["AppFileName"] !== null) { + $this->AppFileName = $param["AppFileName"]; + } + + if (array_key_exists("AppVersion",$param) and $param["AppVersion"] !== null) { + $this->AppVersion = $param["AppVersion"]; + } + + if (array_key_exists("AppType",$param) and $param["AppType"] !== null) { + $this->AppType = $param["AppType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidPlan.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidPlan.php new file mode 100644 index 000000000..dcab32641 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidPlan.php @@ -0,0 +1,545 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("AppPkgName",$param) and $param["AppPkgName"] !== null) { + $this->AppPkgName = $param["AppPkgName"]; + } + + if (array_key_exists("AppType",$param) and $param["AppType"] !== null) { + $this->AppType = $param["AppType"]; + } + + if (array_key_exists("EncryptParam",$param) and $param["EncryptParam"] !== null) { + $this->EncryptParam = $param["EncryptParam"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidResult.php new file mode 100644 index 000000000..8aa7f5778 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AndroidResult.php @@ -0,0 +1,414 @@ +ResultId = $param["ResultId"]; + } + + if (array_key_exists("OrderId",$param) and $param["OrderId"] !== null) { + $this->OrderId = $param["OrderId"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("OpUin",$param) and $param["OpUin"] !== null) { + $this->OpUin = $param["OpUin"]; + } + + if (array_key_exists("AppType",$param) and $param["AppType"] !== null) { + $this->AppType = $param["AppType"]; + } + + if (array_key_exists("AppPkgName",$param) and $param["AppPkgName"] !== null) { + $this->AppPkgName = $param["AppPkgName"]; + } + + if (array_key_exists("BindAppPkgName",$param) and $param["BindAppPkgName"] !== null) { + $this->BindAppPkgName = $param["BindAppPkgName"]; + } + + if (array_key_exists("EncryptState",$param) and $param["EncryptState"] !== null) { + $this->EncryptState = $param["EncryptState"]; + } + + if (array_key_exists("EncryptStateDesc",$param) and $param["EncryptStateDesc"] !== null) { + $this->EncryptStateDesc = $param["EncryptStateDesc"]; + } + + if (array_key_exists("EncryptErrCode",$param) and $param["EncryptErrCode"] !== null) { + $this->EncryptErrCode = $param["EncryptErrCode"]; + } + + if (array_key_exists("EncryptErrDesc",$param) and $param["EncryptErrDesc"] !== null) { + $this->EncryptErrDesc = $param["EncryptErrDesc"]; + } + + if (array_key_exists("EncryptErrRef",$param) and $param["EncryptErrRef"] !== null) { + $this->EncryptErrRef = $param["EncryptErrRef"]; + } + + if (array_key_exists("CreatTime",$param) and $param["CreatTime"] !== null) { + $this->CreatTime = $param["CreatTime"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("CostTime",$param) and $param["CostTime"] !== null) { + $this->CostTime = $param["CostTime"]; + } + + if (array_key_exists("AppUrl",$param) and $param["AppUrl"] !== null) { + $this->AppUrl = $param["AppUrl"]; + } + + if (array_key_exists("AppMd5",$param) and $param["AppMd5"] !== null) { + $this->AppMd5 = $param["AppMd5"]; + } + + if (array_key_exists("AppName",$param) and $param["AppName"] !== null) { + $this->AppName = $param["AppName"]; + } + + if (array_key_exists("AppVersion",$param) and $param["AppVersion"] !== null) { + $this->AppVersion = $param["AppVersion"]; + } + + if (array_key_exists("AppSize",$param) and $param["AppSize"] !== null) { + $this->AppSize = $param["AppSize"]; + } + + if (array_key_exists("OnlineToolVersion",$param) and $param["OnlineToolVersion"] !== null) { + $this->OnlineToolVersion = $param["OnlineToolVersion"]; + } + + if (array_key_exists("EncryptAppMd5",$param) and $param["EncryptAppMd5"] !== null) { + $this->EncryptAppMd5 = $param["EncryptAppMd5"]; + } + + if (array_key_exists("EncryptAppSize",$param) and $param["EncryptAppSize"] !== null) { + $this->EncryptAppSize = $param["EncryptAppSize"]; + } + + if (array_key_exists("EncryptPkgUrl",$param) and $param["EncryptPkgUrl"] !== null) { + $this->EncryptPkgUrl = $param["EncryptPkgUrl"]; + } + + if (array_key_exists("OutputToolVersion",$param) and $param["OutputToolVersion"] !== null) { + $this->OutputToolVersion = $param["OutputToolVersion"]; + } + + if (array_key_exists("OutputToolSize",$param) and $param["OutputToolSize"] !== null) { + $this->OutputToolSize = $param["OutputToolSize"]; + } + + if (array_key_exists("ToolOutputTime",$param) and $param["ToolOutputTime"] !== null) { + $this->ToolOutputTime = $param["ToolOutputTime"]; + } + + if (array_key_exists("ToolExpireTime",$param) and $param["ToolExpireTime"] !== null) { + $this->ToolExpireTime = $param["ToolExpireTime"]; + } + + if (array_key_exists("OutputToolUrl",$param) and $param["OutputToolUrl"] !== null) { + $this->OutputToolUrl = $param["OutputToolUrl"]; + } + + if (array_key_exists("AndroidPlan",$param) and $param["AndroidPlan"] !== null) { + $this->AndroidPlan = new AndroidPlan(); + $this->AndroidPlan->deserialize($param["AndroidPlan"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletInfo.php new file mode 100644 index 000000000..93d62da39 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletInfo.php @@ -0,0 +1,81 @@ +AppletJsUrl = $param["AppletJsUrl"]; + } + + if (array_key_exists("AppletLevel",$param) and $param["AppletLevel"] !== null) { + $this->AppletLevel = $param["AppletLevel"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletPlan.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletPlan.php new file mode 100644 index 000000000..42b74acb8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletPlan.php @@ -0,0 +1,73 @@ +PlanId = $param["PlanId"]; + } + + if (array_key_exists("AppletLevel",$param) and $param["AppletLevel"] !== null) { + $this->AppletLevel = $param["AppletLevel"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletResult.php new file mode 100644 index 000000000..e49d2be38 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/AppletResult.php @@ -0,0 +1,222 @@ +ResultId = $param["ResultId"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("OrderId",$param) and $param["OrderId"] !== null) { + $this->OrderId = $param["OrderId"]; + } + + if (array_key_exists("OpUin",$param) and $param["OpUin"] !== null) { + $this->OpUin = $param["OpUin"]; + } + + if (array_key_exists("EncryptState",$param) and $param["EncryptState"] !== null) { + $this->EncryptState = $param["EncryptState"]; + } + + if (array_key_exists("EncryptStateDesc",$param) and $param["EncryptStateDesc"] !== null) { + $this->EncryptStateDesc = $param["EncryptStateDesc"]; + } + + if (array_key_exists("EncryptErrCode",$param) and $param["EncryptErrCode"] !== null) { + $this->EncryptErrCode = $param["EncryptErrCode"]; + } + + if (array_key_exists("EncryptErrDesc",$param) and $param["EncryptErrDesc"] !== null) { + $this->EncryptErrDesc = $param["EncryptErrDesc"]; + } + + if (array_key_exists("EncryptErrRef",$param) and $param["EncryptErrRef"] !== null) { + $this->EncryptErrRef = $param["EncryptErrRef"]; + } + + if (array_key_exists("CreatTime",$param) and $param["CreatTime"] !== null) { + $this->CreatTime = $param["CreatTime"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("CostTime",$param) and $param["CostTime"] !== null) { + $this->CostTime = $param["CostTime"]; + } + + if (array_key_exists("EncryptPkgUrl",$param) and $param["EncryptPkgUrl"] !== null) { + $this->EncryptPkgUrl = $param["EncryptPkgUrl"]; + } + + if (array_key_exists("AppletInfo",$param) and $param["AppletInfo"] !== null) { + $this->AppletInfo = new AppletInfo(); + $this->AppletInfo->deserialize($param["AppletInfo"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CancelEncryptTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CancelEncryptTaskRequest.php new file mode 100644 index 000000000..862be3a4c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CancelEncryptTaskRequest.php @@ -0,0 +1,53 @@ +ResultId = $param["ResultId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CancelEncryptTaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CancelEncryptTaskResponse.php new file mode 100644 index 000000000..8f3991cd9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CancelEncryptTaskResponse.php @@ -0,0 +1,65 @@ +State = $param["State"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateEncryptInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateEncryptInstanceRequest.php new file mode 100644 index 000000000..557a51b85 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateEncryptInstanceRequest.php @@ -0,0 +1,128 @@ +PlatformType = $param["PlatformType"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("EncryptOpType",$param) and $param["EncryptOpType"] !== null) { + $this->EncryptOpType = $param["EncryptOpType"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("AndroidAppInfo",$param) and $param["AndroidAppInfo"] !== null) { + $this->AndroidAppInfo = new AndroidAppInfo(); + $this->AndroidAppInfo->deserialize($param["AndroidAppInfo"]); + } + + if (array_key_exists("AndroidPlan",$param) and $param["AndroidPlan"] !== null) { + $this->AndroidPlan = new AndroidPlan(); + $this->AndroidPlan->deserialize($param["AndroidPlan"]); + } + + if (array_key_exists("AppletInfo",$param) and $param["AppletInfo"] !== null) { + $this->AppletInfo = new AppletInfo(); + $this->AppletInfo->deserialize($param["AppletInfo"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/AutoSummarizationResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateEncryptInstanceResponse.php similarity index 77% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/AutoSummarizationResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateEncryptInstanceResponse.php index 3ec0b278c..4cdd901b7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/AutoSummarizationResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateEncryptInstanceResponse.php @@ -14,23 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Ms\V20180408\Models; use TencentCloud\Common\AbstractModel; /** - * AutoSummarization返回参数结构体 + * CreateEncryptInstance返回参数结构体 * - * @method string getSummary() 获取文本摘要结果 - * @method void setSummary(string $Summary) 设置文本摘要结果 + * @method string getResultId() 获取加固任务Id + * @method void setResultId(string $ResultId) 设置加固任务Id * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class AutoSummarizationResponse extends AbstractModel +class CreateEncryptInstanceResponse extends AbstractModel { /** - * @var string 文本摘要结果 + * @var string 加固任务Id */ - public $Summary; + public $ResultId; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -38,7 +38,7 @@ class AutoSummarizationResponse extends AbstractModel public $RequestId; /** - * @param string $Summary 文本摘要结果 + * @param string $ResultId 加固任务Id * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -54,8 +54,8 @@ class AutoSummarizationResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Summary",$param) and $param["Summary"] !== null) { - $this->Summary = $param["Summary"]; + if (array_key_exists("ResultId",$param) and $param["ResultId"] !== null) { + $this->ResultId = $param["ResultId"]; } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateOrderInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateOrderInstanceRequest.php new file mode 100644 index 000000000..ab7225738 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateOrderInstanceRequest.php @@ -0,0 +1,83 @@ +PlatformType = $param["PlatformType"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("AppPkgNameList",$param) and $param["AppPkgNameList"] !== null) { + $this->AppPkgNameList = $param["AppPkgNameList"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentenceEmbeddingResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateOrderInstanceResponse.php similarity index 66% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentenceEmbeddingResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateOrderInstanceResponse.php index e5468da23..94f3c00a9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentenceEmbeddingResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/CreateOrderInstanceResponse.php @@ -14,30 +14,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Ms\V20180408\Models; use TencentCloud\Common\AbstractModel; /** - * SentenceEmbedding返回参数结构体 + * CreateOrderInstance返回参数结构体 * - * @method array getVector() 获取句向量数组 - * @method void setVector(array $Vector) 设置句向量数组 - * @method integer getDimension() 获取句向量的维度 - * @method void setDimension(integer $Dimension) 设置句向量的维度 + * @method string getOrderId() 获取订单Id + * @method void setOrderId(string $OrderId) 设置订单Id + * @method array getResourceId() 获取与订单关联的资源id + * @method void setResourceId(array $ResourceId) 设置与订单关联的资源id * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class SentenceEmbeddingResponse extends AbstractModel +class CreateOrderInstanceResponse extends AbstractModel { /** - * @var array 句向量数组 + * @var string 订单Id */ - public $Vector; + public $OrderId; /** - * @var integer 句向量的维度 + * @var array 与订单关联的资源id */ - public $Dimension; + public $ResourceId; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -45,8 +45,8 @@ class SentenceEmbeddingResponse extends AbstractModel public $RequestId; /** - * @param array $Vector 句向量数组 - * @param integer $Dimension 句向量的维度 + * @param string $OrderId 订单Id + * @param array $ResourceId 与订单关联的资源id * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -62,12 +62,12 @@ class SentenceEmbeddingResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Vector",$param) and $param["Vector"] !== null) { - $this->Vector = $param["Vector"]; + if (array_key_exists("OrderId",$param) and $param["OrderId"] !== null) { + $this->OrderId = $param["OrderId"]; } - if (array_key_exists("Dimension",$param) and $param["Dimension"] !== null) { - $this->Dimension = $param["Dimension"]; + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptInstancesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptInstancesRequest.php new file mode 100644 index 000000000..ef117f300 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptInstancesRequest.php @@ -0,0 +1,221 @@ +PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("OrderField",$param) and $param["OrderField"] !== null) { + $this->OrderField = $param["OrderField"]; + } + + if (array_key_exists("OrderDirection",$param) and $param["OrderDirection"] !== null) { + $this->OrderDirection = $param["OrderDirection"]; + } + + if (array_key_exists("PlatformType",$param) and $param["PlatformType"] !== null) { + $this->PlatformType = $param["PlatformType"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("EncryptOpType",$param) and $param["EncryptOpType"] !== null) { + $this->EncryptOpType = $param["EncryptOpType"]; + } + + if (array_key_exists("ResultId",$param) and $param["ResultId"] !== null) { + $this->ResultId = $param["ResultId"]; + } + + if (array_key_exists("OrderId",$param) and $param["OrderId"] !== null) { + $this->OrderId = $param["OrderId"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("AppType",$param) and $param["AppType"] !== null) { + $this->AppType = $param["AppType"]; + } + + if (array_key_exists("AppPkgName",$param) and $param["AppPkgName"] !== null) { + $this->AppPkgName = $param["AppPkgName"]; + } + + if (array_key_exists("EncryptState",$param) and $param["EncryptState"] !== null) { + $this->EncryptState = $param["EncryptState"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptInstancesResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptInstancesResponse.php new file mode 100644 index 000000000..f36a64a3e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptInstancesResponse.php @@ -0,0 +1,82 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("EncryptResults",$param) and $param["EncryptResults"] !== null) { + $this->EncryptResults = []; + foreach ($param["EncryptResults"] as $key => $value){ + $obj = new EncryptResults(); + $obj->deserialize($value); + array_push($this->EncryptResults, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptPlanRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptPlanRequest.php new file mode 100644 index 000000000..3cfc863a6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptPlanRequest.php @@ -0,0 +1,113 @@ +PlatformType = $param["PlatformType"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("EncryptOpType",$param) and $param["EncryptOpType"] !== null) { + $this->EncryptOpType = $param["EncryptOpType"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("AppPkgName",$param) and $param["AppPkgName"] !== null) { + $this->AppPkgName = $param["AppPkgName"]; + } + + if (array_key_exists("AppType",$param) and $param["AppType"] !== null) { + $this->AppType = $param["AppType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptPlanResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptPlanResponse.php new file mode 100644 index 000000000..80ed20a1c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeEncryptPlanResponse.php @@ -0,0 +1,205 @@ +PlatformType = $param["PlatformType"]; + } + + if (array_key_exists("PlatformTypeDesc",$param) and $param["PlatformTypeDesc"] !== null) { + $this->PlatformTypeDesc = $param["PlatformTypeDesc"]; + } + + if (array_key_exists("EncryptOpType",$param) and $param["EncryptOpType"] !== null) { + $this->EncryptOpType = $param["EncryptOpType"]; + } + + if (array_key_exists("EncryptOpTypeDesc",$param) and $param["EncryptOpTypeDesc"] !== null) { + $this->EncryptOpTypeDesc = $param["EncryptOpTypeDesc"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("OrderTypeDesc",$param) and $param["OrderTypeDesc"] !== null) { + $this->OrderTypeDesc = $param["OrderTypeDesc"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("AndroidPlan",$param) and $param["AndroidPlan"] !== null) { + $this->AndroidPlan = new AndroidPlan(); + $this->AndroidPlan->deserialize($param["AndroidPlan"]); + } + + if (array_key_exists("AppletPlan",$param) and $param["AppletPlan"] !== null) { + $this->AppletPlan = new AppletPlan(); + $this->AppletPlan->deserialize($param["AppletPlan"]); + } + + if (array_key_exists("IOSPlan",$param) and $param["IOSPlan"] !== null) { + $this->IOSPlan = new IOSPlan(); + $this->IOSPlan->deserialize($param["IOSPlan"]); + } + + if (array_key_exists("SDKPlan",$param) and $param["SDKPlan"] !== null) { + $this->SDKPlan = new SDKPlan(); + $this->SDKPlan->deserialize($param["SDKPlan"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeOrderInstancesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeOrderInstancesRequest.php new file mode 100644 index 000000000..faef88c20 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeOrderInstancesRequest.php @@ -0,0 +1,173 @@ +PageNumber = $param["PageNumber"]; + } + + if (array_key_exists("PageSize",$param) and $param["PageSize"] !== null) { + $this->PageSize = $param["PageSize"]; + } + + if (array_key_exists("OrderField",$param) and $param["OrderField"] !== null) { + $this->OrderField = $param["OrderField"]; + } + + if (array_key_exists("OrderDirection",$param) and $param["OrderDirection"] !== null) { + $this->OrderDirection = $param["OrderDirection"]; + } + + if (array_key_exists("PlatformType",$param) and $param["PlatformType"] !== null) { + $this->PlatformType = $param["PlatformType"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("ApprovalStatus",$param) and $param["ApprovalStatus"] !== null) { + $this->ApprovalStatus = $param["ApprovalStatus"]; + } + + if (array_key_exists("ResourceStatus",$param) and $param["ResourceStatus"] !== null) { + $this->ResourceStatus = $param["ResourceStatus"]; + } + + if (array_key_exists("OrderId",$param) and $param["OrderId"] !== null) { + $this->OrderId = $param["OrderId"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("AppPkgName",$param) and $param["AppPkgName"] !== null) { + $this->AppPkgName = $param["AppPkgName"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetAgencyTDidResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeOrderInstancesResponse.php similarity index 65% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetAgencyTDidResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeOrderInstancesResponse.php index 173f5181a..94ba2529b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetAgencyTDidResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/DescribeOrderInstancesResponse.php @@ -14,30 +14,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Ms\V20180408\Models; use TencentCloud\Common\AbstractModel; /** - * GetAgencyTDid返回参数结构体 + * DescribeOrderInstances返回参数结构体 * - * @method string getPrefix() 获取固定前缀 - * @method void setPrefix(string $Prefix) 设置固定前缀 - * @method array getIdentity() 获取did详情 - * @method void setIdentity(array $Identity) 设置did详情 + * @method integer getTotalCount() 获取总记录数 + * @method void setTotalCount(integer $TotalCount) 设置总记录数 + * @method array getOrders() 获取订单信息 + * @method void setOrders(array $Orders) 设置订单信息 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class GetAgencyTDidResponse extends AbstractModel +class DescribeOrderInstancesResponse extends AbstractModel { /** - * @var string 固定前缀 + * @var integer 总记录数 */ - public $Prefix; + public $TotalCount; /** - * @var array did详情 + * @var array 订单信息 */ - public $Identity; + public $Orders; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -45,8 +45,8 @@ class GetAgencyTDidResponse extends AbstractModel public $RequestId; /** - * @param string $Prefix 固定前缀 - * @param array $Identity did详情 + * @param integer $TotalCount 总记录数 + * @param array $Orders 订单信息 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -62,16 +62,16 @@ class GetAgencyTDidResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Prefix",$param) and $param["Prefix"] !== null) { - $this->Prefix = $param["Prefix"]; + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; } - if (array_key_exists("Identity",$param) and $param["Identity"] !== null) { - $this->Identity = []; - foreach ($param["Identity"] as $key => $value){ - $obj = new Identity(); + if (array_key_exists("Orders",$param) and $param["Orders"] !== null) { + $this->Orders = []; + foreach ($param["Orders"] as $key => $value){ + $obj = new Orders(); $obj->deserialize($value); - array_push($this->Identity, $obj); + array_push($this->Orders, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/EncryptResults.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/EncryptResults.php new file mode 100644 index 000000000..f90e774a4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/EncryptResults.php @@ -0,0 +1,205 @@ +PlatformType = $param["PlatformType"]; + } + + if (array_key_exists("PlatformDesc",$param) and $param["PlatformDesc"] !== null) { + $this->PlatformDesc = $param["PlatformDesc"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("OrderTypeDesc",$param) and $param["OrderTypeDesc"] !== null) { + $this->OrderTypeDesc = $param["OrderTypeDesc"]; + } + + if (array_key_exists("EncryptOpType",$param) and $param["EncryptOpType"] !== null) { + $this->EncryptOpType = $param["EncryptOpType"]; + } + + if (array_key_exists("EncryptOpTypeDesc",$param) and $param["EncryptOpTypeDesc"] !== null) { + $this->EncryptOpTypeDesc = $param["EncryptOpTypeDesc"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("OrderId",$param) and $param["OrderId"] !== null) { + $this->OrderId = $param["OrderId"]; + } + + if (array_key_exists("AndroidResult",$param) and $param["AndroidResult"] !== null) { + $this->AndroidResult = new AndroidResult(); + $this->AndroidResult->deserialize($param["AndroidResult"]); + } + + if (array_key_exists("IOSResult",$param) and $param["IOSResult"] !== null) { + $this->IOSResult = new IOSResult(); + $this->IOSResult->deserialize($param["IOSResult"]); + } + + if (array_key_exists("SDKResult",$param) and $param["SDKResult"] !== null) { + $this->SDKResult = new SDKResult(); + $this->SDKResult->deserialize($param["SDKResult"]); + } + + if (array_key_exists("AppletResult",$param) and $param["AppletResult"] !== null) { + $this->AppletResult = new AppletResult(); + $this->AppletResult->deserialize($param["AppletResult"]); + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/IOSPlan.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/IOSPlan.php new file mode 100644 index 000000000..5ba32b774 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/IOSPlan.php @@ -0,0 +1,53 @@ +PlanId = $param["PlanId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/IOSResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/IOSResult.php new file mode 100644 index 000000000..0fa3037cc --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/IOSResult.php @@ -0,0 +1,53 @@ +ResultId = $param["ResultId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/Orders.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/Orders.php new file mode 100644 index 000000000..bd1b188cb --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/Orders.php @@ -0,0 +1,285 @@ +OrderId = $param["OrderId"]; + } + + if (array_key_exists("PlatformType",$param) and $param["PlatformType"] !== null) { + $this->PlatformType = $param["PlatformType"]; + } + + if (array_key_exists("PlatformTypeDesc",$param) and $param["PlatformTypeDesc"] !== null) { + $this->PlatformTypeDesc = $param["PlatformTypeDesc"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("OrderTypeDesc",$param) and $param["OrderTypeDesc"] !== null) { + $this->OrderTypeDesc = $param["OrderTypeDesc"]; + } + + if (array_key_exists("AppPkgName",$param) and $param["AppPkgName"] !== null) { + $this->AppPkgName = $param["AppPkgName"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("ResourceStatus",$param) and $param["ResourceStatus"] !== null) { + $this->ResourceStatus = $param["ResourceStatus"]; + } + + if (array_key_exists("ResourceStatusDesc",$param) and $param["ResourceStatusDesc"] !== null) { + $this->ResourceStatusDesc = $param["ResourceStatusDesc"]; + } + + if (array_key_exists("TestTimes",$param) and $param["TestTimes"] !== null) { + $this->TestTimes = $param["TestTimes"]; + } + + if (array_key_exists("ValidTime",$param) and $param["ValidTime"] !== null) { + $this->ValidTime = $param["ValidTime"]; + } + + if (array_key_exists("ExpireTime",$param) and $param["ExpireTime"] !== null) { + $this->ExpireTime = $param["ExpireTime"]; + } + + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { + $this->CreateTime = $param["CreateTime"]; + } + + if (array_key_exists("Approver",$param) and $param["Approver"] !== null) { + $this->Approver = $param["Approver"]; + } + + if (array_key_exists("ApprovalStatus",$param) and $param["ApprovalStatus"] !== null) { + $this->ApprovalStatus = $param["ApprovalStatus"]; + } + + if (array_key_exists("ApprovalStatusDesc",$param) and $param["ApprovalStatusDesc"] !== null) { + $this->ApprovalStatusDesc = $param["ApprovalStatusDesc"]; + } + + if (array_key_exists("ApprovalTime",$param) and $param["ApprovalTime"] !== null) { + $this->ApprovalTime = $param["ApprovalTime"]; + } + + if (array_key_exists("TimesTaskTotalCount",$param) and $param["TimesTaskTotalCount"] !== null) { + $this->TimesTaskTotalCount = $param["TimesTaskTotalCount"]; + } + + if (array_key_exists("TimesTaskSuccessCount",$param) and $param["TimesTaskSuccessCount"] !== null) { + $this->TimesTaskSuccessCount = $param["TimesTaskSuccessCount"]; + } + + if (array_key_exists("TimesTaskFailCount",$param) and $param["TimesTaskFailCount"] !== null) { + $this->TimesTaskFailCount = $param["TimesTaskFailCount"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/SDKPlan.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/SDKPlan.php new file mode 100644 index 000000000..0166761e0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/SDKPlan.php @@ -0,0 +1,53 @@ +PlanId = $param["PlanId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/SDKResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/SDKResult.php new file mode 100644 index 000000000..5b7dd44a7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/Models/SDKResult.php @@ -0,0 +1,53 @@ +ResultId = $param["ResultId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/MsClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/MsClient.php index 3b28452e9..2ffd8abb8 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/MsClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ms/V20180408/MsClient.php @@ -23,13 +23,35 @@ use TencentCloud\Common\Credential; use TencentCloud\Ms\V20180408\Models as Models; /** + * @method Models\CancelEncryptTaskResponse CancelEncryptTask(Models\CancelEncryptTaskRequest $req) 上错服务器了 + +该接口供渠道合作应用加固使用,接口调用有白名单用户限制,取消渠道合作加固中的任务。 * @method Models\CreateBindInstanceResponse CreateBindInstance(Models\CreateBindInstanceRequest $req) 将应用和资源进行绑定。(注意:根据国家互联网用户实名制相关要求,使用该产品前,需先完成实名认证。) * @method Models\CreateCosSecKeyInstanceResponse CreateCosSecKeyInstance(Models\CreateCosSecKeyInstanceRequest $req) 获取云COS文件存储临时密钥,密钥仅限于临时上传文件,有访问限制和时效性,请保管好临时密钥。 + * @method Models\CreateEncryptInstanceResponse CreateEncryptInstance(Models\CreateEncryptInstanceRequest $req) 上错服务器了 + +该接口供渠道合作应用加固使用,接口调用有白名单用户限制,用于创建加固任务。 + * @method Models\CreateOrderInstanceResponse CreateOrderInstance(Models\CreateOrderInstanceRequest $req) 上错服务器了 + +该接口供渠道合作应用加固使用,接口调用有白名单用户限制。 +订单类型有:免费试用、按年收费、按次收费。 +应用加固支持的平台类型有:android加固 、ios源码混淆 、sdk加固、applet小程序加固 * @method Models\CreateResourceInstancesResponse CreateResourceInstances(Models\CreateResourceInstancesRequest $req) 用户可以使用该接口自建资源,只支持白名单用户 * @method Models\CreateShieldInstanceResponse CreateShieldInstance(Models\CreateShieldInstanceRequest $req) 用户通过该接口提交应用进行应用加固,加固后需通过DescribeShieldResult接口查询加固结果。(注意:根据国家互联网用户实名制相关要求,使用该产品前,需先完成实名认证。) * @method Models\CreateShieldPlanInstanceResponse CreateShieldPlanInstance(Models\CreateShieldPlanInstanceRequest $req) 对资源进行策略新增。(注意:根据国家互联网用户实名制相关要求,使用该产品前,需先完成实名认证。) * @method Models\DeleteShieldInstancesResponse DeleteShieldInstances(Models\DeleteShieldInstancesRequest $req) 删除一个或者多个app加固信息。(注意:根据国家互联网用户实名制相关要求,使用该产品前,需先完成实名认证。) * @method Models\DescribeApkDetectionResultResponse DescribeApkDetectionResult(Models\DescribeApkDetectionResultRequest $req) 该接口采用同步模式请求腾讯APK云检测服务,即时返回检测数据,需要用户用轮询的方式调用本接口来进行样本送检并获取检测结果(每隔60s发送一次请求,传相同的参数,重试30次),一般情况下0.5h内会出检测结果,最长时间是3h。当Result为ok并且ResultList数组非空有值时,代表检测完毕,若长时间获取不到检测结果,请联系客服。 + * @method Models\DescribeEncryptInstancesResponse DescribeEncryptInstances(Models\DescribeEncryptInstancesRequest $req) 上错服务器了 + +该接口供渠道合作应用加固使用,接口调用有白名单用户限制,用于查询加固任务,入参中的条件过滤字段均为精准匹配。支持功能点:1. 多任务分页查询 2.根据任务Id唯一值查询单记录 + * @method Models\DescribeEncryptPlanResponse DescribeEncryptPlan(Models\DescribeEncryptPlanRequest $req) 该接口供渠道合作应用加固使用,接口调用有白名单用户限制。入参中的条件过滤字段均为精准匹配。 + * @method Models\DescribeOrderInstancesResponse DescribeOrderInstances(Models\DescribeOrderInstancesRequest $req) 上错服务器了 + +该接口供渠道合作应用加固使用,接口调用有白名单用户限制。 接口返回的结果为:创建订单后,订单审批状态信息,以及与订单关联的资源状态等信息,入参中的条件过滤字段均为精准匹配。 +接口功能点: +1.支持多订单分页查询; +2.支持唯一订单号精准匹配查询; +3.支持唯一资源号精准匹配查询; * @method Models\DescribeResourceInstancesResponse DescribeResourceInstances(Models\DescribeResourceInstancesRequest $req) 获取某个用户的所有资源信息。(注意:根据国家互联网用户实名制相关要求,使用该产品前,需先完成实名认证。) * @method Models\DescribeShieldInstancesResponse DescribeShieldInstances(Models\DescribeShieldInstancesRequest $req) 本接口用于查看app列表。 可以通过指定任务唯一标识ItemId来查询指定app的详细信息,或通过设定过滤器来查询满足过滤条件的app的详细信息。 指定偏移(Offset)和限制(Limit)来选择结果中的一部分,默认返回满足条件的前20个app信息。(注意:根据国家互联网用户实名制相关要求,使用该产品前,需先完成实名认证。) diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/AutoSummarizationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/AutoSummarizationRequest.php deleted file mode 100644 index 80a6ea700..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/AutoSummarizationRequest.php +++ /dev/null @@ -1,69 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("Length",$param) and $param["Length"] !== null) { - $this->Length = $param["Length"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CCIToken.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CCIToken.php deleted file mode 100644 index e2332219a..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CCIToken.php +++ /dev/null @@ -1,77 +0,0 @@ -Word = $param["Word"]; - } - - if (array_key_exists("BeginOffset",$param) and $param["BeginOffset"] !== null) { - $this->BeginOffset = $param["BeginOffset"]; - } - - if (array_key_exists("CorrectWord",$param) and $param["CorrectWord"] !== null) { - $this->CorrectWord = $param["CorrectWord"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ChatBotRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ChatBotRequest.php deleted file mode 100644 index c9e03a392..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ChatBotRequest.php +++ /dev/null @@ -1,77 +0,0 @@ -Query = $param["Query"]; - } - - if (array_key_exists("OpenId",$param) and $param["OpenId"] !== null) { - $this->OpenId = $param["OpenId"]; - } - - if (array_key_exists("Flag",$param) and $param["Flag"] !== null) { - $this->Flag = $param["Flag"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ClassificationResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ClassificationResult.php deleted file mode 100644 index 941a2637d..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/ClassificationResult.php +++ /dev/null @@ -1,161 +0,0 @@ -FirstClassName = $param["FirstClassName"]; - } - - if (array_key_exists("SecondClassName",$param) and $param["SecondClassName"] !== null) { - $this->SecondClassName = $param["SecondClassName"]; - } - - if (array_key_exists("FirstClassProbability",$param) and $param["FirstClassProbability"] !== null) { - $this->FirstClassProbability = $param["FirstClassProbability"]; - } - - if (array_key_exists("SecondClassProbability",$param) and $param["SecondClassProbability"] !== null) { - $this->SecondClassProbability = $param["SecondClassProbability"]; - } - - if (array_key_exists("ThirdClassName",$param) and $param["ThirdClassName"] !== null) { - $this->ThirdClassName = $param["ThirdClassName"]; - } - - if (array_key_exists("ThirdClassProbability",$param) and $param["ThirdClassProbability"] !== null) { - $this->ThirdClassProbability = $param["ThirdClassProbability"]; - } - - if (array_key_exists("FourthClassName",$param) and $param["FourthClassName"] !== null) { - $this->FourthClassName = $param["FourthClassName"]; - } - - if (array_key_exists("FourthClassProbability",$param) and $param["FourthClassProbability"] !== null) { - $this->FourthClassProbability = $param["FourthClassProbability"]; - } - - if (array_key_exists("FifthClassName",$param) and $param["FifthClassName"] !== null) { - $this->FifthClassName = $param["FifthClassName"]; - } - - if (array_key_exists("FifthClassProbability",$param) and $param["FifthClassProbability"] !== null) { - $this->FifthClassProbability = $param["FifthClassProbability"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateWordItemsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateWordItemsRequest.php deleted file mode 100644 index 3aae59233..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/CreateWordItemsRequest.php +++ /dev/null @@ -1,70 +0,0 @@ -DictId = $param["DictId"]; - } - - if (array_key_exists("WordItems",$param) and $param["WordItems"] !== null) { - $this->WordItems = []; - foreach ($param["WordItems"] as $key => $value){ - $obj = new WordItem(); - $obj->deserialize($value); - array_push($this->WordItems, $obj); - } - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteWordItemsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteWordItemsRequest.php deleted file mode 100644 index 4871e2ec1..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteWordItemsRequest.php +++ /dev/null @@ -1,70 +0,0 @@ -DictId = $param["DictId"]; - } - - if (array_key_exists("WordItems",$param) and $param["WordItems"] !== null) { - $this->WordItems = []; - foreach ($param["WordItems"] as $key => $value){ - $obj = new WordItem(); - $obj->deserialize($value); - array_push($this->WordItems, $obj); - } - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DependencyParsingResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DependencyParsingResponse.php deleted file mode 100644 index 699a34768..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DependencyParsingResponse.php +++ /dev/null @@ -1,130 +0,0 @@ -主谓关系,eg: 我送她一束花 (我 <-- 送) -
  • 动宾关系,eg: 我送她一束花 (送 --> 花) -
  • 间宾关系,eg: 我送她一束花 (送 --> 她) -
  • 前置宾语,eg: 他什么书都读 (书 <-- 读) -
  • 兼语,eg: 他请我吃饭 (请 --> 我) -
  • 定中关系,eg: 红苹果 (红 <-- 苹果) -
  • 状中结构,eg: 非常美丽 (非常 <-- 美丽) -
  • 动补结构,eg: 做完了作业 (做 --> 完) -
  • 并列关系,eg: 大山和大海 (大山 --> 大海) -
  • 介宾关系,eg: 在贸易区内 (在 --> 内) -
  • 左附加关系,eg: 大山和大海 (和 <-- 大海) -
  • 右附加关系,eg: 孩子们 (孩子 --> 们) -
  • 独立结构,eg: 两个单句在结构上彼此独立 -
  • 标点符号,eg: 。 -
  • 核心关系,eg: 整个句子的核心 - * @method void setDpTokens(array $DpTokens) 设置句法依存分析结果,其中句法依存关系的类型包括: -
  • 主谓关系,eg: 我送她一束花 (我 <-- 送) -
  • 动宾关系,eg: 我送她一束花 (送 --> 花) -
  • 间宾关系,eg: 我送她一束花 (送 --> 她) -
  • 前置宾语,eg: 他什么书都读 (书 <-- 读) -
  • 兼语,eg: 他请我吃饭 (请 --> 我) -
  • 定中关系,eg: 红苹果 (红 <-- 苹果) -
  • 状中结构,eg: 非常美丽 (非常 <-- 美丽) -
  • 动补结构,eg: 做完了作业 (做 --> 完) -
  • 并列关系,eg: 大山和大海 (大山 --> 大海) -
  • 介宾关系,eg: 在贸易区内 (在 --> 内) -
  • 左附加关系,eg: 大山和大海 (和 <-- 大海) -
  • 右附加关系,eg: 孩子们 (孩子 --> 们) -
  • 独立结构,eg: 两个单句在结构上彼此独立 -
  • 标点符号,eg: 。 -
  • 核心关系,eg: 整个句子的核心 - * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - */ -class DependencyParsingResponse extends AbstractModel -{ - /** - * @var array 句法依存分析结果,其中句法依存关系的类型包括: -
  • 主谓关系,eg: 我送她一束花 (我 <-- 送) -
  • 动宾关系,eg: 我送她一束花 (送 --> 花) -
  • 间宾关系,eg: 我送她一束花 (送 --> 她) -
  • 前置宾语,eg: 他什么书都读 (书 <-- 读) -
  • 兼语,eg: 他请我吃饭 (请 --> 我) -
  • 定中关系,eg: 红苹果 (红 <-- 苹果) -
  • 状中结构,eg: 非常美丽 (非常 <-- 美丽) -
  • 动补结构,eg: 做完了作业 (做 --> 完) -
  • 并列关系,eg: 大山和大海 (大山 --> 大海) -
  • 介宾关系,eg: 在贸易区内 (在 --> 内) -
  • 左附加关系,eg: 大山和大海 (和 <-- 大海) -
  • 右附加关系,eg: 孩子们 (孩子 --> 们) -
  • 独立结构,eg: 两个单句在结构上彼此独立 -
  • 标点符号,eg: 。 -
  • 核心关系,eg: 整个句子的核心 - */ - public $DpTokens; - - /** - * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - */ - public $RequestId; - - /** - * @param array $DpTokens 句法依存分析结果,其中句法依存关系的类型包括: -
  • 主谓关系,eg: 我送她一束花 (我 <-- 送) -
  • 动宾关系,eg: 我送她一束花 (送 --> 花) -
  • 间宾关系,eg: 我送她一束花 (送 --> 她) -
  • 前置宾语,eg: 他什么书都读 (书 <-- 读) -
  • 兼语,eg: 他请我吃饭 (请 --> 我) -
  • 定中关系,eg: 红苹果 (红 <-- 苹果) -
  • 状中结构,eg: 非常美丽 (非常 <-- 美丽) -
  • 动补结构,eg: 做完了作业 (做 --> 完) -
  • 并列关系,eg: 大山和大海 (大山 --> 大海) -
  • 介宾关系,eg: 在贸易区内 (在 --> 内) -
  • 左附加关系,eg: 大山和大海 (和 <-- 大海) -
  • 右附加关系,eg: 孩子们 (孩子 --> 们) -
  • 独立结构,eg: 两个单句在结构上彼此独立 -
  • 标点符号,eg: 。 -
  • 核心关系,eg: 整个句子的核心 - * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - */ - function __construct() - { - - } - - /** - * For internal only. DO NOT USE IT. - */ - public function deserialize($param) - { - if ($param === null) { - return; - } - if (array_key_exists("DpTokens",$param) and $param["DpTokens"] !== null) { - $this->DpTokens = []; - foreach ($param["DpTokens"] as $key => $value){ - $obj = new DpToken(); - $obj->deserialize($value); - array_push($this->DpTokens, $obj); - } - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeWordItemsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeWordItemsRequest.php deleted file mode 100644 index 3f91b3b85..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeWordItemsRequest.php +++ /dev/null @@ -1,89 +0,0 @@ -DictId = $param["DictId"]; - } - - if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { - $this->Offset = $param["Offset"]; - } - - if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { - $this->Limit = $param["Limit"]; - } - - if (array_key_exists("Text",$param) and $param["Text"] !== null) { - $this->Text = $param["Text"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DictInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DictInfo.php deleted file mode 100644 index 1599cda74..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DictInfo.php +++ /dev/null @@ -1,101 +0,0 @@ -Name = $param["Name"]; - } - - if (array_key_exists("Id",$param) and $param["Id"] !== null) { - $this->Id = $param["Id"]; - } - - if (array_key_exists("Description",$param) and $param["Description"] !== null) { - $this->Description = $param["Description"]; - } - - if (array_key_exists("UpdateTime",$param) and $param["UpdateTime"] !== null) { - $this->UpdateTime = $param["UpdateTime"]; - } - - if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { - $this->CreateTime = $param["CreateTime"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DpToken.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DpToken.php deleted file mode 100644 index b9c50d122..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DpToken.php +++ /dev/null @@ -1,89 +0,0 @@ -Relation = $param["Relation"]; - } - - if (array_key_exists("HeadId",$param) and $param["HeadId"] !== null) { - $this->HeadId = $param["HeadId"]; - } - - if (array_key_exists("Word",$param) and $param["Word"] !== null) { - $this->Word = $param["Word"]; - } - - if (array_key_exists("Id",$param) and $param["Id"] !== null) { - $this->Id = $param["Id"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/EvaluateSentenceSimilarityRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/EvaluateSentenceSimilarityRequest.php index 2fa96a474..13021bb53 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/EvaluateSentenceSimilarityRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/EvaluateSentenceSimilarityRequest.php @@ -20,18 +20,18 @@ use TencentCloud\Common\AbstractModel; /** * EvaluateSentenceSimilarity请求参数结构体 * - * @method array getSentencePairList() 获取待分析的句子对数组。句子对应不超过1对,仅支持中文文本,原句子与目标句子均应不超过64字符。 - * @method void setSentencePairList(array $SentencePairList) 设置待分析的句子对数组。句子对应不超过1对,仅支持中文文本,原句子与目标句子均应不超过64字符。 + * @method array getSentencePairList() 获取待分析的句子对数组。句子对应不超过1对,仅支持中文文本,原句子与目标句子均应不超过500字符。 + * @method void setSentencePairList(array $SentencePairList) 设置待分析的句子对数组。句子对应不超过1对,仅支持中文文本,原句子与目标句子均应不超过500字符。 */ class EvaluateSentenceSimilarityRequest extends AbstractModel { /** - * @var array 待分析的句子对数组。句子对应不超过1对,仅支持中文文本,原句子与目标句子均应不超过64字符。 + * @var array 待分析的句子对数组。句子对应不超过1对,仅支持中文文本,原句子与目标句子均应不超过500字符。 */ public $SentencePairList; /** - * @param array $SentencePairList 待分析的句子对数组。句子对应不超过1对,仅支持中文文本,原句子与目标句子均应不超过64字符。 + * @param array $SentencePairList 待分析的句子对数组。句子对应不超过1对,仅支持中文文本,原句子与目标句子均应不超过500字符。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GenerateCoupletRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GenerateCoupletRequest.php deleted file mode 100644 index fce84bcbb..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GenerateCoupletRequest.php +++ /dev/null @@ -1,65 +0,0 @@ -=2,当长度>2时,自动截取前两个字作为关键字。内容需为常用汉字(不含有数字、英文、韩语、日语、符号等等其他)。 - * @method void setText(string $Text) 设置生成对联的关键词。长度需>=2,当长度>2时,自动截取前两个字作为关键字。内容需为常用汉字(不含有数字、英文、韩语、日语、符号等等其他)。 - * @method integer getTargetType() 获取返回的文本结果为繁体还是简体。0:简体;1:繁体。默认为0。 - * @method void setTargetType(integer $TargetType) 设置返回的文本结果为繁体还是简体。0:简体;1:繁体。默认为0。 - */ -class GenerateCoupletRequest extends AbstractModel -{ - /** - * @var string 生成对联的关键词。长度需>=2,当长度>2时,自动截取前两个字作为关键字。内容需为常用汉字(不含有数字、英文、韩语、日语、符号等等其他)。 - */ - public $Text; - - /** - * @var integer 返回的文本结果为繁体还是简体。0:简体;1:繁体。默认为0。 - */ - public $TargetType; - - /** - * @param string $Text 生成对联的关键词。长度需>=2,当长度>2时,自动截取前两个字作为关键字。内容需为常用汉字(不含有数字、英文、韩语、日语、符号等等其他)。 - * @param integer $TargetType 返回的文本结果为繁体还是简体。0:简体;1:繁体。默认为0。 - */ - function __construct() - { - - } - - /** - * For internal only. DO NOT USE IT. - */ - public function deserialize($param) - { - if ($param === null) { - return; - } - if (array_key_exists("Text",$param) and $param["Text"] !== null) { - $this->Text = $param["Text"]; - } - - if (array_key_exists("TargetType",$param) and $param["TargetType"] !== null) { - $this->TargetType = $param["TargetType"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GeneratePoetryRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GeneratePoetryRequest.php deleted file mode 100644 index 741529e59..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GeneratePoetryRequest.php +++ /dev/null @@ -1,77 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("PoetryType",$param) and $param["PoetryType"] !== null) { - $this->PoetryType = $param["PoetryType"]; - } - - if (array_key_exists("Genre",$param) and $param["Genre"] !== null) { - $this->Genre = $param["Genre"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GeneratePoetryResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GeneratePoetryResponse.php deleted file mode 100644 index 91f1c5e6a..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/GeneratePoetryResponse.php +++ /dev/null @@ -1,77 +0,0 @@ -Title = $param["Title"]; - } - - if (array_key_exists("Content",$param) and $param["Content"] !== null) { - $this->Content = $param["Content"]; - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/KeywordsExtractionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/KeywordsExtractionRequest.php deleted file mode 100644 index 84ee0a0ee..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/KeywordsExtractionRequest.php +++ /dev/null @@ -1,65 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("Num",$param) and $param["Num"] !== null) { - $this->Num = $param["Num"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/LexicalAnalysisRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/LexicalAnalysisRequest.php deleted file mode 100644 index 5f11b4577..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/LexicalAnalysisRequest.php +++ /dev/null @@ -1,85 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("DictId",$param) and $param["DictId"] !== null) { - $this->DictId = $param["DictId"]; - } - - if (array_key_exists("Flag",$param) and $param["Flag"] !== null) { - $this->Flag = $param["Flag"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/LexicalAnalysisResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/LexicalAnalysisResponse.php deleted file mode 100644 index 36ba8da76..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/LexicalAnalysisResponse.php +++ /dev/null @@ -1,107 +0,0 @@ -PER:表示人名,如刘德华、贝克汉姆
  • -
  • LOC:表示地名,如北京、华山
  • -
  • ORG:表示机构团体名,如腾讯、最高人民法院、人大附中
  • -
  • PRODUCTION:表示产品名,如QQ、微信、iPhone
  • -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setNerTokens(array $NerTokens) 设置命名实体识别结果。取值范围: -
  • PER:表示人名,如刘德华、贝克汉姆
  • -
  • LOC:表示地名,如北京、华山
  • -
  • ORG:表示机构团体名,如腾讯、最高人民法院、人大附中
  • -
  • PRODUCTION:表示产品名,如QQ、微信、iPhone
  • -注意:此字段可能返回 null,表示取不到有效值。 - * @method array getPosTokens() 获取分词&词性标注结果(词性表请参见附录) - * @method void setPosTokens(array $PosTokens) 设置分词&词性标注结果(词性表请参见附录) - * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - */ -class LexicalAnalysisResponse extends AbstractModel -{ - /** - * @var array 命名实体识别结果。取值范围: -
  • PER:表示人名,如刘德华、贝克汉姆
  • -
  • LOC:表示地名,如北京、华山
  • -
  • ORG:表示机构团体名,如腾讯、最高人民法院、人大附中
  • -
  • PRODUCTION:表示产品名,如QQ、微信、iPhone
  • -注意:此字段可能返回 null,表示取不到有效值。 - */ - public $NerTokens; - - /** - * @var array 分词&词性标注结果(词性表请参见附录) - */ - public $PosTokens; - - /** - * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - */ - public $RequestId; - - /** - * @param array $NerTokens 命名实体识别结果。取值范围: -
  • PER:表示人名,如刘德华、贝克汉姆
  • -
  • LOC:表示地名,如北京、华山
  • -
  • ORG:表示机构团体名,如腾讯、最高人民法院、人大附中
  • -
  • PRODUCTION:表示产品名,如QQ、微信、iPhone
  • -注意:此字段可能返回 null,表示取不到有效值。 - * @param array $PosTokens 分词&词性标注结果(词性表请参见附录) - * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 - */ - function __construct() - { - - } - - /** - * For internal only. DO NOT USE IT. - */ - public function deserialize($param) - { - if ($param === null) { - return; - } - if (array_key_exists("NerTokens",$param) and $param["NerTokens"] !== null) { - $this->NerTokens = []; - foreach ($param["NerTokens"] as $key => $value){ - $obj = new NerToken(); - $obj->deserialize($value); - array_push($this->NerTokens, $obj); - } - } - - if (array_key_exists("PosTokens",$param) and $param["PosTokens"] !== null) { - $this->PosTokens = []; - foreach ($param["PosTokens"] as $key => $value){ - $obj = new PosToken(); - $obj->deserialize($value); - array_push($this->PosTokens, $obj); - } - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/NerToken.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/NerToken.php deleted file mode 100644 index b91b79459..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/NerToken.php +++ /dev/null @@ -1,89 +0,0 @@ -Word = $param["Word"]; - } - - if (array_key_exists("Length",$param) and $param["Length"] !== null) { - $this->Length = $param["Length"]; - } - - if (array_key_exists("BeginOffset",$param) and $param["BeginOffset"] !== null) { - $this->BeginOffset = $param["BeginOffset"]; - } - - if (array_key_exists("Type",$param) and $param["Type"] !== null) { - $this->Type = $param["Type"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/PosToken.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/PosToken.php deleted file mode 100644 index 8bac89540..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/PosToken.php +++ /dev/null @@ -1,89 +0,0 @@ -Word = $param["Word"]; - } - - if (array_key_exists("Length",$param) and $param["Length"] !== null) { - $this->Length = $param["Length"]; - } - - if (array_key_exists("BeginOffset",$param) and $param["BeginOffset"] !== null) { - $this->BeginOffset = $param["BeginOffset"]; - } - - if (array_key_exists("Pos",$param) and $param["Pos"] !== null) { - $this->Pos = $param["Pos"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SearchResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SearchResult.php deleted file mode 100644 index 13d3afe8d..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SearchResult.php +++ /dev/null @@ -1,89 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("IsExist",$param) and $param["IsExist"] !== null) { - $this->IsExist = $param["IsExist"]; - } - - if (array_key_exists("MatchText",$param) and $param["MatchText"] !== null) { - $this->MatchText = $param["MatchText"]; - } - - if (array_key_exists("Pos",$param) and $param["Pos"] !== null) { - $this->Pos = $param["Pos"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SearchWordItemsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SearchWordItemsRequest.php deleted file mode 100644 index eec8bf6c8..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SearchWordItemsRequest.php +++ /dev/null @@ -1,70 +0,0 @@ -DictId = $param["DictId"]; - } - - if (array_key_exists("WordItems",$param) and $param["WordItems"] !== null) { - $this->WordItems = []; - foreach ($param["WordItems"] as $key => $value){ - $obj = new WordItem(); - $obj->deserialize($value); - array_push($this->WordItems, $obj); - } - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentimentAnalysisRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentimentAnalysisRequest.php deleted file mode 100644 index d2fa7d3c7..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentimentAnalysisRequest.php +++ /dev/null @@ -1,101 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("Flag",$param) and $param["Flag"] !== null) { - $this->Flag = $param["Flag"]; - } - - if (array_key_exists("Mode",$param) and $param["Mode"] !== null) { - $this->Mode = $param["Mode"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentimentAnalysisResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentimentAnalysisResponse.php deleted file mode 100644 index d8e07e977..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SentimentAnalysisResponse.php +++ /dev/null @@ -1,117 +0,0 @@ -Positive = $param["Positive"]; - } - - if (array_key_exists("Neutral",$param) and $param["Neutral"] !== null) { - $this->Neutral = $param["Neutral"]; - } - - if (array_key_exists("Negative",$param) and $param["Negative"] !== null) { - $this->Negative = $param["Negative"]; - } - - if (array_key_exists("Sentiment",$param) and $param["Sentiment"] !== null) { - $this->Sentiment = $param["Sentiment"]; - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SimilarWordsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SimilarWordsRequest.php deleted file mode 100644 index 0a5f8d23b..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/SimilarWordsRequest.php +++ /dev/null @@ -1,65 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("WordNumber",$param) and $param["WordNumber"] !== null) { - $this->WordNumber = $param["WordNumber"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextClassificationRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextClassificationRequest.php deleted file mode 100644 index 4ee87dba8..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextClassificationRequest.php +++ /dev/null @@ -1,73 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("Flag",$param) and $param["Flag"] !== null) { - $this->Flag = $param["Flag"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityProRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityProRequest.php deleted file mode 100644 index f6971eeda..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityProRequest.php +++ /dev/null @@ -1,65 +0,0 @@ -SrcText = $param["SrcText"]; - } - - if (array_key_exists("TargetText",$param) and $param["TargetText"] !== null) { - $this->TargetText = $param["TargetText"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityProResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityProResponse.php deleted file mode 100644 index c070a5657..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityProResponse.php +++ /dev/null @@ -1,70 +0,0 @@ -Similarity = []; - foreach ($param["Similarity"] as $key => $value){ - $obj = new Similarity(); - $obj->deserialize($value); - array_push($this->Similarity, $obj); - } - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityRequest.php deleted file mode 100644 index 8d9b3ed79..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityRequest.php +++ /dev/null @@ -1,65 +0,0 @@ -SrcText = $param["SrcText"]; - } - - if (array_key_exists("TargetText",$param) and $param["TargetText"] !== null) { - $this->TargetText = $param["TargetText"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityResponse.php deleted file mode 100644 index 16ac4b47e..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/TextSimilarityResponse.php +++ /dev/null @@ -1,70 +0,0 @@ -Similarity = []; - foreach ($param["Similarity"] as $key => $value){ - $obj = new Similarity(); - $obj->deserialize($value); - array_push($this->Similarity, $obj); - } - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/UpdateDictRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/UpdateDictRequest.php deleted file mode 100644 index 52d2aef80..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/UpdateDictRequest.php +++ /dev/null @@ -1,77 +0,0 @@ -DictId = $param["DictId"]; - } - - if (array_key_exists("Description",$param) and $param["Description"] !== null) { - $this->Description = $param["Description"]; - } - - if (array_key_exists("Name",$param) and $param["Name"] !== null) { - $this->Name = $param["Name"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordEmbeddingResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordEmbeddingResponse.php deleted file mode 100644 index 49d76920c..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordEmbeddingResponse.php +++ /dev/null @@ -1,77 +0,0 @@ -Vector = $param["Vector"]; - } - - if (array_key_exists("Dimension",$param) and $param["Dimension"] !== null) { - $this->Dimension = $param["Dimension"]; - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordItem.php deleted file mode 100644 index 937808ca4..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordItem.php +++ /dev/null @@ -1,77 +0,0 @@ -Text = $param["Text"]; - } - - if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { - $this->CreateTime = $param["CreateTime"]; - } - - if (array_key_exists("Pos",$param) and $param["Pos"] !== null) { - $this->Pos = $param["Pos"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordSimilarityRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordSimilarityRequest.php deleted file mode 100644 index 119604e71..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/WordSimilarityRequest.php +++ /dev/null @@ -1,65 +0,0 @@ -SrcWord = $param["SrcWord"]; - } - - if (array_key_exists("TargetWord",$param) and $param["TargetWord"] !== null) { - $this->TargetWord = $param["TargetWord"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/NlpClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/NlpClient.php index 38a9bf754..2a6c2f1c3 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/NlpClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/NlpClient.php @@ -24,130 +24,17 @@ use TencentCloud\Nlp\V20190408\Models as Models; /** * @method Models\AnalyzeSentimentResponse AnalyzeSentiment(Models\AnalyzeSentimentRequest $req) 情感分析接口能够对带有情感色彩的主观性文本进行分析、处理、归纳和推理,识别出用户的情感倾向,是积极、中性还是消极,并且提供各自概率。 - * @method Models\AutoSummarizationResponse AutoSummarization(Models\AutoSummarizationRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -利用人工智能算法,自动抽取文本中的关键信息并生成指定长度的文本摘要。可用于新闻标题生成、科技文献摘要生成和商品评论摘要等。 - * @method Models\ChatBotResponse ChatBot(Models\ChatBotRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -闲聊服务基于腾讯领先的NLP引擎能力、数据运算能力和千亿级互联网语料数据的支持,同时集成了广泛的知识问答能力,可实现上百种自定义属性配置,以及儿童语言风格及说话方式,从而让聊天变得更睿智、简单和有趣。 - - * @method Models\ClassifyContentResponse ClassifyContent(Models\ClassifyContentRequest $req) 文本分类接口能够对用户输入的文章进行自动分类,将其映射到具体的类目上,用户只需要提供待分类的文本,而无需关注具体实现。该功能定义了一套较为完备的[三级分类体系](https://cloud.tencent.com/document/product/271/94286),积累了数百万的语料,经过多轮迭代优化打造了较先进的深度学习模型,以保证效果不断提升。 * @method Models\ComposeCoupletResponse ComposeCouplet(Models\ComposeCoupletRequest $req) 对联生成接口根据用户输入的命题关键词,智能生成一副完整的春联,包括上联、下联和横批。该接口利用先进的自然语言处理技术,确保生成的春联既符合传统对仗、对韵、对义的要求,又具有新意和创意,为用户提供独特的春节祝福。 * @method Models\ComposePoetryResponse ComposePoetry(Models\ComposePoetryRequest $req) 诗词生成接口利用现代的自然语言处理和深度学习技术,模仿了古代著名诗人的风格,为用户产生独特的诗词。用户只需输入的命题关键词,接口就能自动生成一首七言律诗或五言律诗。 - * @method Models\CreateDictResponse CreateDict(Models\CreateDictRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -根据指定的名称、描述创建自定义词库。 - * @method Models\CreateWordItemsResponse CreateWordItems(Models\CreateWordItemsRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -向指定的词库中添加词条。 - * @method Models\DeleteDictResponse DeleteDict(Models\DeleteDictRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -删除自定义词库,会附带相应删除词库包含的所有词条。 - * @method Models\DeleteWordItemsResponse DeleteWordItems(Models\DeleteWordItemsRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -用于删除自定义词库中的词条。 - * @method Models\DependencyParsingResponse DependencyParsing(Models\DependencyParsingRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -句法依存分析接口能够分析出句子中词与词之间的相互依存关系,并揭示其句法结构,包括主谓关系、动宾关系、核心关系等等,可用于提取句子主干、提取句子核心词等,在机器翻译、自动问答、知识抽取等领域都有很好的应用。 - * @method Models\DescribeDictResponse DescribeDict(Models\DescribeDictRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -根据id或名称查询自定义词库信息。 - * @method Models\DescribeDictsResponse DescribeDicts(Models\DescribeDictsRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -返回属于当前用户的所有自定义词库列表。 - * @method Models\DescribeWordItemsResponse DescribeWordItems(Models\DescribeWordItemsRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -依据自定义词库的ID,查询对应的词条信息。 * @method Models\EvaluateSentenceSimilarityResponse EvaluateSentenceSimilarity(Models\EvaluateSentenceSimilarityRequest $req) 通过计算句子间的语义相似性,帮助您快速找到文本中重复或相似的句子,用于文本聚类、相似问题检索等应用场景。 * @method Models\EvaluateWordSimilarityResponse EvaluateWordSimilarity(Models\EvaluateWordSimilarityRequest $req) 评估两个词语在语义空间的相似程度,为您的场景应用提供有力支持,如关键词过滤、热门话题挖掘等。(目前仅支持中文) - * @method Models\GenerateCoupletResponse GenerateCouplet(Models\GenerateCoupletRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -根据用户输入的命题关键词自动生成一副春联,包括上联、下联和横批。(如需开通请联系商务) * @method Models\GenerateKeywordSentenceResponse GenerateKeywordSentence(Models\GenerateKeywordSentenceRequest $req) 提取文本中的关键信息,生成简洁明了的关键句子,便于用户快速获取核心观点。 - * @method Models\GeneratePoetryResponse GeneratePoetry(Models\GeneratePoetryRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -根据用户输入的命题关键词自动生成一首七言律诗或五言律诗。(如需开通请联系商务) - * @method Models\KeywordsExtractionResponse KeywordsExtraction(Models\KeywordsExtractionRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -基于关键词提取平台,通过对文本内容进行深度分析,提取出文本内容中的关键信息,为用户实现诸如新闻内容关键词自动提取、评论关键词提取等提供基础服务。 - * @method Models\LexicalAnalysisResponse LexicalAnalysis(Models\LexicalAnalysisRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -词法分析接口提供以下三个功能: - -1、智能分词:将连续的自然语言文本,切分成具有语义合理性和完整性的词汇序列; - -2、词性标注:为每一个词附上对应的词性,例如名词、代词、形容词、动词等; - -3、命名实体识别:快速识别文本中的实体,例如人名、地名、机构名等。 - -所有的功能均基于千亿级大规模互联网语料进行持续迭代更新,以保证效果不断提升,用户无需担心新词发现、歧义消除、调用性能等问题。目前词法分析已经在泛互联网、金融、政务等不同垂直领域提供业务支持,并取得良好的效果。 * @method Models\ParseWordsResponse ParseWords(Models\ParseWordsRequest $req) 通过精准地对文本进行分词、词性标注、命名实体识别等功能,助您更好地理解文本内容,挖掘出潜在的价值信息。 * @method Models\RetrieveSimilarWordsResponse RetrieveSimilarWords(Models\RetrieveSimilarWordsRequest $req) 基于大数据和深度学习技术,可以快速地找到与给定词语高度相似的其他词语,有助于提高搜索和推荐的准确性。(目前仅支持中文) - * @method Models\SearchWordItemsResponse SearchWordItems(Models\SearchWordItemsRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -查询指定自定义词库中的词条是否存在。 * @method Models\SentenceCorrectionResponse SentenceCorrection(Models\SentenceCorrectionRequest $req) 智能识别并纠正句子中的语法、拼写、用词等错误,确保文本的准确性和可读性。 - * @method Models\SentenceEmbeddingResponse SentenceEmbedding(Models\SentenceEmbeddingRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -句向量接口能够将输入的句子映射成一个固定维度的向量,用来表示这个句子的语义特征,可用于文本聚类、文本相似度、文本分类等任务,能够显著提高它们的效果。 - -该句向量服务由腾讯云自然语言处理团队联合微信智言团队共同打造,基于千亿级大规模互联网语料并采用Bert等领先的深度神经网络模型训练而成,在腾讯内部诸多业务的NLP任务上实测效果显著。 - * @method Models\SentimentAnalysisResponse SentimentAnalysis(Models\SentimentAnalysisRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -情感分析接口能够对带有情感色彩的主观性文本进行分析、处理、归纳和推理,识别出用户的情感倾向,是积极还是消极,并且提供各自概率。 - -该功能基于千亿级大规模互联网语料和LSTM、BERT等深度神经网络模型进行训练,并持续迭代更新,以保证效果不断提升。 - * @method Models\SimilarWordsResponse SimilarWords(Models\SimilarWordsRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -相似词接口能够基于同义词库及词向量技术,检索出与输入词语在语义上最相似的若干个词语,可广泛用于检索系统、问答系统、文档归档等场景。 - * @method Models\TextClassificationResponse TextClassification(Models\TextClassificationRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -文本分类接口能够对用户输入的文本进行自动分类,将其映射到具体的类目上,用户只需要提供待分类的文本,而无需关注具体实现。 - -该功能基于千亿级大规模互联网语料和LSTM、BERT等深度神经网络模型进行训练,并持续迭代更新,以保证效果不断提升。 - -目前已提供: - -- 通用领域分类体系,二级分类,包括14个分类类目,分别是汽车、科技、健康、体育、旅行、教育、职业、文化、房产、娱乐、女性、奥运、财经以及其他,适用于通用的场景。 - * @method Models\TextCorrectionResponse TextCorrection(Models\TextCorrectionRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -提供对中文文本的自动纠错功能,能够识别输入文本中的错误片段,定位错误并给出正确的文本结果;支持长度不超过2000字符(含标点符号)的长文本纠错。 - -此功能是基于千亿级大规模互联网语料和LSTM、BERT等深度神经网络模型进行训练,并持续迭代更新,以保证效果不断提升,是搜索引擎、语音识别、内容审核等功能更好运行的基础之一。 - * @method Models\TextCorrectionProResponse TextCorrectionPro(Models\TextCorrectionProRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -提供对中文文本的自动纠错功能,能够识别输入文本中的错误片段,定位错误并给出正确的文本结果;支持长度不超过128字符(含标点符号)的长文本纠错。 - -此功能是基于千亿级大规模互联网语料和LSTM、BERT等深度神经网络模型进行训练,并持续迭代更新,以保证效果不断提升,是搜索引擎、语音识别、内容审核等功能更好运行的基础之一。 * @method Models\TextEmbellishResponse TextEmbellish(Models\TextEmbellishRequest $req) 运用先进的自然语言处理技术,对原始文本进行优化润色,提升文本的通顺性、表达力和语言质量。 - * @method Models\TextSimilarityResponse TextSimilarity(Models\TextSimilarityRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -句子相似度接口能够基于深度学习技术来计算一个源句子和多个目标句子的相似度,相似度分值越大的两个句子在语义上越相似。目前仅支持短文本(不超过500字符)的相似度计算,长文本的相似度计算也即将推出。 - -鉴于句子相似度是一个应用非常广泛的功能,腾讯云自然语言处理团队在Bert等领先的深度神经网络模型的基础上,专门针对文本相似任务进行了优化,并持续迭代更新。基于句子相似度,可以轻松实现诸如文本去重、相似推荐等功能。 - -接口将以句子数量为单位消耗资源包,而不是调用接口次数为单位。 - * @method Models\TextSimilarityProResponse TextSimilarityPro(Models\TextSimilarityProRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -句子相似度接口能够基于深度学习技术来计算一个源句子和多个目标句子的相似度,相似度分值越大的两个句子在语义上越相似。目前仅支持短文本(不超过128字符)的相似度计算,长文本的相似度计算也即将推出。 - -鉴于句子相似度是一个应用非常广泛的功能,腾讯云自然语言处理团队在Bert等领先的深度神经网络模型的基础上,专门针对文本相似任务进行了优化,并持续迭代更新。基于句子相似度,可以轻松实现诸如文本去重、相似推荐等功能。 - -接口将以句子数量为单位消耗资源包,而不是调用接口次数为单位。 * @method Models\TextWritingResponse TextWriting(Models\TextWritingRequest $req) 通过自动补全文本片段,帮助用户快速生成高质量、连贯的完整文本,提高创作效率。 - * @method Models\UpdateDictResponse UpdateDict(Models\UpdateDictRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -修改自定义词库元数据信息,包括名称、描述。 - * @method Models\WordEmbeddingResponse WordEmbedding(Models\WordEmbeddingRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -词向量接口能够将输入的词语映射成一个固定维度的词向量,用来表示这个词语的语义特征。词向量是很多自然语言处理技术的基础,能够显著提高它们的效果。 - -该词向量服务由腾讯知文自然语言处理团队联合腾讯AI Lab共同打造。使用的词向量基于千亿级大规模互联网语料并采用AI Lab自研的DSG算法训练而成,开源的词向量包含800多万中文词汇,在覆盖率、新鲜度及准确性等三方面性能突出。 - - * @method Models\WordSimilarityResponse WordSimilarity(Models\WordSimilarityRequest $req) 因业务调整该接口将于北京时间2023年8月1日0点下线,届时该产品功能将无法正常使用,为了避免对您的业务造成影响,请您尽快做好相关业务调整。详见:https://cloud.tencent.com/document/product/271/90711 - -词相似度接口能够基于词向量技术来计算两个输入词语的余弦相似度,相似度数值越大的两个词语在语义上越相似。 */ class NlpClient extends AbstractClient diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/ClazzLevel.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/ClazzLevel.php new file mode 100644 index 000000000..f924d81ad --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/ClazzLevel.php @@ -0,0 +1,76 @@ +Clazz = $param["Clazz"]; + } + + if (array_key_exists("Level",$param) and $param["Level"] !== null) { + $this->Level = $param["Level"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/CreateJobConfigRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/CreateJobConfigRequest.php index edaf61bee..61e94f8da 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/CreateJobConfigRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/CreateJobConfigRequest.php @@ -58,6 +58,12 @@ use TencentCloud\Common\AbstractModel; * @method void setLogLevel(string $LogLevel) 设置日志级别 * @method integer getAutoRecover() 获取Oceanus 平台恢复作业开关 1:开启 -1: 关闭 * @method void setAutoRecover(integer $AutoRecover) 设置Oceanus 平台恢复作业开关 1:开启 -1: 关闭 + * @method array getClazzLevels() 获取类日志级别 + * @method void setClazzLevels(array $ClazzLevels) 设置类日志级别 + * @method boolean getExpertModeOn() 获取是否打开专家模式 + * @method void setExpertModeOn(boolean $ExpertModeOn) 设置是否打开专家模式 + * @method ExpertModeConfiguration getExpertModeConfiguration() 获取专家模式的配置 + * @method void setExpertModeConfiguration(ExpertModeConfiguration $ExpertModeConfiguration) 设置专家模式的配置 */ class CreateJobConfigRequest extends AbstractModel { @@ -156,6 +162,21 @@ class CreateJobConfigRequest extends AbstractModel */ public $AutoRecover; + /** + * @var array 类日志级别 + */ + public $ClazzLevels; + + /** + * @var boolean 是否打开专家模式 + */ + public $ExpertModeOn; + + /** + * @var ExpertModeConfiguration 专家模式的配置 + */ + public $ExpertModeConfiguration; + /** * @param string $JobId 作业Id * @param string $EntrypointClass 主类 @@ -176,6 +197,9 @@ class CreateJobConfigRequest extends AbstractModel * @param string $WorkSpaceId 工作空间 SerialId * @param string $LogLevel 日志级别 * @param integer $AutoRecover Oceanus 平台恢复作业开关 1:开启 -1: 关闭 + * @param array $ClazzLevels 类日志级别 + * @param boolean $ExpertModeOn 是否打开专家模式 + * @param ExpertModeConfiguration $ExpertModeConfiguration 专家模式的配置 */ function __construct() { @@ -275,5 +299,23 @@ class CreateJobConfigRequest extends AbstractModel if (array_key_exists("AutoRecover",$param) and $param["AutoRecover"] !== null) { $this->AutoRecover = $param["AutoRecover"]; } + + if (array_key_exists("ClazzLevels",$param) and $param["ClazzLevels"] !== null) { + $this->ClazzLevels = []; + foreach ($param["ClazzLevels"] as $key => $value){ + $obj = new ClazzLevel(); + $obj->deserialize($value); + array_push($this->ClazzLevels, $obj); + } + } + + if (array_key_exists("ExpertModeOn",$param) and $param["ExpertModeOn"] !== null) { + $this->ExpertModeOn = $param["ExpertModeOn"]; + } + + if (array_key_exists("ExpertModeConfiguration",$param) and $param["ExpertModeConfiguration"] !== null) { + $this->ExpertModeConfiguration = new ExpertModeConfiguration(); + $this->ExpertModeConfiguration->deserialize($param["ExpertModeConfiguration"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/ExpertModeConfiguration.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/ExpertModeConfiguration.php new file mode 100644 index 000000000..0e056e7df --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/ExpertModeConfiguration.php @@ -0,0 +1,100 @@ +JobGraph = new JobGraph(); + $this->JobGraph->deserialize($param["JobGraph"]); + } + + if (array_key_exists("NodeConfig",$param) and $param["NodeConfig"] !== null) { + $this->NodeConfig = []; + foreach ($param["NodeConfig"] as $key => $value){ + $obj = new NodeConfig(); + $obj->deserialize($value); + array_push($this->NodeConfig, $obj); + } + } + + if (array_key_exists("SlotSharingGroups",$param) and $param["SlotSharingGroups"] !== null) { + $this->SlotSharingGroups = []; + foreach ($param["SlotSharingGroups"] as $key => $value){ + $obj = new SlotSharingGroup(); + $obj->deserialize($value); + array_push($this->SlotSharingGroups, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobConfig.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobConfig.php index 571213a56..4b17dc790 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobConfig.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobConfig.php @@ -97,6 +97,18 @@ use TencentCloud\Common\AbstractModel; * @method string getLogLevel() 获取日志级别 注意:此字段可能返回 null,表示取不到有效值。 * @method void setLogLevel(string $LogLevel) 设置日志级别 +注意:此字段可能返回 null,表示取不到有效值。 + * @method array getClazzLevels() 获取类日志级别 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setClazzLevels(array $ClazzLevels) 设置类日志级别 +注意:此字段可能返回 null,表示取不到有效值。 + * @method boolean getExpertModeOn() 获取是否开启专家模式 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setExpertModeOn(boolean $ExpertModeOn) 设置是否开启专家模式 +注意:此字段可能返回 null,表示取不到有效值。 + * @method ExpertModeConfiguration getExpertModeConfiguration() 获取专家模式的配置 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setExpertModeConfiguration(ExpertModeConfiguration $ExpertModeConfiguration) 设置专家模式的配置 注意:此字段可能返回 null,表示取不到有效值。 */ class JobConfig extends AbstractModel @@ -224,6 +236,24 @@ class JobConfig extends AbstractModel */ public $LogLevel; + /** + * @var array 类日志级别 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ClazzLevels; + + /** + * @var boolean 是否开启专家模式 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ExpertModeOn; + + /** + * @var ExpertModeConfiguration 专家模式的配置 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ExpertModeConfiguration; + /** * @param string $JobId 作业Id * @param string $EntrypointClass 主类 @@ -263,6 +293,12 @@ class JobConfig extends AbstractModel * @param integer $AutoRecover Oceanus 平台恢复作业开关 1:开启 -1: 关闭 注意:此字段可能返回 null,表示取不到有效值。 * @param string $LogLevel 日志级别 +注意:此字段可能返回 null,表示取不到有效值。 + * @param array $ClazzLevels 类日志级别 +注意:此字段可能返回 null,表示取不到有效值。 + * @param boolean $ExpertModeOn 是否开启专家模式 +注意:此字段可能返回 null,表示取不到有效值。 + * @param ExpertModeConfiguration $ExpertModeConfiguration 专家模式的配置 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -371,5 +407,23 @@ class JobConfig extends AbstractModel if (array_key_exists("LogLevel",$param) and $param["LogLevel"] !== null) { $this->LogLevel = $param["LogLevel"]; } + + if (array_key_exists("ClazzLevels",$param) and $param["ClazzLevels"] !== null) { + $this->ClazzLevels = []; + foreach ($param["ClazzLevels"] as $key => $value){ + $obj = new ClazzLevel(); + $obj->deserialize($value); + array_push($this->ClazzLevels, $obj); + } + } + + if (array_key_exists("ExpertModeOn",$param) and $param["ExpertModeOn"] !== null) { + $this->ExpertModeOn = $param["ExpertModeOn"]; + } + + if (array_key_exists("ExpertModeConfiguration",$param) and $param["ExpertModeConfiguration"] !== null) { + $this->ExpertModeConfiguration = new ExpertModeConfiguration(); + $this->ExpertModeConfiguration->deserialize($param["ExpertModeConfiguration"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraph.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraph.php new file mode 100644 index 000000000..d167281bc --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraph.php @@ -0,0 +1,83 @@ +Nodes = []; + foreach ($param["Nodes"] as $key => $value){ + $obj = new JobGraphNode(); + $obj->deserialize($value); + array_push($this->Nodes, $obj); + } + } + + if (array_key_exists("Edges",$param) and $param["Edges"] !== null) { + $this->Edges = []; + foreach ($param["Edges"] as $key => $value){ + $obj = new JobGraphEdge(); + $obj->deserialize($value); + array_push($this->Edges, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraphEdge.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraphEdge.php new file mode 100644 index 000000000..f0bb323d1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraphEdge.php @@ -0,0 +1,73 @@ +Source = $param["Source"]; + } + + if (array_key_exists("Target",$param) and $param["Target"] !== null) { + $this->Target = $param["Target"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraphNode.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraphNode.php new file mode 100644 index 000000000..e9ca87045 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/JobGraphNode.php @@ -0,0 +1,105 @@ +Id = $param["Id"]; + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("Parallelism",$param) and $param["Parallelism"] !== null) { + $this->Parallelism = $param["Parallelism"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/NodeConfig.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/NodeConfig.php new file mode 100644 index 000000000..2784bc77f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/NodeConfig.php @@ -0,0 +1,126 @@ +Id = $param["Id"]; + } + + if (array_key_exists("Parallelism",$param) and $param["Parallelism"] !== null) { + $this->Parallelism = $param["Parallelism"]; + } + + if (array_key_exists("SlotSharingGroup",$param) and $param["SlotSharingGroup"] !== null) { + $this->SlotSharingGroup = $param["SlotSharingGroup"]; + } + + if (array_key_exists("Configuration",$param) and $param["Configuration"] !== null) { + $this->Configuration = []; + foreach ($param["Configuration"] as $key => $value){ + $obj = new Property(); + $obj->deserialize($value); + array_push($this->Configuration, $obj); + } + } + + if (array_key_exists("StateTTL",$param) and $param["StateTTL"] !== null) { + $this->StateTTL = $param["StateTTL"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/SlotSharingGroup.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/SlotSharingGroup.php new file mode 100644 index 000000000..0a94139cc --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/SlotSharingGroup.php @@ -0,0 +1,90 @@ +Name = $param["Name"]; + } + + if (array_key_exists("Spec",$param) and $param["Spec"] !== null) { + $this->Spec = new SlotSharingGroupSpec(); + $this->Spec->deserialize($param["Spec"]); + } + + if (array_key_exists("Description",$param) and $param["Description"] !== null) { + $this->Description = $param["Description"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/SlotSharingGroupSpec.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/SlotSharingGroupSpec.php new file mode 100644 index 000000000..9928a105c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Oceanus/V20190422/Models/SlotSharingGroupSpec.php @@ -0,0 +1,105 @@ +CPU = $param["CPU"]; + } + + if (array_key_exists("HeapMemory",$param) and $param["HeapMemory"] !== null) { + $this->HeapMemory = $param["HeapMemory"]; + } + + if (array_key_exists("OffHeapMemory",$param) and $param["OffHeapMemory"] !== null) { + $this->OffHeapMemory = $param["OffHeapMemory"]; + } + + if (array_key_exists("ManagedMemory",$param) and $param["ManagedMemory"] !== null) { + $this->ManagedMemory = $param["ManagedMemory"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/BizLicenseVerifyResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/BizLicenseVerifyResult.php deleted file mode 100644 index e634e1d22..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/BizLicenseVerifyResult.php +++ /dev/null @@ -1,97 +0,0 @@ -RegNum = $param["RegNum"]; - } - - if (array_key_exists("Name",$param) and $param["Name"] !== null) { - $this->Name = $param["Name"]; - } - - if (array_key_exists("Address",$param) and $param["Address"] !== null) { - $this->Address = $param["Address"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/CarInvoiceInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/CarInvoiceInfo.php index dc022109e..4438be918 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/CarInvoiceInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/CarInvoiceInfo.php @@ -28,10 +28,10 @@ use TencentCloud\Common\AbstractModel; * @method void setValue(string $Value) 设置识别出的字段名称对应的值,也就是字段name对应的字符串结果。 * @method Rect getRect() 获取字段在旋转纠正之后的图像中的像素坐标。 * @method void setRect(Rect $Rect) 设置字段在旋转纠正之后的图像中的像素坐标。 - * @method Polygon getPolygon() 获取字段在原图中的中的四点坐标。 + * @method Polygon getPolygon() 获取字段在原图中的四点坐标。 注意:此字段可能返回 null,表示取不到有效值。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setPolygon(Polygon $Polygon) 设置字段在原图中的中的四点坐标。 + * @method void setPolygon(Polygon $Polygon) 设置字段在原图中的四点坐标。 注意:此字段可能返回 null,表示取不到有效值。 注意:此字段可能返回 null,表示取不到有效值。 */ @@ -54,7 +54,7 @@ class CarInvoiceInfo extends AbstractModel public $Rect; /** - * @var Polygon 字段在原图中的中的四点坐标。 + * @var Polygon 字段在原图中的四点坐标。 注意:此字段可能返回 null,表示取不到有效值。 注意:此字段可能返回 null,表示取不到有效值。 */ @@ -65,7 +65,7 @@ class CarInvoiceInfo extends AbstractModel 发票代码、 机打代码、 发票号码、 发动机号码、 合格证号、 机打号码、 价税合计(小写)、 销货单位名称、 身份证号码/组织机构代码、 购买方名称、 销售方纳税人识别号、 购买方纳税人识别号、主管税务机关、 主管税务机关代码、 开票日期、 不含税价(小写)、 吨位、增值税税率或征收率、 车辆识别代号/车架号码、 增值税税额、 厂牌型号、 省、 市、 发票消费类型、 销售方电话、 销售方账号、 产地、 进口证明书号、 车辆类型、 机器编号、备注、开票人、限乘人数、商检单号、销售方地址、销售方开户银行、价税合计、发票类型。 * @param string $Value 识别出的字段名称对应的值,也就是字段name对应的字符串结果。 * @param Rect $Rect 字段在旋转纠正之后的图像中的像素坐标。 - * @param Polygon $Polygon 字段在原图中的中的四点坐标。 + * @param Polygon $Polygon 字段在原图中的四点坐标。 注意:此字段可能返回 null,表示取不到有效值。 注意:此字段可能返回 null,表示取不到有效值。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/EnterpriseLicenseInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/EnterpriseLicenseInfo.php index 08cbf7859..c15da73fe 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/EnterpriseLicenseInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/EnterpriseLicenseInfo.php @@ -21,9 +21,9 @@ use TencentCloud\Common\AbstractModel; * 企业证照单个字段的内容 * * @method string getName() 获取识别出的字段名称(关键字),不同证件类型可能不同,证件类型包含企业登记证书、许可证书、企业执照、三证合一类证书; -支持以下字段:统一社会信用代码、法定代表人、公司名称、公司地址、注册资金、企业关型、经营范围、成立日期、有效期、开办资金、经费来源、举办单位等; +支持以下字段:统一社会信用代码、法定代表人、公司名称、公司地址、注册资金、企业类型、经营范围、成立日期、有效期、开办资金、经费来源、举办单位等; * @method void setName(string $Name) 设置识别出的字段名称(关键字),不同证件类型可能不同,证件类型包含企业登记证书、许可证书、企业执照、三证合一类证书; -支持以下字段:统一社会信用代码、法定代表人、公司名称、公司地址、注册资金、企业关型、经营范围、成立日期、有效期、开办资金、经费来源、举办单位等; +支持以下字段:统一社会信用代码、法定代表人、公司名称、公司地址、注册资金、企业类型、经营范围、成立日期、有效期、开办资金、经费来源、举办单位等; * @method string getValue() 获取识别出的字段名称对应的值,也就是字段Name对应的字符串结果。 * @method void setValue(string $Value) 设置识别出的字段名称对应的值,也就是字段Name对应的字符串结果。 */ @@ -31,7 +31,7 @@ class EnterpriseLicenseInfo extends AbstractModel { /** * @var string 识别出的字段名称(关键字),不同证件类型可能不同,证件类型包含企业登记证书、许可证书、企业执照、三证合一类证书; -支持以下字段:统一社会信用代码、法定代表人、公司名称、公司地址、注册资金、企业关型、经营范围、成立日期、有效期、开办资金、经费来源、举办单位等; +支持以下字段:统一社会信用代码、法定代表人、公司名称、公司地址、注册资金、企业类型、经营范围、成立日期、有效期、开办资金、经费来源、举办单位等; */ public $Name; @@ -42,7 +42,7 @@ class EnterpriseLicenseInfo extends AbstractModel /** * @param string $Name 识别出的字段名称(关键字),不同证件类型可能不同,证件类型包含企业登记证书、许可证书、企业执照、三证合一类证书; -支持以下字段:统一社会信用代码、法定代表人、公司名称、公司地址、注册资金、企业关型、经营范围、成立日期、有效期、开办资金、经费来源、举办单位等; +支持以下字段:统一社会信用代码、法定代表人、公司名称、公司地址、注册资金、企业类型、经营范围、成立日期、有效期、开办资金、经费来源、举办单位等; * @param string $Value 识别出的字段名称对应的值,也就是字段Name对应的字符串结果。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/IDCardOCRRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/IDCardOCRRequest.php index fe5d93210..cafe090fb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/IDCardOCRRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/IDCardOCRRequest.php @@ -68,6 +68,8 @@ SDK 设置方式参考: Config = Json.stringify({"CropIdCard":true,"CropPortrait":true}) API 3.0 Explorer 设置方式参考: Config = {"CropIdCard":true,"CropPortrait":true} + * @method boolean getEnableRecognitionRectify() 获取默认值为true,打开识别结果纠正开关。开关开启后,身份证号、出生日期、性别,三个字段会进行矫正补齐,统一结果输出;若关闭此开关,以上三个字段不会进行矫正补齐,保持原始识别结果输出,若原图出现篡改情况,这三个字段的识别结果可能会不统一。 + * @method void setEnableRecognitionRectify(boolean $EnableRecognitionRectify) 设置默认值为true,打开识别结果纠正开关。开关开启后,身份证号、出生日期、性别,三个字段会进行矫正补齐,统一结果输出;若关闭此开关,以上三个字段不会进行矫正补齐,保持原始识别结果输出,若原图出现篡改情况,这三个字段的识别结果可能会不统一。 */ class IDCardOCRRequest extends AbstractModel { @@ -111,6 +113,11 @@ Config = {"CropIdCard":true,"CropPortrait":true} */ public $Config; + /** + * @var boolean 默认值为true,打开识别结果纠正开关。开关开启后,身份证号、出生日期、性别,三个字段会进行矫正补齐,统一结果输出;若关闭此开关,以上三个字段不会进行矫正补齐,保持原始识别结果输出,若原图出现篡改情况,这三个字段的识别结果可能会不统一。 + */ + public $EnableRecognitionRectify; + /** * @param string $ImageBase64 图片的 Base64 值。要求图片经Base64编码后不超过 7M,分辨率建议500*800以上,支持PNG、JPG、JPEG、BMP格式。建议卡片部分占据图片2/3以上。 图片的 ImageUrl、ImageBase64 必须提供一个,如果都提供,只使用 ImageUrl。 @@ -136,6 +143,7 @@ SDK 设置方式参考: Config = Json.stringify({"CropIdCard":true,"CropPortrait":true}) API 3.0 Explorer 设置方式参考: Config = {"CropIdCard":true,"CropPortrait":true} + * @param boolean $EnableRecognitionRectify 默认值为true,打开识别结果纠正开关。开关开启后,身份证号、出生日期、性别,三个字段会进行矫正补齐,统一结果输出;若关闭此开关,以上三个字段不会进行矫正补齐,保持原始识别结果输出,若原图出现篡改情况,这三个字段的识别结果可能会不统一。 */ function __construct() { @@ -165,5 +173,9 @@ Config = {"CropIdCard":true,"CropPortrait":true} if (array_key_exists("Config",$param) and $param["Config"] !== null) { $this->Config = $param["Config"]; } + + if (array_key_exists("EnableRecognitionRectify",$param) and $param["EnableRecognitionRectify"] !== null) { + $this->EnableRecognitionRectify = $param["EnableRecognitionRectify"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/OtherInvoice.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/OtherInvoice.php index 7af632e38..0d587e5aa 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/OtherInvoice.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/OtherInvoice.php @@ -28,6 +28,8 @@ use TencentCloud\Common\AbstractModel; * @method void setOtherInvoiceListItems(array $OtherInvoiceListItems) 设置列表 * @method array getOtherInvoiceTableItems() 获取表格 * @method void setOtherInvoiceTableItems(array $OtherInvoiceTableItems) 设置表格 + * @method string getDate() 获取发票日期 + * @method void setDate(string $Date) 设置发票日期 */ class OtherInvoice extends AbstractModel { @@ -51,11 +53,17 @@ class OtherInvoice extends AbstractModel */ public $OtherInvoiceTableItems; + /** + * @var string 发票日期 + */ + public $Date; + /** * @param string $Title 发票名称 * @param string $Total 金额 * @param array $OtherInvoiceListItems 列表 * @param array $OtherInvoiceTableItems 表格 + * @param string $Date 发票日期 */ function __construct() { @@ -95,5 +103,9 @@ class OtherInvoice extends AbstractModel array_push($this->OtherInvoiceTableItems, $obj); } } + + if (array_key_exists("Date",$param) and $param["Date"] !== null) { + $this->Date = $param["Date"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/ProductDataRecord.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/ProductDataRecord.php deleted file mode 100644 index ba3331eba..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/ProductDataRecord.php +++ /dev/null @@ -1,297 +0,0 @@ -ProductName = $param["ProductName"]; - } - - if (array_key_exists("EnName",$param) and $param["EnName"] !== null) { - $this->EnName = $param["EnName"]; - } - - if (array_key_exists("BrandName",$param) and $param["BrandName"] !== null) { - $this->BrandName = $param["BrandName"]; - } - - if (array_key_exists("Type",$param) and $param["Type"] !== null) { - $this->Type = $param["Type"]; - } - - if (array_key_exists("Width",$param) and $param["Width"] !== null) { - $this->Width = $param["Width"]; - } - - if (array_key_exists("Height",$param) and $param["Height"] !== null) { - $this->Height = $param["Height"]; - } - - if (array_key_exists("Depth",$param) and $param["Depth"] !== null) { - $this->Depth = $param["Depth"]; - } - - if (array_key_exists("KeyWord",$param) and $param["KeyWord"] !== null) { - $this->KeyWord = $param["KeyWord"]; - } - - if (array_key_exists("Description",$param) and $param["Description"] !== null) { - $this->Description = $param["Description"]; - } - - if (array_key_exists("ImageLink",$param) and $param["ImageLink"] !== null) { - $this->ImageLink = $param["ImageLink"]; - } - - if (array_key_exists("ManufacturerName",$param) and $param["ManufacturerName"] !== null) { - $this->ManufacturerName = $param["ManufacturerName"]; - } - - if (array_key_exists("ManufacturerAddress",$param) and $param["ManufacturerAddress"] !== null) { - $this->ManufacturerAddress = $param["ManufacturerAddress"]; - } - - if (array_key_exists("FirmCode",$param) and $param["FirmCode"] !== null) { - $this->FirmCode = $param["FirmCode"]; - } - - if (array_key_exists("CheckResult",$param) and $param["CheckResult"] !== null) { - $this->CheckResult = $param["CheckResult"]; - } - - if (array_key_exists("CategoryCode",$param) and $param["CategoryCode"] !== null) { - $this->CategoryCode = $param["CategoryCode"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/SingleInvoiceItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/SingleInvoiceItem.php index 7fadb037e..245d22af0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/SingleInvoiceItem.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/SingleInvoiceItem.php @@ -115,6 +115,10 @@ use TencentCloud\Common\AbstractModel; * @method MedicalInvoice getMedicalHospitalizedInvoice() 获取医疗住院收费票据(电子) 注意:此字段可能返回 null,表示取不到有效值。 * @method void setMedicalHospitalizedInvoice(MedicalInvoice $MedicalHospitalizedInvoice) 设置医疗住院收费票据(电子) +注意:此字段可能返回 null,表示取不到有效值。 + * @method VatInvoiceInfo getVatSalesList() 获取增值税销货清单 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setVatSalesList(VatInvoiceInfo $VatSalesList) 设置增值税销货清单 注意:此字段可能返回 null,表示取不到有效值。 */ class SingleInvoiceItem extends AbstractModel @@ -263,6 +267,12 @@ class SingleInvoiceItem extends AbstractModel */ public $MedicalHospitalizedInvoice; + /** + * @var VatInvoiceInfo 增值税销货清单 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $VatSalesList; + /** * @param VatInvoiceInfo $VatSpecialInvoice 增值税专用发票 注意:此字段可能返回 null,表示取不到有效值。 @@ -311,6 +321,8 @@ class SingleInvoiceItem extends AbstractModel * @param MedicalInvoice $MedicalOutpatientInvoice 医疗门诊收费票据(电子) 注意:此字段可能返回 null,表示取不到有效值。 * @param MedicalInvoice $MedicalHospitalizedInvoice 医疗住院收费票据(电子) +注意:此字段可能返回 null,表示取不到有效值。 + * @param VatInvoiceInfo $VatSalesList 增值税销货清单 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -445,5 +457,10 @@ class SingleInvoiceItem extends AbstractModel $this->MedicalHospitalizedInvoice = new MedicalInvoice(); $this->MedicalHospitalizedInvoice->deserialize($param["MedicalHospitalizedInvoice"]); } + + if (array_key_exists("VatSalesList",$param) and $param["VatSalesList"] !== null) { + $this->VatSalesList = new VatInvoiceInfo(); + $this->VatSalesList->deserialize($param["VatSalesList"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VatInvoiceInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VatInvoiceInfo.php index 6cd8ee4d7..e646f37e2 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VatInvoiceInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VatInvoiceInfo.php @@ -104,6 +104,14 @@ use TencentCloud\Common\AbstractModel; * @method void setElectronicFullNumber(string $ElectronicFullNumber) 设置全电号码 * @method string getFormName() 获取发票联名 * @method void setFormName(string $FormName) 设置发票联名 + * @method integer getBlockChainMark() 获取是否有区块链标记(0:没有,1:有) + * @method void setBlockChainMark(integer $BlockChainMark) 设置是否有区块链标记(0:没有,1:有) + * @method integer getAcquisitionMark() 获取是否有收购标记(0:没有,1:有) + * @method void setAcquisitionMark(integer $AcquisitionMark) 设置是否有收购标记(0:没有,1:有) + * @method string getSubTotal() 获取小计金额 + * @method void setSubTotal(string $SubTotal) 设置小计金额 + * @method string getSubTax() 获取小计税额 + * @method void setSubTax(string $SubTax) 设置小计税额 */ class VatInvoiceInfo extends AbstractModel { @@ -317,6 +325,26 @@ class VatInvoiceInfo extends AbstractModel */ public $FormName; + /** + * @var integer 是否有区块链标记(0:没有,1:有) + */ + public $BlockChainMark; + + /** + * @var integer 是否有收购标记(0:没有,1:有) + */ + public $AcquisitionMark; + + /** + * @var string 小计金额 + */ + public $SubTotal; + + /** + * @var string 小计税额 + */ + public $SubTax; + /** * @param string $CheckCode 校验码 * @param string $FormType 发票联次 @@ -360,6 +388,10 @@ class VatInvoiceInfo extends AbstractModel * @param integer $ElectronicFullMark 是否有全电纸质票(0:没有,1:有) * @param string $ElectronicFullNumber 全电号码 * @param string $FormName 发票联名 + * @param integer $BlockChainMark 是否有区块链标记(0:没有,1:有) + * @param integer $AcquisitionMark 是否有收购标记(0:没有,1:有) + * @param string $SubTotal 小计金额 + * @param string $SubTax 小计税额 */ function __construct() { @@ -546,5 +578,21 @@ class VatInvoiceInfo extends AbstractModel if (array_key_exists("FormName",$param) and $param["FormName"] !== null) { $this->FormName = $param["FormName"]; } + + if (array_key_exists("BlockChainMark",$param) and $param["BlockChainMark"] !== null) { + $this->BlockChainMark = $param["BlockChainMark"]; + } + + if (array_key_exists("AcquisitionMark",$param) and $param["AcquisitionMark"] !== null) { + $this->AcquisitionMark = $param["AcquisitionMark"]; + } + + if (array_key_exists("SubTotal",$param) and $param["SubTotal"] !== null) { + $this->SubTotal = $param["SubTotal"]; + } + + if (array_key_exists("SubTax",$param) and $param["SubTax"] !== null) { + $this->SubTax = $param["SubTax"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VatInvoiceItemInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VatInvoiceItemInfo.php index 7db6049b3..590844080 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VatInvoiceItemInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VatInvoiceItemInfo.php @@ -44,6 +44,8 @@ use TencentCloud\Common\AbstractModel; * @method void setLicensePlate(string $LicensePlate) 设置车牌号 * @method string getVehicleType() 获取车辆类型 * @method void setVehicleType(string $VehicleType) 设置车辆类型 + * @method string getSerialNumber() 获取序号 + * @method void setSerialNumber(string $SerialNumber) 设置序号 */ class VatInvoiceItemInfo extends AbstractModel { @@ -107,6 +109,11 @@ class VatInvoiceItemInfo extends AbstractModel */ public $VehicleType; + /** + * @var string 序号 + */ + public $SerialNumber; + /** * @param string $Name 项目名称 * @param string $Specification 规格型号 @@ -120,6 +127,7 @@ class VatInvoiceItemInfo extends AbstractModel * @param string $DateEnd 通行日期止 * @param string $LicensePlate 车牌号 * @param string $VehicleType 车辆类型 + * @param string $SerialNumber 序号 */ function __construct() { @@ -181,5 +189,9 @@ class VatInvoiceItemInfo extends AbstractModel if (array_key_exists("VehicleType",$param) and $param["VehicleType"] !== null) { $this->VehicleType = $param["VehicleType"]; } + + if (array_key_exists("SerialNumber",$param) and $param["SerialNumber"] !== null) { + $this->SerialNumber = $param["SerialNumber"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBasicBizLicenseRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBasicBizLicenseRequest.php deleted file mode 100644 index 4e85fcc13..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBasicBizLicenseRequest.php +++ /dev/null @@ -1,177 +0,0 @@ -ImageBase64 = $param["ImageBase64"]; - } - - if (array_key_exists("ImageUrl",$param) and $param["ImageUrl"] !== null) { - $this->ImageUrl = $param["ImageUrl"]; - } - - if (array_key_exists("ImageConfig",$param) and $param["ImageConfig"] !== null) { - $this->ImageConfig = $param["ImageConfig"]; - } - - if (array_key_exists("RegNum",$param) and $param["RegNum"] !== null) { - $this->RegNum = $param["RegNum"]; - } - - if (array_key_exists("Name",$param) and $param["Name"] !== null) { - $this->Name = $param["Name"]; - } - - if (array_key_exists("Address",$param) and $param["Address"] !== null) { - $this->Address = $param["Address"]; - } - - if (array_key_exists("RegCapital",$param) and $param["RegCapital"] !== null) { - $this->RegCapital = $param["RegCapital"]; - } - - if (array_key_exists("EstablishTime",$param) and $param["EstablishTime"] !== null) { - $this->EstablishTime = $param["EstablishTime"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBasicBizLicenseResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBasicBizLicenseResponse.php deleted file mode 100644 index 008e3d56f..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBasicBizLicenseResponse.php +++ /dev/null @@ -1,270 +0,0 @@ -ErrorCode = $param["ErrorCode"]; - } - - if (array_key_exists("CreditCode",$param) and $param["CreditCode"] !== null) { - $this->CreditCode = $param["CreditCode"]; - } - - if (array_key_exists("Opfrom",$param) and $param["Opfrom"] !== null) { - $this->Opfrom = $param["Opfrom"]; - } - - if (array_key_exists("Opto",$param) and $param["Opto"] !== null) { - $this->Opto = $param["Opto"]; - } - - if (array_key_exists("Frname",$param) and $param["Frname"] !== null) { - $this->Frname = $param["Frname"]; - } - - if (array_key_exists("Entstatus",$param) and $param["Entstatus"] !== null) { - $this->Entstatus = $param["Entstatus"]; - } - - if (array_key_exists("Zsopscope",$param) and $param["Zsopscope"] !== null) { - $this->Zsopscope = $param["Zsopscope"]; - } - - if (array_key_exists("Reason",$param) and $param["Reason"] !== null) { - $this->Reason = $param["Reason"]; - } - - if (array_key_exists("Oriregno",$param) and $param["Oriregno"] !== null) { - $this->Oriregno = $param["Oriregno"]; - } - - if (array_key_exists("VerifyRegno",$param) and $param["VerifyRegno"] !== null) { - $this->VerifyRegno = $param["VerifyRegno"]; - } - - if (array_key_exists("Regno",$param) and $param["Regno"] !== null) { - $this->Regno = $param["Regno"]; - } - - if (array_key_exists("VerifyEntname",$param) and $param["VerifyEntname"] !== null) { - $this->VerifyEntname = $param["VerifyEntname"]; - } - - if (array_key_exists("Entname",$param) and $param["Entname"] !== null) { - $this->Entname = $param["Entname"]; - } - - if (array_key_exists("VerifyDom",$param) and $param["VerifyDom"] !== null) { - $this->VerifyDom = $param["VerifyDom"]; - } - - if (array_key_exists("Dom",$param) and $param["Dom"] !== null) { - $this->Dom = $param["Dom"]; - } - - if (array_key_exists("RegNumResult",$param) and $param["RegNumResult"] !== null) { - $this->RegNumResult = new BizLicenseVerifyResult(); - $this->RegNumResult->deserialize($param["RegNumResult"]); - } - - if (array_key_exists("RegCapital",$param) and $param["RegCapital"] !== null) { - $this->RegCapital = $param["RegCapital"]; - } - - if (array_key_exists("EstablishTime",$param) and $param["EstablishTime"] !== null) { - $this->EstablishTime = $param["EstablishTime"]; - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBizLicenseRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBizLicenseRequest.php deleted file mode 100644 index a29dab996..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBizLicenseRequest.php +++ /dev/null @@ -1,153 +0,0 @@ -ImageBase64 = $param["ImageBase64"]; - } - - if (array_key_exists("ImageUrl",$param) and $param["ImageUrl"] !== null) { - $this->ImageUrl = $param["ImageUrl"]; - } - - if (array_key_exists("ImageConfig",$param) and $param["ImageConfig"] !== null) { - $this->ImageConfig = $param["ImageConfig"]; - } - - if (array_key_exists("RegNum",$param) and $param["RegNum"] !== null) { - $this->RegNum = $param["RegNum"]; - } - - if (array_key_exists("Name",$param) and $param["Name"] !== null) { - $this->Name = $param["Name"]; - } - - if (array_key_exists("Address",$param) and $param["Address"] !== null) { - $this->Address = $param["Address"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBizLicenseResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBizLicenseResponse.php deleted file mode 100644 index c497e9580..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyBizLicenseResponse.php +++ /dev/null @@ -1,462 +0,0 @@ -ErrorCode = $param["ErrorCode"]; - } - - if (array_key_exists("CreditCode",$param) and $param["CreditCode"] !== null) { - $this->CreditCode = $param["CreditCode"]; - } - - if (array_key_exists("OrgCode",$param) and $param["OrgCode"] !== null) { - $this->OrgCode = $param["OrgCode"]; - } - - if (array_key_exists("OpenFrom",$param) and $param["OpenFrom"] !== null) { - $this->OpenFrom = $param["OpenFrom"]; - } - - if (array_key_exists("OpenTo",$param) and $param["OpenTo"] !== null) { - $this->OpenTo = $param["OpenTo"]; - } - - if (array_key_exists("FrName",$param) and $param["FrName"] !== null) { - $this->FrName = $param["FrName"]; - } - - if (array_key_exists("EnterpriseStatus",$param) and $param["EnterpriseStatus"] !== null) { - $this->EnterpriseStatus = $param["EnterpriseStatus"]; - } - - if (array_key_exists("OperateScopeAndForm",$param) and $param["OperateScopeAndForm"] !== null) { - $this->OperateScopeAndForm = $param["OperateScopeAndForm"]; - } - - if (array_key_exists("RegCap",$param) and $param["RegCap"] !== null) { - $this->RegCap = $param["RegCap"]; - } - - if (array_key_exists("RegCapCur",$param) and $param["RegCapCur"] !== null) { - $this->RegCapCur = $param["RegCapCur"]; - } - - if (array_key_exists("RegOrg",$param) and $param["RegOrg"] !== null) { - $this->RegOrg = $param["RegOrg"]; - } - - if (array_key_exists("EsDate",$param) and $param["EsDate"] !== null) { - $this->EsDate = $param["EsDate"]; - } - - if (array_key_exists("EnterpriseType",$param) and $param["EnterpriseType"] !== null) { - $this->EnterpriseType = $param["EnterpriseType"]; - } - - if (array_key_exists("CancelDate",$param) and $param["CancelDate"] !== null) { - $this->CancelDate = $param["CancelDate"]; - } - - if (array_key_exists("RevokeDate",$param) and $param["RevokeDate"] !== null) { - $this->RevokeDate = $param["RevokeDate"]; - } - - if (array_key_exists("AbuItem",$param) and $param["AbuItem"] !== null) { - $this->AbuItem = $param["AbuItem"]; - } - - if (array_key_exists("CbuItem",$param) and $param["CbuItem"] !== null) { - $this->CbuItem = $param["CbuItem"]; - } - - if (array_key_exists("ApprDate",$param) and $param["ApprDate"] !== null) { - $this->ApprDate = $param["ApprDate"]; - } - - if (array_key_exists("Province",$param) and $param["Province"] !== null) { - $this->Province = $param["Province"]; - } - - if (array_key_exists("City",$param) and $param["City"] !== null) { - $this->City = $param["City"]; - } - - if (array_key_exists("County",$param) and $param["County"] !== null) { - $this->County = $param["County"]; - } - - if (array_key_exists("AreaCode",$param) and $param["AreaCode"] !== null) { - $this->AreaCode = $param["AreaCode"]; - } - - if (array_key_exists("IndustryPhyCode",$param) and $param["IndustryPhyCode"] !== null) { - $this->IndustryPhyCode = $param["IndustryPhyCode"]; - } - - if (array_key_exists("IndustryPhyName",$param) and $param["IndustryPhyName"] !== null) { - $this->IndustryPhyName = $param["IndustryPhyName"]; - } - - if (array_key_exists("IndustryCode",$param) and $param["IndustryCode"] !== null) { - $this->IndustryCode = $param["IndustryCode"]; - } - - if (array_key_exists("IndustryName",$param) and $param["IndustryName"] !== null) { - $this->IndustryName = $param["IndustryName"]; - } - - if (array_key_exists("OperateScope",$param) and $param["OperateScope"] !== null) { - $this->OperateScope = $param["OperateScope"]; - } - - if (array_key_exists("VerifyRegNo",$param) and $param["VerifyRegNo"] !== null) { - $this->VerifyRegNo = $param["VerifyRegNo"]; - } - - if (array_key_exists("RegNo",$param) and $param["RegNo"] !== null) { - $this->RegNo = $param["RegNo"]; - } - - if (array_key_exists("VerifyEnterpriseName",$param) and $param["VerifyEnterpriseName"] !== null) { - $this->VerifyEnterpriseName = $param["VerifyEnterpriseName"]; - } - - if (array_key_exists("EnterpriseName",$param) and $param["EnterpriseName"] !== null) { - $this->EnterpriseName = $param["EnterpriseName"]; - } - - if (array_key_exists("VerifyAddress",$param) and $param["VerifyAddress"] !== null) { - $this->VerifyAddress = $param["VerifyAddress"]; - } - - if (array_key_exists("Address",$param) and $param["Address"] !== null) { - $this->Address = $param["Address"]; - } - - if (array_key_exists("RegNumResult",$param) and $param["RegNumResult"] !== null) { - $this->RegNumResult = new BizLicenseVerifyResult(); - $this->RegNumResult->deserialize($param["RegNumResult"]); - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyEnterpriseFourFactorsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyEnterpriseFourFactorsRequest.php deleted file mode 100644 index 4c223f503..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyEnterpriseFourFactorsRequest.php +++ /dev/null @@ -1,89 +0,0 @@ -RealName = $param["RealName"]; - } - - if (array_key_exists("IdCard",$param) and $param["IdCard"] !== null) { - $this->IdCard = $param["IdCard"]; - } - - if (array_key_exists("EnterpriseName",$param) and $param["EnterpriseName"] !== null) { - $this->EnterpriseName = $param["EnterpriseName"]; - } - - if (array_key_exists("EnterpriseMark",$param) and $param["EnterpriseMark"] !== null) { - $this->EnterpriseMark = $param["EnterpriseMark"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyEnterpriseFourFactorsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyEnterpriseFourFactorsResponse.php deleted file mode 100644 index 47c99a095..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/Models/VerifyEnterpriseFourFactorsResponse.php +++ /dev/null @@ -1,86 +0,0 @@ -State = $param["State"]; - } - - if (array_key_exists("Detail",$param) and $param["Detail"] !== null) { - $this->Detail = new Detail(); - $this->Detail->deserialize($param["Detail"]); - } - - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { - $this->RequestId = $param["RequestId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/OcrClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/OcrClient.php index 3a9792e88..6553fe877 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/OcrClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ocr/V20181119/OcrClient.php @@ -41,7 +41,7 @@ use TencentCloud\Ocr\V20181119\Models as Models; * @method Models\BusInvoiceOCRResponse BusInvoiceOCR(Models\BusInvoiceOCRRequest $req) 本接口支持识别公路汽车客票关键字段的识别,包括发票代码、发票号码、日期、票价、始发地、目的地、姓名、时间、发票消费类型、身份证号、省、市、开票日期、乘车地点、检票口、客票类型、车型、座位号、车次等。 默认接口请求频率限制:5次/秒。 - * @method Models\BusinessCardOCRResponse BusinessCardOCR(Models\BusinessCardOCRRequest $req) 本接口支持名片各字段的自动定位与识别,包含姓名、电话、手机号、邮箱、公司、部门、职位、网址、地址、QQ、微信、MSN等。 + * @method Models\BusinessCardOCRResponse BusinessCardOCR(Models\BusinessCardOCRRequest $req) 本接口支持中英文名片各字段的自动定位与识别,包含姓名、电话、手机号、邮箱、公司、部门、职位、网址、地址、QQ、微信、MSN等。 默认接口请求频率限制:10次/秒。 * @method Models\CarInvoiceOCRResponse CarInvoiceOCR(Models\CarInvoiceOCRRequest $req) 本接口支持机动车销售统一发票和二手车销售统一发票的识别,包括发票号码、发票代码、合计金额、合计税额等二十多个字段。 @@ -52,7 +52,7 @@ use TencentCloud\Ocr\V20181119\Models as Models; 默认接口请求频率限制:20次/秒。 * @method Models\CreateAIFormTaskResponse CreateAIFormTask(Models\CreateAIFormTaskRequest $req) 本接口可创建智能表单录入任务,支持多个识别图片和PDF的URL上传,返回含有识别内容的操作页面URL。 -智能表单录入产品提供高准确率的表单识别技术和人工核对工具,支持自定义字段,将识别结果自动填入到自定义条目中,并提供人工操作工具,完成整个表单识别过程。适用性强,可对票据、合同、货单等文件的识别,适用于金融、货代、保险、档案等领域。本产品免费公测中,您可以点击demo(超连接:https://ocr.smartform.cloud.tencent.com/)试用,如需购买请与商务团队联系。 +智能表单录入产品提供高准确率的表单识别技术和人工核对工具,支持自定义字段,将识别结果自动填入到自定义条目中,并提供人工操作工具,完成整个表单识别过程。适用性强,可对票据、合同、货单等文件的识别,适用于金融、货代、保险、档案等领域。本产品免费公测中,您可以点击demo(超链接:https://ocr.smartform.cloud.tencent.com/)试用,如需购买请与商务团队联系。 * @method Models\DriverLicenseOCRResponse DriverLicenseOCR(Models\DriverLicenseOCRRequest $req) 本接口支持驾驶证主页和副页所有字段的自动定位与识别,重点字段的识别准确度达到99%以上。 驾驶证主页:包括证号、姓名、性别、国籍、住址、出生日期、初次领证日期、准驾车型、有效期限、发证单位 @@ -288,7 +288,7 @@ use TencentCloud\Ocr\V20181119\Models as Models; * @method Models\GeneralHandwritingOCRResponse GeneralHandwritingOCR(Models\GeneralHandwritingOCRRequest $req) 本接口支持图片内手写体文字的检测和识别,针对手写字体无规则、字迹潦草、模糊等特点进行了识别能力的增强。 默认接口请求频率限制:10次/秒。 - * @method Models\GetTaskStateResponse GetTaskState(Models\GetTaskStateRequest $req) 支持查询智能表单录入任务的状态。本产品免费公测中,您可以点击demo(超连接:https://ocr.smartform.cloud.tencent.com/)试用,如需购买请与商务团队联系。 + * @method Models\GetTaskStateResponse GetTaskState(Models\GetTaskStateRequest $req) 支持查询智能表单录入任务的状态。本产品免费公测中,您可以点击demo(超链接:https://ocr.smartform.cloud.tencent.com/)试用,如需购买请与商务团队联系。 * @method Models\HKIDCardOCRResponse HKIDCardOCR(Models\HKIDCardOCRRequest $req) 本接口支持中国香港身份证人像面中关键字段的识别,包括中文姓名、英文姓名、姓名电码、出生日期、性别、证件符号、首次签发日期、最近领用日期、身份证号、是否是永久性居民身份证;具备人像照片裁剪等扩展功能。 默认接口请求频率限制:5次/秒。 @@ -316,7 +316,9 @@ use TencentCloud\Ocr\V20181119\Models as Models; 告警功能 - 身份证有效日期不合法告警 + 身份证有效日期不合法,即有效日期不符合5年、10年、20年、长期期限 + + 身份证边框不完整告警 @@ -388,11 +390,6 @@ use TencentCloud\Ocr\V20181119\Models as Models; * @method Models\QrcodeOCRResponse QrcodeOCR(Models\QrcodeOCRRequest $req) 本接口支持条形码和二维码的识别(包括 DataMatrix 和 PDF417)。 默认接口请求频率限制:5次/秒。 - * @method Models\QueryBarCodeResponse QueryBarCode(Models\QueryBarCodeRequest $req) 库源服务调整,该接口在2023年6月1日将正式下线。 - -本接口支持条形码备案信息查询,返回条形码查询结果的相关信息,包括产品名称、产品英文名称、品牌名称、规格型号、宽度、高度、深度、关键字、产品描述、厂家名称、厂家地址、企业社会信用代码13个字段信息。 - -产品优势:直联中国物品编码中心,查询结果更加准确、可靠。 * @method Models\QuotaInvoiceOCRResponse QuotaInvoiceOCR(Models\QuotaInvoiceOCRRequest $req) 本接口支持定额发票的发票号码、发票代码、金额(大小写)、发票消费类型、地区及是否有公司印章等关键字段的识别。 默认接口请求频率限制:5次/秒。 @@ -443,6 +440,11 @@ use TencentCloud\Ocr\V20181119\Models as Models; 增值税电子普通发票(通行费) 3 + + VatSalesList + 增值税销货清单 + 3 + VatElectronicSpecialInvoiceFull 电子发票(专用发票) @@ -603,7 +605,7 @@ use TencentCloud\Ocr\V20181119\Models as Models; * @method Models\TrainTicketOCRResponse TrainTicketOCR(Models\TrainTicketOCRRequest $req) 本接口支持火车票全字段的识别,包括编号、出发站、到达站、出发时间、车次、座位号、姓名、票价、席别、身份证号、发票消费类型、序列号、加收票价、手续费、大写金额、售票站、原票价、发票类型、收据号码、是否仅供报销使用等字段的识别。 默认接口请求频率限制:5次/秒。 - * @method Models\VatInvoiceOCRResponse VatInvoiceOCR(Models\VatInvoiceOCRRequest $req) 本接口支持增值税专用发票、增值税普通发票、增值税电子专票、增值税电子普票、电子发票(普通发票)、电子发票(增值税专用发票)德全字段的内容检测和识别,包括发票代码、发票号码、打印发票代码、打印发票号码、开票日期、合计金额、校验码、税率、合计税额、价税合计、购买方识别号、复核、销售方识别号、开票人、密码区1、密码区2、密码区3、密码区4、发票名称、购买方名称、销售方名称、服务名称、备注、规格型号、数量、单价、金额、税额、收款人等字段,点击[立即试用](https://cloud.tencent.com/product/ocr)。 + * @method Models\VatInvoiceOCRResponse VatInvoiceOCR(Models\VatInvoiceOCRRequest $req) 本接口支持增值税专用发票、增值税普通发票、增值税电子专票、增值税电子普票、电子发票(普通发票)、电子发票(增值税专用发票)全字段的内容检测和识别,包括发票代码、发票号码、打印发票代码、打印发票号码、开票日期、合计金额、校验码、税率、合计税额、价税合计、购买方识别号、复核、销售方识别号、开票人、密码区1、密码区2、密码区3、密码区4、发票名称、购买方名称、销售方名称、服务名称、备注、规格型号、数量、单价、金额、税额、收款人等字段,点击[立即试用](https://cloud.tencent.com/product/ocr)。 默认接口请求频率限制:10次/秒。 * @method Models\VatInvoiceVerifyResponse VatInvoiceVerify(Models\VatInvoiceVerifyRequest $req) 本接口支持增值税发票的准确性核验,您可以通过输入增值税发票的关键字段提供所需的验证信息,接口返回真实的票面相关信息,包括发票代码、发票号码、开票日期、金额、消费类型、购方名称、购方税号、销方名称、销方税号等多个常用字段。支持多种发票类型核验,包括增值税专用发票、增值税普通发票(含电子普通发票、卷式发票、通行费发票)、全电发票、机动车销售统一发票、货物运输业增值税专用发票、二手车销售统一发票。 @@ -627,21 +629,6 @@ use TencentCloud\Ocr\V20181119\Models as Models; * @method Models\VehicleRegCertOCRResponse VehicleRegCertOCR(Models\VehicleRegCertOCRRequest $req) 本接口支持国内机动车登记证书主要字段的结构化识别,包括机动车所有人、身份证明名称、号码、车辆型号、车辆识别代号、发动机号、制造厂名称等。 默认接口请求频率限制:5次/秒。 - * @method Models\VerifyBasicBizLicenseResponse VerifyBasicBizLicense(Models\VerifyBasicBizLicenseRequest $req) 库源服务调整,该接口在2023年6月1日将正式下线。 - -本接口支持营业执照信息的识别与准确性核验。 - -您可以通过输入营业执照注册号或营业执照图片(若两者都输入则只用注册号做查询)进行核验,接口返回查询到的工商照面信息,并比对要校验的字段与查询结果的一致性。查询到工商信息包括:统一社会信用代码、经营期限、法人姓名、经营状态、经营业务范围、注册资本等。 - * @method Models\VerifyBizLicenseResponse VerifyBizLicense(Models\VerifyBizLicenseRequest $req) 库源服务调整,该接口在2023年6月1日将正式下线。 - -本接口支持营业执照信息的识别与准确性核验,返回的真实工商照面信息比营业执照识别及核验(基础版)接口更详细。 - -您可以输入营业执照注册号或营业执照图片(若两者都输入则只用注册号做查询),接口返回查询到的工商照面信息,并比对要校验的字段与查询结果的一致性。 - -查询到工商信息包括:统一社会信用代码、组织机构代码、经营期限、法人姓名、经营状态、经营业务范围及方式、注册资金、注册币种、登记机关、开业日期、企业(机构)类型、注销日期、吊销日期、许可经营项目、一般经营项目、核准时间、省、地级市、区/县、住所所在行政区划代码、行业门类代码、行业门类名称、国民经济行业代码、国民经济行业名称、经营(业务)范围等。 - * @method Models\VerifyEnterpriseFourFactorsResponse VerifyEnterpriseFourFactors(Models\VerifyEnterpriseFourFactorsRequest $req) 库源服务调整,该接口在2023年6月1日将正式下线。 - -此接口基于企业四要素授权“姓名、证件号码、企业标识、企业全称”,验证企业信息是否一致。 * @method Models\VerifyOfdVatInvoiceOCRResponse VerifyOfdVatInvoiceOCR(Models\VerifyOfdVatInvoiceOCRRequest $req) 本接口支持OFD格式的增值税电子普通发票和增值税电子专用发票的识别,返回发票代码、发票号码、开票日期、验证码、机器编号、密码区,购买方和销售方信息,包括名称、纳税人识别号、地址电话、开户行及账号,以及价税合计、开票人、收款人、复核人、税额、不含税金额等字段信息。 * @method Models\VinOCRResponse VinOCR(Models\VinOCRRequest $req) 本接口支持图片内车辆识别代号(VIN)的检测和识别。 * @method Models\WaybillOCRResponse WaybillOCR(Models\WaybillOCRRequest $req) 本接口支持市面上主流版式电子运单的识别,包括收件人和寄件人的姓名、电话、地址以及运单号等字段。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/CreateOrganizationMemberAuthIdentityRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/CreateOrganizationMemberAuthIdentityRequest.php new file mode 100644 index 000000000..90e85185b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/CreateOrganizationMemberAuthIdentityRequest.php @@ -0,0 +1,65 @@ +MemberUins = $param["MemberUins"]; + } + + if (array_key_exists("IdentityIds",$param) and $param["IdentityIds"] !== null) { + $this->IdentityIds = $param["IdentityIds"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/CreateOrganizationMemberAuthIdentityResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/CreateOrganizationMemberAuthIdentityResponse.php new file mode 100644 index 000000000..bd1fbc582 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/CreateOrganizationMemberAuthIdentityResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/DeleteOrganizationMembersPolicyRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/DeleteOrganizationMembersPolicyRequest.php new file mode 100644 index 000000000..2a4e8c29b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/DeleteOrganizationMembersPolicyRequest.php @@ -0,0 +1,53 @@ +PolicyId = $param["PolicyId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/DeleteOrganizationMembersPolicyResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/DeleteOrganizationMembersPolicyResponse.php new file mode 100644 index 000000000..bc2f4669c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/Models/DeleteOrganizationMembersPolicyResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/OrganizationClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/OrganizationClient.php index 983004641..ec2523cf3 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/OrganizationClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Organization/V20210331/OrganizationClient.php @@ -29,8 +29,10 @@ use TencentCloud\Organization\V20210331\Models as Models; * @method Models\CancelOrganizationMemberAuthAccountResponse CancelOrganizationMemberAuthAccount(Models\CancelOrganizationMemberAuthAccountRequest $req) 取消组织成员和组织管理员子账号的授权关系 * @method Models\CreateOrganizationMemberResponse CreateOrganizationMember(Models\CreateOrganizationMemberRequest $req) 创建组织成员 + * @method Models\CreateOrganizationMemberAuthIdentityResponse CreateOrganizationMemberAuthIdentity(Models\CreateOrganizationMemberAuthIdentityRequest $req) 添加组织成员访问授权 * @method Models\CreateOrganizationMemberPolicyResponse CreateOrganizationMemberPolicy(Models\CreateOrganizationMemberPolicyRequest $req) 创建组织成员访问授权策略 * @method Models\DeleteOrganizationMembersResponse DeleteOrganizationMembers(Models\DeleteOrganizationMembersRequest $req) 批量删除企业组织成员 + * @method Models\DeleteOrganizationMembersPolicyResponse DeleteOrganizationMembersPolicy(Models\DeleteOrganizationMembersPolicyRequest $req) 删除组织成员访问策略 * @method Models\DeleteOrganizationNodesResponse DeleteOrganizationNodes(Models\DeleteOrganizationNodesRequest $req) 批量删除企业组织节点 * @method Models\DescribeOrganizationResponse DescribeOrganization(Models\DescribeOrganizationRequest $req) 获取企业组织信息 * @method Models\DescribeOrganizationAuthNodeResponse DescribeOrganizationAuthNode(Models\DescribeOrganizationAuthNodeRequest $req) 获取已设置管理员的互信主体关系列表 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Partners/V20180321/Models/AgentDealNewElem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Partners/V20180321/Models/AgentDealNewElem.php index b0c124ef8..5397f0b87 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Partners/V20180321/Models/AgentDealNewElem.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Partners/V20180321/Models/AgentDealNewElem.php @@ -127,6 +127,10 @@ use TencentCloud\Common\AbstractModel; * @method array getResourceIds() 获取资源id 注意:此字段可能返回 null,表示取不到有效值。 * @method void setResourceIds(array $ResourceIds) 设置资源id +注意:此字段可能返回 null,表示取不到有效值。 + * @method array getRefundMap() 获取退款单的原订单信息。当前仅 DescribeClientDealsByCache 接口会返回该字段 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setRefundMap(array $RefundMap) 设置退款单的原订单信息。当前仅 DescribeClientDealsByCache 接口会返回该字段 注意:此字段可能返回 null,表示取不到有效值。 */ class AgentDealNewElem extends AbstractModel @@ -301,6 +305,12 @@ class AgentDealNewElem extends AbstractModel */ public $ResourceIds; + /** + * @var array 退款单的原订单信息。当前仅 DescribeClientDealsByCache 接口会返回该字段 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $RefundMap; + /** * @param string $DealId 订单自增 ID【请勿依赖该字段作为唯一标识】 * @param string $DealName 订单号【订单唯一键】 @@ -355,6 +365,8 @@ class AgentDealNewElem extends AbstractModel * @param string $UpdateTime 订单更新时间 注意:此字段可能返回 null,表示取不到有效值。 * @param array $ResourceIds 资源id +注意:此字段可能返回 null,表示取不到有效值。 + * @param array $RefundMap 退款单的原订单信息。当前仅 DescribeClientDealsByCache 接口会返回该字段 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -491,5 +503,14 @@ class AgentDealNewElem extends AbstractModel if (array_key_exists("ResourceIds",$param) and $param["ResourceIds"] !== null) { $this->ResourceIds = $param["ResourceIds"]; } + + if (array_key_exists("RefundMap",$param) and $param["RefundMap"] !== null) { + $this->RefundMap = []; + foreach ($param["RefundMap"] as $key => $value){ + $obj = new RefundMap(); + $obj->deserialize($value); + array_push($this->RefundMap, $obj); + } + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Partners/V20180321/Models/RefundMap.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Partners/V20180321/Models/RefundMap.php new file mode 100644 index 000000000..4d433b70e --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Partners/V20180321/Models/RefundMap.php @@ -0,0 +1,73 @@ +DealName = $param["DealName"]; + } + + if (array_key_exists("RefundAmount",$param) and $param["RefundAmount"] !== null) { + $this->RefundAmount = $param["RefundAmount"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CloneDBInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CloneDBInstanceRequest.php index 2e65504a5..02154f840 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CloneDBInstanceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CloneDBInstanceRequest.php @@ -22,32 +22,58 @@ use TencentCloud\Common\AbstractModel; * * @method string getDBInstanceId() 获取克隆的源实例ID。 * @method void setDBInstanceId(string $DBInstanceId) 设置克隆的源实例ID。 - * @method string getSpecCode() 获取售卖规格ID。该参数可以通过调用DescribeProductConfig的返回值中的SpecCode字段来获取。 - * @method void setSpecCode(string $SpecCode) 设置售卖规格ID。该参数可以通过调用DescribeProductConfig的返回值中的SpecCode字段来获取。 + * @method string getSpecCode() 获取售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 + * @method void setSpecCode(string $SpecCode) 设置售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 * @method integer getStorage() 获取实例容量大小,单位:GB。 * @method void setStorage(integer $Storage) 设置实例容量大小,单位:GB。 - * @method integer getPeriod() 获取购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @method void setPeriod(integer $Period) 设置购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @method integer getAutoRenewFlag() 获取续费标记:0-正常续费(默认);1-自动续费。 - * @method void setAutoRenewFlag(integer $AutoRenewFlag) 设置续费标记:0-正常续费(默认);1-自动续费。 - * @method string getVpcId() 获取私有网络ID。 - * @method void setVpcId(string $VpcId) 设置私有网络ID。 - * @method string getSubnetId() 获取已配置的私有网络中的子网ID。 - * @method void setSubnetId(string $SubnetId) 设置已配置的私有网络中的子网ID。 - * @method string getName() 获取新购实例的实例名称。 - * @method void setName(string $Name) 设置新购实例的实例名称。 - * @method string getInstanceChargeType() 获取实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。 - * @method void setInstanceChargeType(string $InstanceChargeType) 设置实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。 - * @method array getSecurityGroupIds() 获取安全组ID。 - * @method void setSecurityGroupIds(array $SecurityGroupIds) 设置安全组ID。 + * @method integer getPeriod() 获取购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @method void setPeriod(integer $Period) 设置购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @method integer getAutoRenewFlag() 获取续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @method void setAutoRenewFlag(integer $AutoRenewFlag) 设置续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @method string getVpcId() 获取私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @method void setVpcId(string $VpcId) 设置私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @method string getSubnetId() 获取私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @method void setSubnetId(string $SubnetId) 设置私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @method string getName() 获取新购的实例名称,仅支持长度小于60的中文/英文/数字/"_"/"-",不指定实例名称则默认显示"未命名"。 + * @method void setName(string $Name) 设置新购的实例名称,仅支持长度小于60的中文/英文/数字/"_"/"-",不指定实例名称则默认显示"未命名"。 + * @method string getInstanceChargeType() 获取实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月 +
  • POSTPAID_BY_HOUR:后付费,即按量计费 +默认值:PREPAID + * @method void setInstanceChargeType(string $InstanceChargeType) 设置实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月 +
  • POSTPAID_BY_HOUR:后付费,即按量计费 +默认值:PREPAID + * @method array getSecurityGroupIds() 获取实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + + * @method void setSecurityGroupIds(array $SecurityGroupIds) 设置实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + * @method integer getProjectId() 获取项目ID。 * @method void setProjectId(integer $ProjectId) 设置项目ID。 - * @method array getTagList() 获取实例需要绑定的Tag信息,默认为空。 - * @method void setTagList(array $TagList) 设置实例需要绑定的Tag信息,默认为空。 - * @method array getDBNodeSet() 获取购买多可用区实例时填写。 - * @method void setDBNodeSet(array $DBNodeSet) 设置购买多可用区实例时填写。 - * @method integer getAutoVoucher() 获取是否自动使用代金券。1(是),0(否),默认不使用。 - * @method void setAutoVoucher(integer $AutoVoucher) 设置是否自动使用代金券。1(是),0(否),默认不使用。 + * @method array getTagList() 获取实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @method void setTagList(array $TagList) 设置实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @method array getDBNodeSet() 获取实例节点部署信息,支持多可用区部署时需要指定每个节点的部署可用区信息。 +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @method void setDBNodeSet(array $DBNodeSet) 设置实例节点部署信息,支持多可用区部署时需要指定每个节点的部署可用区信息。 +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @method integer getAutoVoucher() 获取是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 + * @method void setAutoVoucher(integer $AutoVoucher) 设置是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 * @method string getVoucherIds() 获取代金券ID列表。 * @method void setVoucherIds(string $VoucherIds) 设置代金券ID列表。 * @method integer getActivityId() 获取活动ID。 @@ -56,6 +82,16 @@ use TencentCloud\Common\AbstractModel; * @method void setBackupSetId(string $BackupSetId) 设置基础备份集ID。 * @method string getRecoveryTargetTime() 获取恢复时间点。 * @method void setRecoveryTargetTime(string $RecoveryTargetTime) 设置恢复时间点。 + * @method string getSyncMode() 获取主从同步方式,支持: +
  • Semi-sync:半同步 +
  • Async:异步 +主实例默认值:Semi-sync +只读实例默认值:Async + * @method void setSyncMode(string $SyncMode) 设置主从同步方式,支持: +
  • Semi-sync:半同步 +
  • Async:异步 +主实例默认值:Semi-sync +只读实例默认值:Async */ class CloneDBInstanceRequest extends AbstractModel { @@ -65,7 +101,7 @@ class CloneDBInstanceRequest extends AbstractModel public $DBInstanceId; /** - * @var string 售卖规格ID。该参数可以通过调用DescribeProductConfig的返回值中的SpecCode字段来获取。 + * @var string 售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 */ public $SpecCode; @@ -75,37 +111,46 @@ class CloneDBInstanceRequest extends AbstractModel public $Storage; /** - * @var integer 购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 + * @var integer 购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 */ public $Period; /** - * @var integer 续费标记:0-正常续费(默认);1-自动续费。 + * @var integer 续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 */ public $AutoRenewFlag; /** - * @var string 私有网络ID。 + * @var string 私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 */ public $VpcId; /** - * @var string 已配置的私有网络中的子网ID。 + * @var string 私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 */ public $SubnetId; /** - * @var string 新购实例的实例名称。 + * @var string 新购的实例名称,仅支持长度小于60的中文/英文/数字/"_"/"-",不指定实例名称则默认显示"未命名"。 */ public $Name; /** - * @var string 实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。 + * @var string 实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月 +
  • POSTPAID_BY_HOUR:后付费,即按量计费 +默认值:PREPAID */ public $InstanceChargeType; /** - * @var array 安全组ID。 + * @var array 实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + */ public $SecurityGroupIds; @@ -115,17 +160,21 @@ class CloneDBInstanceRequest extends AbstractModel public $ProjectId; /** - * @var array 实例需要绑定的Tag信息,默认为空。 + * @var array 实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 */ public $TagList; /** - * @var array 购买多可用区实例时填写。 + * @var array 实例节点部署信息,支持多可用区部署时需要指定每个节点的部署可用区信息。 +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 */ public $DBNodeSet; /** - * @var integer 是否自动使用代金券。1(是),0(否),默认不使用。 + * @var integer 是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 */ public $AutoVoucher; @@ -149,25 +198,52 @@ class CloneDBInstanceRequest extends AbstractModel */ public $RecoveryTargetTime; + /** + * @var string 主从同步方式,支持: +
  • Semi-sync:半同步 +
  • Async:异步 +主实例默认值:Semi-sync +只读实例默认值:Async + */ + public $SyncMode; + /** * @param string $DBInstanceId 克隆的源实例ID。 - * @param string $SpecCode 售卖规格ID。该参数可以通过调用DescribeProductConfig的返回值中的SpecCode字段来获取。 + * @param string $SpecCode 售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 * @param integer $Storage 实例容量大小,单位:GB。 - * @param integer $Period 购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @param integer $AutoRenewFlag 续费标记:0-正常续费(默认);1-自动续费。 - * @param string $VpcId 私有网络ID。 - * @param string $SubnetId 已配置的私有网络中的子网ID。 - * @param string $Name 新购实例的实例名称。 - * @param string $InstanceChargeType 实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。 - * @param array $SecurityGroupIds 安全组ID。 + * @param integer $Period 购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @param integer $AutoRenewFlag 续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @param string $VpcId 私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @param string $SubnetId 私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @param string $Name 新购的实例名称,仅支持长度小于60的中文/英文/数字/"_"/"-",不指定实例名称则默认显示"未命名"。 + * @param string $InstanceChargeType 实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月 +
  • POSTPAID_BY_HOUR:后付费,即按量计费 +默认值:PREPAID + * @param array $SecurityGroupIds 实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + * @param integer $ProjectId 项目ID。 - * @param array $TagList 实例需要绑定的Tag信息,默认为空。 - * @param array $DBNodeSet 购买多可用区实例时填写。 - * @param integer $AutoVoucher 是否自动使用代金券。1(是),0(否),默认不使用。 + * @param array $TagList 实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @param array $DBNodeSet 实例节点部署信息,支持多可用区部署时需要指定每个节点的部署可用区信息。 +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @param integer $AutoVoucher 是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 * @param string $VoucherIds 代金券ID列表。 * @param integer $ActivityId 活动ID。 * @param string $BackupSetId 基础备份集ID。 * @param string $RecoveryTargetTime 恢复时间点。 + * @param string $SyncMode 主从同步方式,支持: +
  • Semi-sync:半同步 +
  • Async:异步 +主实例默认值:Semi-sync +只读实例默认值:Async */ function __construct() { @@ -263,5 +339,9 @@ class CloneDBInstanceRequest extends AbstractModel if (array_key_exists("RecoveryTargetTime",$param) and $param["RecoveryTargetTime"] !== null) { $this->RecoveryTargetTime = $param["RecoveryTargetTime"]; } + + if (array_key_exists("SyncMode",$param) and $param["SyncMode"] !== null) { + $this->SyncMode = $param["SyncMode"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CreateInstancesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CreateInstancesRequest.php index ba04c7010..53057418c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CreateInstancesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CreateInstancesRequest.php @@ -20,101 +20,189 @@ use TencentCloud\Common\AbstractModel; /** * CreateInstances请求参数结构体 * - * @method string getSpecCode() 获取售卖规格ID。该参数可以通过调用DescribeClasses的返回值中的SpecCode字段来获取。 - * @method void setSpecCode(string $SpecCode) 设置售卖规格ID。该参数可以通过调用DescribeClasses的返回值中的SpecCode字段来获取。 + * @method string getZone() 获取实例所属主可用区, 如:ap-guangzhou-3;若需要支持多可用区,在DBNodeSet.N字段中进行添加主可用区和备可用区信息; +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @method void setZone(string $Zone) 设置实例所属主可用区, 如:ap-guangzhou-3;若需要支持多可用区,在DBNodeSet.N字段中进行添加主可用区和备可用区信息; +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @method string getSpecCode() 获取售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 + * @method void setSpecCode(string $SpecCode) 设置售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 * @method integer getStorage() 获取实例容量大小,单位:GB。 * @method void setStorage(integer $Storage) 设置实例容量大小,单位:GB。 - * @method integer getInstanceCount() 获取一次性购买的实例数量。取值1-10。 - * @method void setInstanceCount(integer $InstanceCount) 设置一次性购买的实例数量。取值1-10。 - * @method integer getPeriod() 获取购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @method void setPeriod(integer $Period) 设置购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @method string getZone() 获取可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。 - * @method void setZone(string $Zone) 设置可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。 - * @method string getCharset() 获取实例字符集,目前只支持:UTF8、LATIN1。 - * @method void setCharset(string $Charset) 设置实例字符集,目前只支持:UTF8、LATIN1。 - * @method string getAdminName() 获取实例根账号用户名。 - * @method void setAdminName(string $AdminName) 设置实例根账号用户名。 - * @method string getAdminPassword() 获取实例根账号用户名对应的密码。 - * @method void setAdminPassword(string $AdminPassword) 设置实例根账号用户名对应的密码。 - * @method integer getProjectId() 获取项目ID。 - * @method void setProjectId(integer $ProjectId) 设置项目ID。 - * @method string getDBVersion() 获取PostgreSQL版本。当输入该参数时,会基于此版本创建对应的最新内核版本号实例。该参数和DBMajorVersion、DBKernelVersion至少需要传递一个。 - * @method void setDBVersion(string $DBVersion) 设置PostgreSQL版本。当输入该参数时,会基于此版本创建对应的最新内核版本号实例。该参数和DBMajorVersion、DBKernelVersion至少需要传递一个。 - * @method string getInstanceChargeType() 获取实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。默认值:PREPAID。 - * @method void setInstanceChargeType(string $InstanceChargeType) 设置实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。默认值:PREPAID。 - * @method integer getAutoVoucher() 获取是否自动使用代金券。1(是),0(否),默认不使用。 - * @method void setAutoVoucher(integer $AutoVoucher) 设置是否自动使用代金券。1(是),0(否),默认不使用。 + * @method integer getInstanceCount() 获取购买实例数量,取值范围:[1-10]。一次性购买支持最大数量10个,若超过该数量,可进行多次调用进行购买。 + * @method void setInstanceCount(integer $InstanceCount) 设置购买实例数量,取值范围:[1-10]。一次性购买支持最大数量10个,若超过该数量,可进行多次调用进行购买。 + * @method integer getPeriod() 获取购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @method void setPeriod(integer $Period) 设置购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @method string getCharset() 获取实例字符集,目前只支持: +
  • UTF8 +
  • LATIN1 + * @method void setCharset(string $Charset) 设置实例字符集,目前只支持: +
  • UTF8 +
  • LATIN1 + * @method string getAdminName() 获取实例根账号用户名,具体规范如下: +
  • 用户名需要1-16个字符,只能由字母、数字或下划线组成 +
  • 不能为postgres +
  • 不能由数字和pg_开头 +
  • 所有规则均不区分大小写 + * @method void setAdminName(string $AdminName) 设置实例根账号用户名,具体规范如下: +
  • 用户名需要1-16个字符,只能由字母、数字或下划线组成 +
  • 不能为postgres +
  • 不能由数字和pg_开头 +
  • 所有规则均不区分大小写 + * @method string getAdminPassword() 获取实例根账号用户名对应的密码,长度8 ~ 32位,推荐使用12位以上的密码;不能以" / "开头; +必须包含以下四项,字符种类: +
  • 小写字母: [a ~ z] +
  • 大写字母:[A ~ Z] +
  • 数字:0 - 9 +
  • 特殊字符:()`~!@#$%^&*-+=_|{}[]:;'<>,.?/ + * @method void setAdminPassword(string $AdminPassword) 设置实例根账号用户名对应的密码,长度8 ~ 32位,推荐使用12位以上的密码;不能以" / "开头; +必须包含以下四项,字符种类: +
  • 小写字母: [a ~ z] +
  • 大写字母:[A ~ Z] +
  • 数字:0 - 9 +
  • 特殊字符:()`~!@#$%^&*-+=_|{}[]:;'<>,.?/ + * @method string getDBMajorVersion() 获取PostgreSQL大版本号,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取,目前支持10,11,12,13,14,15这几个大版本。 +当只输入该参数时,会基于此大版本号创建对应的最新小版本的最新内核版本号实例。 +该参数和DBVersion、DBKernelVersion需要至少指定一个,如无指定购买内核小版本需求时,只传入该参数即可。 + + * @method void setDBMajorVersion(string $DBMajorVersion) 设置PostgreSQL大版本号,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取,目前支持10,11,12,13,14,15这几个大版本。 +当只输入该参数时,会基于此大版本号创建对应的最新小版本的最新内核版本号实例。 +该参数和DBVersion、DBKernelVersion需要至少指定一个,如无指定购买内核小版本需求时,只传入该参数即可。 + + * @method string getDBVersion() 获取PostgreSQL社区大版本+小版本号,如12.4,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +当只输入该参数时,会基于此社区小版本号创建对应的最新内核版本实例。 +该参数和DBMajorVersion、DBKernelVersion需要至少指定一个。 + * @method void setDBVersion(string $DBVersion) 设置PostgreSQL社区大版本+小版本号,如12.4,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +当只输入该参数时,会基于此社区小版本号创建对应的最新内核版本实例。 +该参数和DBMajorVersion、DBKernelVersion需要至少指定一个。 + * @method string getDBKernelVersion() 获取PostgreSQL内核版本号,如v12.7_r1.8,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +当只输入该参数时,会创建指定的内核版本实例。只针对内核版本需要指定时使用,一般场景不推荐传入该参数。 + + * @method void setDBKernelVersion(string $DBKernelVersion) 设置PostgreSQL内核版本号,如v12.7_r1.8,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +当只输入该参数时,会创建指定的内核版本实例。只针对内核版本需要指定时使用,一般场景不推荐传入该参数。 + + * @method string getInstanceChargeType() 获取实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月 +
  • POSTPAID_BY_HOUR:后付费,即按量计费 +默认值:PREPAID + * @method void setInstanceChargeType(string $InstanceChargeType) 设置实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月 +
  • POSTPAID_BY_HOUR:后付费,即按量计费 +默认值:PREPAID + * @method string getVpcId() 获取私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @method void setVpcId(string $VpcId) 设置私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @method string getSubnetId() 获取私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @method void setSubnetId(string $SubnetId) 设置私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @method array getDBNodeSet() 获取实例节点部署信息,支持多可用区部署时需要指定每个节点的部署可用区信息。 +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @method void setDBNodeSet(array $DBNodeSet) 设置实例节点部署信息,支持多可用区部署时需要指定每个节点的部署可用区信息。 +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @method integer getAutoRenewFlag() 获取续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @method void setAutoRenewFlag(integer $AutoRenewFlag) 设置续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @method integer getAutoVoucher() 获取是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 + * @method void setAutoVoucher(integer $AutoVoucher) 设置是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 * @method array getVoucherIds() 获取代金券ID列表,目前仅支持指定一张代金券。 * @method void setVoucherIds(array $VoucherIds) 设置代金券ID列表,目前仅支持指定一张代金券。 - * @method string getVpcId() 获取私有网络ID。 - * @method void setVpcId(string $VpcId) 设置私有网络ID。 - * @method string getSubnetId() 获取已配置的私有网络中的子网ID。 - * @method void setSubnetId(string $SubnetId) 设置已配置的私有网络中的子网ID。 - * @method integer getAutoRenewFlag() 获取续费标记:0-正常续费(默认);1-自动续费。 - * @method void setAutoRenewFlag(integer $AutoRenewFlag) 设置续费标记:0-正常续费(默认);1-自动续费。 + * @method integer getProjectId() 获取项目ID。 + * @method void setProjectId(integer $ProjectId) 设置项目ID。 * @method integer getActivityId() 获取活动ID。 * @method void setActivityId(integer $ActivityId) 设置活动ID。 - * @method string getName() 获取实例名。 - * @method void setName(string $Name) 设置实例名。 - * @method integer getNeedSupportIpv6() 获取是否需要支持Ipv6,1:是,0:否(默认)。 - * @method void setNeedSupportIpv6(integer $NeedSupportIpv6) 设置是否需要支持Ipv6,1:是,0:否(默认)。 - * @method array getTagList() 获取实例需要绑定的Tag信息,默认为空。 - * @method void setTagList(array $TagList) 设置实例需要绑定的Tag信息,默认为空。 - * @method array getSecurityGroupIds() 获取安全组ID。 - * @method void setSecurityGroupIds(array $SecurityGroupIds) 设置安全组ID。 - * @method string getDBMajorVersion() 获取PostgreSQL主要版本。目前支持10,11,12,13这几个版本。当输入该参数时,会基于此版本创建对应的最新内核版本号实例。该参数和DBVersion、DBKernelVersion至少需要传递一个。 - * @method void setDBMajorVersion(string $DBMajorVersion) 设置PostgreSQL主要版本。目前支持10,11,12,13这几个版本。当输入该参数时,会基于此版本创建对应的最新内核版本号实例。该参数和DBVersion、DBKernelVersion至少需要传递一个。 - * @method string getDBKernelVersion() 获取PostgreSQL内核版本。当输入该参数时,会创建该内核版本号实例。该参数和DBVersion、DBMajorVersion至少需要传递一个。 - * @method void setDBKernelVersion(string $DBKernelVersion) 设置PostgreSQL内核版本。当输入该参数时,会创建该内核版本号实例。该参数和DBVersion、DBMajorVersion至少需要传递一个。 - * @method array getDBNodeSet() 获取实例节点信息,购买跨可用区实例时填写。 - * @method void setDBNodeSet(array $DBNodeSet) 设置实例节点信息,购买跨可用区实例时填写。 - * @method integer getNeedSupportTDE() 获取是否需要支持数据透明加密,1:是,0:否(默认)。 - * @method void setNeedSupportTDE(integer $NeedSupportTDE) 设置是否需要支持数据透明加密,1:是,0:否(默认)。 + * @method string getName() 获取实例名称,仅支持长度小于60的中文/英文/数字/"_"/"-",不指定实例名称则默认显示"未命名"。 + + * @method void setName(string $Name) 设置实例名称,仅支持长度小于60的中文/英文/数字/"_"/"-",不指定实例名称则默认显示"未命名"。 + + * @method array getTagList() 获取实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @method void setTagList(array $TagList) 设置实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @method array getSecurityGroupIds() 获取实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + + * @method void setSecurityGroupIds(array $SecurityGroupIds) 设置实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + + * @method integer getNeedSupportTDE() 获取是否需要支持数据透明加密: +
  • 0:否 +
  • 1:是 +默认值:0 +参考[数据透明加密概述](https://cloud.tencent.com/document/product/409/71748) + * @method void setNeedSupportTDE(integer $NeedSupportTDE) 设置是否需要支持数据透明加密: +
  • 0:否 +
  • 1:是 +默认值:0 +参考[数据透明加密概述](https://cloud.tencent.com/document/product/409/71748) * @method string getKMSKeyId() 获取自定义密钥的KeyId,若选择自定义密匙加密,则需要传入自定义密匙的KeyId,KeyId是CMK的唯一标识。 +KeyId创建获取相关参考[开启透明数据加密](https://cloud.tencent.com/document/product/409/71749) * @method void setKMSKeyId(string $KMSKeyId) 设置自定义密钥的KeyId,若选择自定义密匙加密,则需要传入自定义密匙的KeyId,KeyId是CMK的唯一标识。 +KeyId创建获取相关参考[开启透明数据加密](https://cloud.tencent.com/document/product/409/71749) * @method string getKMSRegion() 获取使用KMS服务的地域,KMSRegion为空默认使用本地域的KMS,本地域不支持的情况下需自选其他KMS支持的地域。 +KMSRegion相关介绍参考[开启透明数据加密](https://cloud.tencent.com/document/product/409/71749) * @method void setKMSRegion(string $KMSRegion) 设置使用KMS服务的地域,KMSRegion为空默认使用本地域的KMS,本地域不支持的情况下需自选其他KMS支持的地域。 +KMSRegion相关介绍参考[开启透明数据加密](https://cloud.tencent.com/document/product/409/71749) * @method string getDBEngine() 获取数据库引擎,支持: -1、postgresql(云数据库PostgreSQL); -2、mssql_compatible(MSSQL兼容-云数据库PostgreSQL); -如不指定默认使用postgresql。 +
  • postgresql:云数据库PostgreSQL +
  • mssql_compatible:MSSQL兼容-云数据库PostgreSQL +默认值:postgresql * @method void setDBEngine(string $DBEngine) 设置数据库引擎,支持: -1、postgresql(云数据库PostgreSQL); -2、mssql_compatible(MSSQL兼容-云数据库PostgreSQL); -如不指定默认使用postgresql。 +
  • postgresql:云数据库PostgreSQL +
  • mssql_compatible:MSSQL兼容-云数据库PostgreSQL +默认值:postgresql * @method string getDBEngineConfig() 获取数据库引擎的配置信息,配置格式如下: {"$key1":"$value1", "$key2":"$value2"} - 各引擎支持如下: -1、mssql_compatible引擎: -migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 -defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: +mssql_compatible引擎: +
  • migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 +
  • defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: "af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN"。 -serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下: -"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 +
  • serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下:"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 * @method void setDBEngineConfig(string $DBEngineConfig) 设置数据库引擎的配置信息,配置格式如下: {"$key1":"$value1", "$key2":"$value2"} - 各引擎支持如下: -1、mssql_compatible引擎: -migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 -defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: +mssql_compatible引擎: +
  • migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 +
  • defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: "af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN"。 -serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下: -"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 - * @method string getSyncMode() 获取主从同步方式,可取值: -1、Semi-sync:半同步 -2、Async:异步 -当前只支持Semi-sync - * @method void setSyncMode(string $SyncMode) 设置主从同步方式,可取值: -1、Semi-sync:半同步 -2、Async:异步 -当前只支持Semi-sync +
  • serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下:"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 + * @method string getSyncMode() 获取主从同步方式,支持: +
  • Semi-sync:半同步 +
  • Async:异步 +主实例默认值:Semi-sync +只读实例默认值:Async + * @method void setSyncMode(string $SyncMode) 设置主从同步方式,支持: +
  • Semi-sync:半同步 +
  • Async:异步 +主实例默认值:Semi-sync +只读实例默认值:Async + * @method integer getNeedSupportIpv6() 获取是否需要支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 + * @method void setNeedSupportIpv6(integer $NeedSupportIpv6) 设置是否需要支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 */ class CreateInstancesRequest extends AbstractModel { /** - * @var string 售卖规格ID。该参数可以通过调用DescribeClasses的返回值中的SpecCode字段来获取。 + * @var string 实例所属主可用区, 如:ap-guangzhou-3;若需要支持多可用区,在DBNodeSet.N字段中进行添加主可用区和备可用区信息; +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + */ + public $Zone; + + /** + * @var string 售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 */ public $SpecCode; @@ -124,52 +212,102 @@ class CreateInstancesRequest extends AbstractModel public $Storage; /** - * @var integer 一次性购买的实例数量。取值1-10。 + * @var integer 购买实例数量,取值范围:[1-10]。一次性购买支持最大数量10个,若超过该数量,可进行多次调用进行购买。 */ public $InstanceCount; /** - * @var integer 购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 + * @var integer 购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 */ public $Period; /** - * @var string 可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。 - */ - public $Zone; - - /** - * @var string 实例字符集,目前只支持:UTF8、LATIN1。 + * @var string 实例字符集,目前只支持: +
  • UTF8 +
  • LATIN1 */ public $Charset; /** - * @var string 实例根账号用户名。 + * @var string 实例根账号用户名,具体规范如下: +
  • 用户名需要1-16个字符,只能由字母、数字或下划线组成 +
  • 不能为postgres +
  • 不能由数字和pg_开头 +
  • 所有规则均不区分大小写 */ public $AdminName; /** - * @var string 实例根账号用户名对应的密码。 + * @var string 实例根账号用户名对应的密码,长度8 ~ 32位,推荐使用12位以上的密码;不能以" / "开头; +必须包含以下四项,字符种类: +
  • 小写字母: [a ~ z] +
  • 大写字母:[A ~ Z] +
  • 数字:0 - 9 +
  • 特殊字符:()`~!@#$%^&*-+=_|{}[]:;'<>,.?/ */ public $AdminPassword; /** - * @var integer 项目ID。 + * @var string PostgreSQL大版本号,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取,目前支持10,11,12,13,14,15这几个大版本。 +当只输入该参数时,会基于此大版本号创建对应的最新小版本的最新内核版本号实例。 +该参数和DBVersion、DBKernelVersion需要至少指定一个,如无指定购买内核小版本需求时,只传入该参数即可。 + */ - public $ProjectId; + public $DBMajorVersion; /** - * @var string PostgreSQL版本。当输入该参数时,会基于此版本创建对应的最新内核版本号实例。该参数和DBMajorVersion、DBKernelVersion至少需要传递一个。 + * @var string PostgreSQL社区大版本+小版本号,如12.4,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +当只输入该参数时,会基于此社区小版本号创建对应的最新内核版本实例。 +该参数和DBMajorVersion、DBKernelVersion需要至少指定一个。 */ public $DBVersion; /** - * @var string 实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。默认值:PREPAID。 + * @var string PostgreSQL内核版本号,如v12.7_r1.8,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +当只输入该参数时,会创建指定的内核版本实例。只针对内核版本需要指定时使用,一般场景不推荐传入该参数。 + + */ + public $DBKernelVersion; + + /** + * @var string 实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月 +
  • POSTPAID_BY_HOUR:后付费,即按量计费 +默认值:PREPAID */ public $InstanceChargeType; /** - * @var integer 是否自动使用代金券。1(是),0(否),默认不使用。 + * @var string 私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + */ + public $VpcId; + + /** + * @var string 私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + */ + public $SubnetId; + + /** + * @var array 实例节点部署信息,支持多可用区部署时需要指定每个节点的部署可用区信息。 +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + */ + public $DBNodeSet; + + /** + * @var integer 续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + */ + public $AutoRenewFlag; + + /** + * @var integer 是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 */ public $AutoVoucher; @@ -179,19 +317,9 @@ class CreateInstancesRequest extends AbstractModel public $VoucherIds; /** - * @var string 私有网络ID。 + * @var integer 项目ID。 */ - public $VpcId; - - /** - * @var string 已配置的私有网络中的子网ID。 - */ - public $SubnetId; - - /** - * @var integer 续费标记:0-正常续费(默认);1-自动续费。 - */ - public $AutoRenewFlag; + public $ProjectId; /** * @var integer 活动ID。 @@ -199,131 +327,167 @@ class CreateInstancesRequest extends AbstractModel public $ActivityId; /** - * @var string 实例名。 + * @var string 实例名称,仅支持长度小于60的中文/英文/数字/"_"/"-",不指定实例名称则默认显示"未命名"。 + */ public $Name; /** - * @var integer 是否需要支持Ipv6,1:是,0:否(默认)。 - */ - public $NeedSupportIpv6; - - /** - * @var array 实例需要绑定的Tag信息,默认为空。 + * @var array 实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 */ public $TagList; /** - * @var array 安全组ID。 + * @var array 实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + */ public $SecurityGroupIds; /** - * @var string PostgreSQL主要版本。目前支持10,11,12,13这几个版本。当输入该参数时,会基于此版本创建对应的最新内核版本号实例。该参数和DBVersion、DBKernelVersion至少需要传递一个。 - */ - public $DBMajorVersion; - - /** - * @var string PostgreSQL内核版本。当输入该参数时,会创建该内核版本号实例。该参数和DBVersion、DBMajorVersion至少需要传递一个。 - */ - public $DBKernelVersion; - - /** - * @var array 实例节点信息,购买跨可用区实例时填写。 - */ - public $DBNodeSet; - - /** - * @var integer 是否需要支持数据透明加密,1:是,0:否(默认)。 + * @var integer 是否需要支持数据透明加密: +
  • 0:否 +
  • 1:是 +默认值:0 +参考[数据透明加密概述](https://cloud.tencent.com/document/product/409/71748) */ public $NeedSupportTDE; /** * @var string 自定义密钥的KeyId,若选择自定义密匙加密,则需要传入自定义密匙的KeyId,KeyId是CMK的唯一标识。 +KeyId创建获取相关参考[开启透明数据加密](https://cloud.tencent.com/document/product/409/71749) */ public $KMSKeyId; /** * @var string 使用KMS服务的地域,KMSRegion为空默认使用本地域的KMS,本地域不支持的情况下需自选其他KMS支持的地域。 +KMSRegion相关介绍参考[开启透明数据加密](https://cloud.tencent.com/document/product/409/71749) */ public $KMSRegion; /** * @var string 数据库引擎,支持: -1、postgresql(云数据库PostgreSQL); -2、mssql_compatible(MSSQL兼容-云数据库PostgreSQL); -如不指定默认使用postgresql。 +
  • postgresql:云数据库PostgreSQL +
  • mssql_compatible:MSSQL兼容-云数据库PostgreSQL +默认值:postgresql */ public $DBEngine; /** * @var string 数据库引擎的配置信息,配置格式如下: {"$key1":"$value1", "$key2":"$value2"} - 各引擎支持如下: -1、mssql_compatible引擎: -migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 -defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: +mssql_compatible引擎: +
  • migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 +
  • defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: "af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN"。 -serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下: -"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 +
  • serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下:"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 */ public $DBEngineConfig; /** - * @var string 主从同步方式,可取值: -1、Semi-sync:半同步 -2、Async:异步 -当前只支持Semi-sync + * @var string 主从同步方式,支持: +
  • Semi-sync:半同步 +
  • Async:异步 +主实例默认值:Semi-sync +只读实例默认值:Async */ public $SyncMode; /** - * @param string $SpecCode 售卖规格ID。该参数可以通过调用DescribeClasses的返回值中的SpecCode字段来获取。 + * @var integer 是否需要支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 + */ + public $NeedSupportIpv6; + + /** + * @param string $Zone 实例所属主可用区, 如:ap-guangzhou-3;若需要支持多可用区,在DBNodeSet.N字段中进行添加主可用区和备可用区信息; +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @param string $SpecCode 售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 * @param integer $Storage 实例容量大小,单位:GB。 - * @param integer $InstanceCount 一次性购买的实例数量。取值1-10。 - * @param integer $Period 购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @param string $Zone 可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。 - * @param string $Charset 实例字符集,目前只支持:UTF8、LATIN1。 - * @param string $AdminName 实例根账号用户名。 - * @param string $AdminPassword 实例根账号用户名对应的密码。 - * @param integer $ProjectId 项目ID。 - * @param string $DBVersion PostgreSQL版本。当输入该参数时,会基于此版本创建对应的最新内核版本号实例。该参数和DBMajorVersion、DBKernelVersion至少需要传递一个。 - * @param string $InstanceChargeType 实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。默认值:PREPAID。 - * @param integer $AutoVoucher 是否自动使用代金券。1(是),0(否),默认不使用。 + * @param integer $InstanceCount 购买实例数量,取值范围:[1-10]。一次性购买支持最大数量10个,若超过该数量,可进行多次调用进行购买。 + * @param integer $Period 购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @param string $Charset 实例字符集,目前只支持: +
  • UTF8 +
  • LATIN1 + * @param string $AdminName 实例根账号用户名,具体规范如下: +
  • 用户名需要1-16个字符,只能由字母、数字或下划线组成 +
  • 不能为postgres +
  • 不能由数字和pg_开头 +
  • 所有规则均不区分大小写 + * @param string $AdminPassword 实例根账号用户名对应的密码,长度8 ~ 32位,推荐使用12位以上的密码;不能以" / "开头; +必须包含以下四项,字符种类: +
  • 小写字母: [a ~ z] +
  • 大写字母:[A ~ Z] +
  • 数字:0 - 9 +
  • 特殊字符:()`~!@#$%^&*-+=_|{}[]:;'<>,.?/ + * @param string $DBMajorVersion PostgreSQL大版本号,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取,目前支持10,11,12,13,14,15这几个大版本。 +当只输入该参数时,会基于此大版本号创建对应的最新小版本的最新内核版本号实例。 +该参数和DBVersion、DBKernelVersion需要至少指定一个,如无指定购买内核小版本需求时,只传入该参数即可。 + + * @param string $DBVersion PostgreSQL社区大版本+小版本号,如12.4,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +当只输入该参数时,会基于此社区小版本号创建对应的最新内核版本实例。 +该参数和DBMajorVersion、DBKernelVersion需要至少指定一个。 + * @param string $DBKernelVersion PostgreSQL内核版本号,如v12.7_r1.8,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +当只输入该参数时,会创建指定的内核版本实例。只针对内核版本需要指定时使用,一般场景不推荐传入该参数。 + + * @param string $InstanceChargeType 实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月 +
  • POSTPAID_BY_HOUR:后付费,即按量计费 +默认值:PREPAID + * @param string $VpcId 私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @param string $SubnetId 私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @param array $DBNodeSet 实例节点部署信息,支持多可用区部署时需要指定每个节点的部署可用区信息。 +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @param integer $AutoRenewFlag 续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @param integer $AutoVoucher 是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 * @param array $VoucherIds 代金券ID列表,目前仅支持指定一张代金券。 - * @param string $VpcId 私有网络ID。 - * @param string $SubnetId 已配置的私有网络中的子网ID。 - * @param integer $AutoRenewFlag 续费标记:0-正常续费(默认);1-自动续费。 + * @param integer $ProjectId 项目ID。 * @param integer $ActivityId 活动ID。 - * @param string $Name 实例名。 - * @param integer $NeedSupportIpv6 是否需要支持Ipv6,1:是,0:否(默认)。 - * @param array $TagList 实例需要绑定的Tag信息,默认为空。 - * @param array $SecurityGroupIds 安全组ID。 - * @param string $DBMajorVersion PostgreSQL主要版本。目前支持10,11,12,13这几个版本。当输入该参数时,会基于此版本创建对应的最新内核版本号实例。该参数和DBVersion、DBKernelVersion至少需要传递一个。 - * @param string $DBKernelVersion PostgreSQL内核版本。当输入该参数时,会创建该内核版本号实例。该参数和DBVersion、DBMajorVersion至少需要传递一个。 - * @param array $DBNodeSet 实例节点信息,购买跨可用区实例时填写。 - * @param integer $NeedSupportTDE 是否需要支持数据透明加密,1:是,0:否(默认)。 + * @param string $Name 实例名称,仅支持长度小于60的中文/英文/数字/"_"/"-",不指定实例名称则默认显示"未命名"。 + + * @param array $TagList 实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @param array $SecurityGroupIds 实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + + * @param integer $NeedSupportTDE 是否需要支持数据透明加密: +
  • 0:否 +
  • 1:是 +默认值:0 +参考[数据透明加密概述](https://cloud.tencent.com/document/product/409/71748) * @param string $KMSKeyId 自定义密钥的KeyId,若选择自定义密匙加密,则需要传入自定义密匙的KeyId,KeyId是CMK的唯一标识。 +KeyId创建获取相关参考[开启透明数据加密](https://cloud.tencent.com/document/product/409/71749) * @param string $KMSRegion 使用KMS服务的地域,KMSRegion为空默认使用本地域的KMS,本地域不支持的情况下需自选其他KMS支持的地域。 +KMSRegion相关介绍参考[开启透明数据加密](https://cloud.tencent.com/document/product/409/71749) * @param string $DBEngine 数据库引擎,支持: -1、postgresql(云数据库PostgreSQL); -2、mssql_compatible(MSSQL兼容-云数据库PostgreSQL); -如不指定默认使用postgresql。 +
  • postgresql:云数据库PostgreSQL +
  • mssql_compatible:MSSQL兼容-云数据库PostgreSQL +默认值:postgresql * @param string $DBEngineConfig 数据库引擎的配置信息,配置格式如下: {"$key1":"$value1", "$key2":"$value2"} - 各引擎支持如下: -1、mssql_compatible引擎: -migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 -defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: +mssql_compatible引擎: +
  • migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 +
  • defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: "af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN"。 -serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下: -"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 - * @param string $SyncMode 主从同步方式,可取值: -1、Semi-sync:半同步 -2、Async:异步 -当前只支持Semi-sync +
  • serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下:"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 + * @param string $SyncMode 主从同步方式,支持: +
  • Semi-sync:半同步 +
  • Async:异步 +主实例默认值:Semi-sync +只读实例默认值:Async + * @param integer $NeedSupportIpv6 是否需要支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 */ function __construct() { @@ -338,6 +502,10 @@ serverCollationName:排序规则名称,可选参数,在初始化后不可 if ($param === null) { return; } + if (array_key_exists("Zone",$param) and $param["Zone"] !== null) { + $this->Zone = $param["Zone"]; + } + if (array_key_exists("SpecCode",$param) and $param["SpecCode"] !== null) { $this->SpecCode = $param["SpecCode"]; } @@ -354,10 +522,6 @@ serverCollationName:排序规则名称,可选参数,在初始化后不可 $this->Period = $param["Period"]; } - if (array_key_exists("Zone",$param) and $param["Zone"] !== null) { - $this->Zone = $param["Zone"]; - } - if (array_key_exists("Charset",$param) and $param["Charset"] !== null) { $this->Charset = $param["Charset"]; } @@ -370,26 +534,22 @@ serverCollationName:排序规则名称,可选参数,在初始化后不可 $this->AdminPassword = $param["AdminPassword"]; } - if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { - $this->ProjectId = $param["ProjectId"]; + if (array_key_exists("DBMajorVersion",$param) and $param["DBMajorVersion"] !== null) { + $this->DBMajorVersion = $param["DBMajorVersion"]; } if (array_key_exists("DBVersion",$param) and $param["DBVersion"] !== null) { $this->DBVersion = $param["DBVersion"]; } + if (array_key_exists("DBKernelVersion",$param) and $param["DBKernelVersion"] !== null) { + $this->DBKernelVersion = $param["DBKernelVersion"]; + } + if (array_key_exists("InstanceChargeType",$param) and $param["InstanceChargeType"] !== null) { $this->InstanceChargeType = $param["InstanceChargeType"]; } - if (array_key_exists("AutoVoucher",$param) and $param["AutoVoucher"] !== null) { - $this->AutoVoucher = $param["AutoVoucher"]; - } - - if (array_key_exists("VoucherIds",$param) and $param["VoucherIds"] !== null) { - $this->VoucherIds = $param["VoucherIds"]; - } - if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { $this->VpcId = $param["VpcId"]; } @@ -398,10 +558,31 @@ serverCollationName:排序规则名称,可选参数,在初始化后不可 $this->SubnetId = $param["SubnetId"]; } + if (array_key_exists("DBNodeSet",$param) and $param["DBNodeSet"] !== null) { + $this->DBNodeSet = []; + foreach ($param["DBNodeSet"] as $key => $value){ + $obj = new DBNode(); + $obj->deserialize($value); + array_push($this->DBNodeSet, $obj); + } + } + if (array_key_exists("AutoRenewFlag",$param) and $param["AutoRenewFlag"] !== null) { $this->AutoRenewFlag = $param["AutoRenewFlag"]; } + if (array_key_exists("AutoVoucher",$param) and $param["AutoVoucher"] !== null) { + $this->AutoVoucher = $param["AutoVoucher"]; + } + + if (array_key_exists("VoucherIds",$param) and $param["VoucherIds"] !== null) { + $this->VoucherIds = $param["VoucherIds"]; + } + + if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { + $this->ProjectId = $param["ProjectId"]; + } + if (array_key_exists("ActivityId",$param) and $param["ActivityId"] !== null) { $this->ActivityId = $param["ActivityId"]; } @@ -410,10 +591,6 @@ serverCollationName:排序规则名称,可选参数,在初始化后不可 $this->Name = $param["Name"]; } - if (array_key_exists("NeedSupportIpv6",$param) and $param["NeedSupportIpv6"] !== null) { - $this->NeedSupportIpv6 = $param["NeedSupportIpv6"]; - } - if (array_key_exists("TagList",$param) and $param["TagList"] !== null) { $this->TagList = []; foreach ($param["TagList"] as $key => $value){ @@ -427,23 +604,6 @@ serverCollationName:排序规则名称,可选参数,在初始化后不可 $this->SecurityGroupIds = $param["SecurityGroupIds"]; } - if (array_key_exists("DBMajorVersion",$param) and $param["DBMajorVersion"] !== null) { - $this->DBMajorVersion = $param["DBMajorVersion"]; - } - - if (array_key_exists("DBKernelVersion",$param) and $param["DBKernelVersion"] !== null) { - $this->DBKernelVersion = $param["DBKernelVersion"]; - } - - if (array_key_exists("DBNodeSet",$param) and $param["DBNodeSet"] !== null) { - $this->DBNodeSet = []; - foreach ($param["DBNodeSet"] as $key => $value){ - $obj = new DBNode(); - $obj->deserialize($value); - array_push($this->DBNodeSet, $obj); - } - } - if (array_key_exists("NeedSupportTDE",$param) and $param["NeedSupportTDE"] !== null) { $this->NeedSupportTDE = $param["NeedSupportTDE"]; } @@ -467,5 +627,9 @@ serverCollationName:排序规则名称,可选参数,在初始化后不可 if (array_key_exists("SyncMode",$param) and $param["SyncMode"] !== null) { $this->SyncMode = $param["SyncMode"]; } + + if (array_key_exists("NeedSupportIpv6",$param) and $param["NeedSupportIpv6"] !== null) { + $this->NeedSupportIpv6 = $param["NeedSupportIpv6"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CreateReadOnlyDBInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CreateReadOnlyDBInstanceRequest.php index a5110420e..f2ac42a57 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CreateReadOnlyDBInstanceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/CreateReadOnlyDBInstanceRequest.php @@ -20,51 +20,94 @@ use TencentCloud\Common\AbstractModel; /** * CreateReadOnlyDBInstance请求参数结构体 * - * @method string getSpecCode() 获取售卖规格ID。该参数可以通过调用DescribeClasses的返回值中的SpecCode字段来获取。 - * @method void setSpecCode(string $SpecCode) 设置售卖规格ID。该参数可以通过调用DescribeClasses的返回值中的SpecCode字段来获取。 + * @method string getZone() 获取实例所属主可用区, 如:ap-guangzhou-3; +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @method void setZone(string $Zone) 设置实例所属主可用区, 如:ap-guangzhou-3; +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @method string getMasterDBInstanceId() 获取只读实例的主实例ID。 + * @method void setMasterDBInstanceId(string $MasterDBInstanceId) 设置只读实例的主实例ID。 + * @method string getSpecCode() 获取售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 + * @method void setSpecCode(string $SpecCode) 设置售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 * @method integer getStorage() 获取实例容量大小,单位:GB。 * @method void setStorage(integer $Storage) 设置实例容量大小,单位:GB。 - * @method integer getInstanceCount() 获取一次性购买的实例数量。取值1-100 - * @method void setInstanceCount(integer $InstanceCount) 设置一次性购买的实例数量。取值1-100 - * @method integer getPeriod() 获取购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @method void setPeriod(integer $Period) 设置购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @method string getMasterDBInstanceId() 获取只读实例的主实例ID - * @method void setMasterDBInstanceId(string $MasterDBInstanceId) 设置只读实例的主实例ID - * @method string getZone() 获取可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。 - * @method void setZone(string $Zone) 设置可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。 - * @method integer getProjectId() 获取项目ID。 - * @method void setProjectId(integer $ProjectId) 设置项目ID。 - * @method string getDBVersion() 获取【废弃】不再需要指定,内核版本号与主实例保持一致 - * @method void setDBVersion(string $DBVersion) 设置【废弃】不再需要指定,内核版本号与主实例保持一致 - * @method string getInstanceChargeType() 获取实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。默认值:PREPAID。如果主实例为后付费,只读实例必须也为后付费。 - * @method void setInstanceChargeType(string $InstanceChargeType) 设置实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。默认值:PREPAID。如果主实例为后付费,只读实例必须也为后付费。 - * @method integer getAutoVoucher() 获取是否自动使用代金券。1(是),0(否),默认不使用。 - * @method void setAutoVoucher(integer $AutoVoucher) 设置是否自动使用代金券。1(是),0(否),默认不使用。 + * @method integer getInstanceCount() 获取购买实例数量,取值范围:[1-10]。一次性购买支持最大数量10个,若超过该数量,可进行多次调用进行购买。 + * @method void setInstanceCount(integer $InstanceCount) 设置购买实例数量,取值范围:[1-10]。一次性购买支持最大数量10个,若超过该数量,可进行多次调用进行购买。 + * @method integer getPeriod() 获取购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @method void setPeriod(integer $Period) 设置购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @method string getVpcId() 获取私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @method void setVpcId(string $VpcId) 设置私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @method string getSubnetId() 获取私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @method void setSubnetId(string $SubnetId) 设置私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @method string getInstanceChargeType() 获取实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月。 +
  • POSTPAID_BY_HOUR:后付费,即按量计费。 +默认值:PREPAID。如果主实例为后付费,只读实例必须也为后付费。 + * @method void setInstanceChargeType(string $InstanceChargeType) 设置实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月。 +
  • POSTPAID_BY_HOUR:后付费,即按量计费。 +默认值:PREPAID。如果主实例为后付费,只读实例必须也为后付费。 + * @method integer getAutoVoucher() 获取是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 + * @method void setAutoVoucher(integer $AutoVoucher) 设置是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 * @method array getVoucherIds() 获取代金券ID列表,目前仅支持指定一张代金券。 * @method void setVoucherIds(array $VoucherIds) 设置代金券ID列表,目前仅支持指定一张代金券。 - * @method integer getAutoRenewFlag() 获取续费标记:0-正常续费(默认);1-自动续费; - * @method void setAutoRenewFlag(integer $AutoRenewFlag) 设置续费标记:0-正常续费(默认);1-自动续费; - * @method string getVpcId() 获取私有网络ID。 - * @method void setVpcId(string $VpcId) 设置私有网络ID。 - * @method string getSubnetId() 获取私有网络子网ID。 - * @method void setSubnetId(string $SubnetId) 设置私有网络子网ID。 + * @method integer getAutoRenewFlag() 获取续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @method void setAutoRenewFlag(integer $AutoRenewFlag) 设置续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @method integer getProjectId() 获取项目ID。 + * @method void setProjectId(integer $ProjectId) 设置项目ID。 * @method integer getActivityId() 获取优惠活动ID * @method void setActivityId(integer $ActivityId) 设置优惠活动ID - * @method string getName() 获取实例名(后续支持) - * @method void setName(string $Name) 设置实例名(后续支持) - * @method integer getNeedSupportIpv6() 获取是否需要支持Ipv6,1:是,0:否 - * @method void setNeedSupportIpv6(integer $NeedSupportIpv6) 设置是否需要支持Ipv6,1:是,0:否 * @method string getReadOnlyGroupId() 获取只读组ID。 * @method void setReadOnlyGroupId(string $ReadOnlyGroupId) 设置只读组ID。 - * @method Tag getTagList() 获取实例需要绑定的Tag信息,默认为空(该类型为Tag数组类型) - * @method void setTagList(Tag $TagList) 设置实例需要绑定的Tag信息,默认为空(该类型为Tag数组类型) - * @method array getSecurityGroupIds() 获取安全组id - * @method void setSecurityGroupIds(array $SecurityGroupIds) 设置安全组id + * @method Tag getTagList() 获取实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @method void setTagList(Tag $TagList) 设置实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @method array getSecurityGroupIds() 获取实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + + * @method void setSecurityGroupIds(array $SecurityGroupIds) 设置实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + + * @method integer getNeedSupportIpv6() 获取是否需要支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 + * @method void setNeedSupportIpv6(integer $NeedSupportIpv6) 设置是否需要支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 + * @method string getName() 获取实例名(后续支持) + * @method void setName(string $Name) 设置实例名(后续支持) + * @method string getDBVersion() 获取【废弃】不再需要指定,内核版本号与主实例保持一致 + * @method void setDBVersion(string $DBVersion) 设置【废弃】不再需要指定,内核版本号与主实例保持一致 */ class CreateReadOnlyDBInstanceRequest extends AbstractModel { /** - * @var string 售卖规格ID。该参数可以通过调用DescribeClasses的返回值中的SpecCode字段来获取。 + * @var string 实例所属主可用区, 如:ap-guangzhou-3; +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + */ + public $Zone; + + /** + * @var string 只读实例的主实例ID。 + */ + public $MasterDBInstanceId; + + /** + * @var string 售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 */ public $SpecCode; @@ -74,42 +117,40 @@ class CreateReadOnlyDBInstanceRequest extends AbstractModel public $Storage; /** - * @var integer 一次性购买的实例数量。取值1-100 + * @var integer 购买实例数量,取值范围:[1-10]。一次性购买支持最大数量10个,若超过该数量,可进行多次调用进行购买。 */ public $InstanceCount; /** - * @var integer 购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 + * @var integer 购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 */ public $Period; /** - * @var string 只读实例的主实例ID + * @var string 私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 */ - public $MasterDBInstanceId; + public $VpcId; /** - * @var string 可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。 + * @var string 私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 */ - public $Zone; + public $SubnetId; /** - * @var integer 项目ID。 - */ - public $ProjectId; - - /** - * @var string 【废弃】不再需要指定,内核版本号与主实例保持一致 - */ - public $DBVersion; - - /** - * @var string 实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。默认值:PREPAID。如果主实例为后付费,只读实例必须也为后付费。 + * @var string 实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月。 +
  • POSTPAID_BY_HOUR:后付费,即按量计费。 +默认值:PREPAID。如果主实例为后付费,只读实例必须也为后付费。 */ public $InstanceChargeType; /** - * @var integer 是否自动使用代金券。1(是),0(否),默认不使用。 + * @var integer 是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 */ public $AutoVoucher; @@ -119,71 +160,94 @@ class CreateReadOnlyDBInstanceRequest extends AbstractModel public $VoucherIds; /** - * @var integer 续费标记:0-正常续费(默认);1-自动续费; + * @var integer 续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 */ public $AutoRenewFlag; /** - * @var string 私有网络ID。 + * @var integer 项目ID。 */ - public $VpcId; - - /** - * @var string 私有网络子网ID。 - */ - public $SubnetId; + public $ProjectId; /** * @var integer 优惠活动ID */ public $ActivityId; - /** - * @var string 实例名(后续支持) - */ - public $Name; - - /** - * @var integer 是否需要支持Ipv6,1:是,0:否 - */ - public $NeedSupportIpv6; - /** * @var string 只读组ID。 */ public $ReadOnlyGroupId; /** - * @var Tag 实例需要绑定的Tag信息,默认为空(该类型为Tag数组类型) + * @var Tag 实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 */ public $TagList; /** - * @var array 安全组id + * @var array 实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + */ public $SecurityGroupIds; /** - * @param string $SpecCode 售卖规格ID。该参数可以通过调用DescribeClasses的返回值中的SpecCode字段来获取。 + * @var integer 是否需要支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 + */ + public $NeedSupportIpv6; + + /** + * @var string 实例名(后续支持) + */ + public $Name; + + /** + * @var string 【废弃】不再需要指定,内核版本号与主实例保持一致 + */ + public $DBVersion; + + /** + * @param string $Zone 实例所属主可用区, 如:ap-guangzhou-3; +可用区信息可以通过调用 [DescribeZones](https://cloud.tencent.com/document/api/409/16769) 接口的返回值中的Zone字段来获取。 + * @param string $MasterDBInstanceId 只读实例的主实例ID。 + * @param string $SpecCode 售卖规格码。该参数可以通过调用[DescribeClasses](https://cloud.tencent.com/document/api/409/89019)的返回值中的SpecCode字段来获取。 * @param integer $Storage 实例容量大小,单位:GB。 - * @param integer $InstanceCount 一次性购买的实例数量。取值1-100 - * @param integer $Period 购买时长,单位:月。目前只支持1,2,3,4,5,6,7,8,9,10,11,12,24,36这些值,按量计费模式下该参数传1。 - * @param string $MasterDBInstanceId 只读实例的主实例ID - * @param string $Zone 可用区ID。该参数可以通过调用 DescribeZones 接口的返回值中的Zone字段来获取。 - * @param integer $ProjectId 项目ID。 - * @param string $DBVersion 【废弃】不再需要指定,内核版本号与主实例保持一致 - * @param string $InstanceChargeType 实例计费类型。目前支持:PREPAID(预付费,即包年包月),POSTPAID_BY_HOUR(后付费,即按量计费)。默认值:PREPAID。如果主实例为后付费,只读实例必须也为后付费。 - * @param integer $AutoVoucher 是否自动使用代金券。1(是),0(否),默认不使用。 + * @param integer $InstanceCount 购买实例数量,取值范围:[1-10]。一次性购买支持最大数量10个,若超过该数量,可进行多次调用进行购买。 + * @param integer $Period 购买时长,单位:月。 +
  • 预付费:支持1,2,3,4,5,6,7,8,9,10,11,12,24,36 +
  • 后付费:只支持1 + * @param string $VpcId 私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @param string $SubnetId 私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @param string $InstanceChargeType 实例计费类型,目前支持: +
  • PREPAID:预付费,即包年包月。 +
  • POSTPAID_BY_HOUR:后付费,即按量计费。 +默认值:PREPAID。如果主实例为后付费,只读实例必须也为后付费。 + * @param integer $AutoVoucher 是否自动使用代金券: +
  • 0:否 +
  • 1:是 +默认值:0 * @param array $VoucherIds 代金券ID列表,目前仅支持指定一张代金券。 - * @param integer $AutoRenewFlag 续费标记:0-正常续费(默认);1-自动续费; - * @param string $VpcId 私有网络ID。 - * @param string $SubnetId 私有网络子网ID。 + * @param integer $AutoRenewFlag 续费标记: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @param integer $ProjectId 项目ID。 * @param integer $ActivityId 优惠活动ID - * @param string $Name 实例名(后续支持) - * @param integer $NeedSupportIpv6 是否需要支持Ipv6,1:是,0:否 * @param string $ReadOnlyGroupId 只读组ID。 - * @param Tag $TagList 实例需要绑定的Tag信息,默认为空(该类型为Tag数组类型) - * @param array $SecurityGroupIds 安全组id + * @param Tag $TagList 实例需要绑定的Tag信息,默认为空;可以通过调用 [DescribeTags](https://cloud.tencent.com/document/api/651/35316) 返回值中的 Tags 字段来获取。 + * @param array $SecurityGroupIds 实例所属安全组,该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数,则绑定默认安全组。 + + * @param integer $NeedSupportIpv6 是否需要支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 + * @param string $Name 实例名(后续支持) + * @param string $DBVersion 【废弃】不再需要指定,内核版本号与主实例保持一致 */ function __construct() { @@ -198,6 +262,14 @@ class CreateReadOnlyDBInstanceRequest extends AbstractModel if ($param === null) { return; } + if (array_key_exists("Zone",$param) and $param["Zone"] !== null) { + $this->Zone = $param["Zone"]; + } + + if (array_key_exists("MasterDBInstanceId",$param) and $param["MasterDBInstanceId"] !== null) { + $this->MasterDBInstanceId = $param["MasterDBInstanceId"]; + } + if (array_key_exists("SpecCode",$param) and $param["SpecCode"] !== null) { $this->SpecCode = $param["SpecCode"]; } @@ -214,20 +286,12 @@ class CreateReadOnlyDBInstanceRequest extends AbstractModel $this->Period = $param["Period"]; } - if (array_key_exists("MasterDBInstanceId",$param) and $param["MasterDBInstanceId"] !== null) { - $this->MasterDBInstanceId = $param["MasterDBInstanceId"]; + if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { + $this->VpcId = $param["VpcId"]; } - if (array_key_exists("Zone",$param) and $param["Zone"] !== null) { - $this->Zone = $param["Zone"]; - } - - if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { - $this->ProjectId = $param["ProjectId"]; - } - - if (array_key_exists("DBVersion",$param) and $param["DBVersion"] !== null) { - $this->DBVersion = $param["DBVersion"]; + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; } if (array_key_exists("InstanceChargeType",$param) and $param["InstanceChargeType"] !== null) { @@ -246,26 +310,14 @@ class CreateReadOnlyDBInstanceRequest extends AbstractModel $this->AutoRenewFlag = $param["AutoRenewFlag"]; } - if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { - $this->VpcId = $param["VpcId"]; - } - - if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { - $this->SubnetId = $param["SubnetId"]; + if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { + $this->ProjectId = $param["ProjectId"]; } if (array_key_exists("ActivityId",$param) and $param["ActivityId"] !== null) { $this->ActivityId = $param["ActivityId"]; } - if (array_key_exists("Name",$param) and $param["Name"] !== null) { - $this->Name = $param["Name"]; - } - - if (array_key_exists("NeedSupportIpv6",$param) and $param["NeedSupportIpv6"] !== null) { - $this->NeedSupportIpv6 = $param["NeedSupportIpv6"]; - } - if (array_key_exists("ReadOnlyGroupId",$param) and $param["ReadOnlyGroupId"] !== null) { $this->ReadOnlyGroupId = $param["ReadOnlyGroupId"]; } @@ -278,5 +330,17 @@ class CreateReadOnlyDBInstanceRequest extends AbstractModel if (array_key_exists("SecurityGroupIds",$param) and $param["SecurityGroupIds"] !== null) { $this->SecurityGroupIds = $param["SecurityGroupIds"]; } + + if (array_key_exists("NeedSupportIpv6",$param) and $param["NeedSupportIpv6"] !== null) { + $this->NeedSupportIpv6 = $param["NeedSupportIpv6"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("DBVersion",$param) and $param["DBVersion"] !== null) { + $this->DBVersion = $param["DBVersion"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DBInstance.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DBInstance.php index 5d8c68737..59ea72908 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DBInstance.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DBInstance.php @@ -20,22 +20,20 @@ use TencentCloud\Common\AbstractModel; /** * 描述实例的详细信息 * - * @method string getRegion() 获取实例所属地域,如: ap-guangzhou,对应RegionSet的Region字段 - * @method void setRegion(string $Region) 设置实例所属地域,如: ap-guangzhou,对应RegionSet的Region字段 - * @method string getZone() 获取实例所属可用区, 如:ap-guangzhou-3,对应ZoneSet的Zone字段 - * @method void setZone(string $Zone) 设置实例所属可用区, 如:ap-guangzhou-3,对应ZoneSet的Zone字段 - * @method integer getProjectId() 获取项目ID - * @method void setProjectId(integer $ProjectId) 设置项目ID - * @method string getVpcId() 获取私有网络ID - * @method void setVpcId(string $VpcId) 设置私有网络ID - * @method string getSubnetId() 获取子网ID - * @method void setSubnetId(string $SubnetId) 设置子网ID - * @method string getDBInstanceId() 获取实例ID - * @method void setDBInstanceId(string $DBInstanceId) 设置实例ID - * @method string getDBInstanceName() 获取实例名称 - * @method void setDBInstanceName(string $DBInstanceName) 设置实例名称 - * @method string getDBInstanceStatus() 获取实例状态,分别为:applying(申请中)、init(待初始化)、initing(初始化中)、running(运行中)、limited run(受限运行)、isolating(隔离中)、isolated(已隔离)、recycling(回收中)、recycled(已回收)、job running(任务执行中)、offline(下线)、migrating(迁移中)、expanding(扩容中)、waitSwitch(等待切换)、switching(切换中)、readonly(只读)、restarting(重启中)、network changing(网络变更中)、upgrading(内核版本升级中) - * @method void setDBInstanceStatus(string $DBInstanceStatus) 设置实例状态,分别为:applying(申请中)、init(待初始化)、initing(初始化中)、running(运行中)、limited run(受限运行)、isolating(隔离中)、isolated(已隔离)、recycling(回收中)、recycled(已回收)、job running(任务执行中)、offline(下线)、migrating(迁移中)、expanding(扩容中)、waitSwitch(等待切换)、switching(切换中)、readonly(只读)、restarting(重启中)、network changing(网络变更中)、upgrading(内核版本升级中) + * @method string getRegion() 获取实例所属地域,如: ap-guangzhou,对应RegionSet的Region字段。 + * @method void setRegion(string $Region) 设置实例所属地域,如: ap-guangzhou,对应RegionSet的Region字段。 + * @method string getZone() 获取实例所属可用区, 如:ap-guangzhou-3,对应ZoneSet的Zone字段。 + * @method void setZone(string $Zone) 设置实例所属可用区, 如:ap-guangzhou-3,对应ZoneSet的Zone字段。 + * @method string getVpcId() 获取私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @method void setVpcId(string $VpcId) 设置私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @method string getSubnetId() 获取私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @method void setSubnetId(string $SubnetId) 设置私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @method string getDBInstanceId() 获取实例ID。 + * @method void setDBInstanceId(string $DBInstanceId) 设置实例ID。 + * @method string getDBInstanceName() 获取实例名称。 + * @method void setDBInstanceName(string $DBInstanceName) 设置实例名称。 + * @method string getDBInstanceStatus() 获取实例状态,分别为:applying(申请中)、init(待初始化)、initing(初始化中)、running(运行中)、limited run(受限运行)、isolating(隔离中)、isolated(已隔离)、recycling(回收中)、recycled(已回收)、job running(任务执行中)、offline(下线)、migrating(迁移中)、expanding(扩容中)、waitSwitch(等待切换)、switching(切换中)、readonly(只读)、restarting(重启中)、network changing(网络变更中)、upgrading(内核版本升级中)、audit-switching(审计状态变更中)、primary-switching(主备切换中) + * @method void setDBInstanceStatus(string $DBInstanceStatus) 设置实例状态,分别为:applying(申请中)、init(待初始化)、initing(初始化中)、running(运行中)、limited run(受限运行)、isolating(隔离中)、isolated(已隔离)、recycling(回收中)、recycled(已回收)、job running(任务执行中)、offline(下线)、migrating(迁移中)、expanding(扩容中)、waitSwitch(等待切换)、switching(切换中)、readonly(只读)、restarting(重启中)、network changing(网络变更中)、upgrading(内核版本升级中)、audit-switching(审计状态变更中)、primary-switching(主备切换中) * @method integer getDBInstanceMemory() 获取实例分配的内存大小,单位:GB * @method void setDBInstanceMemory(integer $DBInstanceMemory) 设置实例分配的内存大小,单位:GB * @method integer getDBInstanceStorage() 获取实例分配的存储空间大小,单位:GB @@ -44,128 +42,177 @@ use TencentCloud\Common\AbstractModel; * @method void setDBInstanceCpu(integer $DBInstanceCpu) 设置实例分配的CPU数量,单位:个 * @method string getDBInstanceClass() 获取售卖规格ID * @method void setDBInstanceClass(string $DBInstanceClass) 设置售卖规格ID - * @method string getDBInstanceType() 获取实例类型,类型有:1、primary(主实例);2、readonly(只读实例);3、guard(灾备实例);4、temp(临时实例) - * @method void setDBInstanceType(string $DBInstanceType) 设置实例类型,类型有:1、primary(主实例);2、readonly(只读实例);3、guard(灾备实例);4、temp(临时实例) - * @method string getDBInstanceVersion() 获取实例版本,目前只支持standard(双机高可用版, 一主一从) - * @method void setDBInstanceVersion(string $DBInstanceVersion) 设置实例版本,目前只支持standard(双机高可用版, 一主一从) - * @method string getDBCharset() 获取实例DB字符集 - * @method void setDBCharset(string $DBCharset) 设置实例DB字符集 - * @method string getDBVersion() 获取PostgreSQL版本 - * @method void setDBVersion(string $DBVersion) 设置PostgreSQL版本 - * @method string getCreateTime() 获取实例创建时间 - * @method void setCreateTime(string $CreateTime) 设置实例创建时间 - * @method string getUpdateTime() 获取实例执行最后一次更新的时间 - * @method void setUpdateTime(string $UpdateTime) 设置实例执行最后一次更新的时间 - * @method string getExpireTime() 获取实例到期时间 - * @method void setExpireTime(string $ExpireTime) 设置实例到期时间 - * @method string getIsolatedTime() 获取实例隔离时间 - * @method void setIsolatedTime(string $IsolatedTime) 设置实例隔离时间 - * @method string getPayType() 获取计费模式,1、prepaid(包年包月,预付费);2、postpaid(按量计费,后付费) - * @method void setPayType(string $PayType) 设置计费模式,1、prepaid(包年包月,预付费);2、postpaid(按量计费,后付费) - * @method integer getAutoRenew() 获取是否自动续费,1:自动续费,0:不自动续费 - * @method void setAutoRenew(integer $AutoRenew) 设置是否自动续费,1:自动续费,0:不自动续费 - * @method array getDBInstanceNetInfo() 获取实例网络连接信息 - * @method void setDBInstanceNetInfo(array $DBInstanceNetInfo) 设置实例网络连接信息 - * @method string getType() 获取机器类型 - * @method void setType(string $Type) 设置机器类型 - * @method integer getAppId() 获取用户的AppId - * @method void setAppId(integer $AppId) 设置用户的AppId - * @method integer getUid() 获取实例的Uid - * @method void setUid(integer $Uid) 设置实例的Uid - * @method integer getSupportIpv6() 获取实例是否支持Ipv6,1:支持,0:不支持 - * @method void setSupportIpv6(integer $SupportIpv6) 设置实例是否支持Ipv6,1:支持,0:不支持 - * @method array getTagList() 获取实例绑定的标签信息 + * @method string getDBMajorVersion() 获取PostgreSQL大版本号,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取,目前支持10,11,12,13,14,15这几个大版本。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setTagList(array $TagList) 设置实例绑定的标签信息 + * @method void setDBMajorVersion(string $DBMajorVersion) 设置PostgreSQL大版本号,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取,目前支持10,11,12,13,14,15这几个大版本。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getMasterDBInstanceId() 获取主实例信息,仅在实例为只读实例时返回 + * @method string getDBVersion() 获取PostgreSQL社区大版本+小版本号,如12.4,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 + * @method void setDBVersion(string $DBVersion) 设置PostgreSQL社区大版本+小版本号,如12.4,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 + * @method string getDBKernelVersion() 获取PostgreSQL内核版本号,如v12.7_r1.8,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setMasterDBInstanceId(string $MasterDBInstanceId) 设置主实例信息,仅在实例为只读实例时返回 + * @method void setDBKernelVersion(string $DBKernelVersion) 设置PostgreSQL内核版本号,如v12.7_r1.8,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getReadOnlyInstanceNum() 获取只读实例数量 + * @method string getDBInstanceType() 获取实例类型,类型有: +
  • primary:主实例 +
  • readonly:只读实例 +
  • guard:灾备实例 +
  • temp:临时实例 + * @method void setDBInstanceType(string $DBInstanceType) 设置实例类型,类型有: +
  • primary:主实例 +
  • readonly:只读实例 +
  • guard:灾备实例 +
  • temp:临时实例 + * @method string getDBInstanceVersion() 获取实例版本,目前只支持standard(双机高可用版, 一主一从)。 + * @method void setDBInstanceVersion(string $DBInstanceVersion) 设置实例版本,目前只支持standard(双机高可用版, 一主一从)。 + * @method string getDBCharset() 获取实例字符集,目前只支持: +
  • UTF8 +
  • LATIN1 + * @method void setDBCharset(string $DBCharset) 设置实例字符集,目前只支持: +
  • UTF8 +
  • LATIN1 + * @method string getCreateTime() 获取实例创建时间。 + * @method void setCreateTime(string $CreateTime) 设置实例创建时间。 + * @method string getUpdateTime() 获取实例执行最后一次更新的时间。 + * @method void setUpdateTime(string $UpdateTime) 设置实例执行最后一次更新的时间。 + * @method string getExpireTime() 获取实例到期时间。 + * @method void setExpireTime(string $ExpireTime) 设置实例到期时间。 + * @method string getIsolatedTime() 获取实例隔离时间。 + * @method void setIsolatedTime(string $IsolatedTime) 设置实例隔离时间。 + * @method string getPayType() 获取计费模式: +
  • prepaid:包年包月,预付费 +
  • postpaid:按量计费,后付费 + * @method void setPayType(string $PayType) 设置计费模式: +
  • prepaid:包年包月,预付费 +
  • postpaid:按量计费,后付费 + * @method integer getAutoRenew() 获取是否自动续费: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @method void setAutoRenew(integer $AutoRenew) 设置是否自动续费: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @method array getDBInstanceNetInfo() 获取实例网络连接信息。 + * @method void setDBInstanceNetInfo(array $DBInstanceNetInfo) 设置实例网络连接信息。 + * @method string getType() 获取机器类型。 + * @method void setType(string $Type) 设置机器类型。 + * @method integer getAppId() 获取用户的AppId。 + * @method void setAppId(integer $AppId) 设置用户的AppId。 + * @method integer getUid() 获取实例的Uid。 + * @method void setUid(integer $Uid) 设置实例的Uid。 + * @method integer getProjectId() 获取项目ID。 + * @method void setProjectId(integer $ProjectId) 设置项目ID。 + * @method array getTagList() 获取实例绑定的标签信息。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setReadOnlyInstanceNum(integer $ReadOnlyInstanceNum) 设置只读实例数量 + * @method void setTagList(array $TagList) 设置实例绑定的标签信息。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getStatusInReadonlyGroup() 获取只读实例在只读组中的状态 + * @method string getMasterDBInstanceId() 获取主实例信息,仅在实例为只读实例时返回。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setStatusInReadonlyGroup(string $StatusInReadonlyGroup) 设置只读实例在只读组中的状态 + * @method void setMasterDBInstanceId(string $MasterDBInstanceId) 设置主实例信息,仅在实例为只读实例时返回。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getOfflineTime() 获取下线时间 + * @method integer getReadOnlyInstanceNum() 获取只读实例数量。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setOfflineTime(string $OfflineTime) 设置下线时间 + * @method void setReadOnlyInstanceNum(integer $ReadOnlyInstanceNum) 设置只读实例数量。 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getDBKernelVersion() 获取数据库内核版本 + * @method string getStatusInReadonlyGroup() 获取只读实例在只读组中的状态。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setDBKernelVersion(string $DBKernelVersion) 设置数据库内核版本 + * @method void setStatusInReadonlyGroup(string $StatusInReadonlyGroup) 设置只读实例在只读组中的状态。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getOfflineTime() 获取下线时间。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setOfflineTime(string $OfflineTime) 设置下线时间。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method array getDBNodeSet() 获取实例的节点信息。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDBNodeSet(array $DBNodeSet) 设置实例的节点信息。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getIsSupportTDE() 获取实例是否支持TDE数据加密: +
  • 0:不支持 +
  • 1:支持 +默认值:0 +TDE数据加密可参考[数据透明加密概述](https://cloud.tencent.com/document/product/409/71748) +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setIsSupportTDE(integer $IsSupportTDE) 设置实例是否支持TDE数据加密: +
  • 0:不支持 +
  • 1:支持 +默认值:0 +TDE数据加密可参考[数据透明加密概述](https://cloud.tencent.com/document/product/409/71748) +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDBEngine() 获取数据库引擎,支持: +
  • postgresql:云数据库PostgreSQL +
  • mssql_compatible:MSSQL兼容-云数据库PostgreSQL +默认值:postgresql +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDBEngine(string $DBEngine) 设置数据库引擎,支持: +
  • postgresql:云数据库PostgreSQL +
  • mssql_compatible:MSSQL兼容-云数据库PostgreSQL +默认值:postgresql +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDBEngineConfig() 获取数据库引擎的配置信息,配置格式如下: +{"$key1":"$value1", "$key2":"$value2"} +各引擎支持如下: +mssql_compatible引擎: +
  • migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 +
  • defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: +"af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN"。 +
  • serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下:"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDBEngineConfig(string $DBEngineConfig) 设置数据库引擎的配置信息,配置格式如下: +{"$key1":"$value1", "$key2":"$value2"} +各引擎支持如下: +mssql_compatible引擎: +
  • migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 +
  • defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: +"af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN"。 +
  • serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下:"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 注意:此字段可能返回 null,表示取不到有效值。 * @method array getNetworkAccessList() 获取实例网络信息列表(此字段已废弃) 注意:此字段可能返回 null,表示取不到有效值。 * @method void setNetworkAccessList(array $NetworkAccessList) 设置实例网络信息列表(此字段已废弃) 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getDBMajorVersion() 获取PostgreSQL主要版本 -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setDBMajorVersion(string $DBMajorVersion) 设置PostgreSQL主要版本 -注意:此字段可能返回 null,表示取不到有效值。 - * @method array getDBNodeSet() 获取实例的节点信息 -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setDBNodeSet(array $DBNodeSet) 设置实例的节点信息 -注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getIsSupportTDE() 获取实例是否支持TDE数据加密 0:不支持,1:支持 -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setIsSupportTDE(integer $IsSupportTDE) 设置实例是否支持TDE数据加密 0:不支持,1:支持 -注意:此字段可能返回 null,表示取不到有效值。 - * @method string getDBEngine() 获取数据库引擎,支持: -1、postgresql(云数据库PostgreSQL); -2、mssql_compatible(MSSQL兼容-云数据库PostgreSQL); -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setDBEngine(string $DBEngine) 设置数据库引擎,支持: -1、postgresql(云数据库PostgreSQL); -2、mssql_compatible(MSSQL兼容-云数据库PostgreSQL); -注意:此字段可能返回 null,表示取不到有效值。 - * @method string getDBEngineConfig() 获取数据库引擎的配置信息 -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setDBEngineConfig(string $DBEngineConfig) 设置数据库引擎的配置信息 -注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getSupportIpv6() 获取实例是否支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 + * @method void setSupportIpv6(integer $SupportIpv6) 设置实例是否支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 */ class DBInstance extends AbstractModel { /** - * @var string 实例所属地域,如: ap-guangzhou,对应RegionSet的Region字段 + * @var string 实例所属地域,如: ap-guangzhou,对应RegionSet的Region字段。 */ public $Region; /** - * @var string 实例所属可用区, 如:ap-guangzhou-3,对应ZoneSet的Zone字段 + * @var string 实例所属可用区, 如:ap-guangzhou-3,对应ZoneSet的Zone字段。 */ public $Zone; /** - * @var integer 项目ID - */ - public $ProjectId; - - /** - * @var string 私有网络ID + * @var string 私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 */ public $VpcId; /** - * @var string 子网ID + * @var string 私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 */ public $SubnetId; /** - * @var string 实例ID + * @var string 实例ID。 */ public $DBInstanceId; /** - * @var string 实例名称 + * @var string 实例名称。 */ public $DBInstanceName; /** - * @var string 实例状态,分别为:applying(申请中)、init(待初始化)、initing(初始化中)、running(运行中)、limited run(受限运行)、isolating(隔离中)、isolated(已隔离)、recycling(回收中)、recycled(已回收)、job running(任务执行中)、offline(下线)、migrating(迁移中)、expanding(扩容中)、waitSwitch(等待切换)、switching(切换中)、readonly(只读)、restarting(重启中)、network changing(网络变更中)、upgrading(内核版本升级中) + * @var string 实例状态,分别为:applying(申请中)、init(待初始化)、initing(初始化中)、running(运行中)、limited run(受限运行)、isolating(隔离中)、isolated(已隔离)、recycling(回收中)、recycled(已回收)、job running(任务执行中)、offline(下线)、migrating(迁移中)、expanding(扩容中)、waitSwitch(等待切换)、switching(切换中)、readonly(只读)、restarting(重启中)、network changing(网络变更中)、upgrading(内核版本升级中)、audit-switching(审计状态变更中)、primary-switching(主备切换中) */ public $DBInstanceStatus; @@ -190,115 +237,170 @@ class DBInstance extends AbstractModel public $DBInstanceClass; /** - * @var string 实例类型,类型有:1、primary(主实例);2、readonly(只读实例);3、guard(灾备实例);4、temp(临时实例) + * @var string PostgreSQL大版本号,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取,目前支持10,11,12,13,14,15这几个大版本。 +注意:此字段可能返回 null,表示取不到有效值。 */ - public $DBInstanceType; + public $DBMajorVersion; /** - * @var string 实例版本,目前只支持standard(双机高可用版, 一主一从) - */ - public $DBInstanceVersion; - - /** - * @var string 实例DB字符集 - */ - public $DBCharset; - - /** - * @var string PostgreSQL版本 + * @var string PostgreSQL社区大版本+小版本号,如12.4,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 */ public $DBVersion; /** - * @var string 实例创建时间 + * @var string PostgreSQL内核版本号,如v12.7_r1.8,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DBKernelVersion; + + /** + * @var string 实例类型,类型有: +
  • primary:主实例 +
  • readonly:只读实例 +
  • guard:灾备实例 +
  • temp:临时实例 + */ + public $DBInstanceType; + + /** + * @var string 实例版本,目前只支持standard(双机高可用版, 一主一从)。 + */ + public $DBInstanceVersion; + + /** + * @var string 实例字符集,目前只支持: +
  • UTF8 +
  • LATIN1 + */ + public $DBCharset; + + /** + * @var string 实例创建时间。 */ public $CreateTime; /** - * @var string 实例执行最后一次更新的时间 + * @var string 实例执行最后一次更新的时间。 */ public $UpdateTime; /** - * @var string 实例到期时间 + * @var string 实例到期时间。 */ public $ExpireTime; /** - * @var string 实例隔离时间 + * @var string 实例隔离时间。 */ public $IsolatedTime; /** - * @var string 计费模式,1、prepaid(包年包月,预付费);2、postpaid(按量计费,后付费) + * @var string 计费模式: +
  • prepaid:包年包月,预付费 +
  • postpaid:按量计费,后付费 */ public $PayType; /** - * @var integer 是否自动续费,1:自动续费,0:不自动续费 + * @var integer 是否自动续费: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 */ public $AutoRenew; /** - * @var array 实例网络连接信息 + * @var array 实例网络连接信息。 */ public $DBInstanceNetInfo; /** - * @var string 机器类型 + * @var string 机器类型。 */ public $Type; /** - * @var integer 用户的AppId + * @var integer 用户的AppId。 */ public $AppId; /** - * @var integer 实例的Uid + * @var integer 实例的Uid。 */ public $Uid; /** - * @var integer 实例是否支持Ipv6,1:支持,0:不支持 + * @var integer 项目ID。 */ - public $SupportIpv6; + public $ProjectId; /** - * @var array 实例绑定的标签信息 + * @var array 实例绑定的标签信息。 注意:此字段可能返回 null,表示取不到有效值。 */ public $TagList; /** - * @var string 主实例信息,仅在实例为只读实例时返回 + * @var string 主实例信息,仅在实例为只读实例时返回。 注意:此字段可能返回 null,表示取不到有效值。 */ public $MasterDBInstanceId; /** - * @var integer 只读实例数量 + * @var integer 只读实例数量。 注意:此字段可能返回 null,表示取不到有效值。 */ public $ReadOnlyInstanceNum; /** - * @var string 只读实例在只读组中的状态 + * @var string 只读实例在只读组中的状态。 注意:此字段可能返回 null,表示取不到有效值。 */ public $StatusInReadonlyGroup; /** - * @var string 下线时间 + * @var string 下线时间。 注意:此字段可能返回 null,表示取不到有效值。 */ public $OfflineTime; /** - * @var string 数据库内核版本 + * @var array 实例的节点信息。 注意:此字段可能返回 null,表示取不到有效值。 */ - public $DBKernelVersion; + public $DBNodeSet; + + /** + * @var integer 实例是否支持TDE数据加密: +
  • 0:不支持 +
  • 1:支持 +默认值:0 +TDE数据加密可参考[数据透明加密概述](https://cloud.tencent.com/document/product/409/71748) +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $IsSupportTDE; + + /** + * @var string 数据库引擎,支持: +
  • postgresql:云数据库PostgreSQL +
  • mssql_compatible:MSSQL兼容-云数据库PostgreSQL +默认值:postgresql +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DBEngine; + + /** + * @var string 数据库引擎的配置信息,配置格式如下: +{"$key1":"$value1", "$key2":"$value2"} +各引擎支持如下: +mssql_compatible引擎: +
  • migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 +
  • defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: +"af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN"。 +
  • serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下:"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DBEngineConfig; /** * @var array 实例网络信息列表(此字段已废弃) @@ -307,91 +409,93 @@ class DBInstance extends AbstractModel public $NetworkAccessList; /** - * @var string PostgreSQL主要版本 -注意:此字段可能返回 null,表示取不到有效值。 + * @var integer 实例是否支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 */ - public $DBMajorVersion; + public $SupportIpv6; /** - * @var array 实例的节点信息 -注意:此字段可能返回 null,表示取不到有效值。 - */ - public $DBNodeSet; - - /** - * @var integer 实例是否支持TDE数据加密 0:不支持,1:支持 -注意:此字段可能返回 null,表示取不到有效值。 - */ - public $IsSupportTDE; - - /** - * @var string 数据库引擎,支持: -1、postgresql(云数据库PostgreSQL); -2、mssql_compatible(MSSQL兼容-云数据库PostgreSQL); -注意:此字段可能返回 null,表示取不到有效值。 - */ - public $DBEngine; - - /** - * @var string 数据库引擎的配置信息 -注意:此字段可能返回 null,表示取不到有效值。 - */ - public $DBEngineConfig; - - /** - * @param string $Region 实例所属地域,如: ap-guangzhou,对应RegionSet的Region字段 - * @param string $Zone 实例所属可用区, 如:ap-guangzhou-3,对应ZoneSet的Zone字段 - * @param integer $ProjectId 项目ID - * @param string $VpcId 私有网络ID - * @param string $SubnetId 子网ID - * @param string $DBInstanceId 实例ID - * @param string $DBInstanceName 实例名称 - * @param string $DBInstanceStatus 实例状态,分别为:applying(申请中)、init(待初始化)、initing(初始化中)、running(运行中)、limited run(受限运行)、isolating(隔离中)、isolated(已隔离)、recycling(回收中)、recycled(已回收)、job running(任务执行中)、offline(下线)、migrating(迁移中)、expanding(扩容中)、waitSwitch(等待切换)、switching(切换中)、readonly(只读)、restarting(重启中)、network changing(网络变更中)、upgrading(内核版本升级中) + * @param string $Region 实例所属地域,如: ap-guangzhou,对应RegionSet的Region字段。 + * @param string $Zone 实例所属可用区, 如:ap-guangzhou-3,对应ZoneSet的Zone字段。 + * @param string $VpcId 私有网络ID,形如vpc-xxxxxxxx。有效的VpcId可通过登录控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372) ,从接口返回中的unVpcId字段获取。 + * @param string $SubnetId 私有网络子网ID,形如subnet-xxxxxxxx。有效的私有网络子网ID可通过登录控制台查询;也可以调用接口 [DescribeSubnets ](https://cloud.tencent.com/document/api/215/15784),从接口返回中的unSubnetId字段获取。 + * @param string $DBInstanceId 实例ID。 + * @param string $DBInstanceName 实例名称。 + * @param string $DBInstanceStatus 实例状态,分别为:applying(申请中)、init(待初始化)、initing(初始化中)、running(运行中)、limited run(受限运行)、isolating(隔离中)、isolated(已隔离)、recycling(回收中)、recycled(已回收)、job running(任务执行中)、offline(下线)、migrating(迁移中)、expanding(扩容中)、waitSwitch(等待切换)、switching(切换中)、readonly(只读)、restarting(重启中)、network changing(网络变更中)、upgrading(内核版本升级中)、audit-switching(审计状态变更中)、primary-switching(主备切换中) * @param integer $DBInstanceMemory 实例分配的内存大小,单位:GB * @param integer $DBInstanceStorage 实例分配的存储空间大小,单位:GB * @param integer $DBInstanceCpu 实例分配的CPU数量,单位:个 * @param string $DBInstanceClass 售卖规格ID - * @param string $DBInstanceType 实例类型,类型有:1、primary(主实例);2、readonly(只读实例);3、guard(灾备实例);4、temp(临时实例) - * @param string $DBInstanceVersion 实例版本,目前只支持standard(双机高可用版, 一主一从) - * @param string $DBCharset 实例DB字符集 - * @param string $DBVersion PostgreSQL版本 - * @param string $CreateTime 实例创建时间 - * @param string $UpdateTime 实例执行最后一次更新的时间 - * @param string $ExpireTime 实例到期时间 - * @param string $IsolatedTime 实例隔离时间 - * @param string $PayType 计费模式,1、prepaid(包年包月,预付费);2、postpaid(按量计费,后付费) - * @param integer $AutoRenew 是否自动续费,1:自动续费,0:不自动续费 - * @param array $DBInstanceNetInfo 实例网络连接信息 - * @param string $Type 机器类型 - * @param integer $AppId 用户的AppId - * @param integer $Uid 实例的Uid - * @param integer $SupportIpv6 实例是否支持Ipv6,1:支持,0:不支持 - * @param array $TagList 实例绑定的标签信息 + * @param string $DBMajorVersion PostgreSQL大版本号,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取,目前支持10,11,12,13,14,15这几个大版本。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $MasterDBInstanceId 主实例信息,仅在实例为只读实例时返回 + * @param string $DBVersion PostgreSQL社区大版本+小版本号,如12.4,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 + * @param string $DBKernelVersion PostgreSQL内核版本号,如v12.7_r1.8,版本信息可从[DescribeDBVersions](https://cloud.tencent.com/document/api/409/89018)获取。 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $ReadOnlyInstanceNum 只读实例数量 + * @param string $DBInstanceType 实例类型,类型有: +
  • primary:主实例 +
  • readonly:只读实例 +
  • guard:灾备实例 +
  • temp:临时实例 + * @param string $DBInstanceVersion 实例版本,目前只支持standard(双机高可用版, 一主一从)。 + * @param string $DBCharset 实例字符集,目前只支持: +
  • UTF8 +
  • LATIN1 + * @param string $CreateTime 实例创建时间。 + * @param string $UpdateTime 实例执行最后一次更新的时间。 + * @param string $ExpireTime 实例到期时间。 + * @param string $IsolatedTime 实例隔离时间。 + * @param string $PayType 计费模式: +
  • prepaid:包年包月,预付费 +
  • postpaid:按量计费,后付费 + * @param integer $AutoRenew 是否自动续费: +
  • 0:手动续费 +
  • 1:自动续费 +默认值:0 + * @param array $DBInstanceNetInfo 实例网络连接信息。 + * @param string $Type 机器类型。 + * @param integer $AppId 用户的AppId。 + * @param integer $Uid 实例的Uid。 + * @param integer $ProjectId 项目ID。 + * @param array $TagList 实例绑定的标签信息。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $StatusInReadonlyGroup 只读实例在只读组中的状态 + * @param string $MasterDBInstanceId 主实例信息,仅在实例为只读实例时返回。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $OfflineTime 下线时间 + * @param integer $ReadOnlyInstanceNum 只读实例数量。 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $DBKernelVersion 数据库内核版本 + * @param string $StatusInReadonlyGroup 只读实例在只读组中的状态。 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $OfflineTime 下线时间。 +注意:此字段可能返回 null,表示取不到有效值。 + * @param array $DBNodeSet 实例的节点信息。 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $IsSupportTDE 实例是否支持TDE数据加密: +
  • 0:不支持 +
  • 1:支持 +默认值:0 +TDE数据加密可参考[数据透明加密概述](https://cloud.tencent.com/document/product/409/71748) +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DBEngine 数据库引擎,支持: +
  • postgresql:云数据库PostgreSQL +
  • mssql_compatible:MSSQL兼容-云数据库PostgreSQL +默认值:postgresql +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DBEngineConfig 数据库引擎的配置信息,配置格式如下: +{"$key1":"$value1", "$key2":"$value2"} +各引擎支持如下: +mssql_compatible引擎: +
  • migrationMode:数据库模式,可选参数,可取值:single-db(单数据库模式),multi-db(多数据库模式)。默认为single-db。 +
  • defaultLocale:排序区域规则,可选参数,在初始化后不可修改,默认为en_US,可选值如下: +"af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN"。 +
  • serverCollationName:排序规则名称,可选参数,在初始化后不可修改,默认为sql_latin1_general_cp1_ci_as,可选值如下:"bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as"。 注意:此字段可能返回 null,表示取不到有效值。 * @param array $NetworkAccessList 实例网络信息列表(此字段已废弃) 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $DBMajorVersion PostgreSQL主要版本 -注意:此字段可能返回 null,表示取不到有效值。 - * @param array $DBNodeSet 实例的节点信息 -注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $IsSupportTDE 实例是否支持TDE数据加密 0:不支持,1:支持 -注意:此字段可能返回 null,表示取不到有效值。 - * @param string $DBEngine 数据库引擎,支持: -1、postgresql(云数据库PostgreSQL); -2、mssql_compatible(MSSQL兼容-云数据库PostgreSQL); -注意:此字段可能返回 null,表示取不到有效值。 - * @param string $DBEngineConfig 数据库引擎的配置信息 -注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $SupportIpv6 实例是否支持Ipv6: +
  • 0:否 +
  • 1:是 +默认值:0 */ function __construct() { @@ -414,10 +518,6 @@ class DBInstance extends AbstractModel $this->Zone = $param["Zone"]; } - if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { - $this->ProjectId = $param["ProjectId"]; - } - if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { $this->VpcId = $param["VpcId"]; } @@ -454,6 +554,18 @@ class DBInstance extends AbstractModel $this->DBInstanceClass = $param["DBInstanceClass"]; } + if (array_key_exists("DBMajorVersion",$param) and $param["DBMajorVersion"] !== null) { + $this->DBMajorVersion = $param["DBMajorVersion"]; + } + + if (array_key_exists("DBVersion",$param) and $param["DBVersion"] !== null) { + $this->DBVersion = $param["DBVersion"]; + } + + if (array_key_exists("DBKernelVersion",$param) and $param["DBKernelVersion"] !== null) { + $this->DBKernelVersion = $param["DBKernelVersion"]; + } + if (array_key_exists("DBInstanceType",$param) and $param["DBInstanceType"] !== null) { $this->DBInstanceType = $param["DBInstanceType"]; } @@ -466,10 +578,6 @@ class DBInstance extends AbstractModel $this->DBCharset = $param["DBCharset"]; } - if (array_key_exists("DBVersion",$param) and $param["DBVersion"] !== null) { - $this->DBVersion = $param["DBVersion"]; - } - if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { $this->CreateTime = $param["CreateTime"]; } @@ -515,8 +623,8 @@ class DBInstance extends AbstractModel $this->Uid = $param["Uid"]; } - if (array_key_exists("SupportIpv6",$param) and $param["SupportIpv6"] !== null) { - $this->SupportIpv6 = $param["SupportIpv6"]; + if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { + $this->ProjectId = $param["ProjectId"]; } if (array_key_exists("TagList",$param) and $param["TagList"] !== null) { @@ -544,23 +652,6 @@ class DBInstance extends AbstractModel $this->OfflineTime = $param["OfflineTime"]; } - if (array_key_exists("DBKernelVersion",$param) and $param["DBKernelVersion"] !== null) { - $this->DBKernelVersion = $param["DBKernelVersion"]; - } - - if (array_key_exists("NetworkAccessList",$param) and $param["NetworkAccessList"] !== null) { - $this->NetworkAccessList = []; - foreach ($param["NetworkAccessList"] as $key => $value){ - $obj = new NetworkAccess(); - $obj->deserialize($value); - array_push($this->NetworkAccessList, $obj); - } - } - - if (array_key_exists("DBMajorVersion",$param) and $param["DBMajorVersion"] !== null) { - $this->DBMajorVersion = $param["DBMajorVersion"]; - } - if (array_key_exists("DBNodeSet",$param) and $param["DBNodeSet"] !== null) { $this->DBNodeSet = []; foreach ($param["DBNodeSet"] as $key => $value){ @@ -581,5 +672,18 @@ class DBInstance extends AbstractModel if (array_key_exists("DBEngineConfig",$param) and $param["DBEngineConfig"] !== null) { $this->DBEngineConfig = $param["DBEngineConfig"]; } + + if (array_key_exists("NetworkAccessList",$param) and $param["NetworkAccessList"] !== null) { + $this->NetworkAccessList = []; + foreach ($param["NetworkAccessList"] as $key => $value){ + $obj = new NetworkAccess(); + $obj->deserialize($value); + array_push($this->NetworkAccessList, $obj); + } + } + + if (array_key_exists("SupportIpv6",$param) and $param["SupportIpv6"] !== null) { + $this->SupportIpv6 = $param["SupportIpv6"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DescribeDBInstanceHAConfigRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DescribeDBInstanceHAConfigRequest.php new file mode 100644 index 000000000..7dd323acb --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DescribeDBInstanceHAConfigRequest.php @@ -0,0 +1,53 @@ +DBInstanceId = $param["DBInstanceId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DescribeDBInstanceHAConfigResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DescribeDBInstanceHAConfigResponse.php new file mode 100644 index 000000000..d2da28eb7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/DescribeDBInstanceHAConfigResponse.php @@ -0,0 +1,169 @@ +Semi-sync:半同步 +
  • Async:异步 + * @method void setSyncMode(string $SyncMode) 设置主从同步方式: +
  • Semi-sync:半同步 +
  • Async:异步 + * @method integer getMaxStandbyLatency() 获取高可用备机最大延迟数据量。备节点延迟数据量小于等于该值,且备节点延迟时间小于等于MaxStandbyLag时,可以切换为主节点。 +
  • 单位:byte +
  • 参数范围:[1073741824, 322122547200] + * @method void setMaxStandbyLatency(integer $MaxStandbyLatency) 设置高可用备机最大延迟数据量。备节点延迟数据量小于等于该值,且备节点延迟时间小于等于MaxStandbyLag时,可以切换为主节点。 +
  • 单位:byte +
  • 参数范围:[1073741824, 322122547200] + * @method integer getMaxStandbyLag() 获取高可用备机最大延迟时间。备节点延迟时间小于等于该值,且备节点延迟数据量小于等于MaxStandbyLatency时,可以切换为主节点。 +
  • 单位:s +
  • 参数范围:[5, 10] + * @method void setMaxStandbyLag(integer $MaxStandbyLag) 设置高可用备机最大延迟时间。备节点延迟时间小于等于该值,且备节点延迟数据量小于等于MaxStandbyLatency时,可以切换为主节点。 +
  • 单位:s +
  • 参数范围:[5, 10] + * @method integer getMaxSyncStandbyLatency() 获取同步备机最大延迟数据量。备机延迟数据量小于等于该值,且该备机延迟时间小于等于MaxSyncStandbyLag时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +异步实例该字段返回null。 +半同步实例禁止退化为异步复制时,该字段返回null。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMaxSyncStandbyLatency(integer $MaxSyncStandbyLatency) 设置同步备机最大延迟数据量。备机延迟数据量小于等于该值,且该备机延迟时间小于等于MaxSyncStandbyLag时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +异步实例该字段返回null。 +半同步实例禁止退化为异步复制时,该字段返回null。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getMaxSyncStandbyLag() 获取同步备机最大延迟时间。备机延迟时间小于等于该值,且该备机延迟数据量小于等于MaxSyncStandbyLatency时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +异步实例不返回该字段。 +半同步实例禁止退化为异步复制时,不返回该字段。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMaxSyncStandbyLag(integer $MaxSyncStandbyLag) 设置同步备机最大延迟时间。备机延迟时间小于等于该值,且该备机延迟数据量小于等于MaxSyncStandbyLatency时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +异步实例不返回该字段。 +半同步实例禁止退化为异步复制时,不返回该字段。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + */ +class DescribeDBInstanceHAConfigResponse extends AbstractModel +{ + /** + * @var string 主从同步方式: +
  • Semi-sync:半同步 +
  • Async:异步 + */ + public $SyncMode; + + /** + * @var integer 高可用备机最大延迟数据量。备节点延迟数据量小于等于该值,且备节点延迟时间小于等于MaxStandbyLag时,可以切换为主节点。 +
  • 单位:byte +
  • 参数范围:[1073741824, 322122547200] + */ + public $MaxStandbyLatency; + + /** + * @var integer 高可用备机最大延迟时间。备节点延迟时间小于等于该值,且备节点延迟数据量小于等于MaxStandbyLatency时,可以切换为主节点。 +
  • 单位:s +
  • 参数范围:[5, 10] + */ + public $MaxStandbyLag; + + /** + * @var integer 同步备机最大延迟数据量。备机延迟数据量小于等于该值,且该备机延迟时间小于等于MaxSyncStandbyLag时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +异步实例该字段返回null。 +半同步实例禁止退化为异步复制时,该字段返回null。 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MaxSyncStandbyLatency; + + /** + * @var integer 同步备机最大延迟时间。备机延迟时间小于等于该值,且该备机延迟数据量小于等于MaxSyncStandbyLatency时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +异步实例不返回该字段。 +半同步实例禁止退化为异步复制时,不返回该字段。 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MaxSyncStandbyLag; + + /** + * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + */ + public $RequestId; + + /** + * @param string $SyncMode 主从同步方式: +
  • Semi-sync:半同步 +
  • Async:异步 + * @param integer $MaxStandbyLatency 高可用备机最大延迟数据量。备节点延迟数据量小于等于该值,且备节点延迟时间小于等于MaxStandbyLag时,可以切换为主节点。 +
  • 单位:byte +
  • 参数范围:[1073741824, 322122547200] + * @param integer $MaxStandbyLag 高可用备机最大延迟时间。备节点延迟时间小于等于该值,且备节点延迟数据量小于等于MaxStandbyLatency时,可以切换为主节点。 +
  • 单位:s +
  • 参数范围:[5, 10] + * @param integer $MaxSyncStandbyLatency 同步备机最大延迟数据量。备机延迟数据量小于等于该值,且该备机延迟时间小于等于MaxSyncStandbyLag时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +异步实例该字段返回null。 +半同步实例禁止退化为异步复制时,该字段返回null。 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $MaxSyncStandbyLag 同步备机最大延迟时间。备机延迟时间小于等于该值,且该备机延迟数据量小于等于MaxSyncStandbyLatency时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +异步实例不返回该字段。 +半同步实例禁止退化为异步复制时,不返回该字段。 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("SyncMode",$param) and $param["SyncMode"] !== null) { + $this->SyncMode = $param["SyncMode"]; + } + + if (array_key_exists("MaxStandbyLatency",$param) and $param["MaxStandbyLatency"] !== null) { + $this->MaxStandbyLatency = $param["MaxStandbyLatency"]; + } + + if (array_key_exists("MaxStandbyLag",$param) and $param["MaxStandbyLag"] !== null) { + $this->MaxStandbyLag = $param["MaxStandbyLag"]; + } + + if (array_key_exists("MaxSyncStandbyLatency",$param) and $param["MaxSyncStandbyLatency"] !== null) { + $this->MaxSyncStandbyLatency = $param["MaxSyncStandbyLatency"]; + } + + if (array_key_exists("MaxSyncStandbyLag",$param) and $param["MaxSyncStandbyLag"] !== null) { + $this->MaxSyncStandbyLag = $param["MaxSyncStandbyLag"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/ModifyDBInstanceHAConfigRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/ModifyDBInstanceHAConfigRequest.php new file mode 100644 index 000000000..d63878656 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/ModifyDBInstanceHAConfigRequest.php @@ -0,0 +1,165 @@ +Semi-sync:半同步 +
  • Async:异步 + + * @method void setSyncMode(string $SyncMode) 设置主从同步方式: +
  • Semi-sync:半同步 +
  • Async:异步 + + * @method integer getMaxStandbyLatency() 获取高可用备机最大延迟数据量。备节点延迟数据量小于等于该值,且备节点延迟时间小于等于MaxStandbyLag时,可以切换为主节点。 +
  • 单位:byte +
  • 参数范围:[1073741824, 322122547200] + * @method void setMaxStandbyLatency(integer $MaxStandbyLatency) 设置高可用备机最大延迟数据量。备节点延迟数据量小于等于该值,且备节点延迟时间小于等于MaxStandbyLag时,可以切换为主节点。 +
  • 单位:byte +
  • 参数范围:[1073741824, 322122547200] + * @method integer getMaxStandbyLag() 获取高可用备机最大延迟时间。备节点延迟时间小于等于该值,且备节点延迟数据量小于等于MaxStandbyLatency时,可以切换为主节点。 +
  • 单位:s +
  • 参数范围:[5, 10] + * @method void setMaxStandbyLag(integer $MaxStandbyLag) 设置高可用备机最大延迟时间。备节点延迟时间小于等于该值,且备节点延迟数据量小于等于MaxStandbyLatency时,可以切换为主节点。 +
  • 单位:s +
  • 参数范围:[5, 10] + * @method integer getMaxSyncStandbyLatency() 获取同步备机最大延迟数据量。备机延迟数据量小于等于该值,且该备机延迟时间小于等于MaxSyncStandbyLag时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +半同步实例禁止退化为异步复制时,不设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 +半同步实例允许退化异步复制时,PostgreSQL 9版本的实例须设置MaxSyncStandbyLatency且不设置MaxSyncStandbyLag,PostgreSQL 10及以上版本的实例须设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 + * @method void setMaxSyncStandbyLatency(integer $MaxSyncStandbyLatency) 设置同步备机最大延迟数据量。备机延迟数据量小于等于该值,且该备机延迟时间小于等于MaxSyncStandbyLag时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +半同步实例禁止退化为异步复制时,不设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 +半同步实例允许退化异步复制时,PostgreSQL 9版本的实例须设置MaxSyncStandbyLatency且不设置MaxSyncStandbyLag,PostgreSQL 10及以上版本的实例须设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 + * @method integer getMaxSyncStandbyLag() 获取同步备机最大延迟时间。备机延迟时间小于等于该值,且该备机延迟数据量小于等于MaxSyncStandbyLatency时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +半同步实例禁止退化为异步复制时,不设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 +半同步实例允许退化异步复制时,PostgreSQL 9版本的实例须设置MaxSyncStandbyLatency且不设置MaxSyncStandbyLag,PostgreSQL 10及以上版本的实例须设置MaxSyncStandbyLatency、MaxSyncStandbyLag, + * @method void setMaxSyncStandbyLag(integer $MaxSyncStandbyLag) 设置同步备机最大延迟时间。备机延迟时间小于等于该值,且该备机延迟数据量小于等于MaxSyncStandbyLatency时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +半同步实例禁止退化为异步复制时,不设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 +半同步实例允许退化异步复制时,PostgreSQL 9版本的实例须设置MaxSyncStandbyLatency且不设置MaxSyncStandbyLag,PostgreSQL 10及以上版本的实例须设置MaxSyncStandbyLatency、MaxSyncStandbyLag, + */ +class ModifyDBInstanceHAConfigRequest extends AbstractModel +{ + /** + * @var string 实例ID + */ + public $DBInstanceId; + + /** + * @var string 主从同步方式: +
  • Semi-sync:半同步 +
  • Async:异步 + + */ + public $SyncMode; + + /** + * @var integer 高可用备机最大延迟数据量。备节点延迟数据量小于等于该值,且备节点延迟时间小于等于MaxStandbyLag时,可以切换为主节点。 +
  • 单位:byte +
  • 参数范围:[1073741824, 322122547200] + */ + public $MaxStandbyLatency; + + /** + * @var integer 高可用备机最大延迟时间。备节点延迟时间小于等于该值,且备节点延迟数据量小于等于MaxStandbyLatency时,可以切换为主节点。 +
  • 单位:s +
  • 参数范围:[5, 10] + */ + public $MaxStandbyLag; + + /** + * @var integer 同步备机最大延迟数据量。备机延迟数据量小于等于该值,且该备机延迟时间小于等于MaxSyncStandbyLag时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +半同步实例禁止退化为异步复制时,不设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 +半同步实例允许退化异步复制时,PostgreSQL 9版本的实例须设置MaxSyncStandbyLatency且不设置MaxSyncStandbyLag,PostgreSQL 10及以上版本的实例须设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 + */ + public $MaxSyncStandbyLatency; + + /** + * @var integer 同步备机最大延迟时间。备机延迟时间小于等于该值,且该备机延迟数据量小于等于MaxSyncStandbyLatency时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +半同步实例禁止退化为异步复制时,不设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 +半同步实例允许退化异步复制时,PostgreSQL 9版本的实例须设置MaxSyncStandbyLatency且不设置MaxSyncStandbyLag,PostgreSQL 10及以上版本的实例须设置MaxSyncStandbyLatency、MaxSyncStandbyLag, + */ + public $MaxSyncStandbyLag; + + /** + * @param string $DBInstanceId 实例ID + * @param string $SyncMode 主从同步方式: +
  • Semi-sync:半同步 +
  • Async:异步 + + * @param integer $MaxStandbyLatency 高可用备机最大延迟数据量。备节点延迟数据量小于等于该值,且备节点延迟时间小于等于MaxStandbyLag时,可以切换为主节点。 +
  • 单位:byte +
  • 参数范围:[1073741824, 322122547200] + * @param integer $MaxStandbyLag 高可用备机最大延迟时间。备节点延迟时间小于等于该值,且备节点延迟数据量小于等于MaxStandbyLatency时,可以切换为主节点。 +
  • 单位:s +
  • 参数范围:[5, 10] + * @param integer $MaxSyncStandbyLatency 同步备机最大延迟数据量。备机延迟数据量小于等于该值,且该备机延迟时间小于等于MaxSyncStandbyLag时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +半同步实例禁止退化为异步复制时,不设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 +半同步实例允许退化异步复制时,PostgreSQL 9版本的实例须设置MaxSyncStandbyLatency且不设置MaxSyncStandbyLag,PostgreSQL 10及以上版本的实例须设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 + * @param integer $MaxSyncStandbyLag 同步备机最大延迟时间。备机延迟时间小于等于该值,且该备机延迟数据量小于等于MaxSyncStandbyLatency时,则该备机采用同步复制;否则,采用异步复制。 +该参数值针对SyncMode设置为Semi-sync的实例有效。 +半同步实例禁止退化为异步复制时,不设置MaxSyncStandbyLatency、MaxSyncStandbyLag。 +半同步实例允许退化异步复制时,PostgreSQL 9版本的实例须设置MaxSyncStandbyLatency且不设置MaxSyncStandbyLag,PostgreSQL 10及以上版本的实例须设置MaxSyncStandbyLatency、MaxSyncStandbyLag, + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("DBInstanceId",$param) and $param["DBInstanceId"] !== null) { + $this->DBInstanceId = $param["DBInstanceId"]; + } + + if (array_key_exists("SyncMode",$param) and $param["SyncMode"] !== null) { + $this->SyncMode = $param["SyncMode"]; + } + + if (array_key_exists("MaxStandbyLatency",$param) and $param["MaxStandbyLatency"] !== null) { + $this->MaxStandbyLatency = $param["MaxStandbyLatency"]; + } + + if (array_key_exists("MaxStandbyLag",$param) and $param["MaxStandbyLag"] !== null) { + $this->MaxStandbyLag = $param["MaxStandbyLag"]; + } + + if (array_key_exists("MaxSyncStandbyLatency",$param) and $param["MaxSyncStandbyLatency"] !== null) { + $this->MaxSyncStandbyLatency = $param["MaxSyncStandbyLatency"]; + } + + if (array_key_exists("MaxSyncStandbyLag",$param) and $param["MaxSyncStandbyLag"] !== null) { + $this->MaxSyncStandbyLag = $param["MaxSyncStandbyLag"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/ModifyDBInstanceHAConfigResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/ModifyDBInstanceHAConfigResponse.php new file mode 100644 index 000000000..3a9e560f1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/ModifyDBInstanceHAConfigResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/SwitchDBInstancePrimaryRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/SwitchDBInstancePrimaryRequest.php new file mode 100644 index 000000000..f69cc7afc --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/SwitchDBInstancePrimaryRequest.php @@ -0,0 +1,121 @@ +默认:false + * @method void setForce(boolean $Force) 设置是否强制切换。强制切换时只要备节点可访问,无论主备延迟多大都会发起切换。只有SwitchTag为0时,才可使用立即切换。 +
  • 默认:false + * @method integer getSwitchTag() 获取指定实例配置完成变更后的切换时间。 +
  • 0:立即切换 +
  • 1:指定时间切换 +
  • 2:维护时间窗口内切换 +
  • 默认值:0 + * @method void setSwitchTag(integer $SwitchTag) 设置指定实例配置完成变更后的切换时间。 +
  • 0:立即切换 +
  • 1:指定时间切换 +
  • 2:维护时间窗口内切换 +
  • 默认值:0 + * @method string getSwitchStartTime() 获取切换开始时间,时间格式:HH:MM:SS,例如:01:00:00。当SwitchTag为0或2时,该参数失效。 + * @method void setSwitchStartTime(string $SwitchStartTime) 设置切换开始时间,时间格式:HH:MM:SS,例如:01:00:00。当SwitchTag为0或2时,该参数失效。 + * @method string getSwitchEndTime() 获取切换截止时间,时间格式:HH:MM:SS,例如:01:30:00。当SwitchTag为0或2时,该参数失效。SwitchStartTime和SwitchEndTime时间窗口不能小于30分钟。 + * @method void setSwitchEndTime(string $SwitchEndTime) 设置切换截止时间,时间格式:HH:MM:SS,例如:01:30:00。当SwitchTag为0或2时,该参数失效。SwitchStartTime和SwitchEndTime时间窗口不能小于30分钟。 + */ +class SwitchDBInstancePrimaryRequest extends AbstractModel +{ + /** + * @var string 实例ID + */ + public $DBInstanceId; + + /** + * @var boolean 是否强制切换。强制切换时只要备节点可访问,无论主备延迟多大都会发起切换。只有SwitchTag为0时,才可使用立即切换。 +
  • 默认:false + */ + public $Force; + + /** + * @var integer 指定实例配置完成变更后的切换时间。 +
  • 0:立即切换 +
  • 1:指定时间切换 +
  • 2:维护时间窗口内切换 +
  • 默认值:0 + */ + public $SwitchTag; + + /** + * @var string 切换开始时间,时间格式:HH:MM:SS,例如:01:00:00。当SwitchTag为0或2时,该参数失效。 + */ + public $SwitchStartTime; + + /** + * @var string 切换截止时间,时间格式:HH:MM:SS,例如:01:30:00。当SwitchTag为0或2时,该参数失效。SwitchStartTime和SwitchEndTime时间窗口不能小于30分钟。 + */ + public $SwitchEndTime; + + /** + * @param string $DBInstanceId 实例ID + * @param boolean $Force 是否强制切换。强制切换时只要备节点可访问,无论主备延迟多大都会发起切换。只有SwitchTag为0时,才可使用立即切换。 +
  • 默认:false + * @param integer $SwitchTag 指定实例配置完成变更后的切换时间。 +
  • 0:立即切换 +
  • 1:指定时间切换 +
  • 2:维护时间窗口内切换 +
  • 默认值:0 + * @param string $SwitchStartTime 切换开始时间,时间格式:HH:MM:SS,例如:01:00:00。当SwitchTag为0或2时,该参数失效。 + * @param string $SwitchEndTime 切换截止时间,时间格式:HH:MM:SS,例如:01:30:00。当SwitchTag为0或2时,该参数失效。SwitchStartTime和SwitchEndTime时间窗口不能小于30分钟。 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("DBInstanceId",$param) and $param["DBInstanceId"] !== null) { + $this->DBInstanceId = $param["DBInstanceId"]; + } + + if (array_key_exists("Force",$param) and $param["Force"] !== null) { + $this->Force = $param["Force"]; + } + + if (array_key_exists("SwitchTag",$param) and $param["SwitchTag"] !== null) { + $this->SwitchTag = $param["SwitchTag"]; + } + + if (array_key_exists("SwitchStartTime",$param) and $param["SwitchStartTime"] !== null) { + $this->SwitchStartTime = $param["SwitchStartTime"]; + } + + if (array_key_exists("SwitchEndTime",$param) and $param["SwitchEndTime"] !== null) { + $this->SwitchEndTime = $param["SwitchEndTime"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/SwitchDBInstancePrimaryResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/SwitchDBInstancePrimaryResponse.php new file mode 100644 index 000000000..032009508 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/Models/SwitchDBInstancePrimaryResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/PostgresClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/PostgresClient.php index f6bed6a41..47bbab34c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/PostgresClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Postgres/V20170312/PostgresClient.php @@ -31,6 +31,8 @@ use TencentCloud\Postgres\V20170312\Models as Models; * @method Models\CreateDBInstanceNetworkAccessResponse CreateDBInstanceNetworkAccess(Models\CreateDBInstanceNetworkAccessRequest $req) 本接口(CreateDBInstanceNetworkAccess)用于创建实例网络。 * @method Models\CreateDBInstancesResponse CreateDBInstances(Models\CreateDBInstancesRequest $req) 本接口(CreateDBInstances)用于创建一个或者多个PostgreSQL实例,仅发货实例不会进行初始化。本接口已废弃,推荐使用接口[CreateInstances](https://cloud.tencent.com/document/api/409/56107)替代。 * @method Models\CreateInstancesResponse CreateInstances(Models\CreateInstancesRequest $req) 本接口 (CreateInstances) 用于创建一个或者多个PostgreSQL实例,通过此接口创建的实例无需进行初始化,可直接使用。 +
  • 实例创建成功后将自动开机启动,实例状态变为“运行中”。 +
  • 预付费实例的购买会预先扣除本次实例购买所需金额,按小时后付费实例购买会预先冻结本次实例购买一小时内所需金额,在调用本接口前请确保账户余额充足。 * @method Models\CreateParameterTemplateResponse CreateParameterTemplate(Models\CreateParameterTemplateRequest $req) 本接口 (CreateParameterTemplate) 用于创建参数模板。 * @method Models\CreateReadOnlyDBInstanceResponse CreateReadOnlyDBInstance(Models\CreateReadOnlyDBInstanceRequest $req) 本接口(CreateReadOnlyDBInstance)用于创建只读实例 * @method Models\CreateReadOnlyGroupResponse CreateReadOnlyGroup(Models\CreateReadOnlyGroupRequest $req) 本接口(CreateReadOnlyGroup)用于创建只读组 @@ -56,6 +58,9 @@ use TencentCloud\Postgres\V20170312\Models as Models; * @method Models\DescribeDBBackupsResponse DescribeDBBackups(Models\DescribeDBBackupsRequest $req) 本接口(DescribeDBBackups)用于查询实例备份列表。本接口已废弃,推荐使用接口[DescribeBaseBackups](https://cloud.tencent.com/document/api/409/89022)替代。 * @method Models\DescribeDBErrlogsResponse DescribeDBErrlogs(Models\DescribeDBErrlogsRequest $req) 本接口(DescribeDBErrlogs)用于查询错误日志。 * @method Models\DescribeDBInstanceAttributeResponse DescribeDBInstanceAttribute(Models\DescribeDBInstanceAttributeRequest $req) 本接口 (DescribeDBInstanceAttribute) 用于查询某个实例的详情信息。 + * @method Models\DescribeDBInstanceHAConfigResponse DescribeDBInstanceHAConfig(Models\DescribeDBInstanceHAConfigRequest $req) 本接口(DescribeDBInstanceHAConfig)用于查询实例HA配置信息。其中HA配置信息包括: +
  • 允许备节点切换为主节点的条件配置 +
  • 半同步实例使用同步复制或异步复制的条件配置 * @method Models\DescribeDBInstanceParametersResponse DescribeDBInstanceParameters(Models\DescribeDBInstanceParametersRequest $req) 本接口(DescribeDBInstanceAttribute)用于查询实例的参数信息。 * @method Models\DescribeDBInstanceSecurityGroupsResponse DescribeDBInstanceSecurityGroups(Models\DescribeDBInstanceSecurityGroupsRequest $req) 本接口(DescribeDBInstanceSecurityGroups)用于查询实例安全组。 * @method Models\DescribeDBInstancesResponse DescribeDBInstances(Models\DescribeDBInstancesRequest $req) 本接口 (DescribeDBInstances) 用于查询一个或多个实例的详细信息。 @@ -90,6 +95,9 @@ use TencentCloud\Postgres\V20170312\Models as Models; * @method Models\ModifyBaseBackupExpireTimeResponse ModifyBaseBackupExpireTime(Models\ModifyBaseBackupExpireTimeRequest $req) 本接口(ModifyBaseBackupExpireTime)用于修改实例指定全量备份的过期时间。 * @method Models\ModifyDBInstanceChargeTypeResponse ModifyDBInstanceChargeType(Models\ModifyDBInstanceChargeTypeRequest $req) 支持实例的计费类型转换(目前仅支持按量计费转包年包月) * @method Models\ModifyDBInstanceDeploymentResponse ModifyDBInstanceDeployment(Models\ModifyDBInstanceDeploymentRequest $req) 本接口(ModifyDBInstanceDeployment)用于修改节点可用区部署方式,仅支持主实例。 + * @method Models\ModifyDBInstanceHAConfigResponse ModifyDBInstanceHAConfig(Models\ModifyDBInstanceHAConfigRequest $req) 本接口(ModifyDBInstanceHAConfig)用于修改实例HA配置信息。其中HA配置信息包括: +
  • 允许备节点切换为主节点的条件配置 +
  • 半同步实例使用同步复制或异步复制的条件配置 * @method Models\ModifyDBInstanceNameResponse ModifyDBInstanceName(Models\ModifyDBInstanceNameRequest $req) 本接口(ModifyDBInstanceName)用于修改postgresql实例名字。 * @method Models\ModifyDBInstanceParametersResponse ModifyDBInstanceParameters(Models\ModifyDBInstanceParametersRequest $req) 本接口 (ModifyDBInstanceParameters) 用于修改实例参数。 * @method Models\ModifyDBInstanceReadOnlyGroupResponse ModifyDBInstanceReadOnlyGroup(Models\ModifyDBInstanceReadOnlyGroupRequest $req) 本接口(ModifyDBInstanceReadOnlyGroup)用于修改实例所属的只读组 @@ -107,6 +115,10 @@ use TencentCloud\Postgres\V20170312\Models as Models; * @method Models\ResetAccountPasswordResponse ResetAccountPassword(Models\ResetAccountPasswordRequest $req) 本接口(ResetAccountPassword)用于重置实例的账户密码。 * @method Models\RestartDBInstanceResponse RestartDBInstance(Models\RestartDBInstanceRequest $req) 本接口(RestartDBInstance)用于重启实例。 * @method Models\SetAutoRenewFlagResponse SetAutoRenewFlag(Models\SetAutoRenewFlagRequest $req) 本接口(SetAutoRenewFlag)用于设置自动续费。 + * @method Models\SwitchDBInstancePrimaryResponse SwitchDBInstancePrimary(Models\SwitchDBInstancePrimaryRequest $req) 本接口(SwitchDBInstancePrimary)用于切换实例主备关系。 +
  • 通过主动发起切换,可以验证业务能否正确处理实例主备切换的场景 +
  • 通过使用强制切换,可以在备节点延迟不满足切换条件时,强制发起主从切换 +
  • 只有主实例可以执行该操作 * @method Models\UpgradeDBInstanceResponse UpgradeDBInstance(Models\UpgradeDBInstanceRequest $req) 本接口(UpgradeDBInstance)用于升级实例配置。本接口已废弃,推荐使用接口[ModifyDBInstanceSpec](https://cloud.tencent.com/document/api/409/63689)替代。 * @method Models\UpgradeDBInstanceKernelVersionResponse UpgradeDBInstanceKernelVersion(Models\UpgradeDBInstanceKernelVersionRequest $req) 本接口(UpgradeDBInstanceKernelVersion)用于升级实例的内核版本号。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Redis/V20180412/Models/SourceInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Redis/V20180412/Models/SourceInfo.php index f7b316ba0..ef80c8be6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Redis/V20180412/Models/SourceInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Redis/V20180412/Models/SourceInfo.php @@ -20,22 +20,22 @@ use TencentCloud\Common\AbstractModel; /** * 访问来源信息 * - * @method string getIp() 获取来源IP - * @method void setIp(string $Ip) 设置来源IP - * @method integer getConn() 获取连接数 - * @method void setConn(integer $Conn) 设置连接数 + * @method string getIp() 获取来源 IP 地址。 + * @method void setIp(string $Ip) 设置来源 IP 地址。 + * @method integer getConn() 获取客户端连接数量。 + * @method void setConn(integer $Conn) 设置客户端连接数量。 * @method integer getCmd() 获取命令 * @method void setCmd(integer $Cmd) 设置命令 */ class SourceInfo extends AbstractModel { /** - * @var string 来源IP + * @var string 来源 IP 地址。 */ public $Ip; /** - * @var integer 连接数 + * @var integer 客户端连接数量。 */ public $Conn; @@ -45,8 +45,8 @@ class SourceInfo extends AbstractModel public $Cmd; /** - * @param string $Ip 来源IP - * @param integer $Conn 连接数 + * @param string $Ip 来源 IP 地址。 + * @param integer $Conn 客户端连接数量。 * @param integer $Cmd 命令 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Redis/V20180412/RedisClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Redis/V20180412/RedisClient.php index 31cf5d70c..bfed1fda4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Redis/V20180412/RedisClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Redis/V20180412/RedisClient.php @@ -55,7 +55,7 @@ use TencentCloud\Redis\V20180412\Models as Models; * @method Models\DescribeInstanceMonitorBigKeySizeDistResponse DescribeInstanceMonitorBigKeySizeDist(Models\DescribeInstanceMonitorBigKeySizeDistRequest $req) 腾讯云数据库 Redis 已经于2022年10月31日下线查询实例大 Key 接口。具体公告,请参见 [查询实例大 Key 接口下线公告](https://cloud.tencent.com/document/product/239/81005)。 * @method Models\DescribeInstanceMonitorBigKeyTypeDistResponse DescribeInstanceMonitorBigKeyTypeDist(Models\DescribeInstanceMonitorBigKeyTypeDistRequest $req) 腾讯云数据库 Redis 已经于2022年10月31日下线查询实例大 Key 接口。具体公告,请参见 [查询实例大 Key 接口下线公告](https://cloud.tencent.com/document/product/239/81005)。 * @method Models\DescribeInstanceMonitorHotKeyResponse DescribeInstanceMonitorHotKey(Models\DescribeInstanceMonitorHotKeyRequest $req) 查询实例热Key - * @method Models\DescribeInstanceMonitorSIPResponse DescribeInstanceMonitorSIP(Models\DescribeInstanceMonitorSIPRequest $req) 查询实例访问来源信息 + * @method Models\DescribeInstanceMonitorSIPResponse DescribeInstanceMonitorSIP(Models\DescribeInstanceMonitorSIPRequest $req) 该接口已下线,请使用数据库智能管家 DBbrain 接口 [DescribeProxyProcessStatistics] (https://cloud.tencent.com/document/product/1130/84544) 获取实例访问来源。 * @method Models\DescribeInstanceMonitorTookDistResponse DescribeInstanceMonitorTookDist(Models\DescribeInstanceMonitorTookDistRequest $req) 查询实例访问的耗时分布 * @method Models\DescribeInstanceMonitorTopNCmdResponse DescribeInstanceMonitorTopNCmd(Models\DescribeInstanceMonitorTopNCmdRequest $req) 查询实例访问命令 * @method Models\DescribeInstanceMonitorTopNCmdTookResponse DescribeInstanceMonitorTopNCmdTook(Models\DescribeInstanceMonitorTopNCmdTookRequest $req) 查询实例CPU耗时 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Rum/V20210622/Models/DescribeDataPvUrlStatisticsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Rum/V20210622/Models/DescribeDataPvUrlStatisticsRequest.php index 46ecf67db..b5e353715 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Rum/V20210622/Models/DescribeDataPvUrlStatisticsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Rum/V20210622/Models/DescribeDataPvUrlStatisticsRequest.php @@ -62,6 +62,10 @@ use TencentCloud\Common\AbstractModel; * @method void setBrowser(string $Browser) 设置浏览器 * @method string getEnv() 获取环境 * @method void setEnv(string $Env) 设置环境 + * @method integer getGroupByType() 获取group by 参数值枚举1:1m 2:5m 3:30m 4:1h + 5:1d + * @method void setGroupByType(integer $GroupByType) 设置group by 参数值枚举1:1m 2:5m 3:30m 4:1h + 5:1d */ class DescribeDataPvUrlStatisticsRequest extends AbstractModel { @@ -170,6 +174,12 @@ class DescribeDataPvUrlStatisticsRequest extends AbstractModel */ public $Env; + /** + * @var integer group by 参数值枚举1:1m 2:5m 3:30m 4:1h + 5:1d + */ + public $GroupByType; + /** * @param integer $StartTime 开始时间 * @param string $Type allcount:性能视图,day:14天数据,vp:性能,ckuv:uv,ckpv:pv,condition:条件列表,nettype/version/platform/isp/region/device/browser/ext1/ext2/ext3/ret/status/from/url/env/:网络平台视图/Version视图/设备视图/ISP视图/地区视图/浏览器视图/ext1视图等等 @@ -192,6 +202,8 @@ class DescribeDataPvUrlStatisticsRequest extends AbstractModel * @param string $Os 操作系统 * @param string $Browser 浏览器 * @param string $Env 环境 + * @param integer $GroupByType group by 参数值枚举1:1m 2:5m 3:30m 4:1h + 5:1d */ function __construct() { @@ -289,5 +301,9 @@ class DescribeDataPvUrlStatisticsRequest extends AbstractModel if (array_key_exists("Env",$param) and $param["Env"] !== null) { $this->Env = $param["Env"]; } + + if (array_key_exists("GroupByType",$param) and $param["GroupByType"] !== null) { + $this->GroupByType = $param["GroupByType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Scf/V20180416/Models/NamespaceResourceEnvTKE.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Scf/V20180416/Models/NamespaceResourceEnvTKE.php index 4c1513773..dd4e840bf 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Scf/V20180416/Models/NamespaceResourceEnvTKE.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Scf/V20180416/Models/NamespaceResourceEnvTKE.php @@ -41,6 +41,16 @@ use TencentCloud\Common\AbstractModel; * @method integer getPort() 获取scf组件将占用的节点端口起始号 注意:此字段可能返回 null,表示取不到有效值。 * @method void setPort(integer $Port) 设置scf组件将占用的节点端口起始号 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getPodTemplatePatch() 获取yaml格式的pod patch内容,例如 +metadata: + labels: + key: value +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setPodTemplatePatch(string $PodTemplatePatch) 设置yaml格式的pod patch内容,例如 +metadata: + labels: + key: value 注意:此字段可能返回 null,表示取不到有效值。 */ class NamespaceResourceEnvTKE extends AbstractModel @@ -84,6 +94,15 @@ class NamespaceResourceEnvTKE extends AbstractModel */ public $Port; + /** + * @var string yaml格式的pod patch内容,例如 +metadata: + labels: + key: value +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $PodTemplatePatch; + /** * @param string $ClusterID 集群ID * @param string $SubnetID 子网ID @@ -95,6 +114,11 @@ class NamespaceResourceEnvTKE extends AbstractModel * @param array $Tolerations 污点容忍 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Port scf组件将占用的节点端口起始号 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $PodTemplatePatch yaml格式的pod patch内容,例如 +metadata: + labels: + key: value 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -147,5 +171,9 @@ class NamespaceResourceEnvTKE extends AbstractModel if (array_key_exists("Port",$param) and $param["Port"] !== null) { $this->Port = $param["Port"]; } + + if (array_key_exists("PodTemplatePatch",$param) and $param["PodTemplatePatch"] !== null) { + $this->PodTemplatePatch = $param["PodTemplatePatch"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DBInstance.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DBInstance.php index 25640bb11..d070c7d7e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DBInstance.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DBInstance.php @@ -76,8 +76,8 @@ use TencentCloud\Common\AbstractModel; * @method void setCpu(integer $Cpu) 设置实例cpu核心数 * @method string getVersion() 获取实例版本代号 * @method void setVersion(string $Version) 设置实例版本代号 - * @method string getType() 获取物理机代号 - * @method void setType(string $Type) 设置物理机代号 + * @method string getType() 获取实例类型代号:"TS85"-物理机,本地SSD硬盘;"Z3"-物理机早期版本,本地SSD硬盘;"CLOUD_BASIC"-虚拟机,普通云硬盘;"CLOUD_PREMIUM"-虚拟机,高性能云硬盘;"CLOUD_SSD"-虚拟机,云SSD硬盘;"CLOUD_HSSD"-虚拟机,增强型SSD云硬盘;"CLOUD_TSSD"-虚拟机,极速型SSD云硬盘;"CLOUD_BSSD"-虚拟机,通用型SSD云硬盘 + * @method void setType(string $Type) 设置实例类型代号:"TS85"-物理机,本地SSD硬盘;"Z3"-物理机早期版本,本地SSD硬盘;"CLOUD_BASIC"-虚拟机,普通云硬盘;"CLOUD_PREMIUM"-虚拟机,高性能云硬盘;"CLOUD_SSD"-虚拟机,云SSD硬盘;"CLOUD_HSSD"-虚拟机,增强型SSD云硬盘;"CLOUD_TSSD"-虚拟机,极速型SSD云硬盘;"CLOUD_BSSD"-虚拟机,通用型SSD云硬盘 * @method integer getPid() 获取计费ID * @method void setPid(integer $Pid) 设置计费ID * @method string getUniqVpcId() 获取实例所属VPC的唯一字符串ID,格式如:vpc-xxx,基础网络时为空字符串 @@ -140,9 +140,9 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setSlaveZones(SlaveZones $SlaveZones) 设置备可用区信息 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getArchitecture() 获取架构标识,SINGLE-单节点 DOUBLE-双节点 TRIPLE-三节点 + * @method string getArchitecture() 获取架构标识,SINGLE-单节点 DOUBLE-双节点 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setArchitecture(string $Architecture) 设置架构标识,SINGLE-单节点 DOUBLE-双节点 TRIPLE-三节点 + * @method void setArchitecture(string $Architecture) 设置架构标识,SINGLE-单节点 DOUBLE-双节点 注意:此字段可能返回 null,表示取不到有效值。 * @method string getStyle() 获取类型标识,EXCLUSIVE-独享型,SHARED-共享型 注意:此字段可能返回 null,表示取不到有效值。 @@ -292,7 +292,7 @@ class DBInstance extends AbstractModel public $Version; /** - * @var string 物理机代号 + * @var string 实例类型代号:"TS85"-物理机,本地SSD硬盘;"Z3"-物理机早期版本,本地SSD硬盘;"CLOUD_BASIC"-虚拟机,普通云硬盘;"CLOUD_PREMIUM"-虚拟机,高性能云硬盘;"CLOUD_SSD"-虚拟机,云SSD硬盘;"CLOUD_HSSD"-虚拟机,增强型SSD云硬盘;"CLOUD_TSSD"-虚拟机,极速型SSD云硬盘;"CLOUD_BSSD"-虚拟机,通用型SSD云硬盘 */ public $Type; @@ -420,7 +420,7 @@ class DBInstance extends AbstractModel public $SlaveZones; /** - * @var string 架构标识,SINGLE-单节点 DOUBLE-双节点 TRIPLE-三节点 + * @var string 架构标识,SINGLE-单节点 DOUBLE-双节点 注意:此字段可能返回 null,表示取不到有效值。 */ public $Architecture; @@ -460,7 +460,7 @@ class DBInstance extends AbstractModel * @param string $Uid 实例唯一UID * @param integer $Cpu 实例cpu核心数 * @param string $Version 实例版本代号 - * @param string $Type 物理机代号 + * @param string $Type 实例类型代号:"TS85"-物理机,本地SSD硬盘;"Z3"-物理机早期版本,本地SSD硬盘;"CLOUD_BASIC"-虚拟机,普通云硬盘;"CLOUD_PREMIUM"-虚拟机,高性能云硬盘;"CLOUD_SSD"-虚拟机,云SSD硬盘;"CLOUD_HSSD"-虚拟机,增强型SSD云硬盘;"CLOUD_TSSD"-虚拟机,极速型SSD云硬盘;"CLOUD_BSSD"-虚拟机,通用型SSD云硬盘 * @param integer $Pid 计费ID * @param string $UniqVpcId 实例所属VPC的唯一字符串ID,格式如:vpc-xxx,基础网络时为空字符串 * @param string $UniqSubnetId 实例所属子网的唯一字符串ID,格式如: subnet-xxx,基础网络时为空字符串 @@ -492,7 +492,7 @@ class DBInstance extends AbstractModel * @param boolean $IsDrZone 是否跨AZ * @param SlaveZones $SlaveZones 备可用区信息 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $Architecture 架构标识,SINGLE-单节点 DOUBLE-双节点 TRIPLE-三节点 + * @param string $Architecture 架构标识,SINGLE-单节点 DOUBLE-双节点 注意:此字段可能返回 null,表示取不到有效值。 * @param string $Style 类型标识,EXCLUSIVE-独享型,SHARED-共享型 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DealInstance.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DealInstance.php new file mode 100644 index 000000000..baebb2243 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DealInstance.php @@ -0,0 +1,65 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("DealName",$param) and $param["DealName"] !== null) { + $this->DealName = $param["DealName"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeInstanceByOrdersRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeInstanceByOrdersRequest.php new file mode 100644 index 000000000..7a7790657 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeInstanceByOrdersRequest.php @@ -0,0 +1,53 @@ +DealNames = $param["DealNames"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeInstanceByOrdersResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeInstanceByOrdersResponse.php new file mode 100644 index 000000000..7638c4ec7 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeInstanceByOrdersResponse.php @@ -0,0 +1,70 @@ +DealInstance = []; + foreach ($param["DealInstance"] as $key => $value){ + $obj = new DealInstance(); + $obj->deserialize($value); + array_push($this->DealInstance, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeSlowlogsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeSlowlogsRequest.php index d01de5e5a..9b8a16367 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeSlowlogsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeSlowlogsRequest.php @@ -22,10 +22,10 @@ use TencentCloud\Common\AbstractModel; * * @method string getInstanceId() 获取实例ID,形如mssql-k8voqdlz * @method void setInstanceId(string $InstanceId) 设置实例ID,形如mssql-k8voqdlz - * @method string getStartTime() 获取查询开始时间 - * @method void setStartTime(string $StartTime) 设置查询开始时间 - * @method string getEndTime() 获取查询结束时间 - * @method void setEndTime(string $EndTime) 设置查询结束时间 + * @method string getStartTime() 获取开始时间(yyyy-MM-dd HH:mm:ss) + * @method void setStartTime(string $StartTime) 设置开始时间(yyyy-MM-dd HH:mm:ss) + * @method string getEndTime() 获取结束时间(yyyy-MM-dd HH:mm:ss) + * @method void setEndTime(string $EndTime) 设置结束时间(yyyy-MM-dd HH:mm:ss) * @method integer getLimit() 获取分页返回,每页返回的数目,取值为1-100,默认值为20 * @method void setLimit(integer $Limit) 设置分页返回,每页返回的数目,取值为1-100,默认值为20 * @method integer getOffset() 获取分页返回,页编号,默认值为第0页 @@ -39,12 +39,12 @@ class DescribeSlowlogsRequest extends AbstractModel public $InstanceId; /** - * @var string 查询开始时间 + * @var string 开始时间(yyyy-MM-dd HH:mm:ss) */ public $StartTime; /** - * @var string 查询结束时间 + * @var string 结束时间(yyyy-MM-dd HH:mm:ss) */ public $EndTime; @@ -60,8 +60,8 @@ class DescribeSlowlogsRequest extends AbstractModel /** * @param string $InstanceId 实例ID,形如mssql-k8voqdlz - * @param string $StartTime 查询开始时间 - * @param string $EndTime 查询结束时间 + * @param string $StartTime 开始时间(yyyy-MM-dd HH:mm:ss) + * @param string $EndTime 结束时间(yyyy-MM-dd HH:mm:ss) * @param integer $Limit 分页返回,每页返回的数目,取值为1-100,默认值为20 * @param integer $Offset 分页返回,页编号,默认值为第0页 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeXEventsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeXEventsRequest.php index 108d6742d..044ad4f5e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeXEventsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/DescribeXEventsRequest.php @@ -24,10 +24,10 @@ use TencentCloud\Common\AbstractModel; * @method void setInstanceId(string $InstanceId) 设置实例ID * @method string getEventType() 获取事件类型,slow-慢SQL事件,blocked-阻塞事件,deadlock-死锁事件 * @method void setEventType(string $EventType) 设置事件类型,slow-慢SQL事件,blocked-阻塞事件,deadlock-死锁事件 - * @method string getStartTime() 获取扩展文件生成开始时间 - * @method void setStartTime(string $StartTime) 设置扩展文件生成开始时间 - * @method string getEndTime() 获取扩展文件生成结束时间 - * @method void setEndTime(string $EndTime) 设置扩展文件生成结束时间 + * @method string getStartTime() 获取扩展文件生成开始时间(yyyy-MM-dd HH:mm:ss) + * @method void setStartTime(string $StartTime) 设置扩展文件生成开始时间(yyyy-MM-dd HH:mm:ss) + * @method string getEndTime() 获取扩展文件生成结束时间(yyyy-MM-dd HH:mm:ss) + * @method void setEndTime(string $EndTime) 设置扩展文件生成结束时间(yyyy-MM-dd HH:mm:ss) * @method integer getOffset() 获取分页返回,页编号,默认值为第0页 * @method void setOffset(integer $Offset) 设置分页返回,页编号,默认值为第0页 * @method integer getLimit() 获取分页返回,每页返回的数目,取值为1~100,默认值为20 @@ -46,12 +46,12 @@ class DescribeXEventsRequest extends AbstractModel public $EventType; /** - * @var string 扩展文件生成开始时间 + * @var string 扩展文件生成开始时间(yyyy-MM-dd HH:mm:ss) */ public $StartTime; /** - * @var string 扩展文件生成结束时间 + * @var string 扩展文件生成结束时间(yyyy-MM-dd HH:mm:ss) */ public $EndTime; @@ -68,8 +68,8 @@ class DescribeXEventsRequest extends AbstractModel /** * @param string $InstanceId 实例ID * @param string $EventType 事件类型,slow-慢SQL事件,blocked-阻塞事件,deadlock-死锁事件 - * @param string $StartTime 扩展文件生成开始时间 - * @param string $EndTime 扩展文件生成结束时间 + * @param string $StartTime 扩展文件生成开始时间(yyyy-MM-dd HH:mm:ss) + * @param string $EndTime 扩展文件生成结束时间(yyyy-MM-dd HH:mm:ss) * @param integer $Offset 分页返回,页编号,默认值为第0页 * @param integer $Limit 分页返回,每页返回的数目,取值为1~100,默认值为20 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/ModifyInstanceEncryptAttributesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/ModifyInstanceEncryptAttributesRequest.php index 65c80128c..3ea193919 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/ModifyInstanceEncryptAttributesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/ModifyInstanceEncryptAttributesRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getInstanceId() 获取实例ID * @method void setInstanceId(string $InstanceId) 设置实例ID - * @method string getCertificateAttribution() 获取证书归属。self-表示使用该账号自身的证书,others-表示引用其他账号的证书,默认self。 - * @method void setCertificateAttribution(string $CertificateAttribution) 设置证书归属。self-表示使用该账号自身的证书,others-表示引用其他账号的证书,默认self。 + * @method string getCertificateAttribution() 获取证书归属。self-表示使用该账号自身的证书,others-表示引用其他账号的证书,默认取值self。 + * @method void setCertificateAttribution(string $CertificateAttribution) 设置证书归属。self-表示使用该账号自身的证书,others-表示引用其他账号的证书,默认取值self。 * @method string getQuoteUin() 获取引用的其他主账号ID,当CertificateAttribution 为others时必填。 * @method void setQuoteUin(string $QuoteUin) 设置引用的其他主账号ID,当CertificateAttribution 为others时必填。 */ @@ -35,7 +35,7 @@ class ModifyInstanceEncryptAttributesRequest extends AbstractModel public $InstanceId; /** - * @var string 证书归属。self-表示使用该账号自身的证书,others-表示引用其他账号的证书,默认self。 + * @var string 证书归属。self-表示使用该账号自身的证书,others-表示引用其他账号的证书,默认取值self。 */ public $CertificateAttribution; @@ -46,7 +46,7 @@ class ModifyInstanceEncryptAttributesRequest extends AbstractModel /** * @param string $InstanceId 实例ID - * @param string $CertificateAttribution 证书归属。self-表示使用该账号自身的证书,others-表示引用其他账号的证书,默认self。 + * @param string $CertificateAttribution 证书归属。self-表示使用该账号自身的证书,others-表示引用其他账号的证书,默认取值self。 * @param string $QuoteUin 引用的其他主账号ID,当CertificateAttribution 为others时必填。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/RenewDBInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/RenewDBInstanceRequest.php index cdc293ec3..43c0d8747 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/RenewDBInstanceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/RenewDBInstanceRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setInstanceId(string $InstanceId) 设置实例ID,形如mssql-j8kv137v * @method integer getPeriod() 获取续费多少个月,取值范围为1-48,默认为1 * @method void setPeriod(integer $Period) 设置续费多少个月,取值范围为1-48,默认为1 - * @method integer getAutoVoucher() 获取是否自动使用代金券,0-不使用;1-使用;默认不实用 - * @method void setAutoVoucher(integer $AutoVoucher) 设置是否自动使用代金券,0-不使用;1-使用;默认不实用 + * @method integer getAutoVoucher() 获取是否自动使用代金券,0-不使用;1-使用;默认不使用 + * @method void setAutoVoucher(integer $AutoVoucher) 设置是否自动使用代金券,0-不使用;1-使用;默认不使用 * @method array getVoucherIds() 获取代金券ID数组,目前只支持使用1张代金券 * @method void setVoucherIds(array $VoucherIds) 设置代金券ID数组,目前只支持使用1张代金券 * @method integer getAutoRenewFlag() 获取续费标记 0:正常续费 1:自动续费:只用于按量计费转包年包月时有效。 @@ -44,7 +44,7 @@ class RenewDBInstanceRequest extends AbstractModel public $Period; /** - * @var integer 是否自动使用代金券,0-不使用;1-使用;默认不实用 + * @var integer 是否自动使用代金券,0-不使用;1-使用;默认不使用 */ public $AutoVoucher; @@ -61,7 +61,7 @@ class RenewDBInstanceRequest extends AbstractModel /** * @param string $InstanceId 实例ID,形如mssql-j8kv137v * @param integer $Period 续费多少个月,取值范围为1-48,默认为1 - * @param integer $AutoVoucher 是否自动使用代金券,0-不使用;1-使用;默认不实用 + * @param integer $AutoVoucher 是否自动使用代金券,0-不使用;1-使用;默认不使用 * @param array $VoucherIds 代金券ID数组,目前只支持使用1张代金券 * @param integer $AutoRenewFlag 续费标记 0:正常续费 1:自动续费:只用于按量计费转包年包月时有效。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/UpgradeDBInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/UpgradeDBInstanceRequest.php index dc979a8e8..3c34a60cc 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/UpgradeDBInstanceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/Models/UpgradeDBInstanceRequest.php @@ -36,8 +36,8 @@ use TencentCloud\Common\AbstractModel; * @method void setDBVersion(string $DBVersion) 设置升级sqlserver的版本,目前支持:2008R2(SQL Server 2008 Enterprise),2012SP3(SQL Server 2012 Enterprise)版本等。每个地域支持售卖的版本不同,可通过DescribeProductConfig接口来拉取每个地域可售卖的版本信息,版本不支持降级,不填则不修改版本 * @method string getHAType() 获取升级sqlserver的高可用架构,从镜像容灾升级到always on集群容灾,仅支持2017及以上版本且支持always on高可用的实例,不支持降级到镜像方式容灾,CLUSTER-升级为always on容灾,不填则不修改高可用架构 * @method void setHAType(string $HAType) 设置升级sqlserver的高可用架构,从镜像容灾升级到always on集群容灾,仅支持2017及以上版本且支持always on高可用的实例,不支持降级到镜像方式容灾,CLUSTER-升级为always on容灾,不填则不修改高可用架构 - * @method string getMultiZones() 获取修改实例是否为跨可用区容灾,SameZones-修改为同可用区 MultiZones-修改为夸可用区 - * @method void setMultiZones(string $MultiZones) 设置修改实例是否为跨可用区容灾,SameZones-修改为同可用区 MultiZones-修改为夸可用区 + * @method string getMultiZones() 获取修改实例是否为跨可用区容灾,SameZones-修改为同可用区 MultiZones-修改为跨可用区 + * @method void setMultiZones(string $MultiZones) 设置修改实例是否为跨可用区容灾,SameZones-修改为同可用区 MultiZones-修改为跨可用区 * @method integer getWaitSwitch() 获取执行变配的方式,默认为 1。支持值包括:0 - 立刻执行,1 - 维护时间窗执行 * @method void setWaitSwitch(integer $WaitSwitch) 设置执行变配的方式,默认为 1。支持值包括:0 - 立刻执行,1 - 维护时间窗执行 */ @@ -84,7 +84,7 @@ class UpgradeDBInstanceRequest extends AbstractModel public $HAType; /** - * @var string 修改实例是否为跨可用区容灾,SameZones-修改为同可用区 MultiZones-修改为夸可用区 + * @var string 修改实例是否为跨可用区容灾,SameZones-修改为同可用区 MultiZones-修改为跨可用区 */ public $MultiZones; @@ -102,7 +102,7 @@ class UpgradeDBInstanceRequest extends AbstractModel * @param integer $Cpu 实例升级后的CPU核心数 * @param string $DBVersion 升级sqlserver的版本,目前支持:2008R2(SQL Server 2008 Enterprise),2012SP3(SQL Server 2012 Enterprise)版本等。每个地域支持售卖的版本不同,可通过DescribeProductConfig接口来拉取每个地域可售卖的版本信息,版本不支持降级,不填则不修改版本 * @param string $HAType 升级sqlserver的高可用架构,从镜像容灾升级到always on集群容灾,仅支持2017及以上版本且支持always on高可用的实例,不支持降级到镜像方式容灾,CLUSTER-升级为always on容灾,不填则不修改高可用架构 - * @param string $MultiZones 修改实例是否为跨可用区容灾,SameZones-修改为同可用区 MultiZones-修改为夸可用区 + * @param string $MultiZones 修改实例是否为跨可用区容灾,SameZones-修改为同可用区 MultiZones-修改为跨可用区 * @param integer $WaitSwitch 执行变配的方式,默认为 1。支持值包括:0 - 立刻执行,1 - 维护时间窗执行 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/SqlserverClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/SqlserverClient.php index d83f3881a..877463183 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/SqlserverClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Sqlserver/V20180328/SqlserverClient.php @@ -68,6 +68,7 @@ use TencentCloud\Sqlserver\V20180328\Models as Models; * @method Models\DescribeDBsNormalResponse DescribeDBsNormal(Models\DescribeDBsNormalRequest $req) 本接口(DescribeDBsNormal)用于查询数据库配置信息,此接口不包含数据库的关联账号 * @method Models\DescribeFlowStatusResponse DescribeFlowStatus(Models\DescribeFlowStatusRequest $req) 本接口(DescribeFlowStatus)用于查询流程状态。 * @method Models\DescribeIncrementalMigrationResponse DescribeIncrementalMigration(Models\DescribeIncrementalMigrationRequest $req) 本接口(DescribeIncrementalMigration)用于查询增量备份导入任务。 + * @method Models\DescribeInstanceByOrdersResponse DescribeInstanceByOrders(Models\DescribeInstanceByOrdersRequest $req) 本接口(DescribeInstanceByOrders)用于根据订单号查询资源ID * @method Models\DescribeInstanceParamRecordsResponse DescribeInstanceParamRecords(Models\DescribeInstanceParamRecordsRequest $req) 该接口(DescribeInstanceParamRecords)用于查询实例参数修改历史。 * @method Models\DescribeInstanceParamsResponse DescribeInstanceParams(Models\DescribeInstanceParamsRequest $req) 该接口(DescribeInstanceParams)用于查询实例的参数列表。 * @method Models\DescribeMaintenanceSpanResponse DescribeMaintenanceSpan(Models\DescribeMaintenanceSpanRequest $req) 本接口(DescribeMaintenanceSpan)根据实例ID查询该实例的可维护时间窗。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssa/V20180608/Models/ConcernInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssa/V20180608/Models/ConcernInfo.php index 0ce4c2888..12cf9fe21 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssa/V20180608/Models/ConcernInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssa/V20180608/Models/ConcernInfo.php @@ -24,9 +24,9 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setConcernType(integer $ConcernType) 设置关注点类型 注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getEntityType() 获取实体类型 + * @method integer getEntityType() 获取实体类型 1: 非云上IP,2: 云上IP,3: 域名,4: IP,5: 文件,6: 进程 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setEntityType(integer $EntityType) 设置实体类型 + * @method void setEntityType(integer $EntityType) 设置实体类型 1: 非云上IP,2: 云上IP,3: 域名,4: IP,5: 文件,6: 进程 注意:此字段可能返回 null,表示取不到有效值。 * @method string getConcern() 获取关注点 注意:此字段可能返回 null,表示取不到有效值。 @@ -170,7 +170,7 @@ class ConcernInfo extends AbstractModel public $ConcernType; /** - * @var integer 实体类型 + * @var integer 实体类型 1: 非云上IP,2: 云上IP,3: 域名,4: IP,5: 文件,6: 进程 注意:此字段可能返回 null,表示取不到有效值。 */ public $EntityType; @@ -376,7 +376,7 @@ class ConcernInfo extends AbstractModel /** * @param integer $ConcernType 关注点类型 注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $EntityType 实体类型 + * @param integer $EntityType 实体类型 1: 非云上IP,2: 云上IP,3: 域名,4: IP,5: 文件,6: 进程 注意:此字段可能返回 null,表示取不到有效值。 * @param string $Concern 关注点 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DeployRecordDetail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DeployRecordDetail.php index b368d0585..6edaac3ad 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DeployRecordDetail.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DeployRecordDetail.php @@ -71,6 +71,18 @@ use TencentCloud\Common\AbstractModel; * @method integer getPort() 获取端口 注意:此字段可能返回 null,表示取不到有效值。 * @method void setPort(integer $Port) 设置端口 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getEnvId() 获取TCB环境ID +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setEnvId(string $EnvId) 设置TCB环境ID +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getTCBType() 获取部署的TCB类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setTCBType(string $TCBType) 设置部署的TCB类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getRegion() 获取部署的TCB地域 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setRegion(string $Region) 设置部署的TCB地域 注意:此字段可能返回 null,表示取不到有效值。 */ class DeployRecordDetail extends AbstractModel @@ -173,6 +185,24 @@ class DeployRecordDetail extends AbstractModel */ public $Port; + /** + * @var string TCB环境ID +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $EnvId; + + /** + * @var string 部署的TCB类型 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $TCBType; + + /** + * @var string 部署的TCB地域 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $Region; + /** * @param integer $Id 部署记录详情ID * @param string $CertId 部署证书ID @@ -199,6 +229,12 @@ class DeployRecordDetail extends AbstractModel * @param string $SecretName secret名称 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Port 端口 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $EnvId TCB环境ID +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $TCBType 部署的TCB类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $Region 部署的TCB地域 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -285,5 +321,17 @@ class DeployRecordDetail extends AbstractModel if (array_key_exists("Port",$param) and $param["Port"] !== null) { $this->Port = $param["Port"]; } + + if (array_key_exists("EnvId",$param) and $param["EnvId"] !== null) { + $this->EnvId = $param["EnvId"]; + } + + if (array_key_exists("TCBType",$param) and $param["TCBType"] !== null) { + $this->TCBType = $param["TCBType"]; + } + + if (array_key_exists("Region",$param) and $param["Region"] !== null) { + $this->Region = $param["Region"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeCertificatesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeCertificatesRequest.php index 5caf8e3bd..83b9bc389 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeCertificatesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeCertificatesRequest.php @@ -46,6 +46,8 @@ use TencentCloud\Common\AbstractModel; * @method void setIsSM(integer $IsSM) 设置是否筛选国密证书。1:筛选 0:不筛选 * @method integer getFilterExpiring() 获取筛选证书是否即将过期,传1是筛选,0不筛选 * @method void setFilterExpiring(integer $FilterExpiring) 设置筛选证书是否即将过期,传1是筛选,0不筛选 + * @method integer getHostable() 获取是否可托管,可选值:1 = 可托管,0 = 不可托管。 + * @method void setHostable(integer $Hostable) 设置是否可托管,可选值:1 = 可托管,0 = 不可托管。 */ class DescribeCertificatesRequest extends AbstractModel { @@ -114,6 +116,11 @@ class DescribeCertificatesRequest extends AbstractModel */ public $FilterExpiring; + /** + * @var integer 是否可托管,可选值:1 = 可托管,0 = 不可托管。 + */ + public $Hostable; + /** * @param integer $Offset 分页偏移量,从0开始。 * @param integer $Limit 每页数量,默认20。最大1000 @@ -128,6 +135,7 @@ class DescribeCertificatesRequest extends AbstractModel * @param string $FilterSource 筛选来源, upload:上传证书, buy:腾讯云证书, 不传默认全部 * @param integer $IsSM 是否筛选国密证书。1:筛选 0:不筛选 * @param integer $FilterExpiring 筛选证书是否即将过期,传1是筛选,0不筛选 + * @param integer $Hostable 是否可托管,可选值:1 = 可托管,0 = 不可托管。 */ function __construct() { @@ -193,5 +201,9 @@ class DescribeCertificatesRequest extends AbstractModel if (array_key_exists("FilterExpiring",$param) and $param["FilterExpiring"] !== null) { $this->FilterExpiring = $param["FilterExpiring"]; } + + if (array_key_exists("Hostable",$param) and $param["Hostable"] !== null) { + $this->Hostable = $param["Hostable"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeHostDeployRecordDetailRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeHostDeployRecordDetailRequest.php index eea06a2c7..1538759d1 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeHostDeployRecordDetailRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeHostDeployRecordDetailRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeHostDeployRecordDetail请求参数结构体 * - * @method string getDeployRecordId() 获取待部署的证书ID - * @method void setDeployRecordId(string $DeployRecordId) 设置待部署的证书ID + * @method string getDeployRecordId() 获取部署记录ID + * @method void setDeployRecordId(string $DeployRecordId) 设置部署记录ID * @method integer getOffset() 获取分页偏移量,从0开始。 * @method void setOffset(integer $Offset) 设置分页偏移量,从0开始。 * @method integer getLimit() 获取每页数量,默认10。 @@ -30,7 +30,7 @@ use TencentCloud\Common\AbstractModel; class DescribeHostDeployRecordDetailRequest extends AbstractModel { /** - * @var string 待部署的证书ID + * @var string 部署记录ID */ public $DeployRecordId; @@ -45,7 +45,7 @@ class DescribeHostDeployRecordDetailRequest extends AbstractModel public $Limit; /** - * @param string $DeployRecordId 待部署的证书ID + * @param string $DeployRecordId 部署记录ID * @param integer $Offset 分页偏移量,从0开始。 * @param integer $Limit 每页数量,默认10。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeHostUpdateRecordDetailRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeHostUpdateRecordDetailRequest.php index 953028f15..ad074e239 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeHostUpdateRecordDetailRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/DescribeHostUpdateRecordDetailRequest.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * DescribeHostUpdateRecordDetail请求参数结构体 * - * @method string getDeployRecordId() 获取待部署的证书ID - * @method void setDeployRecordId(string $DeployRecordId) 设置待部署的证书ID + * @method string getDeployRecordId() 获取一键更新记录ID + * @method void setDeployRecordId(string $DeployRecordId) 设置一键更新记录ID * @method string getLimit() 获取每页数量,默认10。 * @method void setLimit(string $Limit) 设置每页数量,默认10。 * @method string getOffset() 获取分页偏移量,从0开始。 @@ -30,7 +30,7 @@ use TencentCloud\Common\AbstractModel; class DescribeHostUpdateRecordDetailRequest extends AbstractModel { /** - * @var string 待部署的证书ID + * @var string 一键更新记录ID */ public $DeployRecordId; @@ -45,7 +45,7 @@ class DescribeHostUpdateRecordDetailRequest extends AbstractModel public $Offset; /** - * @param string $DeployRecordId 待部署的证书ID + * @param string $DeployRecordId 一键更新记录ID * @param string $Limit 每页数量,默认10。 * @param string $Offset 分页偏移量,从0开始。 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UpdateCertificateInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UpdateCertificateInstanceRequest.php index 6c016bfd5..5706ffcc6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UpdateCertificateInstanceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UpdateCertificateInstanceRequest.php @@ -24,8 +24,8 @@ use TencentCloud\Common\AbstractModel; * @method void setCertificateId(string $CertificateId) 设置一键更新新证书ID * @method string getOldCertificateId() 获取一键更新原证书ID * @method void setOldCertificateId(string $OldCertificateId) 设置一键更新原证书ID - * @method array getResourceTypes() 获取需要部署的资源类型 - * @method void setResourceTypes(array $ResourceTypes) 设置需要部署的资源类型 + * @method array getResourceTypes() 获取需要部署的资源类型,参数值可选:clb、cdn、waf、live、ddos、teo、apigateway、vod、tke、tcb + * @method void setResourceTypes(array $ResourceTypes) 设置需要部署的资源类型,参数值可选:clb、cdn、waf、live、ddos、teo、apigateway、vod、tke、tcb * @method array getRegions() 获取需要部署的地域列表(废弃) * @method void setRegions(array $Regions) 设置需要部署的地域列表(废弃) * @method array getResourceTypesRegions() 获取云资源需要部署的地域列表 @@ -44,12 +44,13 @@ class UpdateCertificateInstanceRequest extends AbstractModel public $OldCertificateId; /** - * @var array 需要部署的资源类型 + * @var array 需要部署的资源类型,参数值可选:clb、cdn、waf、live、ddos、teo、apigateway、vod、tke、tcb */ public $ResourceTypes; /** * @var array 需要部署的地域列表(废弃) + * @deprecated */ public $Regions; @@ -61,7 +62,7 @@ class UpdateCertificateInstanceRequest extends AbstractModel /** * @param string $CertificateId 一键更新新证书ID * @param string $OldCertificateId 一键更新原证书ID - * @param array $ResourceTypes 需要部署的资源类型 + * @param array $ResourceTypes 需要部署的资源类型,参数值可选:clb、cdn、waf、live、ddos、teo、apigateway、vod、tke、tcb * @param array $Regions 需要部署的地域列表(废弃) * @param array $ResourceTypesRegions 云资源需要部署的地域列表 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UpdateRecordDetail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UpdateRecordDetail.php index 630c1fbe6..f331dcd45 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UpdateRecordDetail.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UpdateRecordDetail.php @@ -85,6 +85,14 @@ use TencentCloud\Common\AbstractModel; * @method string getSecretName() 获取secret名称(TKE专用) 注意:此字段可能返回 null,表示取不到有效值。 * @method void setSecretName(string $SecretName) 设置secret名称(TKE专用) +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getEnvId() 获取环境ID +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setEnvId(string $EnvId) 设置环境ID +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getTCBType() 获取TCB部署类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setTCBType(string $TCBType) 设置TCB部署类型 注意:此字段可能返回 null,表示取不到有效值。 */ class UpdateRecordDetail extends AbstractModel @@ -202,6 +210,18 @@ class UpdateRecordDetail extends AbstractModel */ public $SecretName; + /** + * @var string 环境ID +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $EnvId; + + /** + * @var string TCB部署类型 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $TCBType; + /** * @param integer $Id 详情记录id * @param string $CertId 新证书ID @@ -235,6 +255,10 @@ class UpdateRecordDetail extends AbstractModel * @param string $Namespace 命名空间(TKE专用) 注意:此字段可能返回 null,表示取不到有效值。 * @param string $SecretName secret名称(TKE专用) +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $EnvId 环境ID +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $TCBType TCB部署类型 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -329,5 +353,13 @@ class UpdateRecordDetail extends AbstractModel if (array_key_exists("SecretName",$param) and $param["SecretName"] !== null) { $this->SecretName = $param["SecretName"]; } + + if (array_key_exists("EnvId",$param) and $param["EnvId"] !== null) { + $this->EnvId = $param["EnvId"]; + } + + if (array_key_exists("TCBType",$param) and $param["TCBType"] !== null) { + $this->TCBType = $param["TCBType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UploadCertificateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UploadCertificateRequest.php index 5577a13e1..20e768a92 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UploadCertificateRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/Models/UploadCertificateRequest.php @@ -32,6 +32,8 @@ use TencentCloud\Common\AbstractModel; * @method void setProjectId(integer $ProjectId) 设置项目 ID。 * @method string getCertificateUse() 获取证书用途/证书来源。“CLB,CDN,WAF,LIVE,DDOS” * @method void setCertificateUse(string $CertificateUse) 设置证书用途/证书来源。“CLB,CDN,WAF,LIVE,DDOS” + * @method array getTags() 获取标签列表 + * @method void setTags(array $Tags) 设置标签列表 * @method boolean getRepeatable() 获取相同的证书是否允许重复上传 * @method void setRepeatable(boolean $Repeatable) 设置相同的证书是否允许重复上传 */ @@ -67,6 +69,11 @@ class UploadCertificateRequest extends AbstractModel */ public $CertificateUse; + /** + * @var array 标签列表 + */ + public $Tags; + /** * @var boolean 相同的证书是否允许重复上传 */ @@ -79,6 +86,7 @@ class UploadCertificateRequest extends AbstractModel * @param string $Alias 备注名称。 * @param integer $ProjectId 项目 ID。 * @param string $CertificateUse 证书用途/证书来源。“CLB,CDN,WAF,LIVE,DDOS” + * @param array $Tags 标签列表 * @param boolean $Repeatable 相同的证书是否允许重复上传 */ function __construct() @@ -118,6 +126,15 @@ class UploadCertificateRequest extends AbstractModel $this->CertificateUse = $param["CertificateUse"]; } + if (array_key_exists("Tags",$param) and $param["Tags"] !== null) { + $this->Tags = []; + foreach ($param["Tags"] as $key => $value){ + $obj = new Tags(); + $obj->deserialize($value); + array_push($this->Tags, $obj); + } + } + if (array_key_exists("Repeatable",$param) and $param["Repeatable"] !== null) { $this->Repeatable = $param["Repeatable"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/SslClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/SslClient.php index c9736c525..96d7de052 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/SslClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Ssl/V20191205/SslClient.php @@ -68,7 +68,7 @@ use TencentCloud\Ssl\V20191205\Models as Models; * @method Models\RevokeCertificateResponse RevokeCertificate(Models\RevokeCertificateRequest $req) 本接口(RevokeCertificate)用于吊销证书。 * @method Models\SubmitAuditManagerResponse SubmitAuditManager(Models\SubmitAuditManagerRequest $req) 重新提交审核管理人 * @method Models\SubmitCertificateInformationResponse SubmitCertificateInformation(Models\SubmitCertificateInformationRequest $req) 提交证书资料。输入参数信息可以分多次提交,但提交的证书资料应最低限度保持完整。 - * @method Models\UpdateCertificateInstanceResponse UpdateCertificateInstance(Models\UpdateCertificateInstanceRequest $req) 一键更新旧证书资源 + * @method Models\UpdateCertificateInstanceResponse UpdateCertificateInstance(Models\UpdateCertificateInstanceRequest $req) 一键更新旧证书资源,本接口为异步接口, 调用之后DeployRecordId为0表示任务进行中, 当返回DeployRecordId大于0则表示任务创建成功。 未创建成功则会抛出异常 * @method Models\UpdateCertificateRecordRetryResponse UpdateCertificateRecordRetry(Models\UpdateCertificateRecordRetryRequest $req) 云资源更新重试部署记录 * @method Models\UpdateCertificateRecordRollbackResponse UpdateCertificateRecordRollback(Models\UpdateCertificateRecordRollbackRequest $req) 云资源更新一键回滚 * @method Models\UploadCertificateResponse UploadCertificate(Models\UploadCertificateRequest $req) 本接口(UploadCertificate)用于上传证书。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tag/V20180813/Models/AddResourceTagRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tag/V20180813/Models/AddResourceTagRequest.php index adde1ee27..508cb8e6a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tag/V20180813/Models/AddResourceTagRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tag/V20180813/Models/AddResourceTagRequest.php @@ -20,34 +20,34 @@ use TencentCloud\Common\AbstractModel; /** * AddResourceTag请求参数结构体 * - * @method string getTagKey() 获取标签键 - * @method void setTagKey(string $TagKey) 设置标签键 - * @method string getTagValue() 获取标签值 - * @method void setTagValue(string $TagValue) 设置标签值 - * @method string getResource() 获取[ 资源六段式描述 ](https://cloud.tencent.com/document/product/598/10606) - * @method void setResource(string $Resource) 设置[ 资源六段式描述 ](https://cloud.tencent.com/document/product/598/10606) + * @method string getTagKey() 获取需要绑定的标签键,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @method void setTagKey(string $TagKey) 设置需要绑定的标签键,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @method string getTagValue() 获取需要绑定的标签值,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @method void setTagValue(string $TagValue) 设置需要绑定的标签值,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @method string getResource() 获取待关联的资源,用标准的资源六段式表示。正确的资源六段式请参考:https://cloud.tencent.com/document/product/651/89122 + * @method void setResource(string $Resource) 设置待关联的资源,用标准的资源六段式表示。正确的资源六段式请参考:https://cloud.tencent.com/document/product/651/89122 */ class AddResourceTagRequest extends AbstractModel { /** - * @var string 标签键 + * @var string 需要绑定的标签键,取值规范参考:https://cloud.tencent.com/document/product/651/13354 */ public $TagKey; /** - * @var string 标签值 + * @var string 需要绑定的标签值,取值规范参考:https://cloud.tencent.com/document/product/651/13354 */ public $TagValue; /** - * @var string [ 资源六段式描述 ](https://cloud.tencent.com/document/product/598/10606) + * @var string 待关联的资源,用标准的资源六段式表示。正确的资源六段式请参考:https://cloud.tencent.com/document/product/651/89122 */ public $Resource; /** - * @param string $TagKey 标签键 - * @param string $TagValue 标签值 - * @param string $Resource [ 资源六段式描述 ](https://cloud.tencent.com/document/product/598/10606) + * @param string $TagKey 需要绑定的标签键,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @param string $TagValue 需要绑定的标签值,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @param string $Resource 待关联的资源,用标准的资源六段式表示。正确的资源六段式请参考:https://cloud.tencent.com/document/product/651/89122 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tag/V20180813/Models/AttachResourcesTagRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tag/V20180813/Models/AttachResourcesTagRequest.php index a13077719..77128c8b0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tag/V20180813/Models/AttachResourcesTagRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tag/V20180813/Models/AttachResourcesTagRequest.php @@ -20,23 +20,23 @@ use TencentCloud\Common\AbstractModel; /** * AttachResourcesTag请求参数结构体 * - * @method string getServiceType() 获取资源所属业务名称(资源六段式中的第三段) - * @method void setServiceType(string $ServiceType) 设置资源所属业务名称(资源六段式中的第三段) + * @method string getServiceType() 获取业务的英文简称,即资源六段式第三段。资源六段式的描述方式参考:https://cloud.tencent.com/document/product/651/89122 + * @method void setServiceType(string $ServiceType) 设置业务的英文简称,即资源六段式第三段。资源六段式的描述方式参考:https://cloud.tencent.com/document/product/651/89122 * @method array getResourceIds() 获取资源ID数组,资源个数最多为50 * @method void setResourceIds(array $ResourceIds) 设置资源ID数组,资源个数最多为50 - * @method string getTagKey() 获取标签键 - * @method void setTagKey(string $TagKey) 设置标签键 - * @method string getTagValue() 获取标签值 - * @method void setTagValue(string $TagValue) 设置标签值 - * @method string getResourceRegion() 获取资源所在地域,不区分地域的资源不需要传入该字段,区分地域的资源必填 - * @method void setResourceRegion(string $ResourceRegion) 设置资源所在地域,不区分地域的资源不需要传入该字段,区分地域的资源必填 + * @method string getTagKey() 获取需要绑定的标签键,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @method void setTagKey(string $TagKey) 设置需要绑定的标签键,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @method string getTagValue() 获取需要绑定的标签值,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @method void setTagValue(string $TagValue) 设置需要绑定的标签值,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @method string getResourceRegion() 获取资源所在地域,区分地域的资源必填,不区分地域的资源不需要传入该字段。注意该地域必须为资源ID参数ResourceIds对应的地域 + * @method void setResourceRegion(string $ResourceRegion) 设置资源所在地域,区分地域的资源必填,不区分地域的资源不需要传入该字段。注意该地域必须为资源ID参数ResourceIds对应的地域 * @method string getResourcePrefix() 获取资源前缀(资源六段式中最后一段"/"前面的部分),cos存储桶不需要传入该字段,其他云资源必填 * @method void setResourcePrefix(string $ResourcePrefix) 设置资源前缀(资源六段式中最后一段"/"前面的部分),cos存储桶不需要传入该字段,其他云资源必填 */ class AttachResourcesTagRequest extends AbstractModel { /** - * @var string 资源所属业务名称(资源六段式中的第三段) + * @var string 业务的英文简称,即资源六段式第三段。资源六段式的描述方式参考:https://cloud.tencent.com/document/product/651/89122 */ public $ServiceType; @@ -46,17 +46,17 @@ class AttachResourcesTagRequest extends AbstractModel public $ResourceIds; /** - * @var string 标签键 + * @var string 需要绑定的标签键,取值规范参考:https://cloud.tencent.com/document/product/651/13354 */ public $TagKey; /** - * @var string 标签值 + * @var string 需要绑定的标签值,取值规范参考:https://cloud.tencent.com/document/product/651/13354 */ public $TagValue; /** - * @var string 资源所在地域,不区分地域的资源不需要传入该字段,区分地域的资源必填 + * @var string 资源所在地域,区分地域的资源必填,不区分地域的资源不需要传入该字段。注意该地域必须为资源ID参数ResourceIds对应的地域 */ public $ResourceRegion; @@ -66,11 +66,11 @@ class AttachResourcesTagRequest extends AbstractModel public $ResourcePrefix; /** - * @param string $ServiceType 资源所属业务名称(资源六段式中的第三段) + * @param string $ServiceType 业务的英文简称,即资源六段式第三段。资源六段式的描述方式参考:https://cloud.tencent.com/document/product/651/89122 * @param array $ResourceIds 资源ID数组,资源个数最多为50 - * @param string $TagKey 标签键 - * @param string $TagValue 标签值 - * @param string $ResourceRegion 资源所在地域,不区分地域的资源不需要传入该字段,区分地域的资源必填 + * @param string $TagKey 需要绑定的标签键,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @param string $TagValue 需要绑定的标签值,取值规范参考:https://cloud.tencent.com/document/product/651/13354 + * @param string $ResourceRegion 资源所在地域,区分地域的资源必填,不区分地域的资源不需要传入该字段。注意该地域必须为资源ID参数ResourceIds对应的地域 * @param string $ResourcePrefix 资源前缀(资源六段式中最后一段"/"前面的部分),cos存储桶不需要传入该字段,其他云资源必填 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/AddAssetImageRegistryRegistryDetailRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/AddAssetImageRegistryRegistryDetailRequest.php index 01bfdebb5..57568f0d6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/AddAssetImageRegistryRegistryDetailRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/AddAssetImageRegistryRegistryDetailRequest.php @@ -40,6 +40,8 @@ use TencentCloud\Common\AbstractModel; * @method void setSpeedLimit(integer $SpeedLimit) 设置限速 * @method integer getInsecure() 获取安全模式(证书校验):0(默认) 非安全模式(跳过证书校验):1 * @method void setInsecure(integer $Insecure) 设置安全模式(证书校验):0(默认) 非安全模式(跳过证书校验):1 + * @method array getConnDetectConfig() 获取联通性检测的记录ID + * @method void setConnDetectConfig(array $ConnDetectConfig) 设置联通性检测的记录ID */ class AddAssetImageRegistryRegistryDetailRequest extends AbstractModel { @@ -93,6 +95,11 @@ class AddAssetImageRegistryRegistryDetailRequest extends AbstractModel */ public $Insecure; + /** + * @var array 联通性检测的记录ID + */ + public $ConnDetectConfig; + /** * @param string $Name 仓库名 * @param string $Username 用户名 @@ -104,6 +111,7 @@ class AddAssetImageRegistryRegistryDetailRequest extends AbstractModel * @param string $RegistryRegion 区域,列表:default(默认) * @param integer $SpeedLimit 限速 * @param integer $Insecure 安全模式(证书校验):0(默认) 非安全模式(跳过证书校验):1 + * @param array $ConnDetectConfig 联通性检测的记录ID */ function __construct() { @@ -157,5 +165,14 @@ class AddAssetImageRegistryRegistryDetailRequest extends AbstractModel if (array_key_exists("Insecure",$param) and $param["Insecure"] !== null) { $this->Insecure = $param["Insecure"]; } + + if (array_key_exists("ConnDetectConfig",$param) and $param["ConnDetectConfig"] !== null) { + $this->ConnDetectConfig = []; + foreach ($param["ConnDetectConfig"] as $key => $value){ + $obj = new ConnDetectConfig(); + $obj->deserialize($value); + array_push($this->ConnDetectConfig, $obj); + } + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/Similarity.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ConnDetectConfig.php similarity index 57% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/Similarity.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ConnDetectConfig.php index 87bab6348..703d5e2ce 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/Similarity.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ConnDetectConfig.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Tcss\V20201101\Models; use TencentCloud\Common\AbstractModel; /** - * 文本相似度 + * 联通性检测配置 * - * @method string getText() 获取目标文本句子 - * @method void setText(string $Text) 设置目标文本句子 - * @method float getScore() 获取相似度分数 - * @method void setScore(float $Score) 设置相似度分数 + * @method string getQuuid() 获取主机quuid + * @method void setQuuid(string $Quuid) 设置主机quuid + * @method string getUuid() 获取主机uuid + * @method void setUuid(string $Uuid) 设置主机uuid */ -class Similarity extends AbstractModel +class ConnDetectConfig extends AbstractModel { /** - * @var string 目标文本句子 + * @var string 主机quuid */ - public $Text; + public $Quuid; /** - * @var float 相似度分数 + * @var string 主机uuid */ - public $Score; + public $Uuid; /** - * @param string $Text 目标文本句子 - * @param float $Score 相似度分数 + * @param string $Quuid 主机quuid + * @param string $Uuid 主机uuid */ function __construct() { @@ -54,12 +54,12 @@ class Similarity extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Text",$param) and $param["Text"] !== null) { - $this->Text = $param["Text"]; + if (array_key_exists("Quuid",$param) and $param["Quuid"] !== null) { + $this->Quuid = $param["Quuid"]; } - if (array_key_exists("Score",$param) and $param["Score"] !== null) { - $this->Score = $param["Score"]; + if (array_key_exists("Uuid",$param) and $param["Uuid"] !== null) { + $this->Uuid = $param["Uuid"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/CreateAssetImageRegistryScanTaskOneKeyResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/CreateAssetImageRegistryScanTaskOneKeyResponse.php index 10bfcebe8..699f034ef 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/CreateAssetImageRegistryScanTaskOneKeyResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/CreateAssetImageRegistryScanTaskOneKeyResponse.php @@ -20,17 +20,25 @@ use TencentCloud\Common\AbstractModel; /** * CreateAssetImageRegistryScanTaskOneKey返回参数结构体 * + * @method integer getTaskID() 获取扫描任务id + * @method void setTaskID(integer $TaskID) 设置扫描任务id * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class CreateAssetImageRegistryScanTaskOneKeyResponse extends AbstractModel { + /** + * @var integer 扫描任务id + */ + public $TaskID; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ public $RequestId; /** + * @param integer $TaskID 扫描任务id * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -46,6 +54,10 @@ class CreateAssetImageRegistryScanTaskOneKeyResponse extends AbstractModel if ($param === null) { return; } + if (array_key_exists("TaskID",$param) and $param["TaskID"] !== null) { + $this->TaskID = $param["TaskID"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/CreateAssetImageRegistryScanTaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/CreateAssetImageRegistryScanTaskResponse.php index 96e39461d..7f1240a7b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/CreateAssetImageRegistryScanTaskResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/CreateAssetImageRegistryScanTaskResponse.php @@ -20,17 +20,25 @@ use TencentCloud\Common\AbstractModel; /** * CreateAssetImageRegistryScanTask返回参数结构体 * + * @method integer getTaskID() 获取返回的任务ID + * @method void setTaskID(integer $TaskID) 设置返回的任务ID * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class CreateAssetImageRegistryScanTaskResponse extends AbstractModel { + /** + * @var integer 返回的任务ID + */ + public $TaskID; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ public $RequestId; /** + * @param integer $TaskID 返回的任务ID * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -46,6 +54,10 @@ class CreateAssetImageRegistryScanTaskResponse extends AbstractModel if ($param === null) { return; } + if (array_key_exists("TaskID",$param) and $param["TaskID"] !== null) { + $this->TaskID = $param["TaskID"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/DescribeAssetImageRegistryRegistryDetailResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/DescribeAssetImageRegistryRegistryDetailResponse.php index b9df6a2d5..0d830ad7e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/DescribeAssetImageRegistryRegistryDetailResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/DescribeAssetImageRegistryRegistryDetailResponse.php @@ -34,8 +34,8 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setRegistryVersion(string $RegistryVersion) 设置仓库版本 注意:此字段可能返回 null,表示取不到有效值。 - * @method string getNetType() 获取网络类型,列表:public(公网) - * @method void setNetType(string $NetType) 设置网络类型,列表:public(公网) + * @method string getNetType() 获取网络类型,列表:public(公网),private(私网) + * @method void setNetType(string $NetType) 设置网络类型,列表:public(公网),private(私网) * @method string getRegistryRegion() 获取区域,列表:default(默认) 注意:此字段可能返回 null,表示取不到有效值。 * @method void setRegistryRegion(string $RegistryRegion) 设置区域,列表:default(默认) @@ -48,6 +48,10 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setInsecure(integer $Insecure) 设置安全模式(证书校验):0(默认) 非安全模式(跳过证书校验):1 注意:此字段可能返回 null,表示取不到有效值。 + * @method array getConnDetectDetail() 获取联通性检测结果详情 + * @method void setConnDetectDetail(array $ConnDetectDetail) 设置联通性检测结果详情 + * @method string getInstanceID() 获取tcr情况下instance_id + * @method void setInstanceID(string $InstanceID) 设置tcr情况下instance_id * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -85,7 +89,7 @@ class DescribeAssetImageRegistryRegistryDetailResponse extends AbstractModel public $RegistryVersion; /** - * @var string 网络类型,列表:public(公网) + * @var string 网络类型,列表:public(公网),private(私网) */ public $NetType; @@ -107,6 +111,16 @@ class DescribeAssetImageRegistryRegistryDetailResponse extends AbstractModel */ public $Insecure; + /** + * @var array 联通性检测结果详情 + */ + public $ConnDetectDetail; + + /** + * @var string tcr情况下instance_id + */ + public $InstanceID; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -120,13 +134,15 @@ class DescribeAssetImageRegistryRegistryDetailResponse extends AbstractModel * @param string $RegistryType 仓库类型,列表:harbor * @param string $RegistryVersion 仓库版本 注意:此字段可能返回 null,表示取不到有效值。 - * @param string $NetType 网络类型,列表:public(公网) + * @param string $NetType 网络类型,列表:public(公网),private(私网) * @param string $RegistryRegion 区域,列表:default(默认) 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $SpeedLimit 限速 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $Insecure 安全模式(证书校验):0(默认) 非安全模式(跳过证书校验):1 注意:此字段可能返回 null,表示取不到有效值。 + * @param array $ConnDetectDetail 联通性检测结果详情 + * @param string $InstanceID tcr情况下instance_id * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -182,6 +198,19 @@ class DescribeAssetImageRegistryRegistryDetailResponse extends AbstractModel $this->Insecure = $param["Insecure"]; } + if (array_key_exists("ConnDetectDetail",$param) and $param["ConnDetectDetail"] !== null) { + $this->ConnDetectDetail = []; + foreach ($param["ConnDetectDetail"] as $key => $value){ + $obj = new RegistryConnDetectResult(); + $obj->deserialize($value); + array_push($this->ConnDetectDetail, $obj); + } + } + + if (array_key_exists("InstanceID",$param) and $param["InstanceID"] !== null) { + $this->InstanceID = $param["InstanceID"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/DescribeAssetImageRegistryScanStatusOneKeyRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/DescribeAssetImageRegistryScanStatusOneKeyRequest.php index 372c3bcf5..6c0cb60e7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/DescribeAssetImageRegistryScanStatusOneKeyRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/DescribeAssetImageRegistryScanStatusOneKeyRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setAll(boolean $All) 设置是否获取全部镜像 * @method array getId() 获取需要获取进度的镜像列表Id * @method void setId(array $Id) 设置需要获取进度的镜像列表Id + * @method integer getTaskID() 获取获取进度的任务ID + * @method void setTaskID(integer $TaskID) 设置获取进度的任务ID */ class DescribeAssetImageRegistryScanStatusOneKeyRequest extends AbstractModel { @@ -44,10 +46,16 @@ class DescribeAssetImageRegistryScanStatusOneKeyRequest extends AbstractModel */ public $Id; + /** + * @var integer 获取进度的任务ID + */ + public $TaskID; + /** * @param array $Images 需要获取进度的镜像列表 * @param boolean $All 是否获取全部镜像 * @param array $Id 需要获取进度的镜像列表Id + * @param integer $TaskID 获取进度的任务ID */ function __construct() { @@ -78,5 +86,9 @@ class DescribeAssetImageRegistryScanStatusOneKeyRequest extends AbstractModel if (array_key_exists("Id",$param) and $param["Id"] !== null) { $this->Id = $param["Id"]; } + + if (array_key_exists("TaskID",$param) and $param["TaskID"] !== null) { + $this->TaskID = $param["TaskID"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ModifyAssetImageRegistryScanStopOneKeyRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ModifyAssetImageRegistryScanStopOneKeyRequest.php index d250367cf..c5d034bfb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ModifyAssetImageRegistryScanStopOneKeyRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ModifyAssetImageRegistryScanStopOneKeyRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setImages(array $Images) 设置扫描的镜像列表 * @method array getId() 获取扫描的镜像列表Id * @method void setId(array $Id) 设置扫描的镜像列表Id + * @method integer getTaskID() 获取停止的任务ID + * @method void setTaskID(integer $TaskID) 设置停止的任务ID */ class ModifyAssetImageRegistryScanStopOneKeyRequest extends AbstractModel { @@ -44,10 +46,16 @@ class ModifyAssetImageRegistryScanStopOneKeyRequest extends AbstractModel */ public $Id; + /** + * @var integer 停止的任务ID + */ + public $TaskID; + /** * @param boolean $All 是否扫描全部镜像 * @param array $Images 扫描的镜像列表 * @param array $Id 扫描的镜像列表Id + * @param integer $TaskID 停止的任务ID */ function __construct() { @@ -78,5 +86,9 @@ class ModifyAssetImageRegistryScanStopOneKeyRequest extends AbstractModel if (array_key_exists("Id",$param) and $param["Id"] !== null) { $this->Id = $param["Id"]; } + + if (array_key_exists("TaskID",$param) and $param["TaskID"] !== null) { + $this->TaskID = $param["TaskID"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ModifyAssetImageRegistryScanStopRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ModifyAssetImageRegistryScanStopRequest.php index 4502770f6..a5c464150 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ModifyAssetImageRegistryScanStopRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/ModifyAssetImageRegistryScanStopRequest.php @@ -32,6 +32,8 @@ use TencentCloud\Common\AbstractModel; * @method void setExcludeImageList(array $ExcludeImageList) 设置不要扫描的镜像列表,与Filters配合使用 * @method boolean getOnlyScanLatest() 获取是否仅扫描各repository最新版本的镜像 * @method void setOnlyScanLatest(boolean $OnlyScanLatest) 设置是否仅扫描各repository最新版本的镜像 + * @method integer getTaskID() 获取停止的任务ID + * @method void setTaskID(integer $TaskID) 设置停止的任务ID */ class ModifyAssetImageRegistryScanStopRequest extends AbstractModel { @@ -65,6 +67,11 @@ class ModifyAssetImageRegistryScanStopRequest extends AbstractModel */ public $OnlyScanLatest; + /** + * @var integer 停止的任务ID + */ + public $TaskID; + /** * @param boolean $All 是否扫描全部镜像 * @param array $Images 扫描的镜像列表 @@ -72,6 +79,7 @@ class ModifyAssetImageRegistryScanStopRequest extends AbstractModel * @param array $Filters 过滤条件 * @param array $ExcludeImageList 不要扫描的镜像列表,与Filters配合使用 * @param boolean $OnlyScanLatest 是否仅扫描各repository最新版本的镜像 + * @param integer $TaskID 停止的任务ID */ function __construct() { @@ -119,5 +127,9 @@ class ModifyAssetImageRegistryScanStopRequest extends AbstractModel if (array_key_exists("OnlyScanLatest",$param) and $param["OnlyScanLatest"] !== null) { $this->OnlyScanLatest = $param["OnlyScanLatest"]; } + + if (array_key_exists("TaskID",$param) and $param["TaskID"] !== null) { + $this->TaskID = $param["TaskID"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/RegistryConnDetectResult.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/RegistryConnDetectResult.php new file mode 100644 index 000000000..032c9ba0b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/RegistryConnDetectResult.php @@ -0,0 +1,113 @@ +Quuid = $param["Quuid"]; + } + + if (array_key_exists("Uuid",$param) and $param["Uuid"] !== null) { + $this->Uuid = $param["Uuid"]; + } + + if (array_key_exists("ConnDetectStatus",$param) and $param["ConnDetectStatus"] !== null) { + $this->ConnDetectStatus = $param["ConnDetectStatus"]; + } + + if (array_key_exists("ConnDetectMessage",$param) and $param["ConnDetectMessage"] !== null) { + $this->ConnDetectMessage = $param["ConnDetectMessage"]; + } + + if (array_key_exists("Solution",$param) and $param["Solution"] !== null) { + $this->Solution = $param["Solution"]; + } + + if (array_key_exists("FailReason",$param) and $param["FailReason"] !== null) { + $this->FailReason = $param["FailReason"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/SoftQuotaDayInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/SoftQuotaDayInfo.php index 8666ce4b6..b78395c92 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/SoftQuotaDayInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/SoftQuotaDayInfo.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getPayTime() 获取扣费时间 * @method void setPayTime(string $PayTime) 设置扣费时间 - * @method integer getCoresCnt() 获取计费核数 - * @method void setCoresCnt(integer $CoresCnt) 设置计费核数 + * @method integer getCoresCnt() 获取计费核数(已废弃) + * @method void setCoresCnt(integer $CoresCnt) 设置计费核数(已废弃) */ class SoftQuotaDayInfo extends AbstractModel { @@ -33,13 +33,13 @@ class SoftQuotaDayInfo extends AbstractModel public $PayTime; /** - * @var integer 计费核数 + * @var integer 计费核数(已废弃) */ public $CoresCnt; /** * @param string $PayTime 扣费时间 - * @param integer $CoresCnt 计费核数 + * @param integer $CoresCnt 计费核数(已废弃) */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/UpdateAssetImageRegistryRegistryDetailRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/UpdateAssetImageRegistryRegistryDetailRequest.php index 15467a312..286fc3fad 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/UpdateAssetImageRegistryRegistryDetailRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tcss/V20201101/Models/UpdateAssetImageRegistryRegistryDetailRequest.php @@ -40,6 +40,8 @@ use TencentCloud\Common\AbstractModel; * @method void setSpeedLimit(integer $SpeedLimit) 设置限速 * @method integer getInsecure() 获取安全模式(证书校验):0(默认) 非安全模式(跳过证书校验):1 * @method void setInsecure(integer $Insecure) 设置安全模式(证书校验):0(默认) 非安全模式(跳过证书校验):1 + * @method array getConnDetectConfig() 获取联通性检测的配置 + * @method void setConnDetectConfig(array $ConnDetectConfig) 设置联通性检测的配置 */ class UpdateAssetImageRegistryRegistryDetailRequest extends AbstractModel { @@ -93,6 +95,11 @@ class UpdateAssetImageRegistryRegistryDetailRequest extends AbstractModel */ public $Insecure; + /** + * @var array 联通性检测的配置 + */ + public $ConnDetectConfig; + /** * @param string $Name 仓库名 * @param string $Username 用户名 @@ -104,6 +111,7 @@ class UpdateAssetImageRegistryRegistryDetailRequest extends AbstractModel * @param string $RegistryRegion 区域,列表:default(默认) * @param integer $SpeedLimit 限速 * @param integer $Insecure 安全模式(证书校验):0(默认) 非安全模式(跳过证书校验):1 + * @param array $ConnDetectConfig 联通性检测的配置 */ function __construct() { @@ -157,5 +165,14 @@ class UpdateAssetImageRegistryRegistryDetailRequest extends AbstractModel if (array_key_exists("Insecure",$param) and $param["Insecure"] !== null) { $this->Insecure = $param["Insecure"]; } + + if (array_key_exists("ConnDetectConfig",$param) and $param["ConnDetectConfig"] !== null) { + $this->ConnDetectConfig = []; + foreach ($param["ConnDetectConfig"] as $key => $value){ + $obj = new ConnDetectConfig(); + $obj->deserialize($value); + array_push($this->ConnDetectConfig, $obj); + } + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/BcosClusterItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/BcosClusterItem.php deleted file mode 100644 index ca8afc2e7..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/BcosClusterItem.php +++ /dev/null @@ -1,221 +0,0 @@ -ChainId = $param["ChainId"]; - } - - if (array_key_exists("ChainName",$param) and $param["ChainName"] !== null) { - $this->ChainName = $param["ChainName"]; - } - - if (array_key_exists("AgencyCount",$param) and $param["AgencyCount"] !== null) { - $this->AgencyCount = $param["AgencyCount"]; - } - - if (array_key_exists("ConsortiumId",$param) and $param["ConsortiumId"] !== null) { - $this->ConsortiumId = $param["ConsortiumId"]; - } - - if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { - $this->CreateTime = $param["CreateTime"]; - } - - if (array_key_exists("ExpireTime",$param) and $param["ExpireTime"] !== null) { - $this->ExpireTime = $param["ExpireTime"]; - } - - if (array_key_exists("ChainStatus",$param) and $param["ChainStatus"] !== null) { - $this->ChainStatus = $param["ChainStatus"]; - } - - if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { - $this->ResourceId = $param["ResourceId"]; - } - - if (array_key_exists("ClusterId",$param) and $param["ClusterId"] !== null) { - $this->ClusterId = $param["ClusterId"]; - } - - if (array_key_exists("ConsortiumName",$param) and $param["ConsortiumName"] !== null) { - $this->ConsortiumName = $param["ConsortiumName"]; - } - - if (array_key_exists("AgencyId",$param) and $param["AgencyId"] !== null) { - $this->AgencyId = $param["AgencyId"]; - } - - if (array_key_exists("AutoRenewFlag",$param) and $param["AutoRenewFlag"] !== null) { - $this->AutoRenewFlag = $param["AutoRenewFlag"]; - } - - if (array_key_exists("TotalNetworkNode",$param) and $param["TotalNetworkNode"] !== null) { - $this->TotalNetworkNode = $param["TotalNetworkNode"]; - } - - if (array_key_exists("TotalCreateNode",$param) and $param["TotalCreateNode"] !== null) { - $this->TotalCreateNode = $param["TotalCreateNode"]; - } - - if (array_key_exists("TotalGroups",$param) and $param["TotalGroups"] !== null) { - $this->TotalGroups = $param["TotalGroups"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/CptIssueRank.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/CptIssueRank.php deleted file mode 100644 index 1dfcb1704..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/CptIssueRank.php +++ /dev/null @@ -1,101 +0,0 @@ -CptName = $param["CptName"]; - } - - if (array_key_exists("Rank",$param) and $param["Rank"] !== null) { - $this->Rank = $param["Rank"]; - } - - if (array_key_exists("Count",$param) and $param["Count"] !== null) { - $this->Count = $param["Count"]; - } - - if (array_key_exists("ApplyName",$param) and $param["ApplyName"] !== null) { - $this->ApplyName = $param["ApplyName"]; - } - - if (array_key_exists("ApplyId",$param) and $param["ApplyId"] !== null) { - $this->ApplyId = $param["ApplyId"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/Identity.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/Identity.php deleted file mode 100644 index b53b0d1fe..000000000 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/Identity.php +++ /dev/null @@ -1,101 +0,0 @@ -AccountIdentifier = $param["AccountIdentifier"]; - } - - if (array_key_exists("ChainID",$param) and $param["ChainID"] !== null) { - $this->ChainID = $param["ChainID"]; - } - - if (array_key_exists("Did",$param) and $param["Did"] !== null) { - $this->Did = $param["Did"]; - } - - if (array_key_exists("GroupId",$param) and $param["GroupId"] !== null) { - $this->GroupId = $param["GroupId"]; - } - - if (array_key_exists("GroupName",$param) and $param["GroupName"] !== null) { - $this->GroupName = $param["GroupName"]; - } - } -} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/TdidClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/TdidClient.php index 124f33f94..e21a47fb7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/TdidClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/TdidClient.php @@ -23,10 +23,6 @@ use TencentCloud\Common\Credential; use TencentCloud\Tdid\V20210519\Models as Models; /** - * @method Models\AddLabelResponse AddLabel(Models\AddLabelRequest $req) 下线已有内测接口,待上线正式版本的接口 - -DID添加标签 - * @method Models\CheckChainResponse CheckChain(Models\CheckChainRequest $req) 该接口不再使用 检查区块链信息 @@ -45,24 +41,12 @@ DID添加标签 * @method Models\CreateTDidByPublicKeyResponse CreateTDidByPublicKey(Models\CreateTDidByPublicKeyRequest $req) 该接口不再使用 新建DID根据公钥生成Tdid - * @method Models\GetAgencyTDidResponse GetAgencyTDid(Models\GetAgencyTDidRequest $req) 该接口已废弃 - -本机构DID详情 * @method Models\GetAuthorityIssuerResponse GetAuthorityIssuer(Models\GetAuthorityIssuerRequest $req) 该接口不再使用 获取权威机构信息 - * @method Models\GetConsortiumClusterListResponse GetConsortiumClusterList(Models\GetConsortiumClusterListRequest $req) 下线已有内测接口,待上线正式版本的接口 - -获取联盟bcos网络列表 - * @method Models\GetConsortiumListResponse GetConsortiumList(Models\GetConsortiumListRequest $req) 下线已有内测接口,待上线正式版本的接口 - -获取联盟列表 * @method Models\GetCptInfoResponse GetCptInfo(Models\GetCptInfoRequest $req) 该接口不再使用 凭证模版详情 - * @method Models\GetCredentialCptRankResponse GetCredentialCptRank(Models\GetCredentialCptRankRequest $req) 下线已有内测接口,待上线正式版本的接口 - -凭证颁发按机构排行 * @method Models\GetCredentialStatusResponse GetCredentialStatus(Models\GetCredentialStatusRequest $req) 该接口不再使用 获取凭证链上状态信息 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CmqSubscription.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CmqSubscription.php index 8f89dc395..6be8c483c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CmqSubscription.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CmqSubscription.php @@ -75,6 +75,10 @@ filterType = 2表示用户使用 bindingKey 过滤。 * @method string getNotifyContentFormat() 获取推送内容的格式。取值:(1)JSON;(2)SIMPLIFIED,即 raw 格式。如果 protocol 是 queue,则取值必须为 SIMPLIFIED。如果 protocol 是 HTTP,两个值均可以,默认值是 JSON。 注意:此字段可能返回 null,表示取不到有效值。 * @method void setNotifyContentFormat(string $NotifyContentFormat) 设置推送内容的格式。取值:(1)JSON;(2)SIMPLIFIED,即 raw 格式。如果 protocol 是 queue,则取值必须为 SIMPLIFIED。如果 protocol 是 HTTP,两个值均可以,默认值是 JSON。 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getTopicName() 获取订阅所属的主题名称 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setTopicName(string $TopicName) 设置订阅所属的主题名称 注意:此字段可能返回 null,表示取不到有效值。 */ class CmqSubscription extends AbstractModel @@ -155,6 +159,12 @@ filterType = 2表示用户使用 bindingKey 过滤。 */ public $NotifyContentFormat; + /** + * @var string 订阅所属的主题名称 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $TopicName; + /** * @param string $SubscriptionName 订阅名字,在单个地域同一帐号的同一主题下唯一。订阅名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 注意:此字段可能返回 null,表示取不到有效值。 @@ -183,6 +193,8 @@ filterType = 2表示用户使用 bindingKey 过滤。 (2)EXPONENTIAL_DECAY_RETRY,指数衰退重试。每次重试的间隔是指数递增的,例如开始 1s,后面是 2s,4s,8s...由于 Topic 消息的周期是一天,所以最多重试一天就把消息丢弃。默认值是 EXPONENTIAL_DECAY_RETRY。 注意:此字段可能返回 null,表示取不到有效值。 * @param string $NotifyContentFormat 推送内容的格式。取值:(1)JSON;(2)SIMPLIFIED,即 raw 格式。如果 protocol 是 queue,则取值必须为 SIMPLIFIED。如果 protocol 是 HTTP,两个值均可以,默认值是 JSON。 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $TopicName 订阅所属的主题名称 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -245,5 +257,9 @@ filterType = 2表示用户使用 bindingKey 过滤。 if (array_key_exists("NotifyContentFormat",$param) and $param["NotifyContentFormat"] !== null) { $this->NotifyContentFormat = $param["NotifyContentFormat"]; } + + if (array_key_exists("TopicName",$param) and $param["TopicName"] !== null) { + $this->TopicName = $param["TopicName"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CmqTopic.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CmqTopic.php index 0d969afec..406e03e1d 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CmqTopic.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CmqTopic.php @@ -87,6 +87,10 @@ FilterType = 2表示用户使用 BindingKey 过滤。 * @method integer getBrokerType() 获取0表示pulsar,1表示rocketmq 注意:此字段可能返回 null,表示取不到有效值。 * @method void setBrokerType(integer $BrokerType) 设置0表示pulsar,1表示rocketmq +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getSubscriptionCount() 获取订阅数量 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSubscriptionCount(integer $SubscriptionCount) 设置订阅数量 注意:此字段可能返回 null,表示取不到有效值。 */ class CmqTopic extends AbstractModel @@ -189,6 +193,12 @@ FilterType = 2表示用户使用 BindingKey 过滤。 */ public $BrokerType; + /** + * @var integer 订阅数量 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SubscriptionCount; + /** * @param string $TopicId 主题的 ID。 注意:此字段可能返回 null,表示取不到有效值。 @@ -223,6 +233,8 @@ FilterType = 2表示用户使用 BindingKey 过滤。 * @param integer $Status 集群状态,0:创建中,1:正常,2:销毁中,3:已删除,4: 隔离中,5:创建失败,6: 删除失败 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $BrokerType 0表示pulsar,1表示rocketmq +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $SubscriptionCount 订阅数量 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -306,5 +318,9 @@ FilterType = 2表示用户使用 BindingKey 过滤。 if (array_key_exists("BrokerType",$param) and $param["BrokerType"] !== null) { $this->BrokerType = $param["BrokerType"]; } + + if (array_key_exists("SubscriptionCount",$param) and $param["SubscriptionCount"] !== null) { + $this->SubscriptionCount = $param["SubscriptionCount"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CreateRocketMQVipInstanceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CreateRocketMQVipInstanceRequest.php new file mode 100644 index 000000000..6df1da1c9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CreateRocketMQVipInstanceRequest.php @@ -0,0 +1,142 @@ +Name = $param["Name"]; + } + + if (array_key_exists("Spec",$param) and $param["Spec"] !== null) { + $this->Spec = $param["Spec"]; + } + + if (array_key_exists("NodeCount",$param) and $param["NodeCount"] !== null) { + $this->NodeCount = $param["NodeCount"]; + } + + if (array_key_exists("StorageSize",$param) and $param["StorageSize"] !== null) { + $this->StorageSize = $param["StorageSize"]; + } + + if (array_key_exists("ZoneIds",$param) and $param["ZoneIds"] !== null) { + $this->ZoneIds = $param["ZoneIds"]; + } + + if (array_key_exists("VpcInfo",$param) and $param["VpcInfo"] !== null) { + $this->VpcInfo = new VpcInfo(); + $this->VpcInfo->deserialize($param["VpcInfo"]); + } + + if (array_key_exists("TimeSpan",$param) and $param["TimeSpan"] !== null) { + $this->TimeSpan = $param["TimeSpan"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CreateRocketMQVipInstanceResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CreateRocketMQVipInstanceResponse.php new file mode 100644 index 000000000..35f2ee8a6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/CreateRocketMQVipInstanceResponse.php @@ -0,0 +1,65 @@ +ClusterId = $param["ClusterId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetAgencyTDidRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DeleteRocketMQVipInstanceRequest.php similarity index 75% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetAgencyTDidRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DeleteRocketMQVipInstanceRequest.php index 6c171f203..a30ba8118 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdid/V20210519/Models/GetAgencyTDidRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DeleteRocketMQVipInstanceRequest.php @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Tdid\V20210519\Models; +namespace TencentCloud\Tdmq\V20200217\Models; use TencentCloud\Common\AbstractModel; /** - * GetAgencyTDid请求参数结构体 + * DeleteRocketMQVipInstance请求参数结构体 * - * @method string getClusterId() 获取网络ID - * @method void setClusterId(string $ClusterId) 设置网络ID + * @method string getClusterId() 获取实例的集群ID + * @method void setClusterId(string $ClusterId) 设置实例的集群ID */ -class GetAgencyTDidRequest extends AbstractModel +class DeleteRocketMQVipInstanceRequest extends AbstractModel { /** - * @var string 网络ID + * @var string 实例的集群ID */ public $ClusterId; /** - * @param string $ClusterId 网络ID + * @param string $ClusterId 实例的集群ID */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DeleteRocketMQVipInstanceResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DeleteRocketMQVipInstanceResponse.php new file mode 100644 index 000000000..8081d07e8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DeleteRocketMQVipInstanceResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DescribeCmqSubscriptionDetailRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DescribeCmqSubscriptionDetailRequest.php index 8b567bb4f..39a1f36fc 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DescribeCmqSubscriptionDetailRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DescribeCmqSubscriptionDetailRequest.php @@ -28,6 +28,12 @@ use TencentCloud\Common\AbstractModel; * @method void setLimit(integer $Limit) 设置分页时本页获取主题的个数,如果不传递该参数,则该参数默认为20,最大值为50。 * @method string getSubscriptionName() 获取根据SubscriptionName进行模糊搜索 * @method void setSubscriptionName(string $SubscriptionName) 设置根据SubscriptionName进行模糊搜索 + * @method string getQueueName() 获取队列名称,订阅绑定的endpoint + * @method void setQueueName(string $QueueName) 设置队列名称,订阅绑定的endpoint + * @method string getQueryType() 获取查询类型。取值:(1)topic;(2)queue。 +默认值是topic。如果 queryType 是 topic,则查询主题下的订阅列表;如果 queryType 是 queue,则查询队列绑定的订阅列表。 + * @method void setQueryType(string $QueryType) 设置查询类型。取值:(1)topic;(2)queue。 +默认值是topic。如果 queryType 是 topic,则查询主题下的订阅列表;如果 queryType 是 queue,则查询队列绑定的订阅列表。 */ class DescribeCmqSubscriptionDetailRequest extends AbstractModel { @@ -51,11 +57,25 @@ class DescribeCmqSubscriptionDetailRequest extends AbstractModel */ public $SubscriptionName; + /** + * @var string 队列名称,订阅绑定的endpoint + */ + public $QueueName; + + /** + * @var string 查询类型。取值:(1)topic;(2)queue。 +默认值是topic。如果 queryType 是 topic,则查询主题下的订阅列表;如果 queryType 是 queue,则查询队列绑定的订阅列表。 + */ + public $QueryType; + /** * @param string $TopicName 主题名字,在单个地域同一帐号下唯一。主题名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 * @param integer $Offset 分页时本页获取主题列表的起始位置。如果填写了该值,必须也要填写 limit 。该值缺省时,后台取默认值 0 * @param integer $Limit 分页时本页获取主题的个数,如果不传递该参数,则该参数默认为20,最大值为50。 * @param string $SubscriptionName 根据SubscriptionName进行模糊搜索 + * @param string $QueueName 队列名称,订阅绑定的endpoint + * @param string $QueryType 查询类型。取值:(1)topic;(2)queue。 +默认值是topic。如果 queryType 是 topic,则查询主题下的订阅列表;如果 queryType 是 queue,则查询队列绑定的订阅列表。 */ function __construct() { @@ -85,5 +105,13 @@ class DescribeCmqSubscriptionDetailRequest extends AbstractModel if (array_key_exists("SubscriptionName",$param) and $param["SubscriptionName"] !== null) { $this->SubscriptionName = $param["SubscriptionName"]; } + + if (array_key_exists("QueueName",$param) and $param["QueueName"] !== null) { + $this->QueueName = $param["QueueName"]; + } + + if (array_key_exists("QueryType",$param) and $param["QueryType"] !== null) { + $this->QueryType = $param["QueryType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DescribeRabbitMQVirtualHostRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DescribeRabbitMQVirtualHostRequest.php index 29e533bf2..a825af96e 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DescribeRabbitMQVirtualHostRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/DescribeRabbitMQVirtualHostRequest.php @@ -30,6 +30,18 @@ use TencentCloud\Common\AbstractModel; * @method void setLimit(integer $Limit) 设置分页Limit * @method Filter getFilters() 获取search-virtual-host:vhost名称模糊查询,之前前缀和后缀匹配 * @method void setFilters(Filter $Filters) 设置search-virtual-host:vhost名称模糊查询,之前前缀和后缀匹配 + * @method string getSortElement() 获取排序依据的字段: +MessageHeapCount - 消息堆积数; +MessageRateInOut - 生产消费速率之和; +MessageRateIn - 生产速率; +MessageRateOut - 消费速率; + * @method void setSortElement(string $SortElement) 设置排序依据的字段: +MessageHeapCount - 消息堆积数; +MessageRateInOut - 生产消费速率之和; +MessageRateIn - 生产速率; +MessageRateOut - 消费速率; + * @method string getSortOrder() 获取排序顺序,ascend 或 descend + * @method void setSortOrder(string $SortOrder) 设置排序顺序,ascend 或 descend */ class DescribeRabbitMQVirtualHostRequest extends AbstractModel { @@ -58,12 +70,32 @@ class DescribeRabbitMQVirtualHostRequest extends AbstractModel */ public $Filters; + /** + * @var string 排序依据的字段: +MessageHeapCount - 消息堆积数; +MessageRateInOut - 生产消费速率之和; +MessageRateIn - 生产速率; +MessageRateOut - 消费速率; + */ + public $SortElement; + + /** + * @var string 排序顺序,ascend 或 descend + */ + public $SortOrder; + /** * @param string $InstanceId 集群实例Id * @param string $VirtualHost vhost名,不传则查询全部 * @param integer $Offset 分页Offset * @param integer $Limit 分页Limit * @param Filter $Filters search-virtual-host:vhost名称模糊查询,之前前缀和后缀匹配 + * @param string $SortElement 排序依据的字段: +MessageHeapCount - 消息堆积数; +MessageRateInOut - 生产消费速率之和; +MessageRateIn - 生产速率; +MessageRateOut - 消费速率; + * @param string $SortOrder 排序顺序,ascend 或 descend */ function __construct() { @@ -98,5 +130,13 @@ class DescribeRabbitMQVirtualHostRequest extends AbstractModel $this->Filters = new Filter(); $this->Filters->deserialize($param["Filters"]); } + + if (array_key_exists("SortElement",$param) and $param["SortElement"] !== null) { + $this->SortElement = $param["SortElement"]; + } + + if (array_key_exists("SortOrder",$param) and $param["SortOrder"] !== null) { + $this->SortOrder = $param["SortOrder"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQClusterInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQClusterInfo.php index f52e1d84b..02ba55396 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQClusterInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQClusterInfo.php @@ -34,6 +34,10 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method array getVpcs() 获取VPC及网络信息 * @method void setVpcs(array $Vpcs) 设置VPC及网络信息 + * @method array getZoneIds() 获取可用区信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setZoneIds(array $ZoneIds) 设置可用区信息 +注意:此字段可能返回 null,表示取不到有效值。 * @method integer getVirtualHostNumber() 获取虚拟主机数量 * @method void setVirtualHostNumber(integer $VirtualHostNumber) 设置虚拟主机数量 * @method integer getQueueNumber() 获取队列数量 @@ -57,9 +61,7 @@ use TencentCloud\Common\AbstractModel; * @method void setExceptionInformation(string $ExceptionInformation) 设置集群异常。 注意:此字段可能返回 null,表示取不到有效值。 * @method integer getClusterStatus() 获取实例状态,0表示创建中,1表示正常,2表示隔离中,3表示已销毁,4 - 异常, 5 - 发货失败 -注意:此字段可能返回 null,表示取不到有效值。 * @method void setClusterStatus(integer $ClusterStatus) 设置实例状态,0表示创建中,1表示正常,2表示隔离中,3表示已销毁,4 - 异常, 5 - 发货失败 -注意:此字段可能返回 null,表示取不到有效值。 */ class RabbitMQClusterInfo extends AbstractModel { @@ -94,6 +96,12 @@ class RabbitMQClusterInfo extends AbstractModel */ public $Vpcs; + /** + * @var array 可用区信息 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ZoneIds; + /** * @var integer 虚拟主机数量 */ @@ -147,7 +155,6 @@ class RabbitMQClusterInfo extends AbstractModel /** * @var integer 实例状态,0表示创建中,1表示正常,2表示隔离中,3表示已销毁,4 - 异常, 5 - 发货失败 -注意:此字段可能返回 null,表示取不到有效值。 */ public $ClusterStatus; @@ -159,6 +166,8 @@ class RabbitMQClusterInfo extends AbstractModel * @param string $Remark 集群说明信息 注意:此字段可能返回 null,表示取不到有效值。 * @param array $Vpcs VPC及网络信息 + * @param array $ZoneIds 可用区信息 +注意:此字段可能返回 null,表示取不到有效值。 * @param integer $VirtualHostNumber 虚拟主机数量 * @param integer $QueueNumber 队列数量 * @param float $MessagePublishRate 每秒生产消息数 单位:条/秒 @@ -171,7 +180,6 @@ class RabbitMQClusterInfo extends AbstractModel * @param string $ExceptionInformation 集群异常。 注意:此字段可能返回 null,表示取不到有效值。 * @param integer $ClusterStatus 实例状态,0表示创建中,1表示正常,2表示隔离中,3表示已销毁,4 - 异常, 5 - 发货失败 -注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() { @@ -215,6 +223,10 @@ class RabbitMQClusterInfo extends AbstractModel } } + if (array_key_exists("ZoneIds",$param) and $param["ZoneIds"] !== null) { + $this->ZoneIds = $param["ZoneIds"]; + } + if (array_key_exists("VirtualHostNumber",$param) and $param["VirtualHostNumber"] !== null) { $this->VirtualHostNumber = $param["VirtualHostNumber"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQPrivateVirtualHost.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQPrivateVirtualHost.php index b78c4edee..17b778aa0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQPrivateVirtualHost.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQPrivateVirtualHost.php @@ -18,7 +18,7 @@ namespace TencentCloud\Tdmq\V20200217\Models; use TencentCloud\Common\AbstractModel; /** - * RabbitMQ专享版虚拟机 + * RabbitMQ专享版云服务器 * * @method string getVirtualHostName() 获取虚拟主机的名字 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQVirtualHostInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQVirtualHostInfo.php index 43f4eafce..839502721 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQVirtualHostInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/RabbitMQVirtualHostInfo.php @@ -43,6 +43,22 @@ use TencentCloud\Common\AbstractModel; * @method RabbitMQVirtualHostStatistics getVirtualHostStatistics() 获取vhost概览统计信息 注意:此字段可能返回 null,表示取不到有效值。 * @method void setVirtualHostStatistics(RabbitMQVirtualHostStatistics $VirtualHostStatistics) 设置vhost概览统计信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getStatus() 获取vhost状态,与原生控制台对应,有running、partial、stopped、unknown +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setStatus(string $Status) 设置vhost状态,与原生控制台对应,有running、partial、stopped、unknown +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getMessageHeapCount() 获取消息堆积数 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMessageHeapCount(integer $MessageHeapCount) 设置消息堆积数 +注意:此字段可能返回 null,表示取不到有效值。 + * @method float getMessageRateIn() 获取输入消息速率 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMessageRateIn(float $MessageRateIn) 设置输入消息速率 +注意:此字段可能返回 null,表示取不到有效值。 + * @method float getMessageRateOut() 获取输出消息速率 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setMessageRateOut(float $MessageRateOut) 设置输出消息速率 注意:此字段可能返回 null,表示取不到有效值。 */ class RabbitMQVirtualHostInfo extends AbstractModel @@ -87,6 +103,30 @@ class RabbitMQVirtualHostInfo extends AbstractModel */ public $VirtualHostStatistics; + /** + * @var string vhost状态,与原生控制台对应,有running、partial、stopped、unknown +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $Status; + + /** + * @var integer 消息堆积数 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MessageHeapCount; + + /** + * @var float 输入消息速率 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MessageRateIn; + + /** + * @var float 输出消息速率 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $MessageRateOut; + /** * @param string $InstanceId 集群实例Id * @param string $VirtualHost vhost名 @@ -99,6 +139,14 @@ class RabbitMQVirtualHostInfo extends AbstractModel * @param string $ModifyTime 修改时间 注意:此字段可能返回 null,表示取不到有效值。 * @param RabbitMQVirtualHostStatistics $VirtualHostStatistics vhost概览统计信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $Status vhost状态,与原生控制台对应,有running、partial、stopped、unknown +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $MessageHeapCount 消息堆积数 +注意:此字段可能返回 null,表示取不到有效值。 + * @param float $MessageRateIn 输入消息速率 +注意:此字段可能返回 null,表示取不到有效值。 + * @param float $MessageRateOut 输出消息速率 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -142,5 +190,21 @@ class RabbitMQVirtualHostInfo extends AbstractModel $this->VirtualHostStatistics = new RabbitMQVirtualHostStatistics(); $this->VirtualHostStatistics->deserialize($param["VirtualHostStatistics"]); } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("MessageHeapCount",$param) and $param["MessageHeapCount"] !== null) { + $this->MessageHeapCount = $param["MessageHeapCount"]; + } + + if (array_key_exists("MessageRateIn",$param) and $param["MessageRateIn"] !== null) { + $this->MessageRateIn = $param["MessageRateIn"]; + } + + if (array_key_exists("MessageRateOut",$param) and $param["MessageRateOut"] !== null) { + $this->MessageRateOut = $param["MessageRateOut"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/VpcInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/VpcInfo.php new file mode 100644 index 000000000..7b966c370 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/Models/VpcInfo.php @@ -0,0 +1,65 @@ +VpcId = $param["VpcId"]; + } + + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/TdmqClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/TdmqClient.php index 8ac09dd95..7272b5851 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/TdmqClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tdmq/V20200217/TdmqClient.php @@ -39,6 +39,7 @@ use TencentCloud\Tdmq\V20200217\Models as Models; * @method Models\CreateRocketMQGroupResponse CreateRocketMQGroup(Models\CreateRocketMQGroupRequest $req) 创建RocketMQ消费组 * @method Models\CreateRocketMQNamespaceResponse CreateRocketMQNamespace(Models\CreateRocketMQNamespaceRequest $req) 创建RocketMQ命名空间 * @method Models\CreateRocketMQTopicResponse CreateRocketMQTopic(Models\CreateRocketMQTopicRequest $req) 创建RocketMQ主题 + * @method Models\CreateRocketMQVipInstanceResponse CreateRocketMQVipInstance(Models\CreateRocketMQVipInstanceRequest $req) 创建RocketMQ专享实例 * @method Models\CreateRoleResponse CreateRole(Models\CreateRoleRequest $req) 创建角色 * @method Models\CreateSubscriptionResponse CreateSubscription(Models\CreateSubscriptionRequest $req) 创建一个主题的订阅关系 * @method Models\CreateTopicResponse CreateTopic(Models\CreateTopicRequest $req) 新增指定分区、类型的消息主题 @@ -55,6 +56,7 @@ use TencentCloud\Tdmq\V20200217\Models as Models; * @method Models\DeleteRocketMQGroupResponse DeleteRocketMQGroup(Models\DeleteRocketMQGroupRequest $req) 删除RocketMQ消费组 * @method Models\DeleteRocketMQNamespaceResponse DeleteRocketMQNamespace(Models\DeleteRocketMQNamespaceRequest $req) 删除RocketMQ命名空间 * @method Models\DeleteRocketMQTopicResponse DeleteRocketMQTopic(Models\DeleteRocketMQTopicRequest $req) 删除RocketMQ主题 + * @method Models\DeleteRocketMQVipInstanceResponse DeleteRocketMQVipInstance(Models\DeleteRocketMQVipInstanceRequest $req) 删除RocketMQ专享实例 * @method Models\DeleteRolesResponse DeleteRoles(Models\DeleteRolesRequest $req) 删除角色,支持批量。 * @method Models\DeleteSubscriptionsResponse DeleteSubscriptions(Models\DeleteSubscriptionsRequest $req) 删除订阅关系 * @method Models\DeleteTopicsResponse DeleteTopics(Models\DeleteTopicsRequest $req) 批量删除topics diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/AclCondition.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/AclCondition.php index 29542198a..d4fb6edce 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/AclCondition.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/AclCondition.php @@ -37,7 +37,8 @@ use TencentCloud\Common\AbstractModel;
  • idcid:IDC 规则,仅bot自定义规则可用;
  • sipbot:搜索引擎规则,仅bot自定义规则可用;
  • portrait:画像分析,仅bot自定义规则可用;
  • -
  • header_seq:请求头顺序,仅bot自定义规则可用。
  • +
  • header_seq:请求头顺序,仅bot自定义规则可用;
  • +
  • hdr:请求正文,仅Web防护自定义规则可用。
  • * @method void setMatchFrom(string $MatchFrom) 设置匹配字段,取值有:
  • host:请求域名;
  • sip:客户端IP;
  • @@ -55,7 +56,8 @@ use TencentCloud\Common\AbstractModel;
  • idcid:IDC 规则,仅bot自定义规则可用;
  • sipbot:搜索引擎规则,仅bot自定义规则可用;
  • portrait:画像分析,仅bot自定义规则可用;
  • -
  • header_seq:请求头顺序,仅bot自定义规则可用。
  • +
  • header_seq:请求头顺序,仅bot自定义规则可用;
  • +
  • hdr:请求正文,仅Web防护自定义规则可用。
  • * @method string getMatchParam() 获取匹配字符串。当 MatchFrom 为 header 时,可以填入 header 的 key 作为参数。 * @method void setMatchParam(string $MatchParam) 设置匹配字符串。当 MatchFrom 为 header 时,可以填入 header 的 key 作为参数。 * @method string getOperator() 获取匹配关系,取值有: @@ -115,7 +117,8 @@ class AclCondition extends AbstractModel
  • idcid:IDC 规则,仅bot自定义规则可用;
  • sipbot:搜索引擎规则,仅bot自定义规则可用;
  • portrait:画像分析,仅bot自定义规则可用;
  • -
  • header_seq:请求头顺序,仅bot自定义规则可用。
  • +
  • header_seq:请求头顺序,仅bot自定义规则可用;
  • +
  • hdr:请求正文,仅Web防护自定义规则可用。
  • */ public $MatchFrom; @@ -168,7 +171,8 @@ class AclCondition extends AbstractModel
  • idcid:IDC 规则,仅bot自定义规则可用;
  • sipbot:搜索引擎规则,仅bot自定义规则可用;
  • portrait:画像分析,仅bot自定义规则可用;
  • -
  • header_seq:请求头顺序,仅bot自定义规则可用。
  • +
  • header_seq:请求头顺序,仅bot自定义规则可用;
  • +
  • hdr:请求正文,仅Web防护自定义规则可用。
  • * @param string $MatchParam 匹配字符串。当 MatchFrom 为 header 时,可以填入 header 的 key 作为参数。 * @param string $Operator 匹配关系,取值有:
  • equal:字符串等于;
  • diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/CheckCnameStatusRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/CheckCnameStatusRequest.php index 2f911526b..8334becc4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/CheckCnameStatusRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/CheckCnameStatusRequest.php @@ -20,26 +20,26 @@ use TencentCloud\Common\AbstractModel; /** * CheckCnameStatus请求参数结构体 * - * @method string getZoneId() 获取站点ID。 - * @method void setZoneId(string $ZoneId) 设置站点ID。 - * @method array getRecordNames() 获取记录名称列表。 - * @method void setRecordNames(array $RecordNames) 设置记录名称列表。 + * @method string getZoneId() 获取站点 ID。 + * @method void setZoneId(string $ZoneId) 设置站点 ID。 + * @method array getRecordNames() 获取加速域名列表。 + * @method void setRecordNames(array $RecordNames) 设置加速域名列表。 */ class CheckCnameStatusRequest extends AbstractModel { /** - * @var string 站点ID。 + * @var string 站点 ID。 */ public $ZoneId; /** - * @var array 记录名称列表。 + * @var array 加速域名列表。 */ public $RecordNames; /** - * @param string $ZoneId 站点ID。 - * @param array $RecordNames 记录名称列表。 + * @param string $ZoneId 站点 ID。 + * @param array $RecordNames 加速域名列表。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/CheckCnameStatusResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/CheckCnameStatusResponse.php index 53b7780ee..022bf46cf 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/CheckCnameStatusResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/CheckCnameStatusResponse.php @@ -20,15 +20,15 @@ use TencentCloud\Common\AbstractModel; /** * CheckCnameStatus返回参数结构体 * - * @method array getCnameStatus() 获取域名Cname状态信息列表。 - * @method void setCnameStatus(array $CnameStatus) 设置域名Cname状态信息列表。 + * @method array getCnameStatus() 获取加速域名 CNAME 状态信息列表。 + * @method void setCnameStatus(array $CnameStatus) 设置加速域名 CNAME 状态信息列表。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class CheckCnameStatusResponse extends AbstractModel { /** - * @var array 域名Cname状态信息列表。 + * @var array 加速域名 CNAME 状态信息列表。 */ public $CnameStatus; @@ -38,7 +38,7 @@ class CheckCnameStatusResponse extends AbstractModel public $RequestId; /** - * @param array $CnameStatus 域名Cname状态信息列表。 + * @param array $CnameStatus 加速域名 CNAME 状态信息列表。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL4LogsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL4LogsRequest.php index 9fffb6c3d..b9cfa5fb4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL4LogsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL4LogsRequest.php @@ -24,14 +24,14 @@ use TencentCloud\Common\AbstractModel; * @method void setStartTime(string $StartTime) 设置开始时间。 * @method string getEndTime() 获取结束时间。 * @method void setEndTime(string $EndTime) 设置结束时间。 - * @method array getZoneIds() 获取站点集合,不填默认选择全部站点。 - * @method void setZoneIds(array $ZoneIds) 设置站点集合,不填默认选择全部站点。 - * @method array getProxyIds() 获取四层实例ID集合。 - * @method void setProxyIds(array $ProxyIds) 设置四层实例ID集合。 - * @method integer getLimit() 获取分页查询的限制数目,默认值为20,最大查询条目为1000。 - * @method void setLimit(integer $Limit) 设置分页查询的限制数目,默认值为20,最大查询条目为1000。 - * @method integer getOffset() 获取分页的偏移量,默认值为0。 - * @method void setOffset(integer $Offset) 设置分页的偏移量,默认值为0。 + * @method array getZoneIds() 获取站点集合,此参数必填,不填默认查询为空。 + * @method void setZoneIds(array $ZoneIds) 设置站点集合,此参数必填,不填默认查询为空。 + * @method array getProxyIds() 获取四层实例 ID 集合。 + * @method void setProxyIds(array $ProxyIds) 设置四层实例 ID 集合。 + * @method integer getLimit() 获取分页查询的限制数目,默认值为 20,最大查询条目为 1000。 + * @method void setLimit(integer $Limit) 设置分页查询的限制数目,默认值为 20,最大查询条目为 1000。 + * @method integer getOffset() 获取分页的偏移量,默认值为 0。 + * @method void setOffset(integer $Offset) 设置分页的偏移量,默认值为 0。 */ class DownloadL4LogsRequest extends AbstractModel { @@ -46,32 +46,32 @@ class DownloadL4LogsRequest extends AbstractModel public $EndTime; /** - * @var array 站点集合,不填默认选择全部站点。 + * @var array 站点集合,此参数必填,不填默认查询为空。 */ public $ZoneIds; /** - * @var array 四层实例ID集合。 + * @var array 四层实例 ID 集合。 */ public $ProxyIds; /** - * @var integer 分页查询的限制数目,默认值为20,最大查询条目为1000。 + * @var integer 分页查询的限制数目,默认值为 20,最大查询条目为 1000。 */ public $Limit; /** - * @var integer 分页的偏移量,默认值为0。 + * @var integer 分页的偏移量,默认值为 0。 */ public $Offset; /** * @param string $StartTime 开始时间。 * @param string $EndTime 结束时间。 - * @param array $ZoneIds 站点集合,不填默认选择全部站点。 - * @param array $ProxyIds 四层实例ID集合。 - * @param integer $Limit 分页查询的限制数目,默认值为20,最大查询条目为1000。 - * @param integer $Offset 分页的偏移量,默认值为0。 + * @param array $ZoneIds 站点集合,此参数必填,不填默认查询为空。 + * @param array $ProxyIds 四层实例 ID 集合。 + * @param integer $Limit 分页查询的限制数目,默认值为 20,最大查询条目为 1000。 + * @param integer $Offset 分页的偏移量,默认值为 0。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL4LogsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL4LogsResponse.php index 6d2eb338d..5bc98a614 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL4LogsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL4LogsResponse.php @@ -20,37 +20,33 @@ use TencentCloud\Common\AbstractModel; /** * DownloadL4Logs返回参数结构体 * - * @method array getData() 获取四层离线日志数据列表。 -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setData(array $Data) 设置四层离线日志数据列表。 -注意:此字段可能返回 null,表示取不到有效值。 * @method integer getTotalCount() 获取查询结果的总条数。 * @method void setTotalCount(integer $TotalCount) 设置查询结果的总条数。 + * @method array getData() 获取四层离线日志数据列表。 + * @method void setData(array $Data) 设置四层离线日志数据列表。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class DownloadL4LogsResponse extends AbstractModel { - /** - * @var array 四层离线日志数据列表。 -注意:此字段可能返回 null,表示取不到有效值。 - */ - public $Data; - /** * @var integer 查询结果的总条数。 */ public $TotalCount; + /** + * @var array 四层离线日志数据列表。 + */ + public $Data; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ public $RequestId; /** - * @param array $Data 四层离线日志数据列表。 -注意:此字段可能返回 null,表示取不到有效值。 * @param integer $TotalCount 查询结果的总条数。 + * @param array $Data 四层离线日志数据列表。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -66,6 +62,10 @@ class DownloadL4LogsResponse extends AbstractModel if ($param === null) { return; } + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + if (array_key_exists("Data",$param) and $param["Data"] !== null) { $this->Data = []; foreach ($param["Data"] as $key => $value){ @@ -75,10 +75,6 @@ class DownloadL4LogsResponse extends AbstractModel } } - if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { - $this->TotalCount = $param["TotalCount"]; - } - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL7LogsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL7LogsRequest.php index 493721832..374f773c8 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL7LogsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL7LogsRequest.php @@ -24,14 +24,14 @@ use TencentCloud\Common\AbstractModel; * @method void setStartTime(string $StartTime) 设置开始时间。 * @method string getEndTime() 获取结束时间。 * @method void setEndTime(string $EndTime) 设置结束时间。 - * @method array getZoneIds() 获取站点集合,不填默认选择全部站点。 - * @method void setZoneIds(array $ZoneIds) 设置站点集合,不填默认选择全部站点。 + * @method array getZoneIds() 获取站点集合,此参数必填,不填默认查询为空。 + * @method void setZoneIds(array $ZoneIds) 设置站点集合,此参数必填,不填默认查询为空。 * @method array getDomains() 获取子域名集合,不填默认选择全部子域名。 * @method void setDomains(array $Domains) 设置子域名集合,不填默认选择全部子域名。 - * @method integer getLimit() 获取分页查询的限制数目,默认值为20,最大查询条目为1000。 - * @method void setLimit(integer $Limit) 设置分页查询的限制数目,默认值为20,最大查询条目为1000。 - * @method integer getOffset() 获取分页的偏移量,默认值为0。 - * @method void setOffset(integer $Offset) 设置分页的偏移量,默认值为0。 + * @method integer getLimit() 获取分页查询的限制数目,默认值为 20,最大查询条目为 1000。 + * @method void setLimit(integer $Limit) 设置分页查询的限制数目,默认值为 20,最大查询条目为 1000。 + * @method integer getOffset() 获取分页的偏移量,默认值为 0。 + * @method void setOffset(integer $Offset) 设置分页的偏移量,默认值为 0。 */ class DownloadL7LogsRequest extends AbstractModel { @@ -46,7 +46,7 @@ class DownloadL7LogsRequest extends AbstractModel public $EndTime; /** - * @var array 站点集合,不填默认选择全部站点。 + * @var array 站点集合,此参数必填,不填默认查询为空。 */ public $ZoneIds; @@ -56,22 +56,22 @@ class DownloadL7LogsRequest extends AbstractModel public $Domains; /** - * @var integer 分页查询的限制数目,默认值为20,最大查询条目为1000。 + * @var integer 分页查询的限制数目,默认值为 20,最大查询条目为 1000。 */ public $Limit; /** - * @var integer 分页的偏移量,默认值为0。 + * @var integer 分页的偏移量,默认值为 0。 */ public $Offset; /** * @param string $StartTime 开始时间。 * @param string $EndTime 结束时间。 - * @param array $ZoneIds 站点集合,不填默认选择全部站点。 + * @param array $ZoneIds 站点集合,此参数必填,不填默认查询为空。 * @param array $Domains 子域名集合,不填默认选择全部子域名。 - * @param integer $Limit 分页查询的限制数目,默认值为20,最大查询条目为1000。 - * @param integer $Offset 分页的偏移量,默认值为0。 + * @param integer $Limit 分页查询的限制数目,默认值为 20,最大查询条目为 1000。 + * @param integer $Offset 分页的偏移量,默认值为 0。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL7LogsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL7LogsResponse.php index 761325853..c8b2cc989 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL7LogsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/DownloadL7LogsResponse.php @@ -20,37 +20,33 @@ use TencentCloud\Common\AbstractModel; /** * DownloadL7Logs返回参数结构体 * - * @method array getData() 获取七层离线日志数据列表。 -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setData(array $Data) 设置七层离线日志数据列表。 -注意:此字段可能返回 null,表示取不到有效值。 * @method integer getTotalCount() 获取查询结果的总条数。 * @method void setTotalCount(integer $TotalCount) 设置查询结果的总条数。 + * @method array getData() 获取七层离线日志数据列表。 + * @method void setData(array $Data) 设置七层离线日志数据列表。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class DownloadL7LogsResponse extends AbstractModel { - /** - * @var array 七层离线日志数据列表。 -注意:此字段可能返回 null,表示取不到有效值。 - */ - public $Data; - /** * @var integer 查询结果的总条数。 */ public $TotalCount; + /** + * @var array 七层离线日志数据列表。 + */ + public $Data; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ public $RequestId; /** - * @param array $Data 七层离线日志数据列表。 -注意:此字段可能返回 null,表示取不到有效值。 * @param integer $TotalCount 查询结果的总条数。 + * @param array $Data 七层离线日志数据列表。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -66,6 +62,10 @@ class DownloadL7LogsResponse extends AbstractModel if ($param === null) { return; } + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + if (array_key_exists("Data",$param) and $param["Data"] !== null) { $this->Data = []; foreach ($param["Data"] as $key => $value){ @@ -75,10 +75,6 @@ class DownloadL7LogsResponse extends AbstractModel } } - if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { - $this->TotalCount = $param["TotalCount"]; - } - if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/L4OfflineLog.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/L4OfflineLog.php index 137d83981..2941c3b4a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/L4OfflineLog.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/L4OfflineLog.php @@ -20,70 +20,82 @@ use TencentCloud\Common\AbstractModel; /** * 离线日志详细信息 * - * @method integer getLogTime() 获取日志打包开始时间。 - * @method void setLogTime(integer $LogTime) 设置日志打包开始时间。 - * @method string getProxyId() 获取四层实例ID。 -注意:此字段可能返回 null,表示取不到有效值。 - * @method void setProxyId(string $ProxyId) 设置四层实例ID。 -注意:此字段可能返回 null,表示取不到有效值。 - * @method integer getSize() 获取原始大小 单位byte。 - * @method void setSize(integer $Size) 设置原始大小 单位byte。 - * @method string getUrl() 获取下载地址。 - * @method void setUrl(string $Url) 设置下载地址。 - * @method string getLogPacketName() 获取日志数据包名。 - * @method void setLogPacketName(string $LogPacketName) 设置日志数据包名。 - * @method string getArea() 获取加速区域,取值有: + * @method string getProxyId() 获取四层代理实例 ID。 + * @method void setProxyId(string $ProxyId) 设置四层代理实例 ID。 + * @method string getArea() 获取日志所属区域,取值有:
  • mainland:中国大陆境内;
  • overseas:全球(不含中国大陆)。
  • - * @method void setArea(string $Area) 设置加速区域,取值有: + * @method void setArea(string $Area) 设置日志所属区域,取值有:
  • mainland:中国大陆境内;
  • overseas:全球(不含中国大陆)。
  • + * @method string getLogPacketName() 获取离线日志数据包名。 + * @method void setLogPacketName(string $LogPacketName) 设置离线日志数据包名。 + * @method string getUrl() 获取离线日志下载地址。 + * @method void setUrl(string $Url) 设置离线日志下载地址。 + * @method integer getLogTime() 获取日志打包时间,此参数已经废弃。 + * @method void setLogTime(integer $LogTime) 设置日志打包时间,此参数已经废弃。 + * @method string getLogStartTime() 获取日志打包开始时间。 + * @method void setLogStartTime(string $LogStartTime) 设置日志打包开始时间。 + * @method string getLogEndTime() 获取日志打包结束时间。 + * @method void setLogEndTime(string $LogEndTime) 设置日志打包结束时间。 + * @method integer getSize() 获取日志大小,单位为 Byte。 + * @method void setSize(integer $Size) 设置日志大小,单位为 Byte。 */ class L4OfflineLog extends AbstractModel { /** - * @var integer 日志打包开始时间。 - */ - public $LogTime; - - /** - * @var string 四层实例ID。 -注意:此字段可能返回 null,表示取不到有效值。 + * @var string 四层代理实例 ID。 */ public $ProxyId; /** - * @var integer 原始大小 单位byte。 - */ - public $Size; - - /** - * @var string 下载地址。 - */ - public $Url; - - /** - * @var string 日志数据包名。 - */ - public $LogPacketName; - - /** - * @var string 加速区域,取值有: + * @var string 日志所属区域,取值有:
  • mainland:中国大陆境内;
  • overseas:全球(不含中国大陆)。
  • */ public $Area; /** - * @param integer $LogTime 日志打包开始时间。 - * @param string $ProxyId 四层实例ID。 -注意:此字段可能返回 null,表示取不到有效值。 - * @param integer $Size 原始大小 单位byte。 - * @param string $Url 下载地址。 - * @param string $LogPacketName 日志数据包名。 - * @param string $Area 加速区域,取值有: + * @var string 离线日志数据包名。 + */ + public $LogPacketName; + + /** + * @var string 离线日志下载地址。 + */ + public $Url; + + /** + * @var integer 日志打包时间,此参数已经废弃。 + */ + public $LogTime; + + /** + * @var string 日志打包开始时间。 + */ + public $LogStartTime; + + /** + * @var string 日志打包结束时间。 + */ + public $LogEndTime; + + /** + * @var integer 日志大小,单位为 Byte。 + */ + public $Size; + + /** + * @param string $ProxyId 四层代理实例 ID。 + * @param string $Area 日志所属区域,取值有:
  • mainland:中国大陆境内;
  • overseas:全球(不含中国大陆)。
  • + * @param string $LogPacketName 离线日志数据包名。 + * @param string $Url 离线日志下载地址。 + * @param integer $LogTime 日志打包时间,此参数已经废弃。 + * @param string $LogStartTime 日志打包开始时间。 + * @param string $LogEndTime 日志打包结束时间。 + * @param integer $Size 日志大小,单位为 Byte。 */ function __construct() { @@ -98,28 +110,36 @@ class L4OfflineLog extends AbstractModel if ($param === null) { return; } - if (array_key_exists("LogTime",$param) and $param["LogTime"] !== null) { - $this->LogTime = $param["LogTime"]; - } - if (array_key_exists("ProxyId",$param) and $param["ProxyId"] !== null) { $this->ProxyId = $param["ProxyId"]; } - if (array_key_exists("Size",$param) and $param["Size"] !== null) { - $this->Size = $param["Size"]; - } - - if (array_key_exists("Url",$param) and $param["Url"] !== null) { - $this->Url = $param["Url"]; + if (array_key_exists("Area",$param) and $param["Area"] !== null) { + $this->Area = $param["Area"]; } if (array_key_exists("LogPacketName",$param) and $param["LogPacketName"] !== null) { $this->LogPacketName = $param["LogPacketName"]; } - if (array_key_exists("Area",$param) and $param["Area"] !== null) { - $this->Area = $param["Area"]; + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("LogTime",$param) and $param["LogTime"] !== null) { + $this->LogTime = $param["LogTime"]; + } + + if (array_key_exists("LogStartTime",$param) and $param["LogStartTime"] !== null) { + $this->LogStartTime = $param["LogStartTime"]; + } + + if (array_key_exists("LogEndTime",$param) and $param["LogEndTime"] !== null) { + $this->LogEndTime = $param["LogEndTime"]; + } + + if (array_key_exists("Size",$param) and $param["Size"] !== null) { + $this->Size = $param["Size"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/L7OfflineLog.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/L7OfflineLog.php index b2f834371..a3d651472 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/L7OfflineLog.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/L7OfflineLog.php @@ -18,68 +18,84 @@ namespace TencentCloud\Teo\V20220901\Models; use TencentCloud\Common\AbstractModel; /** - * 离线日志详细信息 + * 七层离线日志详细信息。 * - * @method integer getLogTime() 获取日志打包开始时间。 - * @method void setLogTime(integer $LogTime) 设置日志打包开始时间。 - * @method string getDomain() 获取子域名。 - * @method void setDomain(string $Domain) 设置子域名。 - * @method integer getSize() 获取原始大小,单位byte。 - * @method void setSize(integer $Size) 设置原始大小,单位byte。 - * @method string getUrl() 获取下载地址。 - * @method void setUrl(string $Url) 设置下载地址。 - * @method string getLogPacketName() 获取日志数据包名。 - * @method void setLogPacketName(string $LogPacketName) 设置日志数据包名。 - * @method string getArea() 获取加速区域,取值有: + * @method string getDomain() 获取离线日志域名。 + * @method void setDomain(string $Domain) 设置离线日志域名。 + * @method string getArea() 获取日志所属区域,取值有:
  • mainland:中国大陆境内;
  • overseas:全球(不含中国大陆)。
  • - * @method void setArea(string $Area) 设置加速区域,取值有: + * @method void setArea(string $Area) 设置日志所属区域,取值有:
  • mainland:中国大陆境内;
  • overseas:全球(不含中国大陆)。
  • + * @method string getLogPacketName() 获取离线日志数据包名。 + * @method void setLogPacketName(string $LogPacketName) 设置离线日志数据包名。 + * @method string getUrl() 获取离线日志下载地址。 + * @method void setUrl(string $Url) 设置离线日志下载地址。 + * @method integer getLogTime() 获取日志打包时间,此参数已经废弃。 + * @method void setLogTime(integer $LogTime) 设置日志打包时间,此参数已经废弃。 + * @method string getLogStartTime() 获取日志打包开始时间。 + * @method void setLogStartTime(string $LogStartTime) 设置日志打包开始时间。 + * @method string getLogEndTime() 获取日志打包结束时间。 + * @method void setLogEndTime(string $LogEndTime) 设置日志打包结束时间。 + * @method integer getSize() 获取日志原始大小,单位 Byte。 + * @method void setSize(integer $Size) 设置日志原始大小,单位 Byte。 */ class L7OfflineLog extends AbstractModel { /** - * @var integer 日志打包开始时间。 - */ - public $LogTime; - - /** - * @var string 子域名。 + * @var string 离线日志域名。 */ public $Domain; /** - * @var integer 原始大小,单位byte。 - */ - public $Size; - - /** - * @var string 下载地址。 - */ - public $Url; - - /** - * @var string 日志数据包名。 - */ - public $LogPacketName; - - /** - * @var string 加速区域,取值有: + * @var string 日志所属区域,取值有:
  • mainland:中国大陆境内;
  • overseas:全球(不含中国大陆)。
  • */ public $Area; /** - * @param integer $LogTime 日志打包开始时间。 - * @param string $Domain 子域名。 - * @param integer $Size 原始大小,单位byte。 - * @param string $Url 下载地址。 - * @param string $LogPacketName 日志数据包名。 - * @param string $Area 加速区域,取值有: + * @var string 离线日志数据包名。 + */ + public $LogPacketName; + + /** + * @var string 离线日志下载地址。 + */ + public $Url; + + /** + * @var integer 日志打包时间,此参数已经废弃。 + */ + public $LogTime; + + /** + * @var string 日志打包开始时间。 + */ + public $LogStartTime; + + /** + * @var string 日志打包结束时间。 + */ + public $LogEndTime; + + /** + * @var integer 日志原始大小,单位 Byte。 + */ + public $Size; + + /** + * @param string $Domain 离线日志域名。 + * @param string $Area 日志所属区域,取值有:
  • mainland:中国大陆境内;
  • overseas:全球(不含中国大陆)。
  • + * @param string $LogPacketName 离线日志数据包名。 + * @param string $Url 离线日志下载地址。 + * @param integer $LogTime 日志打包时间,此参数已经废弃。 + * @param string $LogStartTime 日志打包开始时间。 + * @param string $LogEndTime 日志打包结束时间。 + * @param integer $Size 日志原始大小,单位 Byte。 */ function __construct() { @@ -94,28 +110,36 @@ class L7OfflineLog extends AbstractModel if ($param === null) { return; } - if (array_key_exists("LogTime",$param) and $param["LogTime"] !== null) { - $this->LogTime = $param["LogTime"]; - } - if (array_key_exists("Domain",$param) and $param["Domain"] !== null) { $this->Domain = $param["Domain"]; } - if (array_key_exists("Size",$param) and $param["Size"] !== null) { - $this->Size = $param["Size"]; - } - - if (array_key_exists("Url",$param) and $param["Url"] !== null) { - $this->Url = $param["Url"]; + if (array_key_exists("Area",$param) and $param["Area"] !== null) { + $this->Area = $param["Area"]; } if (array_key_exists("LogPacketName",$param) and $param["LogPacketName"] !== null) { $this->LogPacketName = $param["LogPacketName"]; } - if (array_key_exists("Area",$param) and $param["Area"] !== null) { - $this->Area = $param["Area"]; + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + + if (array_key_exists("LogTime",$param) and $param["LogTime"] !== null) { + $this->LogTime = $param["LogTime"]; + } + + if (array_key_exists("LogStartTime",$param) and $param["LogStartTime"] !== null) { + $this->LogStartTime = $param["LogStartTime"]; + } + + if (array_key_exists("LogEndTime",$param) and $param["LogEndTime"] !== null) { + $this->LogEndTime = $param["LogEndTime"]; + } + + if (array_key_exists("Size",$param) and $param["Size"] !== null) { + $this->Size = $param["Size"]; } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/ModifyHostsCertificateRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/ModifyHostsCertificateRequest.php index ee9a22533..b048fef93 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/ModifyHostsCertificateRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/ModifyHostsCertificateRequest.php @@ -28,10 +28,10 @@ use TencentCloud\Common\AbstractModel; * @method void setServerCertInfo(array $ServerCertInfo) 设置证书信息, 只需要传入 CertId 即可, 如果为空, 则使用默认证书。 * @method string getApplyType() 获取托管类型,取值有:
  • apply:托管EO;
  • -
  • none:不托管EO;
  • 不填,默认取值为apply。 +
  • none:不托管EO;
  • 不填,默认取值为none。 * @method void setApplyType(string $ApplyType) 设置托管类型,取值有:
  • apply:托管EO;
  • -
  • none:不托管EO;
  • 不填,默认取值为apply。 +
  • none:不托管EO;
  • 不填,默认取值为none。 */ class ModifyHostsCertificateRequest extends AbstractModel { @@ -53,7 +53,7 @@ class ModifyHostsCertificateRequest extends AbstractModel /** * @var string 托管类型,取值有:
  • apply:托管EO;
  • -
  • none:不托管EO;
  • 不填,默认取值为apply。 +
  • none:不托管EO;
  • 不填,默认取值为none。 */ public $ApplyType; @@ -63,7 +63,7 @@ class ModifyHostsCertificateRequest extends AbstractModel * @param array $ServerCertInfo 证书信息, 只需要传入 CertId 即可, 如果为空, 则使用默认证书。 * @param string $ApplyType 托管类型,取值有:
  • apply:托管EO;
  • -
  • none:不托管EO;
  • 不填,默认取值为apply。 +
  • none:不托管EO;
  • 不填,默认取值为none。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/RateLimitUserRule.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/RateLimitUserRule.php index 7c5bc1936..493546ec3 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/RateLimitUserRule.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Teo/V20220901/Models/RateLimitUserRule.php @@ -26,14 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setPeriod(integer $Period) 设置速率限制统计时间,取值范围 10/20/30/40/50/60 单位是秒。 * @method string getRuleName() 获取规则名,只能以英文字符,数字,下划线组合,且不能以下划线开头。 * @method void setRuleName(string $RuleName) 设置规则名,只能以英文字符,数字,下划线组合,且不能以下划线开头。 - * @method string getAction() 获取处置动作,取值有: -
  • monitor:观察;
  • -
  • drop:拦截;
  • -
  • alg:JavaScript挑战。
  • - * @method void setAction(string $Action) 设置处置动作,取值有: -
  • monitor:观察;
  • -
  • drop:拦截;
  • -
  • alg:JavaScript挑战。
  • + * @method string getAction() 获取处置动作,取值有:
  • monitor:观察;
  • drop:拦截;
  • alg:JavaScript挑战。
  • + * @method void setAction(string $Action) 设置处置动作,取值有:
  • monitor:观察;
  • drop:拦截;
  • alg:JavaScript挑战。
  • * @method integer getPunishTime() 获取惩罚时长,0-2天。 * @method void setPunishTime(integer $PunishTime) 设置惩罚时长,0-2天。 * @method string getPunishTimeUnit() 获取处罚时长单位,取值有: @@ -54,9 +48,9 @@ use TencentCloud\Common\AbstractModel; * @method void setAclConditions(array $AclConditions) 设置规则详情。 * @method integer getRulePriority() 获取规则权重,取值范围0-100。 * @method void setRulePriority(integer $RulePriority) 设置规则权重,取值范围0-100。 - * @method integer getRuleID() 获取规则id。仅出参使用。 + * @method integer getRuleID() 获取规则 Id。仅出参使用。 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setRuleID(integer $RuleID) 设置规则id。仅出参使用。 + * @method void setRuleID(integer $RuleID) 设置规则 Id。仅出参使用。 注意:此字段可能返回 null,表示取不到有效值。 * @method array getFreqFields() 获取过滤词,取值有:
  • sip:客户端ip。
  • @@ -68,11 +62,11 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setUpdateTime(string $UpdateTime) 设置更新时间。 注意:此字段可能返回 null,表示取不到有效值。 - * @method array getFreqScope() 获取统计范围,字段为null时,代表source_to_eo。取值有: + * @method array getFreqScope() 获取统计范围,字段为 null 时,代表 source_to_eo。取值有:
  • source_to_eo:(响应)源站到EdgeOne。
  • client_to_eo:(请求)客户端到EdgeOne;
  • 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setFreqScope(array $FreqScope) 设置统计范围,字段为null时,代表source_to_eo。取值有: + * @method void setFreqScope(array $FreqScope) 设置统计范围,字段为 null 时,代表 source_to_eo。取值有:
  • source_to_eo:(响应)源站到EdgeOne。
  • client_to_eo:(请求)客户端到EdgeOne;
  • 注意:此字段可能返回 null,表示取不到有效值。 @@ -95,10 +89,7 @@ class RateLimitUserRule extends AbstractModel public $RuleName; /** - * @var string 处置动作,取值有: -
  • monitor:观察;
  • -
  • drop:拦截;
  • -
  • alg:JavaScript挑战。
  • + * @var string 处置动作,取值有:
  • monitor:观察;
  • drop:拦截;
  • alg:JavaScript挑战。
  • */ public $Action; @@ -133,7 +124,7 @@ class RateLimitUserRule extends AbstractModel public $RulePriority; /** - * @var integer 规则id。仅出参使用。 + * @var integer 规则 Id。仅出参使用。 注意:此字段可能返回 null,表示取不到有效值。 */ public $RuleID; @@ -152,7 +143,7 @@ class RateLimitUserRule extends AbstractModel public $UpdateTime; /** - * @var array 统计范围,字段为null时,代表source_to_eo。取值有: + * @var array 统计范围,字段为 null 时,代表 source_to_eo。取值有:
  • source_to_eo:(响应)源站到EdgeOne。
  • client_to_eo:(请求)客户端到EdgeOne;
  • 注意:此字段可能返回 null,表示取不到有效值。 @@ -163,10 +154,7 @@ class RateLimitUserRule extends AbstractModel * @param integer $Threshold 速率限制统计阈值,单位是次,取值范围0-4294967294。 * @param integer $Period 速率限制统计时间,取值范围 10/20/30/40/50/60 单位是秒。 * @param string $RuleName 规则名,只能以英文字符,数字,下划线组合,且不能以下划线开头。 - * @param string $Action 处置动作,取值有: -
  • monitor:观察;
  • -
  • drop:拦截;
  • -
  • alg:JavaScript挑战。
  • + * @param string $Action 处置动作,取值有:
  • monitor:观察;
  • drop:拦截;
  • alg:JavaScript挑战。
  • * @param integer $PunishTime 惩罚时长,0-2天。 * @param string $PunishTimeUnit 处罚时长单位,取值有:
  • second:秒;
  • @@ -177,14 +165,14 @@ class RateLimitUserRule extends AbstractModel
  • off:不生效。
  • 默认on生效。 * @param array $AclConditions 规则详情。 * @param integer $RulePriority 规则权重,取值范围0-100。 - * @param integer $RuleID 规则id。仅出参使用。 + * @param integer $RuleID 规则 Id。仅出参使用。 注意:此字段可能返回 null,表示取不到有效值。 * @param array $FreqFields 过滤词,取值有:
  • sip:客户端ip。
  • 注意:此字段可能返回 null,表示取不到有效值。 * @param string $UpdateTime 更新时间。 注意:此字段可能返回 null,表示取不到有效值。 - * @param array $FreqScope 统计范围,字段为null时,代表source_to_eo。取值有: + * @param array $FreqScope 统计范围,字段为 null 时,代表 source_to_eo。取值有:
  • source_to_eo:(响应)源站到EdgeOne。
  • client_to_eo:(请求)客户端到EdgeOne;
  • 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ChatCompletionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ChatCompletionRequest.php new file mode 100644 index 000000000..d80001655 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ChatCompletionRequest.php @@ -0,0 +1,106 @@ +Model = $param["Model"]; + } + + if (array_key_exists("Messages",$param) and $param["Messages"] !== null) { + $this->Messages = []; + foreach ($param["Messages"] as $key => $value){ + $obj = new Message(); + $obj->deserialize($value); + array_push($this->Messages, $obj); + } + } + + if (array_key_exists("Temperature",$param) and $param["Temperature"] !== null) { + $this->Temperature = $param["Temperature"]; + } + + if (array_key_exists("TopP",$param) and $param["TopP"] !== null) { + $this->TopP = $param["TopP"]; + } + + if (array_key_exists("MaxTokens",$param) and $param["MaxTokens"] !== null) { + $this->MaxTokens = $param["MaxTokens"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ChatCompletionResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ChatCompletionResponse.php new file mode 100644 index 000000000..1ca42c9fe --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ChatCompletionResponse.php @@ -0,0 +1,115 @@ +Model = $param["Model"]; + } + + if (array_key_exists("Choices",$param) and $param["Choices"] !== null) { + $this->Choices = []; + foreach ($param["Choices"] as $key => $value){ + $obj = new Choice(); + $obj->deserialize($value); + array_push($this->Choices, $obj); + } + } + + if (array_key_exists("Id",$param) and $param["Id"] !== null) { + $this->Id = $param["Id"]; + } + + if (array_key_exists("Usage",$param) and $param["Usage"] !== null) { + $this->Usage = new Usage(); + $this->Usage->deserialize($param["Usage"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Choice.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Choice.php new file mode 100644 index 000000000..1020ae689 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Choice.php @@ -0,0 +1,82 @@ +Message = new Message(); + $this->Message->deserialize($param["Message"]); + } + + if (array_key_exists("FinishReason",$param) and $param["FinishReason"] !== null) { + $this->FinishReason = $param["FinishReason"]; + } + + if (array_key_exists("Index",$param) and $param["Index"] !== null) { + $this->Index = $param["Index"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookImageRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookImageRequest.php new file mode 100644 index 000000000..937bbf49f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookImageRequest.php @@ -0,0 +1,78 @@ +Kernels = $param["Kernels"]; + } + + if (array_key_exists("ImageInfo",$param) and $param["ImageInfo"] !== null) { + $this->ImageInfo = new ImageInfo(); + $this->ImageInfo->deserialize($param["ImageInfo"]); + } + + if (array_key_exists("NotebookId",$param) and $param["NotebookId"] !== null) { + $this->NotebookId = $param["NotebookId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookImageResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookImageResponse.php new file mode 100644 index 000000000..1cc020e72 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookImageResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookRequest.php new file mode 100644 index 000000000..cc305900c --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookRequest.php @@ -0,0 +1,343 @@ +Name = $param["Name"]; + } + + if (array_key_exists("ChargeType",$param) and $param["ChargeType"] !== null) { + $this->ChargeType = $param["ChargeType"]; + } + + if (array_key_exists("ResourceConf",$param) and $param["ResourceConf"] !== null) { + $this->ResourceConf = new ResourceConf(); + $this->ResourceConf->deserialize($param["ResourceConf"]); + } + + if (array_key_exists("LogEnable",$param) and $param["LogEnable"] !== null) { + $this->LogEnable = $param["LogEnable"]; + } + + if (array_key_exists("RootAccess",$param) and $param["RootAccess"] !== null) { + $this->RootAccess = $param["RootAccess"]; + } + + if (array_key_exists("AutoStopping",$param) and $param["AutoStopping"] !== null) { + $this->AutoStopping = $param["AutoStopping"]; + } + + if (array_key_exists("DirectInternetAccess",$param) and $param["DirectInternetAccess"] !== null) { + $this->DirectInternetAccess = $param["DirectInternetAccess"]; + } + + if (array_key_exists("ResourceGroupId",$param) and $param["ResourceGroupId"] !== null) { + $this->ResourceGroupId = $param["ResourceGroupId"]; + } + + if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { + $this->VpcId = $param["VpcId"]; + } + + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; + } + + if (array_key_exists("VolumeSourceType",$param) and $param["VolumeSourceType"] !== null) { + $this->VolumeSourceType = $param["VolumeSourceType"]; + } + + if (array_key_exists("VolumeSizeInGB",$param) and $param["VolumeSizeInGB"] !== null) { + $this->VolumeSizeInGB = $param["VolumeSizeInGB"]; + } + + if (array_key_exists("VolumeSourceCFS",$param) and $param["VolumeSourceCFS"] !== null) { + $this->VolumeSourceCFS = new CFSConfig(); + $this->VolumeSourceCFS->deserialize($param["VolumeSourceCFS"]); + } + + if (array_key_exists("LogConfig",$param) and $param["LogConfig"] !== null) { + $this->LogConfig = new LogConfig(); + $this->LogConfig->deserialize($param["LogConfig"]); + } + + if (array_key_exists("LifecycleScriptId",$param) and $param["LifecycleScriptId"] !== null) { + $this->LifecycleScriptId = $param["LifecycleScriptId"]; + } + + if (array_key_exists("DefaultCodeRepoId",$param) and $param["DefaultCodeRepoId"] !== null) { + $this->DefaultCodeRepoId = $param["DefaultCodeRepoId"]; + } + + if (array_key_exists("AdditionalCodeRepoIds",$param) and $param["AdditionalCodeRepoIds"] !== null) { + $this->AdditionalCodeRepoIds = $param["AdditionalCodeRepoIds"]; + } + + if (array_key_exists("AutomaticStopTime",$param) and $param["AutomaticStopTime"] !== null) { + $this->AutomaticStopTime = $param["AutomaticStopTime"]; + } + + if (array_key_exists("Tags",$param) and $param["Tags"] !== null) { + $this->Tags = []; + foreach ($param["Tags"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->Tags, $obj); + } + } + + if (array_key_exists("DataConfigs",$param) and $param["DataConfigs"] !== null) { + $this->DataConfigs = []; + foreach ($param["DataConfigs"] as $key => $value){ + $obj = new DataConfig(); + $obj->deserialize($value); + array_push($this->DataConfigs, $obj); + } + } + + if (array_key_exists("ImageInfo",$param) and $param["ImageInfo"] !== null) { + $this->ImageInfo = new ImageInfo(); + $this->ImageInfo->deserialize($param["ImageInfo"]); + } + + if (array_key_exists("ImageType",$param) and $param["ImageType"] !== null) { + $this->ImageType = $param["ImageType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookResponse.php new file mode 100644 index 000000000..2938454f9 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/CreateNotebookResponse.php @@ -0,0 +1,65 @@ +Id = $param["Id"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookImageRecordRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookImageRecordRequest.php new file mode 100644 index 000000000..56d38dddb --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookImageRecordRequest.php @@ -0,0 +1,53 @@ +RecordId = $param["RecordId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookImageRecordResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookImageRecordResponse.php new file mode 100644 index 000000000..c64ead3b1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookImageRecordResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookRequest.php new file mode 100644 index 000000000..11f3c7bcb --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookRequest.php @@ -0,0 +1,53 @@ +Id = $param["Id"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteWordItemsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookResponse.php similarity index 92% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteWordItemsResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookResponse.php index 38e3951ad..60734fa5b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DeleteWordItemsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DeleteNotebookResponse.php @@ -14,16 +14,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Tione\V20211111\Models; use TencentCloud\Common\AbstractModel; /** - * DeleteWordItems返回参数结构体 + * DeleteNotebook返回参数结构体 * * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class DeleteWordItemsResponse extends AbstractModel +class DeleteNotebookResponse extends AbstractModel { /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageKernelsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageKernelsRequest.php new file mode 100644 index 000000000..9c23f1257 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageKernelsRequest.php @@ -0,0 +1,53 @@ +NotebookId = $param["NotebookId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageKernelsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageKernelsResponse.php new file mode 100644 index 000000000..60f753690 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageKernelsResponse.php @@ -0,0 +1,65 @@ +Kernels = $param["Kernels"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageRecordsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageRecordsRequest.php new file mode 100644 index 000000000..b7bac1941 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageRecordsRequest.php @@ -0,0 +1,94 @@ +NotebookId = $param["NotebookId"]; + } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new Filter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageRecordsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageRecordsResponse.php new file mode 100644 index 000000000..7de781c01 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookImageRecordsResponse.php @@ -0,0 +1,82 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("NotebookImageRecords",$param) and $param["NotebookImageRecords"] !== null) { + $this->NotebookImageRecords = []; + foreach ($param["NotebookImageRecords"] as $key => $value){ + $obj = new NotebookImageRecord(); + $obj->deserialize($value); + array_push($this->NotebookImageRecords, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookRequest.php new file mode 100644 index 000000000..635010434 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookRequest.php @@ -0,0 +1,53 @@ +Id = $param["Id"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookResponse.php new file mode 100644 index 000000000..22916b139 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebookResponse.php @@ -0,0 +1,66 @@ +NotebookDetail = new NotebookDetail(); + $this->NotebookDetail->deserialize($param["NotebookDetail"]); + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebooksRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebooksRequest.php new file mode 100644 index 000000000..e1f4b2af1 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebooksRequest.php @@ -0,0 +1,163 @@ +Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("Order",$param) and $param["Order"] !== null) { + $this->Order = $param["Order"]; + } + + if (array_key_exists("OrderField",$param) and $param["OrderField"] !== null) { + $this->OrderField = $param["OrderField"]; + } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new Filter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } + + if (array_key_exists("TagFilters",$param) and $param["TagFilters"] !== null) { + $this->TagFilters = []; + foreach ($param["TagFilters"] as $key => $value){ + $obj = new TagFilter(); + $obj->deserialize($value); + array_push($this->TagFilters, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeProxyConnectionPoolConfResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebooksResponse.php similarity index 68% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeProxyConnectionPoolConfResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebooksResponse.php index 80a353537..94774ee17 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeProxyConnectionPoolConfResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/DescribeNotebooksResponse.php @@ -14,36 +14,36 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Tione\V20211111\Models; use TencentCloud\Common\AbstractModel; /** - * DescribeProxyConnectionPoolConf返回参数结构体 + * DescribeNotebooks返回参数结构体 * - * @method integer getCount() 获取配置规格数量 + * @method array getNotebookSet() 获取详情 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setCount(integer $Count) 设置配置规格数量 + * @method void setNotebookSet(array $NotebookSet) 设置详情 注意:此字段可能返回 null,表示取不到有效值。 - * @method PoolConf getPoolConf() 获取连接池配置规格 + * @method integer getTotalCount() 获取总条数 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setPoolConf(PoolConf $PoolConf) 设置连接池配置规格 + * @method void setTotalCount(integer $TotalCount) 设置总条数 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class DescribeProxyConnectionPoolConfResponse extends AbstractModel +class DescribeNotebooksResponse extends AbstractModel { /** - * @var integer 配置规格数量 + * @var array 详情 注意:此字段可能返回 null,表示取不到有效值。 */ - public $Count; + public $NotebookSet; /** - * @var PoolConf 连接池配置规格 + * @var integer 总条数 注意:此字段可能返回 null,表示取不到有效值。 */ - public $PoolConf; + public $TotalCount; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -51,9 +51,9 @@ class DescribeProxyConnectionPoolConfResponse extends AbstractModel public $RequestId; /** - * @param integer $Count 配置规格数量 + * @param array $NotebookSet 详情 注意:此字段可能返回 null,表示取不到有效值。 - * @param PoolConf $PoolConf 连接池配置规格 + * @param integer $TotalCount 总条数 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -70,13 +70,17 @@ class DescribeProxyConnectionPoolConfResponse extends AbstractModel if ($param === null) { return; } - if (array_key_exists("Count",$param) and $param["Count"] !== null) { - $this->Count = $param["Count"]; + if (array_key_exists("NotebookSet",$param) and $param["NotebookSet"] !== null) { + $this->NotebookSet = []; + foreach ($param["NotebookSet"] as $key => $value){ + $obj = new NotebookSetItem(); + $obj->deserialize($value); + array_push($this->NotebookSet, $obj); + } } - if (array_key_exists("PoolConf",$param) and $param["PoolConf"] !== null) { - $this->PoolConf = new PoolConf(); - $this->PoolConf->deserialize($param["PoolConf"]); + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; } if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Message.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Message.php new file mode 100644 index 000000000..35c2ac53d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Message.php @@ -0,0 +1,73 @@ +Role = $param["Role"]; + } + + if (array_key_exists("Content",$param) and $param["Content"] !== null) { + $this->Content = $param["Content"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookRequest.php new file mode 100644 index 000000000..ceddd550f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookRequest.php @@ -0,0 +1,355 @@ +Id = $param["Id"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("ChargeType",$param) and $param["ChargeType"] !== null) { + $this->ChargeType = $param["ChargeType"]; + } + + if (array_key_exists("ResourceConf",$param) and $param["ResourceConf"] !== null) { + $this->ResourceConf = new ResourceConf(); + $this->ResourceConf->deserialize($param["ResourceConf"]); + } + + if (array_key_exists("LogEnable",$param) and $param["LogEnable"] !== null) { + $this->LogEnable = $param["LogEnable"]; + } + + if (array_key_exists("AutoStopping",$param) and $param["AutoStopping"] !== null) { + $this->AutoStopping = $param["AutoStopping"]; + } + + if (array_key_exists("DirectInternetAccess",$param) and $param["DirectInternetAccess"] !== null) { + $this->DirectInternetAccess = $param["DirectInternetAccess"]; + } + + if (array_key_exists("RootAccess",$param) and $param["RootAccess"] !== null) { + $this->RootAccess = $param["RootAccess"]; + } + + if (array_key_exists("ResourceGroupId",$param) and $param["ResourceGroupId"] !== null) { + $this->ResourceGroupId = $param["ResourceGroupId"]; + } + + if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { + $this->VpcId = $param["VpcId"]; + } + + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; + } + + if (array_key_exists("VolumeSizeInGB",$param) and $param["VolumeSizeInGB"] !== null) { + $this->VolumeSizeInGB = $param["VolumeSizeInGB"]; + } + + if (array_key_exists("VolumeSourceType",$param) and $param["VolumeSourceType"] !== null) { + $this->VolumeSourceType = $param["VolumeSourceType"]; + } + + if (array_key_exists("VolumeSourceCFS",$param) and $param["VolumeSourceCFS"] !== null) { + $this->VolumeSourceCFS = new CFSConfig(); + $this->VolumeSourceCFS->deserialize($param["VolumeSourceCFS"]); + } + + if (array_key_exists("LogConfig",$param) and $param["LogConfig"] !== null) { + $this->LogConfig = new LogConfig(); + $this->LogConfig->deserialize($param["LogConfig"]); + } + + if (array_key_exists("LifecycleScriptId",$param) and $param["LifecycleScriptId"] !== null) { + $this->LifecycleScriptId = $param["LifecycleScriptId"]; + } + + if (array_key_exists("DefaultCodeRepoId",$param) and $param["DefaultCodeRepoId"] !== null) { + $this->DefaultCodeRepoId = $param["DefaultCodeRepoId"]; + } + + if (array_key_exists("AdditionalCodeRepoIds",$param) and $param["AdditionalCodeRepoIds"] !== null) { + $this->AdditionalCodeRepoIds = $param["AdditionalCodeRepoIds"]; + } + + if (array_key_exists("AutomaticStopTime",$param) and $param["AutomaticStopTime"] !== null) { + $this->AutomaticStopTime = $param["AutomaticStopTime"]; + } + + if (array_key_exists("Tags",$param) and $param["Tags"] !== null) { + $this->Tags = []; + foreach ($param["Tags"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->Tags, $obj); + } + } + + if (array_key_exists("DataConfigs",$param) and $param["DataConfigs"] !== null) { + $this->DataConfigs = []; + foreach ($param["DataConfigs"] as $key => $value){ + $obj = new DataConfig(); + $obj->deserialize($value); + array_push($this->DataConfigs, $obj); + } + } + + if (array_key_exists("ImageInfo",$param) and $param["ImageInfo"] !== null) { + $this->ImageInfo = new ImageInfo(); + $this->ImageInfo->deserialize($param["ImageInfo"]); + } + + if (array_key_exists("ImageType",$param) and $param["ImageType"] !== null) { + $this->ImageType = $param["ImageType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookResponse.php new file mode 100644 index 000000000..e405b0446 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookTagsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookTagsRequest.php new file mode 100644 index 000000000..6d2f68b0d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookTagsRequest.php @@ -0,0 +1,70 @@ +Id = $param["Id"]; + } + + if (array_key_exists("Tags",$param) and $param["Tags"] !== null) { + $this->Tags = []; + foreach ($param["Tags"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->Tags, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookTagsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookTagsResponse.php new file mode 100644 index 000000000..418afdec6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ModifyNotebookTagsResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookDetail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookDetail.php new file mode 100644 index 000000000..ec354cd89 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookDetail.php @@ -0,0 +1,615 @@ +Id = $param["Id"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("LifecycleScriptId",$param) and $param["LifecycleScriptId"] !== null) { + $this->LifecycleScriptId = $param["LifecycleScriptId"]; + } + + if (array_key_exists("PodName",$param) and $param["PodName"] !== null) { + $this->PodName = $param["PodName"]; + } + + if (array_key_exists("UpdateTime",$param) and $param["UpdateTime"] !== null) { + $this->UpdateTime = $param["UpdateTime"]; + } + + if (array_key_exists("DirectInternetAccess",$param) and $param["DirectInternetAccess"] !== null) { + $this->DirectInternetAccess = $param["DirectInternetAccess"]; + } + + if (array_key_exists("ResourceGroupId",$param) and $param["ResourceGroupId"] !== null) { + $this->ResourceGroupId = $param["ResourceGroupId"]; + } + + if (array_key_exists("Tags",$param) and $param["Tags"] !== null) { + $this->Tags = []; + foreach ($param["Tags"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->Tags, $obj); + } + } + + if (array_key_exists("AutoStopping",$param) and $param["AutoStopping"] !== null) { + $this->AutoStopping = $param["AutoStopping"]; + } + + if (array_key_exists("AdditionalCodeRepoIds",$param) and $param["AdditionalCodeRepoIds"] !== null) { + $this->AdditionalCodeRepoIds = $param["AdditionalCodeRepoIds"]; + } + + if (array_key_exists("AutomaticStopTime",$param) and $param["AutomaticStopTime"] !== null) { + $this->AutomaticStopTime = $param["AutomaticStopTime"]; + } + + if (array_key_exists("ResourceConf",$param) and $param["ResourceConf"] !== null) { + $this->ResourceConf = new ResourceConf(); + $this->ResourceConf->deserialize($param["ResourceConf"]); + } + + if (array_key_exists("DefaultCodeRepoId",$param) and $param["DefaultCodeRepoId"] !== null) { + $this->DefaultCodeRepoId = $param["DefaultCodeRepoId"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("LogEnable",$param) and $param["LogEnable"] !== null) { + $this->LogEnable = $param["LogEnable"]; + } + + if (array_key_exists("LogConfig",$param) and $param["LogConfig"] !== null) { + $this->LogConfig = new LogConfig(); + $this->LogConfig->deserialize($param["LogConfig"]); + } + + if (array_key_exists("VpcId",$param) and $param["VpcId"] !== null) { + $this->VpcId = $param["VpcId"]; + } + + if (array_key_exists("SubnetId",$param) and $param["SubnetId"] !== null) { + $this->SubnetId = $param["SubnetId"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("RuntimeInSeconds",$param) and $param["RuntimeInSeconds"] !== null) { + $this->RuntimeInSeconds = $param["RuntimeInSeconds"]; + } + + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { + $this->CreateTime = $param["CreateTime"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("ChargeStatus",$param) and $param["ChargeStatus"] !== null) { + $this->ChargeStatus = $param["ChargeStatus"]; + } + + if (array_key_exists("RootAccess",$param) and $param["RootAccess"] !== null) { + $this->RootAccess = $param["RootAccess"]; + } + + if (array_key_exists("BillingInfos",$param) and $param["BillingInfos"] !== null) { + $this->BillingInfos = $param["BillingInfos"]; + } + + if (array_key_exists("VolumeSizeInGB",$param) and $param["VolumeSizeInGB"] !== null) { + $this->VolumeSizeInGB = $param["VolumeSizeInGB"]; + } + + if (array_key_exists("FailureReason",$param) and $param["FailureReason"] !== null) { + $this->FailureReason = $param["FailureReason"]; + } + + if (array_key_exists("ChargeType",$param) and $param["ChargeType"] !== null) { + $this->ChargeType = $param["ChargeType"]; + } + + if (array_key_exists("InstanceTypeAlias",$param) and $param["InstanceTypeAlias"] !== null) { + $this->InstanceTypeAlias = $param["InstanceTypeAlias"]; + } + + if (array_key_exists("ResourceGroupName",$param) and $param["ResourceGroupName"] !== null) { + $this->ResourceGroupName = $param["ResourceGroupName"]; + } + + if (array_key_exists("VolumeSourceType",$param) and $param["VolumeSourceType"] !== null) { + $this->VolumeSourceType = $param["VolumeSourceType"]; + } + + if (array_key_exists("VolumeSourceCFS",$param) and $param["VolumeSourceCFS"] !== null) { + $this->VolumeSourceCFS = new CFSConfig(); + $this->VolumeSourceCFS->deserialize($param["VolumeSourceCFS"]); + } + + if (array_key_exists("DataConfigs",$param) and $param["DataConfigs"] !== null) { + $this->DataConfigs = []; + foreach ($param["DataConfigs"] as $key => $value){ + $obj = new DataConfig(); + $obj->deserialize($value); + array_push($this->DataConfigs, $obj); + } + } + + if (array_key_exists("Message",$param) and $param["Message"] !== null) { + $this->Message = $param["Message"]; + } + + if (array_key_exists("DataSource",$param) and $param["DataSource"] !== null) { + $this->DataSource = $param["DataSource"]; + } + + if (array_key_exists("ImageInfo",$param) and $param["ImageInfo"] !== null) { + $this->ImageInfo = new ImageInfo(); + $this->ImageInfo->deserialize($param["ImageInfo"]); + } + + if (array_key_exists("ImageType",$param) and $param["ImageType"] !== null) { + $this->ImageType = $param["ImageType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookImageRecord.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookImageRecord.php new file mode 100644 index 000000000..bfe5e1389 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookImageRecord.php @@ -0,0 +1,153 @@ +RecordId = $param["RecordId"]; + } + + if (array_key_exists("ImageUrl",$param) and $param["ImageUrl"] !== null) { + $this->ImageUrl = $param["ImageUrl"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { + $this->CreateTime = $param["CreateTime"]; + } + + if (array_key_exists("Message",$param) and $param["Message"] !== null) { + $this->Message = $param["Message"]; + } + + if (array_key_exists("InstanceId",$param) and $param["InstanceId"] !== null) { + $this->InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("Kernels",$param) and $param["Kernels"] !== null) { + $this->Kernels = $param["Kernels"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookSetItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookSetItem.php new file mode 100644 index 000000000..86afcf1a6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/NotebookSetItem.php @@ -0,0 +1,432 @@ +Id = $param["Id"]; + } + + if (array_key_exists("Name",$param) and $param["Name"] !== null) { + $this->Name = $param["Name"]; + } + + if (array_key_exists("ChargeType",$param) and $param["ChargeType"] !== null) { + $this->ChargeType = $param["ChargeType"]; + } + + if (array_key_exists("ResourceConf",$param) and $param["ResourceConf"] !== null) { + $this->ResourceConf = new ResourceConf(); + $this->ResourceConf->deserialize($param["ResourceConf"]); + } + + if (array_key_exists("ResourceGroupId",$param) and $param["ResourceGroupId"] !== null) { + $this->ResourceGroupId = $param["ResourceGroupId"]; + } + + if (array_key_exists("VolumeSizeInGB",$param) and $param["VolumeSizeInGB"] !== null) { + $this->VolumeSizeInGB = $param["VolumeSizeInGB"]; + } + + if (array_key_exists("BillingInfos",$param) and $param["BillingInfos"] !== null) { + $this->BillingInfos = $param["BillingInfos"]; + } + + if (array_key_exists("Tags",$param) and $param["Tags"] !== null) { + $this->Tags = []; + foreach ($param["Tags"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->Tags, $obj); + } + } + + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { + $this->CreateTime = $param["CreateTime"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("UpdateTime",$param) and $param["UpdateTime"] !== null) { + $this->UpdateTime = $param["UpdateTime"]; + } + + if (array_key_exists("RuntimeInSeconds",$param) and $param["RuntimeInSeconds"] !== null) { + $this->RuntimeInSeconds = $param["RuntimeInSeconds"]; + } + + if (array_key_exists("ChargeStatus",$param) and $param["ChargeStatus"] !== null) { + $this->ChargeStatus = $param["ChargeStatus"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("FailureReason",$param) and $param["FailureReason"] !== null) { + $this->FailureReason = $param["FailureReason"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("PodName",$param) and $param["PodName"] !== null) { + $this->PodName = $param["PodName"]; + } + + if (array_key_exists("InstanceTypeAlias",$param) and $param["InstanceTypeAlias"] !== null) { + $this->InstanceTypeAlias = $param["InstanceTypeAlias"]; + } + + if (array_key_exists("ResourceGroupName",$param) and $param["ResourceGroupName"] !== null) { + $this->ResourceGroupName = $param["ResourceGroupName"]; + } + + if (array_key_exists("AutoStopping",$param) and $param["AutoStopping"] !== null) { + $this->AutoStopping = $param["AutoStopping"]; + } + + if (array_key_exists("AutomaticStopTime",$param) and $param["AutomaticStopTime"] !== null) { + $this->AutomaticStopTime = $param["AutomaticStopTime"]; + } + + if (array_key_exists("VolumeSourceType",$param) and $param["VolumeSourceType"] !== null) { + $this->VolumeSourceType = $param["VolumeSourceType"]; + } + + if (array_key_exists("VolumeSourceCFS",$param) and $param["VolumeSourceCFS"] !== null) { + $this->VolumeSourceCFS = new CFSConfig(); + $this->VolumeSourceCFS->deserialize($param["VolumeSourceCFS"]); + } + + if (array_key_exists("Message",$param) and $param["Message"] !== null) { + $this->Message = $param["Message"]; + } + + if (array_key_exists("UserTypes",$param) and $param["UserTypes"] !== null) { + $this->UserTypes = $param["UserTypes"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ResourceConf.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ResourceConf.php new file mode 100644 index 000000000..3a9beb214 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/ResourceConf.php @@ -0,0 +1,185 @@ +Cpu = $param["Cpu"]; + } + + if (array_key_exists("Memory",$param) and $param["Memory"] !== null) { + $this->Memory = $param["Memory"]; + } + + if (array_key_exists("Gpu",$param) and $param["Gpu"] !== null) { + $this->Gpu = $param["Gpu"]; + } + + if (array_key_exists("GpuType",$param) and $param["GpuType"] !== null) { + $this->GpuType = $param["GpuType"]; + } + + if (array_key_exists("InstanceType",$param) and $param["InstanceType"] !== null) { + $this->InstanceType = $param["InstanceType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StartNotebookRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StartNotebookRequest.php new file mode 100644 index 000000000..81e21137d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StartNotebookRequest.php @@ -0,0 +1,53 @@ +Id = $param["Id"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StartNotebookResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StartNotebookResponse.php new file mode 100644 index 000000000..5746ba651 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StartNotebookResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopCreatingImageRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopCreatingImageRequest.php new file mode 100644 index 000000000..7830c3d71 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopCreatingImageRequest.php @@ -0,0 +1,53 @@ +RecordId = $param["RecordId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopCreatingImageResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopCreatingImageResponse.php new file mode 100644 index 000000000..db1d4d4a6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopCreatingImageResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopNotebookRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopNotebookRequest.php new file mode 100644 index 000000000..7064cecd0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopNotebookRequest.php @@ -0,0 +1,53 @@ +Id = $param["Id"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopNotebookResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopNotebookResponse.php new file mode 100644 index 000000000..c87297b5d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/StopNotebookResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Usage.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Usage.php new file mode 100644 index 000000000..9d8d573ed --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/Models/Usage.php @@ -0,0 +1,89 @@ +CompletionTokens = $param["CompletionTokens"]; + } + + if (array_key_exists("PromptTokens",$param) and $param["PromptTokens"] !== null) { + $this->PromptTokens = $param["PromptTokens"]; + } + + if (array_key_exists("TotalTokens",$param) and $param["TotalTokens"] !== null) { + $this->TotalTokens = $param["TotalTokens"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/TioneClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/TioneClient.php index 47db052e1..8d996e2d2 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/TioneClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tione/V20211111/TioneClient.php @@ -23,10 +23,13 @@ use TencentCloud\Common\Credential; use TencentCloud\Tione\V20211111\Models as Models; /** + * @method Models\ChatCompletionResponse ChatCompletion(Models\ChatCompletionRequest $req) 与大模型聊天 * @method Models\CreateBatchModelAccTasksResponse CreateBatchModelAccTasks(Models\CreateBatchModelAccTasksRequest $req) 批量创建模型加速任务 * @method Models\CreateBatchTaskResponse CreateBatchTask(Models\CreateBatchTaskRequest $req) 创建跑批任务 * @method Models\CreateDatasetResponse CreateDataset(Models\CreateDatasetRequest $req) 创建数据集 * @method Models\CreateModelServiceResponse CreateModelService(Models\CreateModelServiceRequest $req) 用于创建、发布一个新的模型服务 + * @method Models\CreateNotebookResponse CreateNotebook(Models\CreateNotebookRequest $req) 创建Notebook + * @method Models\CreateNotebookImageResponse CreateNotebookImage(Models\CreateNotebookImageRequest $req) 保存镜像 * @method Models\CreateOptimizedModelResponse CreateOptimizedModel(Models\CreateOptimizedModelRequest $req) 保存优化模型 * @method Models\CreateTrainingModelResponse CreateTrainingModel(Models\CreateTrainingModelRequest $req) 导入模型 * @method Models\CreateTrainingTaskResponse CreateTrainingTask(Models\CreateTrainingTaskRequest $req) 创建模型训练任务 @@ -35,6 +38,8 @@ use TencentCloud\Tione\V20211111\Models as Models; * @method Models\DeleteModelAccelerateTaskResponse DeleteModelAccelerateTask(Models\DeleteModelAccelerateTaskRequest $req) 删除模型加速任务 * @method Models\DeleteModelServiceResponse DeleteModelService(Models\DeleteModelServiceRequest $req) 根据服务id删除模型服务 * @method Models\DeleteModelServiceGroupResponse DeleteModelServiceGroup(Models\DeleteModelServiceGroupRequest $req) 根据服务组id删除服务组下所有模型服务 + * @method Models\DeleteNotebookResponse DeleteNotebook(Models\DeleteNotebookRequest $req) 删除Notebook + * @method Models\DeleteNotebookImageRecordResponse DeleteNotebookImageRecord(Models\DeleteNotebookImageRecordRequest $req) 删除notebook镜像保存记录 * @method Models\DeleteTrainingModelResponse DeleteTrainingModel(Models\DeleteTrainingModelRequest $req) 删除模型 * @method Models\DeleteTrainingModelVersionResponse DeleteTrainingModelVersion(Models\DeleteTrainingModelVersionRequest $req) 删除模型版本 * @method Models\DeleteTrainingTaskResponse DeleteTrainingTask(Models\DeleteTrainingTaskRequest $req) 删除训练任务 @@ -61,6 +66,10 @@ use TencentCloud\Tione\V20211111\Models as Models; * @method Models\DescribeModelServiceHistoryResponse DescribeModelServiceHistory(Models\DescribeModelServiceHistoryRequest $req) 展示服务的历史版本 * @method Models\DescribeModelServiceHotUpdatedResponse DescribeModelServiceHotUpdated(Models\DescribeModelServiceHotUpdatedRequest $req) 用于查询模型服务能否开启热更新 * @method Models\DescribeModelServicesResponse DescribeModelServices(Models\DescribeModelServicesRequest $req) 查询多个服务 + * @method Models\DescribeNotebookResponse DescribeNotebook(Models\DescribeNotebookRequest $req) Notebook详情 + * @method Models\DescribeNotebookImageKernelsResponse DescribeNotebookImageKernels(Models\DescribeNotebookImageKernelsRequest $req) 查询镜像kernel + * @method Models\DescribeNotebookImageRecordsResponse DescribeNotebookImageRecords(Models\DescribeNotebookImageRecordsRequest $req) 查看notebook镜像保存记录 + * @method Models\DescribeNotebooksResponse DescribeNotebooks(Models\DescribeNotebooksRequest $req) Notebook列表 * @method Models\DescribeTrainingFrameworksResponse DescribeTrainingFrameworks(Models\DescribeTrainingFrameworksRequest $req) 训练框架列表 * @method Models\DescribeTrainingMetricsResponse DescribeTrainingMetrics(Models\DescribeTrainingMetricsRequest $req) 查询训练自定义指标 * @method Models\DescribeTrainingModelVersionResponse DescribeTrainingModelVersion(Models\DescribeTrainingModelVersionRequest $req) 查询模型版本 @@ -71,12 +80,17 @@ use TencentCloud\Tione\V20211111\Models as Models; * @method Models\DescribeTrainingTasksResponse DescribeTrainingTasks(Models\DescribeTrainingTasksRequest $req) 训练任务列表 * @method Models\ModifyModelServiceResponse ModifyModelService(Models\ModifyModelServiceRequest $req) 用于更新模型服务 * @method Models\ModifyModelServicePartialConfigResponse ModifyModelServicePartialConfig(Models\ModifyModelServicePartialConfigRequest $req) 增量更新在线推理服务的部分配置,不更新的配置项不需要传入 + * @method Models\ModifyNotebookResponse ModifyNotebook(Models\ModifyNotebookRequest $req) 修改Notebook + * @method Models\ModifyNotebookTagsResponse ModifyNotebookTags(Models\ModifyNotebookTagsRequest $req) 修改Notebook标签 * @method Models\ModifyServiceGroupWeightsResponse ModifyServiceGroupWeights(Models\ModifyServiceGroupWeightsRequest $req) 更新推理服务组流量分配 * @method Models\PushTrainingMetricsResponse PushTrainingMetrics(Models\PushTrainingMetricsRequest $req) 上报训练自定义指标 * @method Models\RestartModelAccelerateTaskResponse RestartModelAccelerateTask(Models\RestartModelAccelerateTaskRequest $req) 重启模型加速任务 + * @method Models\StartNotebookResponse StartNotebook(Models\StartNotebookRequest $req) 启动Notebook * @method Models\StartTrainingTaskResponse StartTrainingTask(Models\StartTrainingTaskRequest $req) 启动模型训练任务 * @method Models\StopBatchTaskResponse StopBatchTask(Models\StopBatchTaskRequest $req) 停止跑批任务 + * @method Models\StopCreatingImageResponse StopCreatingImage(Models\StopCreatingImageRequest $req) 停止保存镜像 * @method Models\StopModelAccelerateTaskResponse StopModelAccelerateTask(Models\StopModelAccelerateTaskRequest $req) 停止模型加速任务 + * @method Models\StopNotebookResponse StopNotebook(Models\StopNotebookRequest $req) 停止Notebook * @method Models\StopTrainingTaskResponse StopTrainingTask(Models\StopTrainingTaskRequest $req) 停止模型训练任务 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeByUrlRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeByUrlRequest.php new file mode 100644 index 000000000..19d3b9e99 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeByUrlRequest.php @@ -0,0 +1,65 @@ +SdkAppId = $param["SdkAppId"]; + } + + if (array_key_exists("Url",$param) and $param["Url"] !== null) { + $this->Url = $param["Url"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeByUrlResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeByUrlResponse.php new file mode 100644 index 000000000..20610b3bb --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeByUrlResponse.php @@ -0,0 +1,105 @@ +Progress = $param["Progress"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("TaskId",$param) and $param["TaskId"] !== null) { + $this->TaskId = $param["TaskId"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeResponse.php index 6afc5ab9a..392cfcafe 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/DescribeTranscodeResponse.php @@ -65,6 +65,18 @@ use TencentCloud\Common\AbstractModel; * @method string getExt() 获取文档制作方式(内测体验) 注意:此字段可能返回 null,表示取不到有效值。 * @method void setExt(string $Ext) 设置文档制作方式(内测体验) +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getCreateTime() 获取文档转码任务创建时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setCreateTime(integer $CreateTime) 设置文档转码任务创建时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getAssignTime() 获取文档转码任务分配时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setAssignTime(integer $AssignTime) 设置文档转码任务分配时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getFinishedTime() 获取文档转码任务完成时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setFinishedTime(integer $FinishedTime) 设置文档转码任务完成时间,单位s 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -142,6 +154,24 @@ class DescribeTranscodeResponse extends AbstractModel */ public $Ext; + /** + * @var integer 文档转码任务创建时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $CreateTime; + + /** + * @var integer 文档转码任务分配时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $AssignTime; + + /** + * @var integer 文档转码任务完成时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $FinishedTime; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -170,6 +200,12 @@ class DescribeTranscodeResponse extends AbstractModel * @param string $ResourceListUrl 资源清单文件下载URL(内测体验) 注意:此字段可能返回 null,表示取不到有效值。 * @param string $Ext 文档制作方式(内测体验) +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $CreateTime 文档转码任务创建时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $AssignTime 文档转码任务分配时间,单位s +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $FinishedTime 文档转码任务完成时间,单位s 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -234,6 +270,18 @@ class DescribeTranscodeResponse extends AbstractModel $this->Ext = $param["Ext"]; } + if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { + $this->CreateTime = $param["CreateTime"]; + } + + if (array_key_exists("AssignTime",$param) and $param["AssignTime"] !== null) { + $this->AssignTime = $param["AssignTime"]; + } + + if (array_key_exists("FinishedTime",$param) and $param["FinishedTime"] !== null) { + $this->FinishedTime = $param["FinishedTime"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/SnapshotCOS.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/SnapshotCOS.php index c90fc2d9c..ccf5468d2 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/SnapshotCOS.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/Models/SnapshotCOS.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * 板书文件存储cos参数 * - * @method integer getUin() 获取cos所在腾讯云帐号uin - * @method void setUin(integer $Uin) 设置cos所在腾讯云帐号uin + * @method integer getUin() 获取cos所在腾讯云账号uin + * @method void setUin(integer $Uin) 设置cos所在腾讯云账号uin * @method string getRegion() 获取cos所在地区 * @method void setRegion(string $Region) 设置cos所在地区 * @method string getBucket() 获取cos存储桶名称 @@ -34,7 +34,7 @@ use TencentCloud\Common\AbstractModel; class SnapshotCOS extends AbstractModel { /** - * @var integer cos所在腾讯云帐号uin + * @var integer cos所在腾讯云账号uin */ public $Uin; @@ -59,7 +59,7 @@ class SnapshotCOS extends AbstractModel public $Domain; /** - * @param integer $Uin cos所在腾讯云帐号uin + * @param integer $Uin cos所在腾讯云账号uin * @param string $Region cos所在地区 * @param string $Bucket cos存储桶名称 * @param string $TargetDir 板书文件存储根目录 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/TiwClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/TiwClient.php index 3547a6dcd..69267b264 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/TiwClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tiw/V20190919/TiwClient.php @@ -56,6 +56,7 @@ use TencentCloud\Tiw\V20190919\Models as Models; 2. 由于统计延迟等原因,暂时不支持查询当天数据,建议在次日上午7点以后再来查询前一天的用量,例如在10月27日上午7点后,再来查询到10月26日整天的用量 * @method Models\DescribeTranscodeResponse DescribeTranscode(Models\DescribeTranscodeRequest $req) 查询文档转码任务的执行进度与转码结果 + * @method Models\DescribeTranscodeByUrlResponse DescribeTranscodeByUrl(Models\DescribeTranscodeByUrlRequest $req) 通过文档URL查询转码任务,返回最近一次的转码任务状态 * @method Models\DescribeTranscodeCallbackResponse DescribeTranscodeCallback(Models\DescribeTranscodeCallbackRequest $req) 查询文档转码回调地址 * @method Models\DescribeTranscodeSearchResponse DescribeTranscodeSearch(Models\DescribeTranscodeSearchRequest $req) 按文档名称搜索转码任务 * @method Models\DescribeUsageSummaryResponse DescribeUsageSummary(Models\DescribeUsageSummaryRequest $req) 查询指定时间段内子产品的用量汇总 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ClusterProperty.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ClusterProperty.php new file mode 100644 index 000000000..9020cf8f4 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ClusterProperty.php @@ -0,0 +1,57 @@ +NodeNameType = $param["NodeNameType"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/InstanceAdvancedSettings.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/InstanceAdvancedSettings.php index a23bdc7a8..d0bb155a6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/InstanceAdvancedSettings.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/InstanceAdvancedSettings.php @@ -24,9 +24,9 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setDesiredPodNumber(integer $DesiredPodNumber) 设置该节点属于podCIDR大小自定义模式时,可指定节点上运行的pod数量上限 注意:此字段可能返回 null,表示取不到有效值。 - * @method GPUArgs getGPUArgs() 获取GPU驱动相关参数 + * @method GPUArgs getGPUArgs() 获取GPU驱动相关参数,相关的GPU参数获取:https://cloud.tencent.com/document/api/213/15715 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setGPUArgs(GPUArgs $GPUArgs) 设置GPU驱动相关参数 + * @method void setGPUArgs(GPUArgs $GPUArgs) 设置GPU驱动相关参数,相关的GPU参数获取:https://cloud.tencent.com/document/api/213/15715 注意:此字段可能返回 null,表示取不到有效值。 * @method string getPreStartUserScript() 获取base64 编码的用户脚本,在初始化节点之前执行,目前只对添加已有节点生效 注意:此字段可能返回 null,表示取不到有效值。 @@ -74,7 +74,7 @@ class InstanceAdvancedSettings extends AbstractModel public $DesiredPodNumber; /** - * @var GPUArgs GPU驱动相关参数 + * @var GPUArgs GPU驱动相关参数,相关的GPU参数获取:https://cloud.tencent.com/document/api/213/15715 注意:此字段可能返回 null,表示取不到有效值。 */ public $GPUArgs; @@ -136,7 +136,7 @@ class InstanceAdvancedSettings extends AbstractModel /** * @param integer $DesiredPodNumber 该节点属于podCIDR大小自定义模式时,可指定节点上运行的pod数量上限 注意:此字段可能返回 null,表示取不到有效值。 - * @param GPUArgs $GPUArgs GPU驱动相关参数 + * @param GPUArgs $GPUArgs GPU驱动相关参数,相关的GPU参数获取:https://cloud.tencent.com/document/api/213/15715 注意:此字段可能返回 null,表示取不到有效值。 * @param string $PreStartUserScript base64 编码的用户脚本,在初始化节点之前执行,目前只对添加已有节点生效 注意:此字段可能返回 null,表示取不到有效值。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ModifyClusterAttributeRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ModifyClusterAttributeRequest.php index 81cf15f15..1928791c9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ModifyClusterAttributeRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ModifyClusterAttributeRequest.php @@ -34,6 +34,8 @@ use TencentCloud\Common\AbstractModel; * @method void setAutoUpgradeClusterLevel(AutoUpgradeClusterLevel $AutoUpgradeClusterLevel) 设置自动变配集群等级 * @method boolean getQGPUShareEnable() 获取是否开启QGPU共享 * @method void setQGPUShareEnable(boolean $QGPUShareEnable) 设置是否开启QGPU共享 + * @method ClusterProperty getClusterProperty() 获取集群属性 + * @method void setClusterProperty(ClusterProperty $ClusterProperty) 设置集群属性 */ class ModifyClusterAttributeRequest extends AbstractModel { @@ -72,6 +74,11 @@ class ModifyClusterAttributeRequest extends AbstractModel */ public $QGPUShareEnable; + /** + * @var ClusterProperty 集群属性 + */ + public $ClusterProperty; + /** * @param string $ClusterId 集群ID * @param integer $ProjectId 集群所属项目 @@ -80,6 +87,7 @@ class ModifyClusterAttributeRequest extends AbstractModel * @param string $ClusterLevel 集群等级 * @param AutoUpgradeClusterLevel $AutoUpgradeClusterLevel 自动变配集群等级 * @param boolean $QGPUShareEnable 是否开启QGPU共享 + * @param ClusterProperty $ClusterProperty 集群属性 */ function __construct() { @@ -122,5 +130,10 @@ class ModifyClusterAttributeRequest extends AbstractModel if (array_key_exists("QGPUShareEnable",$param) and $param["QGPUShareEnable"] !== null) { $this->QGPUShareEnable = $param["QGPUShareEnable"]; } + + if (array_key_exists("ClusterProperty",$param) and $param["ClusterProperty"] !== null) { + $this->ClusterProperty = new ClusterProperty(); + $this->ClusterProperty->deserialize($param["ClusterProperty"]); + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ModifyClusterAttributeResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ModifyClusterAttributeResponse.php index 258850b3a..41a455524 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ModifyClusterAttributeResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tke/V20180525/Models/ModifyClusterAttributeResponse.php @@ -43,6 +43,10 @@ use TencentCloud\Common\AbstractModel; * @method boolean getQGPUShareEnable() 获取是否开启QGPU共享 注意:此字段可能返回 null,表示取不到有效值。 * @method void setQGPUShareEnable(boolean $QGPUShareEnable) 设置是否开启QGPU共享 +注意:此字段可能返回 null,表示取不到有效值。 + * @method ClusterProperty getClusterProperty() 获取集群属性 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setClusterProperty(ClusterProperty $ClusterProperty) 设置集群属性 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -85,6 +89,12 @@ class ModifyClusterAttributeResponse extends AbstractModel */ public $QGPUShareEnable; + /** + * @var ClusterProperty 集群属性 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ClusterProperty; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -102,6 +112,8 @@ class ModifyClusterAttributeResponse extends AbstractModel * @param AutoUpgradeClusterLevel $AutoUpgradeClusterLevel 自动变配集群等级 注意:此字段可能返回 null,表示取不到有效值。 * @param boolean $QGPUShareEnable 是否开启QGPU共享 +注意:此字段可能返回 null,表示取不到有效值。 + * @param ClusterProperty $ClusterProperty 集群属性 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -143,6 +155,11 @@ class ModifyClusterAttributeResponse extends AbstractModel $this->QGPUShareEnable = $param["QGPUShareEnable"]; } + if (array_key_exists("ClusterProperty",$param) and $param["ClusterProperty"] !== null) { + $this->ClusterProperty = new ClusterProperty(); + $this->ClusterProperty->deserialize($param["ClusterProperty"]); + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeInstanceListRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeInstanceListRequest.php new file mode 100644 index 000000000..81144493d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeInstanceListRequest.php @@ -0,0 +1,99 @@ +Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new Filter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } + + if (array_key_exists("TagFilters",$param) and $param["TagFilters"] !== null) { + $this->TagFilters = []; + foreach ($param["TagFilters"] as $key => $value){ + $obj = new TagFilter(); + $obj->deserialize($value); + array_push($this->TagFilters, $obj); + } + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeWordItemsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeInstanceListResponse.php similarity index 70% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeWordItemsResponse.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeInstanceListResponse.php index 12fb18bbc..bc92cc3bf 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeWordItemsResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeInstanceListResponse.php @@ -14,33 +14,33 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Trocket\V20230308\Models; use TencentCloud\Common\AbstractModel; /** - * DescribeWordItems返回参数结构体 + * DescribeInstanceList返回参数结构体 * - * @method integer getTotalCount() 获取词条记录总条数。 - * @method void setTotalCount(integer $TotalCount) 设置词条记录总条数。 - * @method array getWordItems() 获取词条信息列表。 + * @method integer getTotalCount() 获取查询总数 注意:此字段可能返回 null,表示取不到有效值。 - * @method void setWordItems(array $WordItems) 设置词条信息列表。 + * @method void setTotalCount(integer $TotalCount) 设置查询总数 注意:此字段可能返回 null,表示取不到有效值。 + * @method array getData() 获取实例列表 + * @method void setData(array $Data) 设置实例列表 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ -class DescribeWordItemsResponse extends AbstractModel +class DescribeInstanceListResponse extends AbstractModel { /** - * @var integer 词条记录总条数。 + * @var integer 查询总数 +注意:此字段可能返回 null,表示取不到有效值。 */ public $TotalCount; /** - * @var array 词条信息列表。 -注意:此字段可能返回 null,表示取不到有效值。 + * @var array 实例列表 */ - public $WordItems; + public $Data; /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -48,9 +48,9 @@ class DescribeWordItemsResponse extends AbstractModel public $RequestId; /** - * @param integer $TotalCount 词条记录总条数。 - * @param array $WordItems 词条信息列表。 + * @param integer $TotalCount 查询总数 注意:此字段可能返回 null,表示取不到有效值。 + * @param array $Data 实例列表 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -70,12 +70,12 @@ class DescribeWordItemsResponse extends AbstractModel $this->TotalCount = $param["TotalCount"]; } - if (array_key_exists("WordItems",$param) and $param["WordItems"] !== null) { - $this->WordItems = []; - foreach ($param["WordItems"] as $key => $value){ - $obj = new WordItem(); + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new InstanceItem(); $obj->deserialize($value); - array_push($this->WordItems, $obj); + array_push($this->Data, $obj); } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeProxyConnectionPoolConfRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeTopicListRequest.php similarity index 58% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeProxyConnectionPoolConfRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeTopicListRequest.php index 9b6309495..af4439fc6 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Cdb/V20170320/Models/DescribeProxyConnectionPoolConfRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeTopicListRequest.php @@ -14,20 +14,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Cdb\V20170320\Models; +namespace TencentCloud\Trocket\V20230308\Models; use TencentCloud\Common\AbstractModel; /** - * DescribeProxyConnectionPoolConf请求参数结构体 + * DescribeTopicList请求参数结构体 * * @method string getInstanceId() 获取实例ID * @method void setInstanceId(string $InstanceId) 设置实例ID - * @method integer getOffset() 获取分页查询偏移量 - * @method void setOffset(integer $Offset) 设置分页查询偏移量 - * @method integer getLimit() 获取分页查询限制 - * @method void setLimit(integer $Limit) 设置分页查询限制 + * @method integer getOffset() 获取查询起始位置 + * @method void setOffset(integer $Offset) 设置查询起始位置 + * @method integer getLimit() 获取查询结果限制数量 + * @method void setLimit(integer $Limit) 设置查询结果限制数量 + * @method array getFilters() 获取查询条件列表 + * @method void setFilters(array $Filters) 设置查询条件列表 */ -class DescribeProxyConnectionPoolConfRequest extends AbstractModel +class DescribeTopicListRequest extends AbstractModel { /** * @var string 实例ID @@ -35,19 +37,25 @@ class DescribeProxyConnectionPoolConfRequest extends AbstractModel public $InstanceId; /** - * @var integer 分页查询偏移量 + * @var integer 查询起始位置 */ public $Offset; /** - * @var integer 分页查询限制 + * @var integer 查询结果限制数量 */ public $Limit; + /** + * @var array 查询条件列表 + */ + public $Filters; + /** * @param string $InstanceId 实例ID - * @param integer $Offset 分页查询偏移量 - * @param integer $Limit 分页查询限制 + * @param integer $Offset 查询起始位置 + * @param integer $Limit 查询结果限制数量 + * @param array $Filters 查询条件列表 */ function __construct() { @@ -73,5 +81,14 @@ class DescribeProxyConnectionPoolConfRequest extends AbstractModel if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { $this->Limit = $param["Limit"]; } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new Filter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeTopicListResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeTopicListResponse.php new file mode 100644 index 000000000..de30f2d11 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/DescribeTopicListResponse.php @@ -0,0 +1,86 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("Data",$param) and $param["Data"] !== null) { + $this->Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new TopicItem(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/Filter.php similarity index 60% rename from vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictRequest.php rename to vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/Filter.php index 28f550f3f..a96a2b35c 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Nlp/V20190408/Models/DescribeDictRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/Filter.php @@ -14,32 +14,32 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -namespace TencentCloud\Nlp\V20190408\Models; +namespace TencentCloud\Trocket\V20230308\Models; use TencentCloud\Common\AbstractModel; /** - * DescribeDict请求参数结构体 + * 查询过滤器 * - * @method string getDictId() 获取自定义词库ID。 - * @method void setDictId(string $DictId) 设置自定义词库ID。 - * @method string getName() 获取自定义词库名称,模糊搜索。 - * @method void setName(string $Name) 设置自定义词库名称,模糊搜索。 + * @method string getName() 获取过滤条件名 + * @method void setName(string $Name) 设置过滤条件名 + * @method array getValues() 获取过滤条件的值 + * @method void setValues(array $Values) 设置过滤条件的值 */ -class DescribeDictRequest extends AbstractModel +class Filter extends AbstractModel { /** - * @var string 自定义词库ID。 - */ - public $DictId; - - /** - * @var string 自定义词库名称,模糊搜索。 + * @var string 过滤条件名 */ public $Name; /** - * @param string $DictId 自定义词库ID。 - * @param string $Name 自定义词库名称,模糊搜索。 + * @var array 过滤条件的值 + */ + public $Values; + + /** + * @param string $Name 过滤条件名 + * @param array $Values 过滤条件的值 */ function __construct() { @@ -54,12 +54,12 @@ class DescribeDictRequest extends AbstractModel if ($param === null) { return; } - if (array_key_exists("DictId",$param) and $param["DictId"] !== null) { - $this->DictId = $param["DictId"]; - } - if (array_key_exists("Name",$param) and $param["Name"] !== null) { $this->Name = $param["Name"]; } + + if (array_key_exists("Values",$param) and $param["Values"] !== null) { + $this->Values = $param["Values"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/InstanceItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/InstanceItem.php new file mode 100644 index 000000000..38987c218 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/InstanceItem.php @@ -0,0 +1,354 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("InstanceName",$param) and $param["InstanceName"] !== null) { + $this->InstanceName = $param["InstanceName"]; + } + + if (array_key_exists("Version",$param) and $param["Version"] !== null) { + $this->Version = $param["Version"]; + } + + if (array_key_exists("InstanceType",$param) and $param["InstanceType"] !== null) { + $this->InstanceType = $param["InstanceType"]; + } + + if (array_key_exists("InstanceStatus",$param) and $param["InstanceStatus"] !== null) { + $this->InstanceStatus = $param["InstanceStatus"]; + } + + if (array_key_exists("TopicNumLimit",$param) and $param["TopicNumLimit"] !== null) { + $this->TopicNumLimit = $param["TopicNumLimit"]; + } + + if (array_key_exists("GroupNumLimit",$param) and $param["GroupNumLimit"] !== null) { + $this->GroupNumLimit = $param["GroupNumLimit"]; + } + + if (array_key_exists("PayMode",$param) and $param["PayMode"] !== null) { + $this->PayMode = $param["PayMode"]; + } + + if (array_key_exists("ExpiryTime",$param) and $param["ExpiryTime"] !== null) { + $this->ExpiryTime = $param["ExpiryTime"]; + } + + if (array_key_exists("Remark",$param) and $param["Remark"] !== null) { + $this->Remark = $param["Remark"]; + } + + if (array_key_exists("TopicNum",$param) and $param["TopicNum"] !== null) { + $this->TopicNum = $param["TopicNum"]; + } + + if (array_key_exists("GroupNum",$param) and $param["GroupNum"] !== null) { + $this->GroupNum = $param["GroupNum"]; + } + + if (array_key_exists("TagList",$param) and $param["TagList"] !== null) { + $this->TagList = []; + foreach ($param["TagList"] as $key => $value){ + $obj = new Tag(); + $obj->deserialize($value); + array_push($this->TagList, $obj); + } + } + + if (array_key_exists("SkuCode",$param) and $param["SkuCode"] !== null) { + $this->SkuCode = $param["SkuCode"]; + } + + if (array_key_exists("TpsLimit",$param) and $param["TpsLimit"] !== null) { + $this->TpsLimit = $param["TpsLimit"]; + } + + if (array_key_exists("ScaledTpsLimit",$param) and $param["ScaledTpsLimit"] !== null) { + $this->ScaledTpsLimit = $param["ScaledTpsLimit"]; + } + + if (array_key_exists("MessageRetention",$param) and $param["MessageRetention"] !== null) { + $this->MessageRetention = $param["MessageRetention"]; + } + + if (array_key_exists("MaxMessageDelay",$param) and $param["MaxMessageDelay"] !== null) { + $this->MaxMessageDelay = $param["MaxMessageDelay"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/Tag.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/Tag.php new file mode 100644 index 000000000..d3448746f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/Tag.php @@ -0,0 +1,73 @@ +TagKey = $param["TagKey"]; + } + + if (array_key_exists("TagValue",$param) and $param["TagValue"] !== null) { + $this->TagValue = $param["TagValue"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/TagFilter.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/TagFilter.php new file mode 100644 index 000000000..6af8a50a2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/TagFilter.php @@ -0,0 +1,65 @@ +TagKey = $param["TagKey"]; + } + + if (array_key_exists("TagValues",$param) and $param["TagValues"] !== null) { + $this->TagValues = $param["TagValues"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/TopicItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/TopicItem.php new file mode 100644 index 000000000..5d2f13d3a --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/Models/TopicItem.php @@ -0,0 +1,105 @@ +InstanceId = $param["InstanceId"]; + } + + if (array_key_exists("Topic",$param) and $param["Topic"] !== null) { + $this->Topic = $param["Topic"]; + } + + if (array_key_exists("TopicType",$param) and $param["TopicType"] !== null) { + $this->TopicType = $param["TopicType"]; + } + + if (array_key_exists("QueueNum",$param) and $param["QueueNum"] !== null) { + $this->QueueNum = $param["QueueNum"]; + } + + if (array_key_exists("Remark",$param) and $param["Remark"] !== null) { + $this->Remark = $param["Remark"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/TrocketClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/TrocketClient.php new file mode 100644 index 000000000..8832d8628 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trocket/V20230308/TrocketClient.php @@ -0,0 +1,74 @@ +endpoint, $this->version, $credential, $region, $profile); + } + + public function returnResponse($action, $response) + { + $respClass = "TencentCloud"."\\".ucfirst("trocket")."\\"."V20230308\\Models"."\\".ucfirst($action)."Response"; + $obj = new $respClass(); + $obj->deserialize($response); + return $obj; + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/DescribeTrtcRoomUsageResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/DescribeTrtcRoomUsageResponse.php index 99f4b1c35..3314db447 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/DescribeTrtcRoomUsageResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/DescribeTrtcRoomUsageResponse.php @@ -20,15 +20,15 @@ use TencentCloud\Common\AbstractModel; /** * DescribeTrtcRoomUsage返回参数结构体 * - * @method string getData() 获取房间维度用量数据,csv文件格式。 - * @method void setData(string $Data) 设置房间维度用量数据,csv文件格式。 + * @method string getData() 获取房间维度用量数据,csv文件格式,单位:秒。 + * @method void setData(string $Data) 设置房间维度用量数据,csv文件格式,单位:秒。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ class DescribeTrtcRoomUsageResponse extends AbstractModel { /** - * @var string 房间维度用量数据,csv文件格式。 + * @var string 房间维度用量数据,csv文件格式,单位:秒。 */ public $Data; @@ -38,7 +38,7 @@ class DescribeTrtcRoomUsageResponse extends AbstractModel public $RequestId; /** - * @param string $Data 房间维度用量数据,csv文件格式。 + * @param string $Data 房间维度用量数据,csv文件格式,单位:秒。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/McuLayout.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/McuLayout.php index ca00706c6..d4501d7f0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/McuLayout.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/McuLayout.php @@ -32,8 +32,8 @@ use TencentCloud\Common\AbstractModel; * @method void setLocationY(integer $LocationY) 设置子画面在输出时的Y偏移,单位为像素值,LocationY与ImageHeight之和不能超过混流输出的总高度,不填默认为0。 * @method integer getZOrder() 获取子画面在输出时的层级,不填默认为0。 * @method void setZOrder(integer $ZOrder) 设置子画面在输出时的层级,不填默认为0。 - * @method integer getRenderMode() 获取子画面在输出时的显示模式:0为裁剪,1为缩放,2为缩放并显示黑底。不填默认为0。 - * @method void setRenderMode(integer $RenderMode) 设置子画面在输出时的显示模式:0为裁剪,1为缩放,2为缩放并显示黑底。不填默认为0。 + * @method integer getRenderMode() 获取子画面在输出时的显示模式:0为裁剪,1为缩放并显示背景,2为缩放并显示黑底。不填默认为0。 + * @method void setRenderMode(integer $RenderMode) 设置子画面在输出时的显示模式:0为裁剪,1为缩放并显示背景,2为缩放并显示黑底。不填默认为0。 * @method string getBackGroundColor() 获取【此参数配置无效,暂不支持】子画面的背景颜色,常用的颜色有: 红色:0xcc0033。 黄色:0xcc9900。 @@ -54,6 +54,8 @@ use TencentCloud\Common\AbstractModel; * @method void setBackgroundImageUrl(string $BackgroundImageUrl) 设置子画面的背景图url,填写该参数,当用户关闭摄像头或未进入TRTC房间时,会在布局位置填充为指定图片。若指定图片与布局位置尺寸比例不一致,则会对图片进行拉伸处理,优先级高于BackGroundColor。 * @method McuCustomCrop getCustomCrop() 获取客户自定义裁剪,针对原始输入流裁剪 * @method void setCustomCrop(McuCustomCrop $CustomCrop) 设置客户自定义裁剪,针对原始输入流裁剪 + * @method integer getBackgroundRenderMode() 获取子背景图在输出时的显示模式:0为裁剪,1为缩放并显示背景,2为缩放并显示黑底,3为变比例伸缩。不填默认为3。 + * @method void setBackgroundRenderMode(integer $BackgroundRenderMode) 设置子背景图在输出时的显示模式:0为裁剪,1为缩放并显示背景,2为缩放并显示黑底,3为变比例伸缩。不填默认为3。 */ class McuLayout extends AbstractModel { @@ -88,7 +90,7 @@ class McuLayout extends AbstractModel public $ZOrder; /** - * @var integer 子画面在输出时的显示模式:0为裁剪,1为缩放,2为缩放并显示黑底。不填默认为0。 + * @var integer 子画面在输出时的显示模式:0为裁剪,1为缩放并显示背景,2为缩放并显示黑底。不填默认为0。 */ public $RenderMode; @@ -114,6 +116,11 @@ class McuLayout extends AbstractModel */ public $CustomCrop; + /** + * @var integer 子背景图在输出时的显示模式:0为裁剪,1为缩放并显示背景,2为缩放并显示黑底,3为变比例伸缩。不填默认为3。 + */ + public $BackgroundRenderMode; + /** * @param UserMediaStream $UserMediaStream 用户媒体流参数。不填时腾讯云后台按照上行主播的进房顺序自动填充。 * @param integer $ImageWidth 子画面在输出时的宽度,单位为像素值,不填默认为0。 @@ -121,7 +128,7 @@ class McuLayout extends AbstractModel * @param integer $LocationX 子画面在输出时的X偏移,单位为像素值,LocationX与ImageWidth之和不能超过混流输出的总宽度,不填默认为0。 * @param integer $LocationY 子画面在输出时的Y偏移,单位为像素值,LocationY与ImageHeight之和不能超过混流输出的总高度,不填默认为0。 * @param integer $ZOrder 子画面在输出时的层级,不填默认为0。 - * @param integer $RenderMode 子画面在输出时的显示模式:0为裁剪,1为缩放,2为缩放并显示黑底。不填默认为0。 + * @param integer $RenderMode 子画面在输出时的显示模式:0为裁剪,1为缩放并显示背景,2为缩放并显示黑底。不填默认为0。 * @param string $BackGroundColor 【此参数配置无效,暂不支持】子画面的背景颜色,常用的颜色有: 红色:0xcc0033。 黄色:0xcc9900。 @@ -132,6 +139,7 @@ class McuLayout extends AbstractModel 灰色:0x999999。 * @param string $BackgroundImageUrl 子画面的背景图url,填写该参数,当用户关闭摄像头或未进入TRTC房间时,会在布局位置填充为指定图片。若指定图片与布局位置尺寸比例不一致,则会对图片进行拉伸处理,优先级高于BackGroundColor。 * @param McuCustomCrop $CustomCrop 客户自定义裁剪,针对原始输入流裁剪 + * @param integer $BackgroundRenderMode 子背景图在输出时的显示模式:0为裁剪,1为缩放并显示背景,2为缩放并显示黑底,3为变比例伸缩。不填默认为3。 */ function __construct() { @@ -187,5 +195,9 @@ class McuLayout extends AbstractModel $this->CustomCrop = new McuCustomCrop(); $this->CustomCrop->deserialize($param["CustomCrop"]); } + + if (array_key_exists("BackgroundRenderMode",$param) and $param["BackgroundRenderMode"] !== null) { + $this->BackgroundRenderMode = $param["BackgroundRenderMode"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/McuVideoParams.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/McuVideoParams.php index 5b7c40dae..a9d02fd22 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/McuVideoParams.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/Models/McuVideoParams.php @@ -44,6 +44,8 @@ use TencentCloud\Common\AbstractModel; * @method void setBackgroundImageUrl(string $BackgroundImageUrl) 设置整个画布的背景图url,优先级高于BackGroundColor。 * @method array getWaterMarkList() 获取混流布局的水印参数。 * @method void setWaterMarkList(array $WaterMarkList) 设置混流布局的水印参数。 + * @method integer getBackgroundRenderMode() 获取背景图在输出时的显示模式:0为裁剪,1为缩放并显示黑底,2为变比例伸缩。后台默认为变比例伸缩。 + * @method void setBackgroundRenderMode(integer $BackgroundRenderMode) 设置背景图在输出时的显示模式:0为裁剪,1为缩放并显示黑底,2为变比例伸缩。后台默认为变比例伸缩。 */ class McuVideoParams extends AbstractModel { @@ -79,6 +81,11 @@ class McuVideoParams extends AbstractModel */ public $WaterMarkList; + /** + * @var integer 背景图在输出时的显示模式:0为裁剪,1为缩放并显示黑底,2为变比例伸缩。后台默认为变比例伸缩。 + */ + public $BackgroundRenderMode; + /** * @param VideoEncode $VideoEncode 输出流视频编码参数。 * @param McuLayoutParams $LayoutParams 混流布局参数。 @@ -92,6 +99,7 @@ class McuVideoParams extends AbstractModel 灰色:0x999999。 * @param string $BackgroundImageUrl 整个画布的背景图url,优先级高于BackGroundColor。 * @param array $WaterMarkList 混流布局的水印参数。 + * @param integer $BackgroundRenderMode 背景图在输出时的显示模式:0为裁剪,1为缩放并显示黑底,2为变比例伸缩。后台默认为变比例伸缩。 */ function __construct() { @@ -132,5 +140,9 @@ class McuVideoParams extends AbstractModel array_push($this->WaterMarkList, $obj); } } + + if (array_key_exists("BackgroundRenderMode",$param) and $param["BackgroundRenderMode"] !== null) { + $this->BackgroundRenderMode = $param["BackgroundRenderMode"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/TrtcClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/TrtcClient.php index b0a29f4c0..8570d4aa7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/TrtcClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Trtc/V20190722/TrtcClient.php @@ -112,8 +112,9 @@ xa0 - 日结后付费将于次日上午推送账单,建议次日上午9点以后再来查询前一天的用量。 * @method Models\DescribeTrtcRoomUsageResponse DescribeTrtcRoomUsage(Models\DescribeTrtcRoomUsageRequest $req) 查询TRTC音视频房间维度用量。 - 单次只能查询一天数据,返回查询时间段内的汇总数据;通过多次查询可以查不同天数据。若查询跨天用量,由于统计延迟等原因,返回数据可能不够准确。 -- 该接口只用于历史用量数据统计或核对数据使用,关键业务逻辑不能使用。 +- 该接口只用于历史用量数据统计或核对数据使用,关键业务逻辑不能使用,不可用于账单核对,如需对账请使用账号/应用维度用量API:DescribeTrtcUsage。 - 默认接口请求频率限制:1次/15秒。 +- 数据最早可查日期为2023年4月1日0点,最大可查范围近3个月。 * @method Models\DescribeTrtcUsageResponse DescribeTrtcUsage(Models\DescribeTrtcUsageRequest $req) 获取TRTC音视频互动的用量明细。 - 查询时间小于等于1天时,返回每5分钟粒度的数据;查询时间大于1天时,返回按天汇总的数据。 - 单次查询统计区间最多不能超过31天。 @@ -192,7 +193,7 @@ TRTC 的一个房间中可能会同时存在多路音视频流,您可以通过 1、悬浮模板:第一个进入房间的用户的视频画面会铺满整个屏幕,其他用户的视频画面从左下角依次水平排列,显示为小画面,最多4行,每行4个,小画面悬浮于大画面之上。最多支持1个大画面和15个小画面,如果用户只发送音频默认不占布局配置,也支持设置。每个子画面默认采用居中裁剪的方式进行渲染,也支持统一设置子画面的渲染方式。 2、九宫格模板:所有用户的视频画面大小一致,平分整个屏幕,人数越多,每个画面的尺寸越小。最多支持16个画面,如果用户只发送音频,默认不占布局配置,也支持设置。每个子画面默认采用居中裁剪的方式进行渲染,也支持统一设置子画面的渲染方式。 3、屏幕分享模板:适合视频会议和在线教育场景的布局,屏幕分享(或者主讲的摄像头)始终占据屏幕左侧的大画面位置,需要您明确设置占据大画面的混流用户信息。其他用户依次垂直排列于右侧,最多两列,每列最多8个小画面。最多支持1个大画面和15个小画面。若上行分辨率宽高比与画面输出宽高比不一致时,左侧大画面为了保持内容的完整性采用缩放方式处理,右侧小画面采用裁剪方式处理,也支持统一设置子画面的渲染方式。 -4、自定义布局模版:支持您主动根据业务需要设置布局位置,每个预设的布局位置支持具名设置(具名设置需要明确指定房间号和用户名)和不具名设置。当一个子画面具名设置时,该位置就为该用户预留,用户进房且上行音视频数据时会自动占据该位置,其它用户不会占据该位置。当预设的布局位置未具名时,排版引擎引擎会根据进房间顺序自动填充,预设位置填满时,不再混合其它用户的画面和声音。每个子画面位置支持设置占位图(BackgroundImageUrl),当用户未进房或者只上行音频数据时,该位置画面可显示对应的占位图画面。 +4、自定义布局模版:支持您主动根据业务需要设置布局位置,每个预设的布局位置支持具名设置(具名设置需要明确指定房间号和用户名)和不具名设置。当一个子画面具名设置时,该位置就为该用户预留,用户进房且上行音视频数据时会自动占据该位置,其它用户不会占据该位置。当预设的布局位置未具名时,排版引擎会根据进房间顺序自动填充,预设位置填满时,不再混合其它用户的画面和声音。每个子画面位置支持设置占位图(BackgroundImageUrl),当用户未进房或者只上行音频数据时,该位置画面可显示对应的占位图画面。 您可以控制台开通旁路转推回调功能实现转推cdn状态的事件监控,具体说明请参考官网文档:[旁路转推回调说明](https://cloud.tencent.com/document/product/647/88552) 您使用转推api时根据使用特性可能会产生如下费用: @@ -200,7 +201,7 @@ MCU混流转码费用请参考文档:[云端混流转码计费说明](https:// 转推非腾讯云CDN费用请参考文档:[云端转推计费说明](https://cloud.tencent.com/document/product/647/82155) 参数的使用说明: -1、AgentParams:每个转推任务会拉起一个机器人用户进入TRTC房间进行拉流,你需要通过AgentParams.UserId参数进行设置,这个机器人id不能和房间中的普通用户id冲突,否则会导致转推任务由于机器人用户被踢出TRTC房间而异常结束,您可以通过增加特殊前缀的方式规避。您可以通过设置AgentParams.MaxIdleTime控制转推任务的自动结束,当设置此参数时,所有参与混流转推的主播持续离开TRTC房间超过MaxIdleTime的时长,自动停止转推任务。注意:参与混流转推的主播仅是停止音视频上行,转推任务不会自动停止。 +1、AgentParams:每个转推任务会拉起一个机器人用户进入TRTC房间进行拉流,您需要通过AgentParams.UserId参数进行设置,这个机器人id不能和房间中的普通用户id冲突,否则会导致转推任务由于机器人用户被踢出TRTC房间而异常结束,您可以通过增加特殊前缀的方式规避。您可以通过设置AgentParams.MaxIdleTime控制转推任务的自动结束,当设置此参数时,所有参与混流转推的主播持续离开TRTC房间超过MaxIdleTime的时长,自动停止转推任务。注意:参与混流转推的主播仅是停止音视频上行,转推任务不会自动停止。 2、WithTranscoding:如果需要将多路音视频流混合到一路时,WithTranscoding必须设置为1。 3、AudioParams:转推任务音频参数和视频参数是分开设置的,若您想要将指定的用户音频进行混音时,需要明确设置AudioParams.SubscribeAudioList。若您不设置AudioParams.SubscribeAudioList,混音引擎会自动将TRTC房间中所有用户的音频混合。若您想要混合TRTC房间除指定用户之外的所有用户的声音,可以通过AudioParams.UnSubscribeAudioList设置音频黑名单列表。 4、VideoParams:若您想要将用户的视频混合,可以通过VideoParams设置,若只想要混纯音频,则不用设置VideoParams参数。您可以通过VideoParams.LayoutParams.MixLayoutMode设置画面的布局模式,包括:动态布局(1:悬浮布局(默认),2:屏幕分享布局,3:九宫格布局)和自定义布局。动态布局模式由排版引擎按照固定的布局自动混合,不需要设置VideoParams.LayoutParams.MixLayoutList。当使用悬浮布局和屏幕分享布局时,您可以通过设置VideoParams.LayoutParams.MaxVideoUser参数指定大画面用户。自定义布局模式提供给您自主布局画面的能力,可以通过VideoParams.LayoutParams.MixLayoutList参数指定每个用户所在的布局位置。在每个布局参数中,您可以通过用户媒体流参数(UserMediaStream)指定这个布局位置为指定的用户预留,也可以不设置UserMediaStream,由排版引擎按照用户进入TRTC房间的顺序自动填充,另外您也可以设置每个布局位置的渲染方式(RenderMode)和裁剪方式(CustomCrop)。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tse/V20201207/Models/KongRoutePreview.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tse/V20201207/Models/KongRoutePreview.php index d36301462..15b0e72d0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tse/V20201207/Models/KongRoutePreview.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tse/V20201207/Models/KongRoutePreview.php @@ -146,6 +146,7 @@ class KongRoutePreview extends AbstractModel /** * @var boolean 是否开启了强制HTTPS 注意:此字段可能返回 null,表示取不到有效值。 + * @deprecated */ public $ForceHttps; diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tsf/V20180326/Models/DeployGroupRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tsf/V20180326/Models/DeployGroupRequest.php index 52525ef93..20aab303b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tsf/V20180326/Models/DeployGroupRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tsf/V20180326/Models/DeployGroupRequest.php @@ -58,6 +58,8 @@ use TencentCloud\Common\AbstractModel; * @method void setAgentProfileList(array $AgentProfileList) 设置部署agent的类型、版本 * @method WarmupSetting getWarmupSetting() 获取预热参数配置 * @method void setWarmupSetting(WarmupSetting $WarmupSetting) 设置预热参数配置 + * @method boolean getEnableBatchHealthCheck() 获取开启分批健康检查 + * @method void setEnableBatchHealthCheck(boolean $EnableBatchHealthCheck) 设置开启分批健康检查 */ class DeployGroupRequest extends AbstractModel { @@ -156,6 +158,11 @@ class DeployGroupRequest extends AbstractModel */ public $WarmupSetting; + /** + * @var boolean 开启分批健康检查 + */ + public $EnableBatchHealthCheck; + /** * @param string $GroupId 部署组ID * @param string $PkgId 程序包ID @@ -176,6 +183,7 @@ class DeployGroupRequest extends AbstractModel * @param string $JdkVersion JDK版本: 8或11 (openJDK只支持8) * @param array $AgentProfileList 部署agent的类型、版本 * @param WarmupSetting $WarmupSetting 预热参数配置 + * @param boolean $EnableBatchHealthCheck 开启分批健康检查 */ function __construct() { @@ -272,5 +280,9 @@ class DeployGroupRequest extends AbstractModel $this->WarmupSetting = new WarmupSetting(); $this->WarmupSetting->deserialize($param["WarmupSetting"]); } + + if (array_key_exists("EnableBatchHealthCheck",$param) and $param["EnableBatchHealthCheck"] !== null) { + $this->EnableBatchHealthCheck = $param["EnableBatchHealthCheck"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tsf/V20180326/Models/VmGroup.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tsf/V20180326/Models/VmGroup.php index 5738b052b..08e209975 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tsf/V20180326/Models/VmGroup.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tsf/V20180326/Models/VmGroup.php @@ -171,6 +171,10 @@ use TencentCloud\Common\AbstractModel; * @method GatewayConfig getGatewayConfig() 获取Envoy网关配置 注意:此字段可能返回 null,表示取不到有效值。 * @method void setGatewayConfig(GatewayConfig $GatewayConfig) 设置Envoy网关配置 +注意:此字段可能返回 null,表示取不到有效值。 + * @method boolean getEnableBatchHealthCheck() 获取批次是否开启健康检查 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setEnableBatchHealthCheck(boolean $EnableBatchHealthCheck) 设置批次是否开启健康检查 注意:此字段可能返回 null,表示取不到有效值。 */ class VmGroup extends AbstractModel @@ -403,6 +407,12 @@ class VmGroup extends AbstractModel */ public $GatewayConfig; + /** + * @var boolean 批次是否开启健康检查 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $EnableBatchHealthCheck; + /** * @param string $GroupId 部署组ID 注意:此字段可能返回 null,表示取不到有效值。 @@ -479,6 +489,8 @@ class VmGroup extends AbstractModel * @param WarmupSetting $WarmupSetting 预热属性配置 注意:此字段可能返回 null,表示取不到有效值。 * @param GatewayConfig $GatewayConfig Envoy网关配置 +注意:此字段可能返回 null,表示取不到有效值。 + * @param boolean $EnableBatchHealthCheck 批次是否开启健康检查 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -653,5 +665,9 @@ class VmGroup extends AbstractModel $this->GatewayConfig = new GatewayConfig(); $this->GatewayConfig->deserialize($param["GatewayConfig"]); } + + if (array_key_exists("EnableBatchHealthCheck",$param) and $param["EnableBatchHealthCheck"] !== null) { + $this->EnableBatchHealthCheck = $param["EnableBatchHealthCheck"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tts/V20190823/Models/CreateTtsTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tts/V20190823/Models/CreateTtsTaskRequest.php index 6d9eb6692..0d91b7ff3 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tts/V20190823/Models/CreateTtsTaskRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tts/V20190823/Models/CreateTtsTaskRequest.php @@ -32,16 +32,16 @@ use TencentCloud\Common\AbstractModel; * @method void setProjectId(integer $ProjectId) 设置项目id,用户自定义,默认为0。 * @method integer getVoiceType() 获取音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见[购买指南](https://cloud.tencent.com/document/product/1073/34112)。完整的音色 ID 列表请参见[音色列表](https://cloud.tencent.com/document/product/1073/92668)。 * @method void setVoiceType(integer $VoiceType) 设置音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见[购买指南](https://cloud.tencent.com/document/product/1073/34112)。完整的音色 ID 列表请参见[音色列表](https://cloud.tencent.com/document/product/1073/92668)。 - * @method integer getPrimaryLanguage() 获取主语言类型:
  • 1-中文(默认)
  • 2-英文
  • - * @method void setPrimaryLanguage(integer $PrimaryLanguage) 设置主语言类型:
  • 1-中文(默认)
  • 2-英文
  • + * @method integer getPrimaryLanguage() 获取主语言类型:
  • 1-中文(默认)
  • 2-英文
  • 3-日文
  • + * @method void setPrimaryLanguage(integer $PrimaryLanguage) 设置主语言类型:
  • 1-中文(默认)
  • 2-英文
  • 3-日文
  • * @method integer getSampleRate() 获取音频采样率:
  • 16000:16k(默认)
  • 8000:8k
  • * @method void setSampleRate(integer $SampleRate) 设置音频采样率:
  • 16000:16k(默认)
  • 8000:8k
  • * @method string getCodec() 获取返回音频格式,可取值:mp3(默认),wav,pcm * @method void setCodec(string $Codec) 设置返回音频格式,可取值:mp3(默认),wav,pcm * @method string getCallbackUrl() 获取回调 URL,用户自行搭建的用于接收识别结果的服务URL。如果用户使用轮询方式获取识别结果,则无需提交该参数。[回调说明](https://cloud.tencent.com/document/product/1073/55746) * @method void setCallbackUrl(string $CallbackUrl) 设置回调 URL,用户自行搭建的用于接收识别结果的服务URL。如果用户使用轮询方式获取识别结果,则无需提交该参数。[回调说明](https://cloud.tencent.com/document/product/1073/55746) - * @method boolean getVoiceoverDialogueSplit() 获取旁白与对白文本解析,分别合成相应风格(仅适用于旁对白音色),默认 false - * @method void setVoiceoverDialogueSplit(boolean $VoiceoverDialogueSplit) 设置旁白与对白文本解析,分别合成相应风格(仅适用于旁对白音色),默认 false + * @method boolean getVoiceoverDialogueSplit() 获取旁白与对白文本解析,分别合成相应风格(仅适用于旁对白音色10510000、100510000),默认 false + * @method void setVoiceoverDialogueSplit(boolean $VoiceoverDialogueSplit) 设置旁白与对白文本解析,分别合成相应风格(仅适用于旁对白音色10510000、100510000),默认 false */ class CreateTtsTaskRequest extends AbstractModel { @@ -76,7 +76,7 @@ class CreateTtsTaskRequest extends AbstractModel public $VoiceType; /** - * @var integer 主语言类型:
  • 1-中文(默认)
  • 2-英文
  • + * @var integer 主语言类型:
  • 1-中文(默认)
  • 2-英文
  • 3-日文
  • */ public $PrimaryLanguage; @@ -96,7 +96,7 @@ class CreateTtsTaskRequest extends AbstractModel public $CallbackUrl; /** - * @var boolean 旁白与对白文本解析,分别合成相应风格(仅适用于旁对白音色),默认 false + * @var boolean 旁白与对白文本解析,分别合成相应风格(仅适用于旁对白音色10510000、100510000),默认 false */ public $VoiceoverDialogueSplit; @@ -107,11 +107,11 @@ class CreateTtsTaskRequest extends AbstractModel * @param float $Speed 语速,范围:[-2,2],分别对应不同语速:
  • -2代表0.6倍
  • -1代表0.8倍
  • 0代表1.0倍(默认)
  • 1代表1.2倍
  • 2代表1.5倍
  • 如果需要更细化的语速,可以保留小数点后 2 位,例如0.5 1.1 1.8等。
    参数值与实际语速转换,可参考[代码示例](https://sdk-1300466766.cos.ap-shanghai.myqcloud.com/sample/speed_sample.tar.gz) * @param integer $ProjectId 项目id,用户自定义,默认为0。 * @param integer $VoiceType 音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见[购买指南](https://cloud.tencent.com/document/product/1073/34112)。完整的音色 ID 列表请参见[音色列表](https://cloud.tencent.com/document/product/1073/92668)。 - * @param integer $PrimaryLanguage 主语言类型:
  • 1-中文(默认)
  • 2-英文
  • + * @param integer $PrimaryLanguage 主语言类型:
  • 1-中文(默认)
  • 2-英文
  • 3-日文
  • * @param integer $SampleRate 音频采样率:
  • 16000:16k(默认)
  • 8000:8k
  • * @param string $Codec 返回音频格式,可取值:mp3(默认),wav,pcm * @param string $CallbackUrl 回调 URL,用户自行搭建的用于接收识别结果的服务URL。如果用户使用轮询方式获取识别结果,则无需提交该参数。[回调说明](https://cloud.tencent.com/document/product/1073/55746) - * @param boolean $VoiceoverDialogueSplit 旁白与对白文本解析,分别合成相应风格(仅适用于旁对白音色),默认 false + * @param boolean $VoiceoverDialogueSplit 旁白与对白文本解析,分别合成相应风格(仅适用于旁对白音色10510000、100510000),默认 false */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tts/V20190823/Models/TextToVoiceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tts/V20190823/Models/TextToVoiceRequest.php index c379532ae..15bec1a7a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tts/V20190823/Models/TextToVoiceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Tts/V20190823/Models/TextToVoiceRequest.php @@ -26,8 +26,8 @@ use TencentCloud\Common\AbstractModel; 中文最大支持150个汉字(全角标点符号算一个汉字);英文最大支持500个字母(半角标点符号算一个字母)。 * @method string getSessionId() 获取一次请求对应一个SessionId,会原样返回,建议传入类似于uuid的字符串防止重复。 * @method void setSessionId(string $SessionId) 设置一次请求对应一个SessionId,会原样返回,建议传入类似于uuid的字符串防止重复。 - * @method float getVolume() 获取音量大小,范围:[0,10],分别对应11个等级的音量,默认为0,代表正常音量。没有静音选项。 - * @method void setVolume(float $Volume) 设置音量大小,范围:[0,10],分别对应11个等级的音量,默认为0,代表正常音量。没有静音选项。 + * @method float getVolume() 获取音量大小,范围[0,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。 + * @method void setVolume(float $Volume) 设置音量大小,范围[0,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。 * @method float getSpeed() 获取语速,范围:[-2,6],分别对应不同语速:
  • -2代表0.6倍
  • -1代表0.8倍
  • 0代表1.0倍(默认)
  • 1代表1.2倍
  • 2代表1.5倍
  • 6代表2.5倍
  • 如果需要更细化的语速,可以保留小数点后 2 位,例如0.5 1.1 1.8等。
    参数值与实际语速转换,可参考[代码示例](https://sdk-1300466766.cos.ap-shanghai.myqcloud.com/sample/speed_sample.tar.gz) * @method void setSpeed(float $Speed) 设置语速,范围:[-2,6],分别对应不同语速:
  • -2代表0.6倍
  • -1代表0.8倍
  • 0代表1.0倍(默认)
  • 1代表1.2倍
  • 2代表1.5倍
  • 6代表2.5倍
  • 如果需要更细化的语速,可以保留小数点后 2 位,例如0.5 1.1 1.8等。
    参数值与实际语速转换,可参考[代码示例](https://sdk-1300466766.cos.ap-shanghai.myqcloud.com/sample/speed_sample.tar.gz) * @method integer getProjectId() 获取项目id,用户自定义,默认为0。 @@ -36,8 +36,8 @@ use TencentCloud\Common\AbstractModel; * @method void setModelType(integer $ModelType) 设置模型类型,1-默认模型。 * @method integer getVoiceType() 获取音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见[购买指南](https://cloud.tencent.com/document/product/1073/34112)。完整的音色 ID 列表请参见[音色列表](https://cloud.tencent.com/document/product/1073/92668)。 * @method void setVoiceType(integer $VoiceType) 设置音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见[购买指南](https://cloud.tencent.com/document/product/1073/34112)。完整的音色 ID 列表请参见[音色列表](https://cloud.tencent.com/document/product/1073/92668)。 - * @method integer getPrimaryLanguage() 获取主语言类型:
  • 1-中文(默认)
  • 2-英文
  • - * @method void setPrimaryLanguage(integer $PrimaryLanguage) 设置主语言类型:
  • 1-中文(默认)
  • 2-英文
  • + * @method integer getPrimaryLanguage() 获取主语言类型:
  • 1-中文(默认)
  • 2-英文
  • 3-日文
  • + * @method void setPrimaryLanguage(integer $PrimaryLanguage) 设置主语言类型:
  • 1-中文(默认)
  • 2-英文
  • 3-日文
  • * @method integer getSampleRate() 获取音频采样率:
  • 24000:24k(部分音色支持,请参见[音色列表](https://cloud.tencent.com/document/product/1073/92668))
  • 16000:16k(默认)
  • @@ -52,8 +52,8 @@ use TencentCloud\Common\AbstractModel; * @method void setEnableSubtitle(boolean $EnableSubtitle) 设置是否开启时间戳功能,默认为false。 * @method integer getSegmentRate() 获取断句敏感阈值,默认值为:0,取值范围:[0,1,2]。该值越大越不容易断句,模型会更倾向于仅按照标点符号断句。此参数建议不要随意调整,可能会影响合成效果。 * @method void setSegmentRate(integer $SegmentRate) 设置断句敏感阈值,默认值为:0,取值范围:[0,1,2]。该值越大越不容易断句,模型会更倾向于仅按照标点符号断句。此参数建议不要随意调整,可能会影响合成效果。 - * @method string getEmotionCategory() 获取控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting) - * @method void setEmotionCategory(string $EmotionCategory) 设置控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting) + * @method string getEmotionCategory() 获取控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting)、傲娇(aojiao)、解说(jieshuo) + * @method void setEmotionCategory(string $EmotionCategory) 设置控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting)、傲娇(aojiao)、解说(jieshuo) * @method integer getEmotionIntensity() 获取控制合成音频情感程度,取值范围为[50,200],默认为100;只有EmotionCategory不为空时生效; * @method void setEmotionIntensity(integer $EmotionIntensity) 设置控制合成音频情感程度,取值范围为[50,200],默认为100;只有EmotionCategory不为空时生效; */ @@ -71,7 +71,7 @@ class TextToVoiceRequest extends AbstractModel public $SessionId; /** - * @var float 音量大小,范围:[0,10],分别对应11个等级的音量,默认为0,代表正常音量。没有静音选项。 + * @var float 音量大小,范围[0,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。 */ public $Volume; @@ -96,7 +96,7 @@ class TextToVoiceRequest extends AbstractModel public $VoiceType; /** - * @var integer 主语言类型:
  • 1-中文(默认)
  • 2-英文
  • + * @var integer 主语言类型:
  • 1-中文(默认)
  • 2-英文
  • 3-日文
  • */ public $PrimaryLanguage; @@ -124,7 +124,7 @@ class TextToVoiceRequest extends AbstractModel public $SegmentRate; /** - * @var string 控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting) + * @var string 控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting)、傲娇(aojiao)、解说(jieshuo) */ public $EmotionCategory; @@ -137,12 +137,12 @@ class TextToVoiceRequest extends AbstractModel * @param string $Text 合成语音的源文本,按UTF-8编码统一计算。 中文最大支持150个汉字(全角标点符号算一个汉字);英文最大支持500个字母(半角标点符号算一个字母)。 * @param string $SessionId 一次请求对应一个SessionId,会原样返回,建议传入类似于uuid的字符串防止重复。 - * @param float $Volume 音量大小,范围:[0,10],分别对应11个等级的音量,默认为0,代表正常音量。没有静音选项。 + * @param float $Volume 音量大小,范围[0,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。 * @param float $Speed 语速,范围:[-2,6],分别对应不同语速:
  • -2代表0.6倍
  • -1代表0.8倍
  • 0代表1.0倍(默认)
  • 1代表1.2倍
  • 2代表1.5倍
  • 6代表2.5倍
  • 如果需要更细化的语速,可以保留小数点后 2 位,例如0.5 1.1 1.8等。
    参数值与实际语速转换,可参考[代码示例](https://sdk-1300466766.cos.ap-shanghai.myqcloud.com/sample/speed_sample.tar.gz) * @param integer $ProjectId 项目id,用户自定义,默认为0。 * @param integer $ModelType 模型类型,1-默认模型。 * @param integer $VoiceType 音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见[购买指南](https://cloud.tencent.com/document/product/1073/34112)。完整的音色 ID 列表请参见[音色列表](https://cloud.tencent.com/document/product/1073/92668)。 - * @param integer $PrimaryLanguage 主语言类型:
  • 1-中文(默认)
  • 2-英文
  • + * @param integer $PrimaryLanguage 主语言类型:
  • 1-中文(默认)
  • 2-英文
  • 3-日文
  • * @param integer $SampleRate 音频采样率:
  • 24000:24k(部分音色支持,请参见[音色列表](https://cloud.tencent.com/document/product/1073/92668))
  • 16000:16k(默认)
  • @@ -150,7 +150,7 @@ class TextToVoiceRequest extends AbstractModel * @param string $Codec 返回音频格式,可取值:wav(默认),mp3,pcm * @param boolean $EnableSubtitle 是否开启时间戳功能,默认为false。 * @param integer $SegmentRate 断句敏感阈值,默认值为:0,取值范围:[0,1,2]。该值越大越不容易断句,模型会更倾向于仅按照标点符号断句。此参数建议不要随意调整,可能会影响合成效果。 - * @param string $EmotionCategory 控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting) + * @param string $EmotionCategory 控制合成音频的情感,仅支持多情感音色使用。取值: neutral(中性)、sad(悲伤)、happy(高兴)、angry(生气)、fear(恐惧)、news(新闻)、story(故事)、radio(广播)、poetry(诗歌)、call(客服)、撒娇(sajiao)、厌恶(disgusted)、震惊(amaze)、平静(peaceful)、兴奋(exciting)、傲娇(aojiao)、解说(jieshuo) * @param integer $EmotionIntensity 控制合成音频情感程度,取值范围为[50,200],默认为100;只有EmotionCategory不为空时生效; */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/MediaTranscodeItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/MediaTranscodeItem.php index bd4e51cf0..248406f65 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/MediaTranscodeItem.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/MediaTranscodeItem.php @@ -23,7 +23,9 @@ use TencentCloud\Common\AbstractModel; * @method string getUrl() 获取转码后的视频文件地址。 * @method void setUrl(string $Url) 设置转码后的视频文件地址。 * @method integer getDefinition() 获取转码规格 ID,参见[转码参数模板](https://cloud.tencent.com/document/product/266/33476)。 +注意:取值 0 表示原始文件。 * @method void setDefinition(integer $Definition) 设置转码规格 ID,参见[转码参数模板](https://cloud.tencent.com/document/product/266/33476)。 +注意:取值 0 表示原始文件。 * @method integer getBitrate() 获取视频流码率平均值与音频流码率平均值之和, 单位:bps。 * @method void setBitrate(integer $Bitrate) 设置视频流码率平均值与音频流码率平均值之和, 单位:bps。 * @method integer getHeight() 获取视频流高度的最大值,单位:px。 @@ -64,6 +66,7 @@ class MediaTranscodeItem extends AbstractModel /** * @var integer 转码规格 ID,参见[转码参数模板](https://cloud.tencent.com/document/product/266/33476)。 +注意:取值 0 表示原始文件。 */ public $Definition; @@ -129,6 +132,7 @@ class MediaTranscodeItem extends AbstractModel /** * @param string $Url 转码后的视频文件地址。 * @param integer $Definition 转码规格 ID,参见[转码参数模板](https://cloud.tencent.com/document/product/266/33476)。 +注意:取值 0 表示原始文件。 * @param integer $Bitrate 视频流码率平均值与音频流码率平均值之和, 单位:bps。 * @param integer $Height 视频流高度的最大值,单位:px。 * @param integer $Width 视频流宽度的最大值,单位:px。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/ProcessMediaByProcedureRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/ProcessMediaByProcedureRequest.php index 56d133621..5f6631253 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/ProcessMediaByProcedureRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/ProcessMediaByProcedureRequest.php @@ -32,8 +32,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTasksNotifyMode(string $TasksNotifyMode) 设置任务流状态变更通知模式,可取值有 Finish,Change 和 None,不填代表 Finish。 * @method string getSessionContext() 获取来源上下文,用于透传用户请求信息,任务流状态变更回调将返回该字段值,最长 1000 个字符。 * @method void setSessionContext(string $SessionContext) 设置来源上下文,用于透传用户请求信息,任务流状态变更回调将返回该字段值,最长 1000 个字符。 - * @method string getSessionId() 获取用于去重的识别码,如果三天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 - * @method void setSessionId(string $SessionId) 设置用于去重的识别码,如果三天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 + * @method string getSessionId() 获取用于去重的识别码,如果 7 天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 + * @method void setSessionId(string $SessionId) 设置用于去重的识别码,如果 7 天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 * @method string getExtInfo() 获取保留字段,特殊用途时使用。 * @method void setExtInfo(string $ExtInfo) 设置保留字段,特殊用途时使用。 */ @@ -70,7 +70,7 @@ class ProcessMediaByProcedureRequest extends AbstractModel public $SessionContext; /** - * @var string 用于去重的识别码,如果三天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 + * @var string 用于去重的识别码,如果 7 天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 */ public $SessionId; @@ -86,7 +86,7 @@ class ProcessMediaByProcedureRequest extends AbstractModel * @param integer $TasksPriority 任务流的优先级,数值越大优先级越高,取值范围是-10到10,不填代表0。 * @param string $TasksNotifyMode 任务流状态变更通知模式,可取值有 Finish,Change 和 None,不填代表 Finish。 * @param string $SessionContext 来源上下文,用于透传用户请求信息,任务流状态变更回调将返回该字段值,最长 1000 个字符。 - * @param string $SessionId 用于去重的识别码,如果三天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 + * @param string $SessionId 用于去重的识别码,如果 7 天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 * @param string $ExtInfo 保留字段,特殊用途时使用。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/RestoreMediaRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/RestoreMediaRequest.php index 889f625d2..16fa1bbf8 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/RestoreMediaRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/RestoreMediaRequest.php @@ -20,10 +20,10 @@ use TencentCloud\Common\AbstractModel; /** * RestoreMedia请求参数结构体 * - * @method array getFileIds() 获取媒体文件唯一标识列表。 - * @method void setFileIds(array $FileIds) 设置媒体文件唯一标识列表。 - * @method integer getRestoreDay() 获取解冻出的临时媒体文件的可访问持续时长,单位为“天”。 - * @method void setRestoreDay(integer $RestoreDay) 设置解冻出的临时媒体文件的可访问持续时长,单位为“天”。 + * @method array getFileIds() 获取媒体文件唯一标识列表,最大长度:100。 + * @method void setFileIds(array $FileIds) 设置媒体文件唯一标识列表,最大长度:100。 + * @method integer getRestoreDay() 获取解冻出的临时媒体文件的可访问持续时长,必须大于0,单位为“天”。 + * @method void setRestoreDay(integer $RestoreDay) 设置解冻出的临时媒体文件的可访问持续时长,必须大于0,单位为“天”。 * @method string getRestoreTier() 获取解冻模式。当媒体文件当前的存储类型为归档存储时,有以下取值:
  • 极速模式:Expedited,解冻任务在5分钟后完成。
  • 标准模式:Standard,解冻任务在5小时后完成 。
  • @@ -44,12 +44,12 @@ use TencentCloud\Common\AbstractModel; class RestoreMediaRequest extends AbstractModel { /** - * @var array 媒体文件唯一标识列表。 + * @var array 媒体文件唯一标识列表,最大长度:100。 */ public $FileIds; /** - * @var integer 解冻出的临时媒体文件的可访问持续时长,单位为“天”。 + * @var integer 解冻出的临时媒体文件的可访问持续时长,必须大于0,单位为“天”。 */ public $RestoreDay; @@ -70,8 +70,8 @@ class RestoreMediaRequest extends AbstractModel public $SubAppId; /** - * @param array $FileIds 媒体文件唯一标识列表。 - * @param integer $RestoreDay 解冻出的临时媒体文件的可访问持续时长,单位为“天”。 + * @param array $FileIds 媒体文件唯一标识列表,最大长度:100。 + * @param integer $RestoreDay 解冻出的临时媒体文件的可访问持续时长,必须大于0,单位为“天”。 * @param string $RestoreTier 解冻模式。当媒体文件当前的存储类型为归档存储时,有以下取值:
  • 极速模式:Expedited,解冻任务在5分钟后完成。
  • 标准模式:Standard,解冻任务在5小时后完成 。
  • diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/ReviewAudioVideoRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/ReviewAudioVideoRequest.php index c7a59977f..d7bec5cbe 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/ReviewAudioVideoRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/ReviewAudioVideoRequest.php @@ -33,9 +33,9 @@ use TencentCloud\Common\AbstractModel;
  • Cover:封面。
  • 不填或填空数组时,默认为审核 Media。 * @method integer getDefinition() 获取审核模板 ID,默认值为 10。取值范围: -
  • 10:预置模板,支持检测的违规标签包括色情(Porn)、暴力(Terror)和不适宜的信息(Polity)。
  • +
  • 10:[预置模板](https://cloud.tencent.com/document/product/266/33476#.E9.A2.84.E7.BD.AE.E9.9F.B3.E8.A7.86.E9.A2.91.E5.AE.A1.E6.A0.B8.E6.A8.A1.E6.9D.BF.5B.5D(id.3Averify)),支持检测的违规标签包括色情(Porn)、暴力(Terror)、不适宜的信息(Polity)和娇喘(Moan)。
  • * @method void setDefinition(integer $Definition) 设置审核模板 ID,默认值为 10。取值范围: -
  • 10:预置模板,支持检测的违规标签包括色情(Porn)、暴力(Terror)和不适宜的信息(Polity)。
  • +
  • 10:[预置模板](https://cloud.tencent.com/document/product/266/33476#.E9.A2.84.E7.BD.AE.E9.9F.B3.E8.A7.86.E9.A2.91.E5.AE.A1.E6.A0.B8.E6.A8.A1.E6.9D.BF.5B.5D(id.3Averify)),支持检测的违规标签包括色情(Porn)、暴力(Terror)、不适宜的信息(Polity)和娇喘(Moan)。
  • * @method integer getTasksPriority() 获取任务流的优先级,数值越大优先级越高,取值范围是 -10 到 10,不填代表 0。 * @method void setTasksPriority(integer $TasksPriority) 设置任务流的优先级,数值越大优先级越高,取值范围是 -10 到 10,不填代表 0。 * @method string getSessionContext() 获取来源上下文,用于透传用户请求信息,音视频审核完成回调将返回该字段值,最长 1000 个字符。 @@ -67,7 +67,7 @@ class ReviewAudioVideoRequest extends AbstractModel /** * @var integer 审核模板 ID,默认值为 10。取值范围: -
  • 10:预置模板,支持检测的违规标签包括色情(Porn)、暴力(Terror)和不适宜的信息(Polity)。
  • +
  • 10:[预置模板](https://cloud.tencent.com/document/product/266/33476#.E9.A2.84.E7.BD.AE.E9.9F.B3.E8.A7.86.E9.A2.91.E5.AE.A1.E6.A0.B8.E6.A8.A1.E6.9D.BF.5B.5D(id.3Averify)),支持检测的违规标签包括色情(Porn)、暴力(Terror)、不适宜的信息(Polity)和娇喘(Moan)。
  • */ public $Definition; @@ -99,7 +99,7 @@ class ReviewAudioVideoRequest extends AbstractModel
  • Cover:封面。
  • 不填或填空数组时,默认为审核 Media。 * @param integer $Definition 审核模板 ID,默认值为 10。取值范围: -
  • 10:预置模板,支持检测的违规标签包括色情(Porn)、暴力(Terror)和不适宜的信息(Polity)。
  • +
  • 10:[预置模板](https://cloud.tencent.com/document/product/266/33476#.E9.A2.84.E7.BD.AE.E9.9F.B3.E8.A7.86.E9.A2.91.E5.AE.A1.E6.A0.B8.E6.A8.A1.E6.9D.BF.5B.5D(id.3Averify)),支持检测的违规标签包括色情(Porn)、暴力(Terror)、不适宜的信息(Polity)和娇喘(Moan)。
  • * @param integer $TasksPriority 任务流的优先级,数值越大优先级越高,取值范围是 -10 到 10,不填代表 0。 * @param string $SessionContext 来源上下文,用于透传用户请求信息,音视频审核完成回调将返回该字段值,最长 1000 个字符。 * @param string $SessionId 用于去重的识别码,如果三天内曾有过相同的识别码的请求,则本次的请求会返回错误。最长 50 个字符,不带或者带空字符串表示不做去重。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/RoundPlayListItemInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/RoundPlayListItemInfo.php index 8a3c4b7df..67d467b15 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/RoundPlayListItemInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vod/V20180717/Models/RoundPlayListItemInfo.php @@ -18,7 +18,7 @@ namespace TencentCloud\Vod\V20180717\Models; use TencentCloud\Common\AbstractModel; /** - * 加权轮播媒体文件信息 + * 轮播媒体文件信息 * * @method string getFileId() 获取媒体文件标识。 * @method void setFileId(string $FileId) 设置媒体文件标识。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/AcceptVpcPeeringConnectionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/AcceptVpcPeeringConnectionRequest.php new file mode 100644 index 000000000..a084189ca --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/AcceptVpcPeeringConnectionRequest.php @@ -0,0 +1,53 @@ +PeeringConnectionId = $param["PeeringConnectionId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/AcceptVpcPeeringConnectionResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/AcceptVpcPeeringConnectionResponse.php new file mode 100644 index 000000000..a1b0ed596 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/AcceptVpcPeeringConnectionResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/CreateVpcPeeringConnectionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/CreateVpcPeeringConnectionRequest.php new file mode 100644 index 000000000..cb893e932 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/CreateVpcPeeringConnectionRequest.php @@ -0,0 +1,47 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/CreateVpnGatewayRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/CreateVpnGatewayRequest.php index 0f1c7b646..b5e32f998 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/CreateVpnGatewayRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/CreateVpnGatewayRequest.php @@ -24,22 +24,22 @@ use TencentCloud\Common\AbstractModel; * @method void setVpcId(string $VpcId) 设置VPC实例ID。可通过[DescribeVpcs](https://cloud.tencent.com/document/product/215/15778)接口返回值中的VpcId获取。 * @method string getVpnGatewayName() 获取VPN网关名称,最大长度不能超过60个字节。 * @method void setVpnGatewayName(string $VpnGatewayName) 设置VPN网关名称,最大长度不能超过60个字节。 - * @method integer getInternetMaxBandwidthOut() 获取公网带宽设置。可选带宽规格:5, 10, 20, 50, 100;单位:Mbps - * @method void setInternetMaxBandwidthOut(integer $InternetMaxBandwidthOut) 设置公网带宽设置。可选带宽规格:5, 10, 20, 50, 100;单位:Mbps + * @method integer getInternetMaxBandwidthOut() 获取公网带宽设置。可选带宽规格:5, 10, 20, 50, 100, 200, 500, 1000, 3000;单位:Mbps。 + * @method void setInternetMaxBandwidthOut(integer $InternetMaxBandwidthOut) 设置公网带宽设置。可选带宽规格:5, 10, 20, 50, 100, 200, 500, 1000, 3000;单位:Mbps。 * @method string getInstanceChargeType() 获取VPN网关计费模式,PREPAID:表示预付费,即包年包月,POSTPAID_BY_HOUR:表示后付费,即按量计费。默认:POSTPAID_BY_HOUR,如果指定预付费模式,参数InstanceChargePrepaid必填。 * @method void setInstanceChargeType(string $InstanceChargeType) 设置VPN网关计费模式,PREPAID:表示预付费,即包年包月,POSTPAID_BY_HOUR:表示后付费,即按量计费。默认:POSTPAID_BY_HOUR,如果指定预付费模式,参数InstanceChargePrepaid必填。 * @method InstanceChargePrepaid getInstanceChargePrepaid() 获取预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。 * @method void setInstanceChargePrepaid(InstanceChargePrepaid $InstanceChargePrepaid) 设置预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。 * @method string getZone() 获取可用区,如:ap-guangzhou-2。 * @method void setZone(string $Zone) 设置可用区,如:ap-guangzhou-2。 - * @method string getType() 获取VPN网关类型。值“CCN”云联网类型VPN网关,值SSL为SSL-VPN - * @method void setType(string $Type) 设置VPN网关类型。值“CCN”云联网类型VPN网关,值SSL为SSL-VPN - * @method array getTags() 获取指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}] - * @method void setTags(array $Tags) 设置指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}] - * @method string getCdcId() 获取CDC实例ID - * @method void setCdcId(string $CdcId) 设置CDC实例ID - * @method integer getMaxConnection() 获取SSL-VPN 最大CLIENT 连接数。可选 [5, 10, 20, 50, 100]。仅SSL-VPN 需要选这个参数。 - * @method void setMaxConnection(integer $MaxConnection) 设置SSL-VPN 最大CLIENT 连接数。可选 [5, 10, 20, 50, 100]。仅SSL-VPN 需要选这个参数。 + * @method string getType() 获取VPN网关类型,默认为IPSEC。值“IPSEC”为VPC型IPSEC VPN网关,值“SSL”为VPC型SSL VPN网关,值“CCN”为云联网型IPSEC VPN网关,值“SSL_CCN”为云联网型SSL VPN网关。 + * @method void setType(string $Type) 设置VPN网关类型,默认为IPSEC。值“IPSEC”为VPC型IPSEC VPN网关,值“SSL”为VPC型SSL VPN网关,值“CCN”为云联网型IPSEC VPN网关,值“SSL_CCN”为云联网型SSL VPN网关。 + * @method array getTags() 获取指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。 + * @method void setTags(array $Tags) 设置指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。 + * @method string getCdcId() 获取CDC实例ID。 + * @method void setCdcId(string $CdcId) 设置CDC实例ID。 + * @method integer getMaxConnection() 获取SSL VPN连接数设置,可选规格:5, 10, 20, 50, 100, 200, 500, 1000;单位:个。仅 SSL / SSL_CCN 类型需要选这个参数。 + * @method void setMaxConnection(integer $MaxConnection) 设置SSL VPN连接数设置,可选规格:5, 10, 20, 50, 100, 200, 500, 1000;单位:个。仅 SSL / SSL_CCN 类型需要选这个参数。 */ class CreateVpnGatewayRequest extends AbstractModel { @@ -54,7 +54,7 @@ class CreateVpnGatewayRequest extends AbstractModel public $VpnGatewayName; /** - * @var integer 公网带宽设置。可选带宽规格:5, 10, 20, 50, 100;单位:Mbps + * @var integer 公网带宽设置。可选带宽规格:5, 10, 20, 50, 100, 200, 500, 1000, 3000;单位:Mbps。 */ public $InternetMaxBandwidthOut; @@ -74,36 +74,36 @@ class CreateVpnGatewayRequest extends AbstractModel public $Zone; /** - * @var string VPN网关类型。值“CCN”云联网类型VPN网关,值SSL为SSL-VPN + * @var string VPN网关类型,默认为IPSEC。值“IPSEC”为VPC型IPSEC VPN网关,值“SSL”为VPC型SSL VPN网关,值“CCN”为云联网型IPSEC VPN网关,值“SSL_CCN”为云联网型SSL VPN网关。 */ public $Type; /** - * @var array 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}] + * @var array 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。 */ public $Tags; /** - * @var string CDC实例ID + * @var string CDC实例ID。 */ public $CdcId; /** - * @var integer SSL-VPN 最大CLIENT 连接数。可选 [5, 10, 20, 50, 100]。仅SSL-VPN 需要选这个参数。 + * @var integer SSL VPN连接数设置,可选规格:5, 10, 20, 50, 100, 200, 500, 1000;单位:个。仅 SSL / SSL_CCN 类型需要选这个参数。 */ public $MaxConnection; /** * @param string $VpcId VPC实例ID。可通过[DescribeVpcs](https://cloud.tencent.com/document/product/215/15778)接口返回值中的VpcId获取。 * @param string $VpnGatewayName VPN网关名称,最大长度不能超过60个字节。 - * @param integer $InternetMaxBandwidthOut 公网带宽设置。可选带宽规格:5, 10, 20, 50, 100;单位:Mbps + * @param integer $InternetMaxBandwidthOut 公网带宽设置。可选带宽规格:5, 10, 20, 50, 100, 200, 500, 1000, 3000;单位:Mbps。 * @param string $InstanceChargeType VPN网关计费模式,PREPAID:表示预付费,即包年包月,POSTPAID_BY_HOUR:表示后付费,即按量计费。默认:POSTPAID_BY_HOUR,如果指定预付费模式,参数InstanceChargePrepaid必填。 * @param InstanceChargePrepaid $InstanceChargePrepaid 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。 * @param string $Zone 可用区,如:ap-guangzhou-2。 - * @param string $Type VPN网关类型。值“CCN”云联网类型VPN网关,值SSL为SSL-VPN - * @param array $Tags 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}] - * @param string $CdcId CDC实例ID - * @param integer $MaxConnection SSL-VPN 最大CLIENT 连接数。可选 [5, 10, 20, 50, 100]。仅SSL-VPN 需要选这个参数。 + * @param string $Type VPN网关类型,默认为IPSEC。值“IPSEC”为VPC型IPSEC VPN网关,值“SSL”为VPC型SSL VPN网关,值“CCN”为云联网型IPSEC VPN网关,值“SSL_CCN”为云联网型SSL VPN网关。 + * @param array $Tags 指定绑定的标签列表,例如:[{"Key": "city", "Value": "shanghai"}]。 + * @param string $CdcId CDC实例ID。 + * @param integer $MaxConnection SSL VPN连接数设置,可选规格:5, 10, 20, 50, 100, 200, 500, 1000;单位:个。仅 SSL / SSL_CCN 类型需要选这个参数。 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DeleteVpcPeeringConnectionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DeleteVpcPeeringConnectionRequest.php new file mode 100644 index 000000000..f8948fc46 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DeleteVpcPeeringConnectionRequest.php @@ -0,0 +1,53 @@ +PeeringConnectionId = $param["PeeringConnectionId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DeleteVpcPeeringConnectionResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DeleteVpcPeeringConnectionResponse.php new file mode 100644 index 000000000..ab31bb4d8 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DeleteVpcPeeringConnectionResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeNatGatewayDestinationIpPortTranslationNatRulesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeNatGatewayDestinationIpPortTranslationNatRulesRequest.php index 1f29fa952..36cb2f4f0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeNatGatewayDestinationIpPortTranslationNatRulesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeNatGatewayDestinationIpPortTranslationNatRulesRequest.php @@ -23,7 +23,7 @@ use TencentCloud\Common\AbstractModel; * @method array getNatGatewayIds() 获取NAT网关ID。 * @method void setNatGatewayIds(array $NatGatewayIds) 设置NAT网关ID。 * @method array getFilters() 获取过滤条件: -参数不支持同时指定NatGatewayIds和Filters。 +参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10,Filter.Values的上限为5
  • nat-gateway-id,NAT网关的ID,如`nat-0yi4hekt`
  • vpc-id,私有网络VPC的ID,如`vpc-0yi4hekt`
  • public-ip-address, 弹性IP,如`139.199.232.238`。
  • @@ -32,7 +32,7 @@ use TencentCloud\Common\AbstractModel;
  • private-port, 内网端口。
  • description,规则描述。
  • * @method void setFilters(array $Filters) 设置过滤条件: -参数不支持同时指定NatGatewayIds和Filters。 +参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10,Filter.Values的上限为5
  • nat-gateway-id,NAT网关的ID,如`nat-0yi4hekt`
  • vpc-id,私有网络VPC的ID,如`vpc-0yi4hekt`
  • public-ip-address, 弹性IP,如`139.199.232.238`。
  • @@ -54,7 +54,7 @@ class DescribeNatGatewayDestinationIpPortTranslationNatRulesRequest extends Abst /** * @var array 过滤条件: -参数不支持同时指定NatGatewayIds和Filters。 +参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10,Filter.Values的上限为5
  • nat-gateway-id,NAT网关的ID,如`nat-0yi4hekt`
  • vpc-id,私有网络VPC的ID,如`vpc-0yi4hekt`
  • public-ip-address, 弹性IP,如`139.199.232.238`。
  • @@ -78,7 +78,7 @@ class DescribeNatGatewayDestinationIpPortTranslationNatRulesRequest extends Abst /** * @param array $NatGatewayIds NAT网关ID。 * @param array $Filters 过滤条件: -参数不支持同时指定NatGatewayIds和Filters。 +参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10,Filter.Values的上限为5
  • nat-gateway-id,NAT网关的ID,如`nat-0yi4hekt`
  • vpc-id,私有网络VPC的ID,如`vpc-0yi4hekt`
  • public-ip-address, 弹性IP,如`139.199.232.238`。
  • diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeNatGatewaysRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeNatGatewaysRequest.php index 076010f01..06fe78202 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeNatGatewaysRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeNatGatewaysRequest.php @@ -20,14 +20,14 @@ use TencentCloud\Common\AbstractModel; /** * DescribeNatGateways请求参数结构体 * - * @method array getNatGatewayIds() 获取NAT网关统一 ID,形如:`nat-123xx454`。 - * @method void setNatGatewayIds(array $NatGatewayIds) 设置NAT网关统一 ID,形如:`nat-123xx454`。 - * @method array getFilters() 获取过滤条件,参数不支持同时指定NatGatewayIds和Filters。 + * @method array getNatGatewayIds() 获取NAT网关统一 ID,形如:`nat-123xx454`。每次请求的实例上限为100。参数不支持同时指定NatGatewayIds和Filters。 + * @method void setNatGatewayIds(array $NatGatewayIds) 设置NAT网关统一 ID,形如:`nat-123xx454`。每次请求的实例上限为100。参数不支持同时指定NatGatewayIds和Filters。 + * @method array getFilters() 获取过滤条件,参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10,Filter.Values的上限为5。
  • nat-gateway-id - String - (过滤条件)协议端口模板实例ID,形如:`nat-123xx454`。
  • vpc-id - String - (过滤条件)私有网络 唯一ID,形如:`vpc-123xx454`。
  • nat-gateway-name - String - (过滤条件)协议端口模板实例ID,形如:`test_nat`。
  • tag-key - String - (过滤条件)标签键,形如:`test-key`。
  • - * @method void setFilters(array $Filters) 设置过滤条件,参数不支持同时指定NatGatewayIds和Filters。 + * @method void setFilters(array $Filters) 设置过滤条件,参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10,Filter.Values的上限为5。
  • nat-gateway-id - String - (过滤条件)协议端口模板实例ID,形如:`nat-123xx454`。
  • vpc-id - String - (过滤条件)私有网络 唯一ID,形如:`vpc-123xx454`。
  • nat-gateway-name - String - (过滤条件)协议端口模板实例ID,形如:`test_nat`。
  • @@ -40,12 +40,12 @@ use TencentCloud\Common\AbstractModel; class DescribeNatGatewaysRequest extends AbstractModel { /** - * @var array NAT网关统一 ID,形如:`nat-123xx454`。 + * @var array NAT网关统一 ID,形如:`nat-123xx454`。每次请求的实例上限为100。参数不支持同时指定NatGatewayIds和Filters。 */ public $NatGatewayIds; /** - * @var array 过滤条件,参数不支持同时指定NatGatewayIds和Filters。 + * @var array 过滤条件,参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10,Filter.Values的上限为5。
  • nat-gateway-id - String - (过滤条件)协议端口模板实例ID,形如:`nat-123xx454`。
  • vpc-id - String - (过滤条件)私有网络 唯一ID,形如:`vpc-123xx454`。
  • nat-gateway-name - String - (过滤条件)协议端口模板实例ID,形如:`test_nat`。
  • @@ -64,8 +64,8 @@ class DescribeNatGatewaysRequest extends AbstractModel public $Limit; /** - * @param array $NatGatewayIds NAT网关统一 ID,形如:`nat-123xx454`。 - * @param array $Filters 过滤条件,参数不支持同时指定NatGatewayIds和Filters。 + * @param array $NatGatewayIds NAT网关统一 ID,形如:`nat-123xx454`。每次请求的实例上限为100。参数不支持同时指定NatGatewayIds和Filters。 + * @param array $Filters 过滤条件,参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10,Filter.Values的上限为5。
  • nat-gateway-id - String - (过滤条件)协议端口模板实例ID,形如:`nat-123xx454`。
  • vpc-id - String - (过滤条件)私有网络 唯一ID,形如:`vpc-123xx454`。
  • nat-gateway-name - String - (过滤条件)协议端口模板实例ID,形如:`test_nat`。
  • diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeSpecificTrafficPackageUsedDetailsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeSpecificTrafficPackageUsedDetailsRequest.php new file mode 100644 index 000000000..924625215 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeSpecificTrafficPackageUsedDetailsRequest.php @@ -0,0 +1,142 @@ + resource-id - String - 是否必填:否 - (过滤条件)按照抵扣流量资源的唯一 ID 过滤。
  • resource-type - String - 是否必填:否 - (过滤条件)按照资源类型过滤,资源类型包括 CVM 和 EIP
  • + * @method void setFilters(array $Filters) 设置每次请求的`Filters`的上限为10,`Filter.Values`的上限为5。详细的过滤条件如下:
  • resource-id - String - 是否必填:否 - (过滤条件)按照抵扣流量资源的唯一 ID 过滤。
  • resource-type - String - 是否必填:否 - (过滤条件)按照资源类型过滤,资源类型包括 CVM 和 EIP
  • + * @method string getOrderField() 获取排序条件。该参数仅支持根据抵扣量排序,传值为 deduction + * @method void setOrderField(string $OrderField) 设置排序条件。该参数仅支持根据抵扣量排序,传值为 deduction + * @method integer getOrderType() 获取排序类型,仅支持0和1,0-降序,1-升序。不传默认为0 + * @method void setOrderType(integer $OrderType) 设置排序类型,仅支持0和1,0-降序,1-升序。不传默认为0 + * @method string getStartTime() 获取开始时间。不传默认为当前时间往前推30天 + * @method void setStartTime(string $StartTime) 设置开始时间。不传默认为当前时间往前推30天 + * @method string getEndTime() 获取结束时间。不传默认为当前时间 + * @method void setEndTime(string $EndTime) 设置结束时间。不传默认为当前时间 + * @method integer getOffset() 获取分页参数 + * @method void setOffset(integer $Offset) 设置分页参数 + * @method integer getLimit() 获取分页参数 + * @method void setLimit(integer $Limit) 设置分页参数 + */ +class DescribeSpecificTrafficPackageUsedDetailsRequest extends AbstractModel +{ + /** + * @var string 共享流量包唯一ID + */ + public $TrafficPackageId; + + /** + * @var array 每次请求的`Filters`的上限为10,`Filter.Values`的上限为5。详细的过滤条件如下:
  • resource-id - String - 是否必填:否 - (过滤条件)按照抵扣流量资源的唯一 ID 过滤。
  • resource-type - String - 是否必填:否 - (过滤条件)按照资源类型过滤,资源类型包括 CVM 和 EIP
  • + */ + public $Filters; + + /** + * @var string 排序条件。该参数仅支持根据抵扣量排序,传值为 deduction + */ + public $OrderField; + + /** + * @var integer 排序类型,仅支持0和1,0-降序,1-升序。不传默认为0 + */ + public $OrderType; + + /** + * @var string 开始时间。不传默认为当前时间往前推30天 + */ + public $StartTime; + + /** + * @var string 结束时间。不传默认为当前时间 + */ + public $EndTime; + + /** + * @var integer 分页参数 + */ + public $Offset; + + /** + * @var integer 分页参数 + */ + public $Limit; + + /** + * @param string $TrafficPackageId 共享流量包唯一ID + * @param array $Filters 每次请求的`Filters`的上限为10,`Filter.Values`的上限为5。详细的过滤条件如下:
  • resource-id - String - 是否必填:否 - (过滤条件)按照抵扣流量资源的唯一 ID 过滤。
  • resource-type - String - 是否必填:否 - (过滤条件)按照资源类型过滤,资源类型包括 CVM 和 EIP
  • + * @param string $OrderField 排序条件。该参数仅支持根据抵扣量排序,传值为 deduction + * @param integer $OrderType 排序类型,仅支持0和1,0-降序,1-升序。不传默认为0 + * @param string $StartTime 开始时间。不传默认为当前时间往前推30天 + * @param string $EndTime 结束时间。不传默认为当前时间 + * @param integer $Offset 分页参数 + * @param integer $Limit 分页参数 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("TrafficPackageId",$param) and $param["TrafficPackageId"] !== null) { + $this->TrafficPackageId = $param["TrafficPackageId"]; + } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new Filter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } + + if (array_key_exists("OrderField",$param) and $param["OrderField"] !== null) { + $this->OrderField = $param["OrderField"]; + } + + if (array_key_exists("OrderType",$param) and $param["OrderType"] !== null) { + $this->OrderType = $param["OrderType"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeSpecificTrafficPackageUsedDetailsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeSpecificTrafficPackageUsedDetailsResponse.php new file mode 100644 index 000000000..62102de1b --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeSpecificTrafficPackageUsedDetailsResponse.php @@ -0,0 +1,82 @@ +TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("UsedDetailSet",$param) and $param["UsedDetailSet"] !== null) { + $this->UsedDetailSet = []; + foreach ($param["UsedDetailSet"] as $key => $value){ + $obj = new UsedDetail(); + $obj->deserialize($value); + array_push($this->UsedDetailSet, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcEndPointServiceRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcEndPointServiceRequest.php index 95a52b00e..fc5a58252 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcEndPointServiceRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcEndPointServiceRequest.php @@ -36,6 +36,8 @@ use TencentCloud\Common\AbstractModel; * @method void setLimit(integer $Limit) 设置单页返回数量,默认为20,最大值为100。 * @method array getEndPointServiceIds() 获取终端节点服务ID。不支持同时传入参数 EndPointServiceIds and Filters。 * @method void setEndPointServiceIds(array $EndPointServiceIds) 设置终端节点服务ID。不支持同时传入参数 EndPointServiceIds and Filters。 + * @method boolean getIsListAuthorizedEndPointService() 获取
  • 不支持同时传入参数 Filters 。
  • 列出授权给当前账号的的终端节点服务信息。可以配合EndPointServiceIds参数进行过滤,那些终端节点服务授权了该账户。
  • + * @method void setIsListAuthorizedEndPointService(boolean $IsListAuthorizedEndPointService) 设置
  • 不支持同时传入参数 Filters 。
  • 列出授权给当前账号的的终端节点服务信息。可以配合EndPointServiceIds参数进行过滤,那些终端节点服务授权了该账户。
  • */ class DescribeVpcEndPointServiceRequest extends AbstractModel { @@ -63,6 +65,11 @@ class DescribeVpcEndPointServiceRequest extends AbstractModel */ public $EndPointServiceIds; + /** + * @var boolean
  • 不支持同时传入参数 Filters 。
  • 列出授权给当前账号的的终端节点服务信息。可以配合EndPointServiceIds参数进行过滤,那些终端节点服务授权了该账户。
  • + */ + public $IsListAuthorizedEndPointService; + /** * @param array $Filters 过滤条件。不支持同时传入参数 EndPointServiceIds and Filters。
  • service-id - String - (过滤条件)终端节点服务唯一ID。
  • @@ -72,6 +79,7 @@ class DescribeVpcEndPointServiceRequest extends AbstractModel * @param integer $Offset 偏移量,默认为0。 * @param integer $Limit 单页返回数量,默认为20,最大值为100。 * @param array $EndPointServiceIds 终端节点服务ID。不支持同时传入参数 EndPointServiceIds and Filters。 + * @param boolean $IsListAuthorizedEndPointService
  • 不支持同时传入参数 Filters 。
  • 列出授权给当前账号的的终端节点服务信息。可以配合EndPointServiceIds参数进行过滤,那些终端节点服务授权了该账户。
  • */ function __construct() { @@ -106,5 +114,9 @@ class DescribeVpcEndPointServiceRequest extends AbstractModel if (array_key_exists("EndPointServiceIds",$param) and $param["EndPointServiceIds"] !== null) { $this->EndPointServiceIds = $param["EndPointServiceIds"]; } + + if (array_key_exists("IsListAuthorizedEndPointService",$param) and $param["IsListAuthorizedEndPointService"] !== null) { + $this->IsListAuthorizedEndPointService = $param["IsListAuthorizedEndPointService"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcPeeringConnectionsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcPeeringConnectionsRequest.php new file mode 100644 index 000000000..fb792e4b6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcPeeringConnectionsRequest.php @@ -0,0 +1,130 @@ +vpc-id - String - (过滤条件)VPC实例ID,形如:vpc-f49l6u0z。 +
  • state String - (过滤条件)对等连接状态,可选值有:PENDING,投放中;ACTIVE,使用中;EXPIRED,已过期;REJECTED,拒绝。
  • +
  • peering-connection-name - String - (过滤条件)对等连接名称。
  • + * @method void setFilters(array $Filters) 设置过滤条件,参数不支持同时指定PeeringConnectionIds和Filters。 +
  • vpc-id - String - (过滤条件)VPC实例ID,形如:vpc-f49l6u0z。
  • +
  • state String - (过滤条件)对等连接状态,可选值有:PENDING,投放中;ACTIVE,使用中;EXPIRED,已过期;REJECTED,拒绝。
  • +
  • peering-connection-name - String - (过滤条件)对等连接名称。
  • + * @method integer getOffset() 获取偏移量。 + * @method void setOffset(integer $Offset) 设置偏移量。 + * @method integer getLimit() 获取请求对象个数。 + * @method void setLimit(integer $Limit) 设置请求对象个数。 + * @method string getOrderField() 获取排序字段,可选值有:CreatedTime,PeeringConnectionName。 + * @method void setOrderField(string $OrderField) 设置排序字段,可选值有:CreatedTime,PeeringConnectionName。 + * @method string getOrderDirection() 获取排序方式:DESC,降序;ASC,升序。 + * @method void setOrderDirection(string $OrderDirection) 设置排序方式:DESC,降序;ASC,升序。 + */ +class DescribeVpcPeeringConnectionsRequest extends AbstractModel +{ + /** + * @var array 对等连接唯一ID数组。 + */ + public $PeeringConnectionIds; + + /** + * @var array 过滤条件,参数不支持同时指定PeeringConnectionIds和Filters。 +
  • vpc-id - String - (过滤条件)VPC实例ID,形如:vpc-f49l6u0z。
  • +
  • state String - (过滤条件)对等连接状态,可选值有:PENDING,投放中;ACTIVE,使用中;EXPIRED,已过期;REJECTED,拒绝。
  • +
  • peering-connection-name - String - (过滤条件)对等连接名称。
  • + */ + public $Filters; + + /** + * @var integer 偏移量。 + */ + public $Offset; + + /** + * @var integer 请求对象个数。 + */ + public $Limit; + + /** + * @var string 排序字段,可选值有:CreatedTime,PeeringConnectionName。 + */ + public $OrderField; + + /** + * @var string 排序方式:DESC,降序;ASC,升序。 + */ + public $OrderDirection; + + /** + * @param array $PeeringConnectionIds 对等连接唯一ID数组。 + * @param array $Filters 过滤条件,参数不支持同时指定PeeringConnectionIds和Filters。 +
  • vpc-id - String - (过滤条件)VPC实例ID,形如:vpc-f49l6u0z。
  • +
  • state String - (过滤条件)对等连接状态,可选值有:PENDING,投放中;ACTIVE,使用中;EXPIRED,已过期;REJECTED,拒绝。
  • +
  • peering-connection-name - String - (过滤条件)对等连接名称。
  • + * @param integer $Offset 偏移量。 + * @param integer $Limit 请求对象个数。 + * @param string $OrderField 排序字段,可选值有:CreatedTime,PeeringConnectionName。 + * @param string $OrderDirection 排序方式:DESC,降序;ASC,升序。 + */ + function __construct() + { + + } + + /** + * For internal only. DO NOT USE IT. + */ + public function deserialize($param) + { + if ($param === null) { + return; + } + if (array_key_exists("PeeringConnectionIds",$param) and $param["PeeringConnectionIds"] !== null) { + $this->PeeringConnectionIds = $param["PeeringConnectionIds"]; + } + + if (array_key_exists("Filters",$param) and $param["Filters"] !== null) { + $this->Filters = []; + foreach ($param["Filters"] as $key => $value){ + $obj = new Filter(); + $obj->deserialize($value); + array_push($this->Filters, $obj); + } + } + + if (array_key_exists("Offset",$param) and $param["Offset"] !== null) { + $this->Offset = $param["Offset"]; + } + + if (array_key_exists("Limit",$param) and $param["Limit"] !== null) { + $this->Limit = $param["Limit"]; + } + + if (array_key_exists("OrderField",$param) and $param["OrderField"] !== null) { + $this->OrderField = $param["OrderField"]; + } + + if (array_key_exists("OrderDirection",$param) and $param["OrderDirection"] !== null) { + $this->OrderDirection = $param["OrderDirection"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcPeeringConnectionsResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcPeeringConnectionsResponse.php new file mode 100644 index 000000000..67455f148 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/DescribeVpcPeeringConnectionsResponse.php @@ -0,0 +1,53 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/ModifyVpcPeeringConnectionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/ModifyVpcPeeringConnectionRequest.php new file mode 100644 index 000000000..9d19a7287 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/ModifyVpcPeeringConnectionRequest.php @@ -0,0 +1,47 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/RejectVpcPeeringConnectionRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/RejectVpcPeeringConnectionRequest.php new file mode 100644 index 000000000..b28f6673f --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/RejectVpcPeeringConnectionRequest.php @@ -0,0 +1,47 @@ +RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/TrafficFlow.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/TrafficFlow.php new file mode 100644 index 000000000..09781eb86 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/TrafficFlow.php @@ -0,0 +1,85 @@ +Value = $param["Value"]; + } + + if (array_key_exists("FormatValue",$param) and $param["FormatValue"] !== null) { + $this->FormatValue = $param["FormatValue"]; + } + + if (array_key_exists("FormatUnit",$param) and $param["FormatUnit"] !== null) { + $this->FormatUnit = $param["FormatUnit"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/UsedDetail.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/UsedDetail.php new file mode 100644 index 000000000..4f26d9db6 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/UsedDetail.php @@ -0,0 +1,168 @@ +TrafficPackageId = $param["TrafficPackageId"]; + } + + if (array_key_exists("TrafficPackageName",$param) and $param["TrafficPackageName"] !== null) { + $this->TrafficPackageName = $param["TrafficPackageName"]; + } + + if (array_key_exists("TotalAmount",$param) and $param["TotalAmount"] !== null) { + $this->TotalAmount = new TrafficFlow(); + $this->TotalAmount->deserialize($param["TotalAmount"]); + } + + if (array_key_exists("Deduction",$param) and $param["Deduction"] !== null) { + $this->Deduction = new TrafficFlow(); + $this->Deduction->deserialize($param["Deduction"]); + } + + if (array_key_exists("RemainingAmount",$param) and $param["RemainingAmount"] !== null) { + $this->RemainingAmount = new TrafficFlow(); + $this->RemainingAmount->deserialize($param["RemainingAmount"]); + } + + if (array_key_exists("Time",$param) and $param["Time"] !== null) { + $this->Time = $param["Time"]; + } + + if (array_key_exists("ResourceType",$param) and $param["ResourceType"] !== null) { + $this->ResourceType = $param["ResourceType"]; + } + + if (array_key_exists("ResourceId",$param) and $param["ResourceId"] !== null) { + $this->ResourceId = $param["ResourceId"]; + } + + if (array_key_exists("ResourceName",$param) and $param["ResourceName"] !== null) { + $this->ResourceName = $param["ResourceName"]; + } + + if (array_key_exists("Deadline",$param) and $param["Deadline"] !== null) { + $this->Deadline = $param["Deadline"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/VpnGateway.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/VpnGateway.php index 992152d92..d44f501db 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/VpnGateway.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/Models/VpnGateway.php @@ -26,16 +26,16 @@ use TencentCloud\Common\AbstractModel; * @method void setVpcId(string $VpcId) 设置VPC实例ID。 * @method string getVpnGatewayName() 获取网关实例名称。 * @method void setVpnGatewayName(string $VpnGatewayName) 设置网关实例名称。 - * @method string getType() 获取网关实例类型:'IPSEC', 'SSL','CCN'。 - * @method void setType(string $Type) 设置网关实例类型:'IPSEC', 'SSL','CCN'。 - * @method string getState() 获取网关实例状态, 'PENDING':生产中,'DELETING':删除中,'AVAILABLE':运行中。 - * @method void setState(string $State) 设置网关实例状态, 'PENDING':生产中,'DELETING':删除中,'AVAILABLE':运行中。 + * @method string getType() 获取网关实例类型:'IPSEC', 'SSL','CCN','SSL_CCN'。 + * @method void setType(string $Type) 设置网关实例类型:'IPSEC', 'SSL','CCN','SSL_CCN'。 + * @method string getState() 获取网关实例状态, 'PENDING':生产中,'PENDING_ERROR':生产失败,'DELETING':删除中,'DELETING_ERROR':删除失败,'AVAILABLE':运行中。 + * @method void setState(string $State) 设置网关实例状态, 'PENDING':生产中,'PENDING_ERROR':生产失败,'DELETING':删除中,'DELETING_ERROR':删除失败,'AVAILABLE':运行中。 * @method string getPublicIpAddress() 获取网关公网IP。 * @method void setPublicIpAddress(string $PublicIpAddress) 设置网关公网IP。 * @method string getRenewFlag() 获取网关续费类型:'NOTIFY_AND_MANUAL_RENEW':手动续费,'NOTIFY_AND_AUTO_RENEW':自动续费,'NOT_NOTIFY_AND_NOT_RENEW':到期不续费。 * @method void setRenewFlag(string $RenewFlag) 设置网关续费类型:'NOTIFY_AND_MANUAL_RENEW':手动续费,'NOTIFY_AND_AUTO_RENEW':自动续费,'NOT_NOTIFY_AND_NOT_RENEW':到期不续费。 - * @method string getInstanceChargeType() 获取网关付费类型:POSTPAID_BY_HOUR:按小时后付费,PREPAID:包年包月预付费, - * @method void setInstanceChargeType(string $InstanceChargeType) 设置网关付费类型:POSTPAID_BY_HOUR:按小时后付费,PREPAID:包年包月预付费, + * @method string getInstanceChargeType() 获取网关付费类型:POSTPAID_BY_HOUR:按量计费,PREPAID:包年包月预付费。 + * @method void setInstanceChargeType(string $InstanceChargeType) 设置网关付费类型:POSTPAID_BY_HOUR:按量计费,PREPAID:包年包月预付费。 * @method integer getInternetMaxBandwidthOut() 获取网关出带宽。 * @method void setInternetMaxBandwidthOut(integer $InternetMaxBandwidthOut) 设置网关出带宽。 * @method string getCreatedTime() 获取创建时间。 @@ -46,18 +46,18 @@ use TencentCloud\Common\AbstractModel; * @method void setIsAddressBlocked(boolean $IsAddressBlocked) 设置公网IP是否被封堵。 * @method string getNewPurchasePlan() 获取计费模式变更,PREPAID_TO_POSTPAID:包年包月预付费到期转按小时后付费。 * @method void setNewPurchasePlan(string $NewPurchasePlan) 设置计费模式变更,PREPAID_TO_POSTPAID:包年包月预付费到期转按小时后付费。 - * @method string getRestrictState() 获取网关计费装,PROTECTIVELY_ISOLATED:被安全隔离的实例,NORMAL:正常。 - * @method void setRestrictState(string $RestrictState) 设置网关计费装,PROTECTIVELY_ISOLATED:被安全隔离的实例,NORMAL:正常。 - * @method string getZone() 获取可用区,如:ap-guangzhou-2 - * @method void setZone(string $Zone) 设置可用区,如:ap-guangzhou-2 - * @method array getVpnGatewayQuotaSet() 获取网关带宽配额信息 - * @method void setVpnGatewayQuotaSet(array $VpnGatewayQuotaSet) 设置网关带宽配额信息 - * @method string getVersion() 获取网关实例版本信息 - * @method void setVersion(string $Version) 设置网关实例版本信息 - * @method string getNetworkInstanceId() 获取Type值为CCN时,该值表示云联网实例ID - * @method void setNetworkInstanceId(string $NetworkInstanceId) 设置Type值为CCN时,该值表示云联网实例ID - * @method string getCdcId() 获取CDC 实例ID - * @method void setCdcId(string $CdcId) 设置CDC 实例ID + * @method string getRestrictState() 获取网关计费状态,PROTECTIVELY_ISOLATED:被安全隔离的实例,NORMAL:正常。 + * @method void setRestrictState(string $RestrictState) 设置网关计费状态,PROTECTIVELY_ISOLATED:被安全隔离的实例,NORMAL:正常。 + * @method string getZone() 获取可用区,如:ap-guangzhou-2。 + * @method void setZone(string $Zone) 设置可用区,如:ap-guangzhou-2。 + * @method array getVpnGatewayQuotaSet() 获取网关带宽配额信息。 + * @method void setVpnGatewayQuotaSet(array $VpnGatewayQuotaSet) 设置网关带宽配额信息。 + * @method string getVersion() 获取网关实例版本信息。 + * @method void setVersion(string $Version) 设置网关实例版本信息。 + * @method string getNetworkInstanceId() 获取Type值为CCN时,该值表示云联网实例ID。 + * @method void setNetworkInstanceId(string $NetworkInstanceId) 设置Type值为CCN时,该值表示云联网实例ID。 + * @method string getCdcId() 获取CDC 实例ID。 + * @method void setCdcId(string $CdcId) 设置CDC 实例ID。 * @method integer getMaxConnection() 获取SSL-VPN 客户端连接数。 * @method void setMaxConnection(integer $MaxConnection) 设置SSL-VPN 客户端连接数。 */ @@ -79,12 +79,12 @@ class VpnGateway extends AbstractModel public $VpnGatewayName; /** - * @var string 网关实例类型:'IPSEC', 'SSL','CCN'。 + * @var string 网关实例类型:'IPSEC', 'SSL','CCN','SSL_CCN'。 */ public $Type; /** - * @var string 网关实例状态, 'PENDING':生产中,'DELETING':删除中,'AVAILABLE':运行中。 + * @var string 网关实例状态, 'PENDING':生产中,'PENDING_ERROR':生产失败,'DELETING':删除中,'DELETING_ERROR':删除失败,'AVAILABLE':运行中。 */ public $State; @@ -99,7 +99,7 @@ class VpnGateway extends AbstractModel public $RenewFlag; /** - * @var string 网关付费类型:POSTPAID_BY_HOUR:按小时后付费,PREPAID:包年包月预付费, + * @var string 网关付费类型:POSTPAID_BY_HOUR:按量计费,PREPAID:包年包月预付费。 */ public $InstanceChargeType; @@ -129,32 +129,32 @@ class VpnGateway extends AbstractModel public $NewPurchasePlan; /** - * @var string 网关计费装,PROTECTIVELY_ISOLATED:被安全隔离的实例,NORMAL:正常。 + * @var string 网关计费状态,PROTECTIVELY_ISOLATED:被安全隔离的实例,NORMAL:正常。 */ public $RestrictState; /** - * @var string 可用区,如:ap-guangzhou-2 + * @var string 可用区,如:ap-guangzhou-2。 */ public $Zone; /** - * @var array 网关带宽配额信息 + * @var array 网关带宽配额信息。 */ public $VpnGatewayQuotaSet; /** - * @var string 网关实例版本信息 + * @var string 网关实例版本信息。 */ public $Version; /** - * @var string Type值为CCN时,该值表示云联网实例ID + * @var string Type值为CCN时,该值表示云联网实例ID。 */ public $NetworkInstanceId; /** - * @var string CDC 实例ID + * @var string CDC 实例ID。 */ public $CdcId; @@ -167,22 +167,22 @@ class VpnGateway extends AbstractModel * @param string $VpnGatewayId 网关实例ID。 * @param string $VpcId VPC实例ID。 * @param string $VpnGatewayName 网关实例名称。 - * @param string $Type 网关实例类型:'IPSEC', 'SSL','CCN'。 - * @param string $State 网关实例状态, 'PENDING':生产中,'DELETING':删除中,'AVAILABLE':运行中。 + * @param string $Type 网关实例类型:'IPSEC', 'SSL','CCN','SSL_CCN'。 + * @param string $State 网关实例状态, 'PENDING':生产中,'PENDING_ERROR':生产失败,'DELETING':删除中,'DELETING_ERROR':删除失败,'AVAILABLE':运行中。 * @param string $PublicIpAddress 网关公网IP。 * @param string $RenewFlag 网关续费类型:'NOTIFY_AND_MANUAL_RENEW':手动续费,'NOTIFY_AND_AUTO_RENEW':自动续费,'NOT_NOTIFY_AND_NOT_RENEW':到期不续费。 - * @param string $InstanceChargeType 网关付费类型:POSTPAID_BY_HOUR:按小时后付费,PREPAID:包年包月预付费, + * @param string $InstanceChargeType 网关付费类型:POSTPAID_BY_HOUR:按量计费,PREPAID:包年包月预付费。 * @param integer $InternetMaxBandwidthOut 网关出带宽。 * @param string $CreatedTime 创建时间。 * @param string $ExpiredTime 预付费网关过期时间。 * @param boolean $IsAddressBlocked 公网IP是否被封堵。 * @param string $NewPurchasePlan 计费模式变更,PREPAID_TO_POSTPAID:包年包月预付费到期转按小时后付费。 - * @param string $RestrictState 网关计费装,PROTECTIVELY_ISOLATED:被安全隔离的实例,NORMAL:正常。 - * @param string $Zone 可用区,如:ap-guangzhou-2 - * @param array $VpnGatewayQuotaSet 网关带宽配额信息 - * @param string $Version 网关实例版本信息 - * @param string $NetworkInstanceId Type值为CCN时,该值表示云联网实例ID - * @param string $CdcId CDC 实例ID + * @param string $RestrictState 网关计费状态,PROTECTIVELY_ISOLATED:被安全隔离的实例,NORMAL:正常。 + * @param string $Zone 可用区,如:ap-guangzhou-2。 + * @param array $VpnGatewayQuotaSet 网关带宽配额信息。 + * @param string $Version 网关实例版本信息。 + * @param string $NetworkInstanceId Type值为CCN时,该值表示云联网实例ID。 + * @param string $CdcId CDC 实例ID。 * @param integer $MaxConnection SSL-VPN 客户端连接数。 */ function __construct() diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/VpcClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/VpcClient.php index dd1cee901..c7206cec0 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/VpcClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Vpc/V20170312/VpcClient.php @@ -24,6 +24,7 @@ use TencentCloud\Vpc\V20170312\Models as Models; /** * @method Models\AcceptAttachCcnInstancesResponse AcceptAttachCcnInstances(Models\AcceptAttachCcnInstancesRequest $req) 本接口(AcceptAttachCcnInstances)用于跨账号关联实例时,云联网所有者接受并同意关联操作。 + * @method Models\AcceptVpcPeeringConnectionResponse AcceptVpcPeeringConnection(Models\AcceptVpcPeeringConnectionRequest $req) 本接口(AcceptVpcPeeringConnection)用于接受对等连接请求。 * @method Models\AddBandwidthPackageResourcesResponse AddBandwidthPackageResources(Models\AddBandwidthPackageResourcesRequest $req) 接口用于添加带宽包资源,包括[弹性公网IP](https://cloud.tencent.com/document/product/213/1941)和[负载均衡](https://cloud.tencent.com/document/product/214/517)等 * @method Models\AddIp6RulesResponse AddIp6Rules(Models\AddIp6RulesRequest $req) 1. 该接口用于在转换实例下添加IPV6转换规则。 2. 支持在同一个转换实例下批量添加转换规则,一个账户在一个地域最多50个。 @@ -211,6 +212,7 @@ use TencentCloud\Vpc\V20170312\Models as Models; * @method Models\CreateVpcEndPointResponse CreateVpcEndPoint(Models\CreateVpcEndPointRequest $req) 本接口(CreateVpcEndPoint)用于创建终端节点。 * @method Models\CreateVpcEndPointServiceResponse CreateVpcEndPointService(Models\CreateVpcEndPointServiceRequest $req) 本接口(CreateVpcEndPointService)用于创建终端节点服务。 * @method Models\CreateVpcEndPointServiceWhiteListResponse CreateVpcEndPointServiceWhiteList(Models\CreateVpcEndPointServiceWhiteListRequest $req) 本接口(CreateVpcEndPointServiceWhiteList)创建终端服务白名单。 + * @method Models\CreateVpcPeeringConnectionResponse CreateVpcPeeringConnection(Models\CreateVpcPeeringConnectionRequest $req) 本接口(CreateVpcPeeringConnection)用于创建私有网络对等连接。 * @method Models\CreateVpnConnectionResponse CreateVpnConnection(Models\CreateVpnConnectionRequest $req) 本接口(CreateVpnConnection)用于创建VPN通道。 >?本接口为异步接口,可调用 [DescribeVpcTaskResult](https://cloud.tencent.com/document/api/215/59037) 接口查询任务执行结果,待任务执行成功后再进行其他操作。 > @@ -273,6 +275,7 @@ use TencentCloud\Vpc\V20170312\Models as Models; * @method Models\DeleteVpcEndPointResponse DeleteVpcEndPoint(Models\DeleteVpcEndPointRequest $req) 本接口(DeleteVpcEndPoint)用于删除终端节点。 * @method Models\DeleteVpcEndPointServiceResponse DeleteVpcEndPointService(Models\DeleteVpcEndPointServiceRequest $req) 本接口(DeleteVpcEndPointService)用于删除终端节点服务。 * @method Models\DeleteVpcEndPointServiceWhiteListResponse DeleteVpcEndPointServiceWhiteList(Models\DeleteVpcEndPointServiceWhiteListRequest $req) 本接口(DeleteVpcEndPointServiceWhiteList)用于删除终端节点服务白名单。 + * @method Models\DeleteVpcPeeringConnectionResponse DeleteVpcPeeringConnection(Models\DeleteVpcPeeringConnectionRequest $req) 本接口(DeleteVpcPeeringConnection)用于删除私有网络对等连接。 * @method Models\DeleteVpnConnectionResponse DeleteVpnConnection(Models\DeleteVpnConnectionRequest $req) 本接口(DeleteVpnConnection)用于删除VPN通道。 * @method Models\DeleteVpnGatewayResponse DeleteVpnGateway(Models\DeleteVpnGatewayRequest $req) 本接口(DeleteVpnGateway)用于删除VPN网关。目前只支持删除运行中的按量计费的IPSEC网关实例。 * @method Models\DeleteVpnGatewayRoutesResponse DeleteVpnGatewayRoutes(Models\DeleteVpnGatewayRoutesRequest $req) 本接口(DeleteVpnGatewayRoutes)用于删除VPN网关路由 @@ -346,6 +349,7 @@ use TencentCloud\Vpc\V20170312\Models as Models; * @method Models\DescribeSnapshotAttachedInstancesResponse DescribeSnapshotAttachedInstances(Models\DescribeSnapshotAttachedInstancesRequest $req) 本接口(DescribeSnapshotAttachedInstances)用于查询快照策略关联实例列表。 * @method Models\DescribeSnapshotFilesResponse DescribeSnapshotFiles(Models\DescribeSnapshotFilesRequest $req) 本接口(DescribeSnapshotFiles)用于查询快照文件。 * @method Models\DescribeSnapshotPoliciesResponse DescribeSnapshotPolicies(Models\DescribeSnapshotPoliciesRequest $req) 本接口(DescribeSnapshotPolicies)用于查询快照策略。 + * @method Models\DescribeSpecificTrafficPackageUsedDetailsResponse DescribeSpecificTrafficPackageUsedDetails(Models\DescribeSpecificTrafficPackageUsedDetailsRequest $req) 本接口 (DescribeSpecificTrafficPackageUsedDetails) 用于查询指定 共享流量包 的用量明细。 * @method Models\DescribeSubnetResourceDashboardResponse DescribeSubnetResourceDashboard(Models\DescribeSubnetResourceDashboardRequest $req) 本接口(DescribeSubnetResourceDashboard)用于查看Subnet资源信息。 * @method Models\DescribeSubnetsResponse DescribeSubnets(Models\DescribeSubnetsRequest $req) 本接口(DescribeSubnets)用于查询子网列表。 * @method Models\DescribeTaskResultResponse DescribeTaskResult(Models\DescribeTaskResultRequest $req) 查询EIP异步任务执行结果 @@ -394,6 +398,7 @@ LimitTypes取值范围: * vpc-max-assistant_cidrs(每个VPC可分配的辅助CIDR数)。 * appid-max-end-point-services (每个开发商每个地域可创建的终端节点服务个数)。 * appid-max-end-point-service-white-lists (每个开发商每个地域可创建的终端节点服务白名单个数)。 + * @method Models\DescribeVpcPeeringConnectionsResponse DescribeVpcPeeringConnections(Models\DescribeVpcPeeringConnectionsRequest $req) 查询私有网络对等连接。 * @method Models\DescribeVpcPrivateIpAddressesResponse DescribeVpcPrivateIpAddresses(Models\DescribeVpcPrivateIpAddressesRequest $req) 本接口(DescribeVpcPrivateIpAddresses)用于查询VPC内网IP信息。
    只能查询已使用的IP信息,当查询未使用的IP时,本接口不会报错,但不会出现在返回结果里。 * @method Models\DescribeVpcResourceDashboardResponse DescribeVpcResourceDashboard(Models\DescribeVpcResourceDashboardRequest $req) 本接口(DescribeVpcResourceDashboard)用于查看VPC资源信息。 @@ -535,6 +540,7 @@ LimitTypes取值范围: * @method Models\ModifyVpcEndPointServiceWhiteListResponse ModifyVpcEndPointServiceWhiteList(Models\ModifyVpcEndPointServiceWhiteListRequest $req) 本接口(ModifyVpcEndPointServiceWhiteList)用于修改终端节点服务白名单属性。 + * @method Models\ModifyVpcPeeringConnectionResponse ModifyVpcPeeringConnection(Models\ModifyVpcPeeringConnectionRequest $req) 本接口(ModifyVpcPeeringConnection)用于修改私有网络对等连接属性。 * @method Models\ModifyVpnConnectionAttributeResponse ModifyVpnConnectionAttribute(Models\ModifyVpnConnectionAttributeRequest $req) 本接口(ModifyVpnConnectionAttribute)用于修改VPN通道。 * @method Models\ModifyVpnGatewayAttributeResponse ModifyVpnGatewayAttribute(Models\ModifyVpnGatewayAttributeRequest $req) 本接口(ModifyVpnGatewayAttribute)用于修改VPN网关属性。 * @method Models\ModifyVpnGatewayCcnRoutesResponse ModifyVpnGatewayCcnRoutes(Models\ModifyVpnGatewayCcnRoutesRequest $req) 本接口(ModifyVpnGatewayCcnRoutes)用于修改VPN网关云联网路由。 @@ -543,6 +549,7 @@ LimitTypes取值范围: * @method Models\RefreshDirectConnectGatewayRouteToNatGatewayResponse RefreshDirectConnectGatewayRouteToNatGateway(Models\RefreshDirectConnectGatewayRouteToNatGatewayRequest $req) 刷新专线直连nat路由,更新nat到专线的路由表 * @method Models\RejectAttachCcnInstancesResponse RejectAttachCcnInstances(Models\RejectAttachCcnInstancesRequest $req) 本接口(RejectAttachCcnInstances)用于跨账号关联实例时,云联网所有者拒绝关联操作。 + * @method Models\RejectVpcPeeringConnectionResponse RejectVpcPeeringConnection(Models\RejectVpcPeeringConnectionRequest $req) 本接口(RejectVpcPeeringConnection)用于驳回对等连接请求。 * @method Models\ReleaseAddressesResponse ReleaseAddresses(Models\ReleaseAddressesRequest $req) 本接口 (ReleaseAddresses) 用于释放一个或多个[弹性公网IP](https://cloud.tencent.com/document/product/213/1941)(简称 EIP)。 * 该操作不可逆,释放后 EIP 关联的 IP 地址将不再属于您的名下。 * 只有状态为 UNBIND 的 EIP 才能进行释放操作。 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/AccessHistogramItem.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/AccessHistogramItem.php new file mode 100644 index 000000000..b730cbc14 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/AccessHistogramItem.php @@ -0,0 +1,65 @@ +BTime = $param["BTime"]; + } + + if (array_key_exists("Count",$param) and $param["Count"] !== null) { + $this->Count = $param["Count"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/AddDomainWhiteRuleRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/AddDomainWhiteRuleRequest.php index efafef2c6..0ea077203 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/AddDomainWhiteRuleRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/AddDomainWhiteRuleRequest.php @@ -28,8 +28,8 @@ use TencentCloud\Common\AbstractModel; * @method void setUrl(string $Url) 设置需要添加的规则url * @method string getFunction() 获取规则的方法 * @method void setFunction(string $Function) 设置规则的方法 - * @method integer getStatus() 获取规则的开关 - * @method void setStatus(integer $Status) 设置规则的开关 + * @method integer getStatus() 获取规则的开关,0表示规则关闭,1表示规则打开 + * @method void setStatus(integer $Status) 设置规则的开关,0表示规则关闭,1表示规则打开 */ class AddDomainWhiteRuleRequest extends AbstractModel { @@ -54,7 +54,7 @@ class AddDomainWhiteRuleRequest extends AbstractModel public $Function; /** - * @var integer 规则的开关 + * @var integer 规则的开关,0表示规则关闭,1表示规则打开 */ public $Status; @@ -63,7 +63,7 @@ class AddDomainWhiteRuleRequest extends AbstractModel * @param array $Rules 需要添加的规则 * @param string $Url 需要添加的规则url * @param string $Function 规则的方法 - * @param integer $Status 规则的开关 + * @param integer $Status 规则的开关,0表示规则关闭,1表示规则打开 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeAccessHistogramRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeAccessHistogramRequest.php new file mode 100644 index 000000000..d990d3989 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeAccessHistogramRequest.php @@ -0,0 +1,101 @@ +TopicId = $param["TopicId"]; + } + + if (array_key_exists("From",$param) and $param["From"] !== null) { + $this->From = $param["From"]; + } + + if (array_key_exists("To",$param) and $param["To"] !== null) { + $this->To = $param["To"]; + } + + if (array_key_exists("Query",$param) and $param["Query"] !== null) { + $this->Query = $param["Query"]; + } + + if (array_key_exists("Interval",$param) and $param["Interval"] !== null) { + $this->Interval = $param["Interval"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeAccessHistogramResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeAccessHistogramResponse.php new file mode 100644 index 000000000..b0e54cfcd --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeAccessHistogramResponse.php @@ -0,0 +1,98 @@ +Interval = $param["Interval"]; + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("HistogramInfos",$param) and $param["HistogramInfos"] !== null) { + $this->HistogramInfos = []; + foreach ($param["HistogramInfos"] as $key => $value){ + $obj = new AccessHistogramItem(); + $obj->deserialize($value); + array_push($this->HistogramInfos, $obj); + } + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeCustomWhiteRuleRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeCustomWhiteRuleRequest.php index 9763dd9cd..3181663fa 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeCustomWhiteRuleRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/DescribeCustomWhiteRuleRequest.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getDomain() 获取域名 * @method void setDomain(string $Domain) 设置域名 - * @method integer getOffset() 获取偏移 - * @method void setOffset(integer $Offset) 设置偏移 + * @method integer getOffset() 获取偏移量 + * @method void setOffset(integer $Offset) 设置偏移量 * @method integer getLimit() 获取容量 * @method void setLimit(integer $Limit) 设置容量 * @method array getFilters() 获取过滤数组,name可以是如下的值: RuleID,RuleName,Match @@ -41,7 +41,7 @@ class DescribeCustomWhiteRuleRequest extends AbstractModel public $Domain; /** - * @var integer 偏移 + * @var integer 偏移量 */ public $Offset; @@ -67,7 +67,7 @@ class DescribeCustomWhiteRuleRequest extends AbstractModel /** * @param string $Domain 域名 - * @param integer $Offset 偏移 + * @param integer $Offset 偏移量 * @param integer $Limit 容量 * @param array $Filters 过滤数组,name可以是如下的值: RuleID,RuleName,Match * @param string $Order asc或者desc diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/GetAttackHistogramRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/GetAttackHistogramRequest.php new file mode 100644 index 000000000..1539ad32d --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/GetAttackHistogramRequest.php @@ -0,0 +1,89 @@ +Domain = $param["Domain"]; + } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("QueryString",$param) and $param["QueryString"] !== null) { + $this->QueryString = $param["QueryString"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/GetAttackHistogramResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/GetAttackHistogramResponse.php new file mode 100644 index 000000000..f8d3509c2 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/GetAttackHistogramResponse.php @@ -0,0 +1,94 @@ +Data = []; + foreach ($param["Data"] as $key => $value){ + $obj = new LogHistogramInfo(); + $obj->deserialize($value); + array_push($this->Data, $obj); + } + } + + if (array_key_exists("Period",$param) and $param["Period"] !== null) { + $this->Period = $param["Period"]; + } + + if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) { + $this->TotalCount = $param["TotalCount"]; + } + + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { + $this->RequestId = $param["RequestId"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/LogHistogramInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/LogHistogramInfo.php new file mode 100644 index 000000000..3c17fd6b0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/LogHistogramInfo.php @@ -0,0 +1,65 @@ +Count = $param["Count"]; + } + + if (array_key_exists("TimeStamp",$param) and $param["TimeStamp"] !== null) { + $this->TimeStamp = $param["TimeStamp"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/ModifyWafAutoDenyRulesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/ModifyWafAutoDenyRulesRequest.php index 731a5eb00..8a1c643d7 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/ModifyWafAutoDenyRulesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/ModifyWafAutoDenyRulesRequest.php @@ -28,8 +28,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTimeThreshold(integer $TimeThreshold) 设置IP封禁统计时间,范围为1-60分钟 * @method integer getDenyTimeThreshold() 获取触发IP封禁后的封禁时间,范围为5~360分钟 * @method void setDenyTimeThreshold(integer $DenyTimeThreshold) 设置触发IP封禁后的封禁时间,范围为5~360分钟 - * @method integer getDefenseStatus() 获取自动封禁状态 - * @method void setDefenseStatus(integer $DefenseStatus) 设置自动封禁状态 + * @method integer getDefenseStatus() 获取自动封禁状态,0表示关闭,1表示打开 + * @method void setDefenseStatus(integer $DefenseStatus) 设置自动封禁状态,0表示关闭,1表示打开 */ class ModifyWafAutoDenyRulesRequest extends AbstractModel { @@ -54,7 +54,7 @@ class ModifyWafAutoDenyRulesRequest extends AbstractModel public $DenyTimeThreshold; /** - * @var integer 自动封禁状态 + * @var integer 自动封禁状态,0表示关闭,1表示打开 */ public $DefenseStatus; @@ -63,7 +63,7 @@ class ModifyWafAutoDenyRulesRequest extends AbstractModel * @param integer $AttackThreshold 触发IP封禁的攻击次数阈值,范围为2~100次 * @param integer $TimeThreshold IP封禁统计时间,范围为1-60分钟 * @param integer $DenyTimeThreshold 触发IP封禁后的封禁时间,范围为5~360分钟 - * @param integer $DefenseStatus 自动封禁状态 + * @param integer $DefenseStatus 自动封禁状态,0表示关闭,1表示打开 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAccessLogRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAccessLogRequest.php index 3655d6752..02fc52e45 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAccessLogRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAccessLogRequest.php @@ -30,10 +30,8 @@ use TencentCloud\Common\AbstractModel; * @method void setQuery(string $Query) 设置查询语句,语句长度最大为4096 * @method integer getLimit() 获取单次查询返回的日志条数,最大值为100 * @method void setLimit(integer $Limit) 设置单次查询返回的日志条数,最大值为100 - * @method string getContext() 获取加载更多日志时使用,透传上次返回的Context值,获取后续的日志内容。 -新版本此字段填空填 - * @method void setContext(string $Context) 设置加载更多日志时使用,透传上次返回的Context值,获取后续的日志内容。 -新版本此字段填空填 + * @method string getContext() 获取新版本此字段失效,填空字符串,翻页使用Page + * @method void setContext(string $Context) 设置新版本此字段失效,填空字符串,翻页使用Page * @method string getSort() 获取日志接口是否按时间排序返回;可选值:asc(升序)、desc(降序),默认为 desc * @method void setSort(string $Sort) 设置日志接口是否按时间排序返回;可选值:asc(升序)、desc(降序),默认为 desc * @method integer getPage() 获取第几页,从0开始。新版本接口字段 @@ -67,8 +65,7 @@ class SearchAccessLogRequest extends AbstractModel public $Limit; /** - * @var string 加载更多日志时使用,透传上次返回的Context值,获取后续的日志内容。 -新版本此字段填空填 + * @var string 新版本此字段失效,填空字符串,翻页使用Page */ public $Context; @@ -88,8 +85,7 @@ class SearchAccessLogRequest extends AbstractModel * @param integer $To 要查询的日志的结束时间,Unix时间戳,单位ms * @param string $Query 查询语句,语句长度最大为4096 * @param integer $Limit 单次查询返回的日志条数,最大值为100 - * @param string $Context 加载更多日志时使用,透传上次返回的Context值,获取后续的日志内容。 -新版本此字段填空填 + * @param string $Context 新版本此字段失效,填空字符串,翻页使用Page * @param string $Sort 日志接口是否按时间排序返回;可选值:asc(升序)、desc(降序),默认为 desc * @param integer $Page 第几页,从0开始。新版本接口字段 */ diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAccessLogResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAccessLogResponse.php index d9751f72a..8291b4a2a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAccessLogResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAccessLogResponse.php @@ -20,8 +20,8 @@ use TencentCloud\Common\AbstractModel; /** * SearchAccessLog返回参数结构体 * - * @method string getContext() 获取加载后续内容的Context - * @method void setContext(string $Context) 设置加载后续内容的Context + * @method string getContext() 获取新接口此字段失效,默认返回空字符串 + * @method void setContext(string $Context) 设置新接口此字段失效,默认返回空字符串 * @method boolean getListOver() 获取日志查询结果是否全部返回,其中,“true”表示结果返回,“false”表示结果为返回 * @method void setListOver(boolean $ListOver) 设置日志查询结果是否全部返回,其中,“true”表示结果返回,“false”表示结果为返回 * @method boolean getAnalysis() 获取返回的是否为分析结果,其中,“true”表示返回分析结果,“false”表示未返回分析结果 @@ -50,7 +50,7 @@ use TencentCloud\Common\AbstractModel; class SearchAccessLogResponse extends AbstractModel { /** - * @var string 加载后续内容的Context + * @var string 新接口此字段失效,默认返回空字符串 */ public $Context; @@ -91,7 +91,7 @@ class SearchAccessLogResponse extends AbstractModel public $RequestId; /** - * @param string $Context 加载后续内容的Context + * @param string $Context 新接口此字段失效,默认返回空字符串 * @param boolean $ListOver 日志查询结果是否全部返回,其中,“true”表示结果返回,“false”表示结果为返回 * @param boolean $Analysis 返回的是否为分析结果,其中,“true”表示返回分析结果,“false”表示未返回分析结果 * @param array $ColNames 如果Analysis为True,则返回分析结果的列名,否则为空 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAttackLogRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAttackLogRequest.php index f04e7bafe..581cb7a0f 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAttackLogRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAttackLogRequest.php @@ -26,8 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setStartTime(string $StartTime) 设置查询起始时间 * @method string getEndTime() 获取查询结束时间 * @method void setEndTime(string $EndTime) 设置查询结束时间 - * @method string getContext() 获取查询的游标。第一次请求使用空字符串即可,后续请求使用上一次请求返回的最后一条记录的context的值即可。 - * @method void setContext(string $Context) 设置查询的游标。第一次请求使用空字符串即可,后续请求使用上一次请求返回的最后一条记录的context的值即可。 + * @method string getContext() 获取接口升级,这个字段传空字符串,翻页使用Page字段 + * @method void setContext(string $Context) 设置接口升级,这个字段传空字符串,翻页使用Page字段 * @method string getQueryString() 获取Lucene语法 * @method void setQueryString(string $QueryString) 设置Lucene语法 * @method integer getCount() 获取查询的数量,默认10条,最多100条 @@ -55,7 +55,7 @@ class SearchAttackLogRequest extends AbstractModel public $EndTime; /** - * @var string 查询的游标。第一次请求使用空字符串即可,后续请求使用上一次请求返回的最后一条记录的context的值即可。 + * @var string 接口升级,这个字段传空字符串,翻页使用Page字段 */ public $Context; @@ -83,7 +83,7 @@ class SearchAttackLogRequest extends AbstractModel * @param string $Domain 查询的域名,所有域名使用all * @param string $StartTime 查询起始时间 * @param string $EndTime 查询结束时间 - * @param string $Context 查询的游标。第一次请求使用空字符串即可,后续请求使用上一次请求返回的最后一条记录的context的值即可。 + * @param string $Context 接口升级,这个字段传空字符串,翻页使用Page字段 * @param string $QueryString Lucene语法 * @param integer $Count 查询的数量,默认10条,最多100条 * @param string $Sort 默认为desc,可以取值desc和asc diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAttackLogResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAttackLogResponse.php index 7183a0157..7605dd715 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAttackLogResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SearchAttackLogResponse.php @@ -22,8 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method integer getCount() 获取当前返回的攻击日志条数 * @method void setCount(integer $Count) 设置当前返回的攻击日志条数 - * @method string getContext() 获取翻页游标,如果没有下一页了,这个参数为空"" - * @method void setContext(string $Context) 设置翻页游标,如果没有下一页了,这个参数为空"" + * @method string getContext() 获取接口升级,此字段无效,默认返回空字符串 + * @method void setContext(string $Context) 设置接口升级,此字段无效,默认返回空字符串 * @method array getData() 获取攻击日志数组条目内容 * @method void setData(array $Data) 设置攻击日志数组条目内容 * @method boolean getListOver() 获取CLS接口返回内容 @@ -41,7 +41,7 @@ class SearchAttackLogResponse extends AbstractModel public $Count; /** - * @var string 翻页游标,如果没有下一页了,这个参数为空"" + * @var string 接口升级,此字段无效,默认返回空字符串 */ public $Context; @@ -67,7 +67,7 @@ class SearchAttackLogResponse extends AbstractModel /** * @param integer $Count 当前返回的攻击日志条数 - * @param string $Context 翻页游标,如果没有下一页了,这个参数为空"" + * @param string $Context 接口升级,此字段无效,默认返回空字符串 * @param array $Data 攻击日志数组条目内容 * @param boolean $ListOver CLS接口返回内容 * @param boolean $SqlFlag CLS接口返回内容,标志是否启动新版本索引 diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SwitchDomainRulesRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SwitchDomainRulesRequest.php index 4853216ea..b3bd78e16 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SwitchDomainRulesRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/Models/SwitchDomainRulesRequest.php @@ -24,10 +24,12 @@ use TencentCloud\Common\AbstractModel; * @method void setDomain(string $Domain) 设置域名 * @method array getIds() 获取规则列表 * @method void setIds(array $Ids) 设置规则列表 - * @method integer getStatus() 获取开关状态 - * @method void setStatus(integer $Status) 设置开关状态 - * @method integer getReason() 获取设置为观察模式原因 - * @method void setReason(integer $Reason) 设置设置为观察模式原因 + * @method integer getStatus() 获取开关状态,0表示关闭,1表示开启,2表示只观察 + * @method void setStatus(integer $Status) 设置开关状态,0表示关闭,1表示开启,2表示只观察 + * @method integer getReason() 获取设置为观察模式原因, +1表示业务自身原因观察,2表示系统规则误报上报,3表示核心业务灰度观察,4表示其他 + * @method void setReason(integer $Reason) 设置设置为观察模式原因, +1表示业务自身原因观察,2表示系统规则误报上报,3表示核心业务灰度观察,4表示其他 */ class SwitchDomainRulesRequest extends AbstractModel { @@ -42,20 +44,22 @@ class SwitchDomainRulesRequest extends AbstractModel public $Ids; /** - * @var integer 开关状态 + * @var integer 开关状态,0表示关闭,1表示开启,2表示只观察 */ public $Status; /** - * @var integer 设置为观察模式原因 + * @var integer 设置为观察模式原因, +1表示业务自身原因观察,2表示系统规则误报上报,3表示核心业务灰度观察,4表示其他 */ public $Reason; /** * @param string $Domain 域名 * @param array $Ids 规则列表 - * @param integer $Status 开关状态 - * @param integer $Reason 设置为观察模式原因 + * @param integer $Status 开关状态,0表示关闭,1表示开启,2表示只观察 + * @param integer $Reason 设置为观察模式原因, +1表示业务自身原因观察,2表示系统规则误报上报,3表示核心业务灰度观察,4表示其他 */ function __construct() { diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/WafClient.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/WafClient.php index 7eb039b41..b524635e9 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/WafClient.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Waf/V20180125/WafClient.php @@ -38,9 +38,12 @@ use TencentCloud\Waf\V20180125\Models as Models; * @method Models\DeleteSessionResponse DeleteSession(Models\DeleteSessionRequest $req) 删除CC攻击的session设置 * @method Models\DescribeAccessExportsResponse DescribeAccessExports(Models\DescribeAccessExportsRequest $req) 本接口用于获取访问日志导出列表 * @method Models\DescribeAccessFastAnalysisResponse DescribeAccessFastAnalysis(Models\DescribeAccessFastAnalysisRequest $req) 本接口用于访问日志的快速分析 + * @method Models\DescribeAccessHistogramResponse DescribeAccessHistogram(Models\DescribeAccessHistogramRequest $req) 本接口用于访问日志柱状趋势图 * @method Models\DescribeAccessIndexResponse DescribeAccessIndex(Models\DescribeAccessIndexRequest $req) 本接口用于获取访问日志索引配置信息 * @method Models\DescribeAttackOverviewResponse DescribeAttackOverview(Models\DescribeAttackOverviewRequest $req) 攻击总览 - * @method Models\DescribeAutoDenyIPResponse DescribeAutoDenyIP(Models\DescribeAutoDenyIPRequest $req) 描述WAF自动封禁IP详情,对齐自动封堵状态 + * @method Models\DescribeAutoDenyIPResponse DescribeAutoDenyIP(Models\DescribeAutoDenyIPRequest $req) 接口已废弃 + +描述WAF自动封禁IP详情,对齐自动封堵状态 * @method Models\DescribeCustomWhiteRuleResponse DescribeCustomWhiteRule(Models\DescribeCustomWhiteRuleRequest $req) 获取防护配置中的精准白名单策略列表 * @method Models\DescribeDomainDetailsSaasResponse DescribeDomainDetailsSaas(Models\DescribeDomainDetailsSaasRequest $req) 查询单个saas域名详情 * @method Models\DescribeDomainWhiteRulesResponse DescribeDomainWhiteRules(Models\DescribeDomainWhiteRulesRequest $req) 获取域名的规则白名单 @@ -60,6 +63,7 @@ use TencentCloud\Waf\V20180125\Models as Models; * @method Models\DescribeWafAutoDenyStatusResponse DescribeWafAutoDenyStatus(Models\DescribeWafAutoDenyStatusRequest $req) 描述WAF自动封禁模块详情 * @method Models\DescribeWafThreatenIntelligenceResponse DescribeWafThreatenIntelligence(Models\DescribeWafThreatenIntelligenceRequest $req) 描述WAF威胁情报封禁模块配置详情 * @method Models\GetAttackDownloadRecordsResponse GetAttackDownloadRecords(Models\GetAttackDownloadRecordsRequest $req) 查询下载攻击日志任务记录列表 + * @method Models\GetAttackHistogramResponse GetAttackHistogram(Models\GetAttackHistogramRequest $req) 生成攻击日志的产生时间柱状图 * @method Models\ModifyAccessPeriodResponse ModifyAccessPeriod(Models\ModifyAccessPeriodRequest $req) 本接口用于修改访问日志保存期限及大字段是否存储 * @method Models\ModifyAreaBanStatusResponse ModifyAreaBanStatus(Models\ModifyAreaBanStatusRequest $req) 修改防护域名的地域封禁状态 * @method Models\ModifyCustomRuleStatusResponse ModifyCustomRuleStatus(Models\ModifyCustomRuleStatusRequest $req) 开启或禁用访问控制(自定义策略) diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/AgentStatus.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/AgentStatus.php new file mode 100644 index 000000000..2bfa05552 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/AgentStatus.php @@ -0,0 +1,89 @@ +Running = $param["Running"]; + } + + if (array_key_exists("Abnormal",$param) and $param["Abnormal"] !== null) { + $this->Abnormal = $param["Abnormal"]; + } + + if (array_key_exists("InOperation",$param) and $param["InOperation"] !== null) { + $this->InOperation = $param["InOperation"]; + } + } +} diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/BatchDeleteIntegrationTasksRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/BatchDeleteIntegrationTasksRequest.php index dfdc16826..a4f04ddfb 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/BatchDeleteIntegrationTasksRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/BatchDeleteIntegrationTasksRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTaskType(integer $TaskType) 设置任务类型 * @method string getProjectId() 获取项目id * @method void setProjectId(string $ProjectId) 设置项目id + * @method integer getDeleteKFFlag() 获取是否删除开发态任务。默认不删除开发态,为 0 不删除 , 为 1 删除 + * @method void setDeleteKFFlag(integer $DeleteKFFlag) 设置是否删除开发态任务。默认不删除开发态,为 0 不删除 , 为 1 删除 */ class BatchDeleteIntegrationTasksRequest extends AbstractModel { @@ -44,10 +46,16 @@ class BatchDeleteIntegrationTasksRequest extends AbstractModel */ public $ProjectId; + /** + * @var integer 是否删除开发态任务。默认不删除开发态,为 0 不删除 , 为 1 删除 + */ + public $DeleteKFFlag; + /** * @param array $TaskIds 任务id * @param integer $TaskType 任务类型 * @param string $ProjectId 项目id + * @param integer $DeleteKFFlag 是否删除开发态任务。默认不删除开发态,为 0 不删除 , 为 1 删除 */ function __construct() { @@ -73,5 +81,9 @@ class BatchDeleteIntegrationTasksRequest extends AbstractModel if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { $this->ProjectId = $param["ProjectId"]; } + + if (array_key_exists("DeleteKFFlag",$param) and $param["DeleteKFFlag"] !== null) { + $this->DeleteKFFlag = $param["DeleteKFFlag"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/CommitIntegrationTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/CommitIntegrationTaskRequest.php index ef14989a9..23b3ec446 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/CommitIntegrationTaskRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/CommitIntegrationTaskRequest.php @@ -30,6 +30,10 @@ use TencentCloud\Common\AbstractModel; * @method void setTaskType(integer $TaskType) 设置实时任务 201 离线任务 202 默认实时任务 * @method array getExtConfig() 获取额外参数 * @method void setExtConfig(array $ExtConfig) 设置额外参数 + * @method string getVersionDesc() 获取提交版本描述 + * @method void setVersionDesc(string $VersionDesc) 设置提交版本描述 + * @method integer getInstanceVersion() 获取提交版本号 + * @method void setInstanceVersion(integer $InstanceVersion) 设置提交版本号 */ class CommitIntegrationTaskRequest extends AbstractModel { @@ -58,12 +62,24 @@ class CommitIntegrationTaskRequest extends AbstractModel */ public $ExtConfig; + /** + * @var string 提交版本描述 + */ + public $VersionDesc; + + /** + * @var integer 提交版本号 + */ + public $InstanceVersion; + /** * @param string $TaskId 任务id * @param string $ProjectId 项目id * @param integer $CommitType 0.仅提交,1.立即启动,2.停止线上作业,丢弃作业状态数据,重新启动运行,3.暂停线上作业,保留作业状态数据,继续运行,4.保留作业状态数据,继续运行 * @param integer $TaskType 实时任务 201 离线任务 202 默认实时任务 * @param array $ExtConfig 额外参数 + * @param string $VersionDesc 提交版本描述 + * @param integer $InstanceVersion 提交版本号 */ function __construct() { @@ -102,5 +118,13 @@ class CommitIntegrationTaskRequest extends AbstractModel array_push($this->ExtConfig, $obj); } } + + if (array_key_exists("VersionDesc",$param) and $param["VersionDesc"] !== null) { + $this->VersionDesc = $param["VersionDesc"]; + } + + if (array_key_exists("InstanceVersion",$param) and $param["InstanceVersion"] !== null) { + $this->InstanceVersion = $param["InstanceVersion"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DeleteIntegrationTaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DeleteIntegrationTaskResponse.php index b262f1603..5cf743f8a 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DeleteIntegrationTaskResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DeleteIntegrationTaskResponse.php @@ -22,6 +22,20 @@ use TencentCloud\Common\AbstractModel; * * @method boolean getData() 获取任务删除成功与否标识 * @method void setData(boolean $Data) 设置任务删除成功与否标识 + * @method integer getDeleteFlag() 获取任务删除成功与否标识 +0表示删除成功 +1 表示失败,失败原因见 DeleteErrInfo +100 表示running or suspend task can't be deleted失败,失败原因也会写到DeleteErrInfo里面 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDeleteFlag(integer $DeleteFlag) 设置任务删除成功与否标识 +0表示删除成功 +1 表示失败,失败原因见 DeleteErrInfo +100 表示running or suspend task can't be deleted失败,失败原因也会写到DeleteErrInfo里面 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDeleteErrInfo() 获取删除失败原因 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDeleteErrInfo(string $DeleteErrInfo) 设置删除失败原因 +注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -32,6 +46,21 @@ class DeleteIntegrationTaskResponse extends AbstractModel */ public $Data; + /** + * @var integer 任务删除成功与否标识 +0表示删除成功 +1 表示失败,失败原因见 DeleteErrInfo +100 表示running or suspend task can't be deleted失败,失败原因也会写到DeleteErrInfo里面 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DeleteFlag; + + /** + * @var string 删除失败原因 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DeleteErrInfo; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -39,6 +68,13 @@ class DeleteIntegrationTaskResponse extends AbstractModel /** * @param boolean $Data 任务删除成功与否标识 + * @param integer $DeleteFlag 任务删除成功与否标识 +0表示删除成功 +1 表示失败,失败原因见 DeleteErrInfo +100 表示running or suspend task can't be deleted失败,失败原因也会写到DeleteErrInfo里面 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DeleteErrInfo 删除失败原因 +注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ function __construct() @@ -58,6 +94,14 @@ class DeleteIntegrationTaskResponse extends AbstractModel $this->Data = $param["Data"]; } + if (array_key_exists("DeleteFlag",$param) and $param["DeleteFlag"] !== null) { + $this->DeleteFlag = $param["DeleteFlag"]; + } + + if (array_key_exists("DeleteErrInfo",$param) and $param["DeleteErrInfo"] !== null) { + $this->DeleteErrInfo = $param["DeleteErrInfo"]; + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeBatchOperateTaskDTO.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeBatchOperateTaskDTO.php index 1a886c883..a664c9b6b 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeBatchOperateTaskDTO.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeBatchOperateTaskDTO.php @@ -77,6 +77,22 @@ presto\SparkJob\SparkSql * @method string getCreateTime() 获取创造时间 注意:此字段可能返回 null,表示取不到有效值。 * @method void setCreateTime(string $CreateTime) 设置创造时间 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getCycleUnit() 获取周期类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setCycleUnit(string $CycleUnit) 设置周期类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getScheduleDesc() 获取调度计划 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setScheduleDesc(string $ScheduleDesc) 设置调度计划 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDatasourceId() 获取数据源ID +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDatasourceId(string $DatasourceId) 设置数据源ID +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getDatasourceType() 获取数据源类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setDatasourceType(string $DatasourceType) 设置数据源类型 注意:此字段可能返回 null,表示取不到有效值。 */ class DescribeBatchOperateTaskDTO extends AbstractModel @@ -166,6 +182,30 @@ presto\SparkJob\SparkSql */ public $CreateTime; + /** + * @var string 周期类型 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $CycleUnit; + + /** + * @var string 调度计划 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ScheduleDesc; + + /** + * @var string 数据源ID +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DatasourceId; + + /** + * @var string 数据源类型 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $DatasourceType; + /** * @param string $TaskId 任务ID 注意:此字段可能返回 null,表示取不到有效值。 @@ -195,6 +235,14 @@ presto\SparkJob\SparkSql * @param string $UpdateTime 更新时间 注意:此字段可能返回 null,表示取不到有效值。 * @param string $CreateTime 创造时间 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $CycleUnit 周期类型 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $ScheduleDesc 调度计划 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DatasourceId 数据源ID +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $DatasourceType 数据源类型 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -265,5 +313,21 @@ presto\SparkJob\SparkSql if (array_key_exists("CreateTime",$param) and $param["CreateTime"] !== null) { $this->CreateTime = $param["CreateTime"]; } + + if (array_key_exists("CycleUnit",$param) and $param["CycleUnit"] !== null) { + $this->CycleUnit = $param["CycleUnit"]; + } + + if (array_key_exists("ScheduleDesc",$param) and $param["ScheduleDesc"] !== null) { + $this->ScheduleDesc = $param["ScheduleDesc"]; + } + + if (array_key_exists("DatasourceId",$param) and $param["DatasourceId"] !== null) { + $this->DatasourceId = $param["DatasourceId"]; + } + + if (array_key_exists("DatasourceType",$param) and $param["DatasourceType"] !== null) { + $this->DatasourceType = $param["DatasourceType"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeBatchOperateTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeBatchOperateTaskRequest.php index 024b888a1..e615d4883 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeBatchOperateTaskRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeBatchOperateTaskRequest.php @@ -76,6 +76,14 @@ presto * @method void setOwnerId(string $OwnerId) 设置1 * @method string getTenantId() 获取1 * @method void setTenantId(string $TenantId) 设置1 + * @method array getDatasourceIdList() 获取数据源ID列表 + * @method void setDatasourceIdList(array $DatasourceIdList) 设置数据源ID列表 + * @method array getDatasourceTypeList() 获取数据源类型列表 + * @method void setDatasourceTypeList(array $DatasourceTypeList) 设置数据源类型列表 + * @method array getCycleUnitList() 获取调度单位类型列表 + * @method void setCycleUnitList(array $CycleUnitList) 设置调度单位类型列表 + * @method boolean getCanSubmit() 获取是否筛选出可提交的任务 + * @method void setCanSubmit(boolean $CanSubmit) 设置是否筛选出可提交的任务 */ class DescribeBatchOperateTaskRequest extends AbstractModel { @@ -175,6 +183,26 @@ presto */ public $TenantId; + /** + * @var array 数据源ID列表 + */ + public $DatasourceIdList; + + /** + * @var array 数据源类型列表 + */ + public $DatasourceTypeList; + + /** + * @var array 调度单位类型列表 + */ + public $CycleUnitList; + + /** + * @var boolean 是否筛选出可提交的任务 + */ + public $CanSubmit; + /** * @param string $ProjectId 项目Id * @param string $Page 页码 @@ -204,6 +232,10 @@ presto * @param string $UserId 操作人名 * @param string $OwnerId 1 * @param string $TenantId 1 + * @param array $DatasourceIdList 数据源ID列表 + * @param array $DatasourceTypeList 数据源类型列表 + * @param array $CycleUnitList 调度单位类型列表 + * @param boolean $CanSubmit 是否筛选出可提交的任务 */ function __construct() { @@ -285,5 +317,21 @@ presto if (array_key_exists("TenantId",$param) and $param["TenantId"] !== null) { $this->TenantId = $param["TenantId"]; } + + if (array_key_exists("DatasourceIdList",$param) and $param["DatasourceIdList"] !== null) { + $this->DatasourceIdList = $param["DatasourceIdList"]; + } + + if (array_key_exists("DatasourceTypeList",$param) and $param["DatasourceTypeList"] !== null) { + $this->DatasourceTypeList = $param["DatasourceTypeList"]; + } + + if (array_key_exists("CycleUnitList",$param) and $param["CycleUnitList"] !== null) { + $this->CycleUnitList = $param["CycleUnitList"]; + } + + if (array_key_exists("CanSubmit",$param) and $param["CanSubmit"] !== null) { + $this->CanSubmit = $param["CanSubmit"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeIntegrationTaskRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeIntegrationTaskRequest.php index 1d135168c..136932a07 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeIntegrationTaskRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeIntegrationTaskRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setProjectId(string $ProjectId) 设置项目id * @method integer getTaskType() 获取任务类型:201. stream, 202. offline * @method void setTaskType(integer $TaskType) 设置任务类型:201. stream, 202. offline + * @method integer getInstanceVersion() 获取提交版本号 + * @method void setInstanceVersion(integer $InstanceVersion) 设置提交版本号 */ class DescribeIntegrationTaskRequest extends AbstractModel { @@ -44,10 +46,16 @@ class DescribeIntegrationTaskRequest extends AbstractModel */ public $TaskType; + /** + * @var integer 提交版本号 + */ + public $InstanceVersion; + /** * @param string $TaskId 任务id * @param string $ProjectId 项目id * @param integer $TaskType 任务类型:201. stream, 202. offline + * @param integer $InstanceVersion 提交版本号 */ function __construct() { @@ -73,5 +81,9 @@ class DescribeIntegrationTaskRequest extends AbstractModel if (array_key_exists("TaskType",$param) and $param["TaskType"] !== null) { $this->TaskType = $param["TaskType"]; } + + if (array_key_exists("InstanceVersion",$param) and $param["InstanceVersion"] !== null) { + $this->InstanceVersion = $param["InstanceVersion"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeIntegrationTaskResponse.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeIntegrationTaskResponse.php index 35a5cdb4f..c720d3464 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeIntegrationTaskResponse.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeIntegrationTaskResponse.php @@ -23,6 +23,14 @@ use TencentCloud\Common\AbstractModel; * @method IntegrationTaskInfo getTaskInfo() 获取任务信息 注意:此字段可能返回 null,表示取不到有效值。 * @method void setTaskInfo(IntegrationTaskInfo $TaskInfo) 设置任务信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method AgentStatus getAgentStatus() 获取采集器统计信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setAgentStatus(AgentStatus $AgentStatus) 设置采集器统计信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method TaskVersionInstance getTaskVersion() 获取任务版本信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setTaskVersion(TaskVersionInstance $TaskVersion) 设置任务版本信息 注意:此字段可能返回 null,表示取不到有效值。 * @method string getRequestId() 获取唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 * @method void setRequestId(string $RequestId) 设置唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 @@ -35,6 +43,18 @@ class DescribeIntegrationTaskResponse extends AbstractModel */ public $TaskInfo; + /** + * @var AgentStatus 采集器统计信息 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $AgentStatus; + + /** + * @var TaskVersionInstance 任务版本信息 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $TaskVersion; + /** * @var string 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -42,6 +62,10 @@ class DescribeIntegrationTaskResponse extends AbstractModel /** * @param IntegrationTaskInfo $TaskInfo 任务信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @param AgentStatus $AgentStatus 采集器统计信息 +注意:此字段可能返回 null,表示取不到有效值。 + * @param TaskVersionInstance $TaskVersion 任务版本信息 注意:此字段可能返回 null,表示取不到有效值。 * @param string $RequestId 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。 */ @@ -63,6 +87,16 @@ class DescribeIntegrationTaskResponse extends AbstractModel $this->TaskInfo->deserialize($param["TaskInfo"]); } + if (array_key_exists("AgentStatus",$param) and $param["AgentStatus"] !== null) { + $this->AgentStatus = new AgentStatus(); + $this->AgentStatus->deserialize($param["AgentStatus"]); + } + + if (array_key_exists("TaskVersion",$param) and $param["TaskVersion"] !== null) { + $this->TaskVersion = new TaskVersionInstance(); + $this->TaskVersion->deserialize($param["TaskVersion"]); + } + if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) { $this->RequestId = $param["RequestId"]; } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerInstanceStatusRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerInstanceStatusRequest.php index 9ffaba659..4e514de80 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerInstanceStatusRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerInstanceStatusRequest.php @@ -28,6 +28,12 @@ use TencentCloud\Common\AbstractModel; * @method void setExecutionGroupId(string $ExecutionGroupId) 设置执行资源组ID * @method string getExecutionGroupName() 获取执行资源组名字 * @method void setExecutionGroupName(string $ExecutionGroupName) 设置执行资源组名字 + * @method string getStartTime() 获取开始时间 + * @method void setStartTime(string $StartTime) 设置开始时间 + * @method string getEndTime() 获取结束时间 + * @method void setEndTime(string $EndTime) 设置结束时间 + * @method string getInCharge() 获取责任人 + * @method void setInCharge(string $InCharge) 设置责任人 */ class DescribeSchedulerInstanceStatusRequest extends AbstractModel { @@ -51,11 +57,29 @@ class DescribeSchedulerInstanceStatusRequest extends AbstractModel */ public $ExecutionGroupName; + /** + * @var string 开始时间 + */ + public $StartTime; + + /** + * @var string 结束时间 + */ + public $EndTime; + + /** + * @var string 责任人 + */ + public $InCharge; + /** * @param string $ProjectId 项目ID * @param string $TaskTypeId 任务类型ID * @param string $ExecutionGroupId 执行资源组ID * @param string $ExecutionGroupName 执行资源组名字 + * @param string $StartTime 开始时间 + * @param string $EndTime 结束时间 + * @param string $InCharge 责任人 */ function __construct() { @@ -85,5 +109,17 @@ class DescribeSchedulerInstanceStatusRequest extends AbstractModel if (array_key_exists("ExecutionGroupName",$param) and $param["ExecutionGroupName"] !== null) { $this->ExecutionGroupName = $param["ExecutionGroupName"]; } + + if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) { + $this->StartTime = $param["StartTime"]; + } + + if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { + $this->EndTime = $param["EndTime"]; + } + + if (array_key_exists("InCharge",$param) and $param["InCharge"] !== null) { + $this->InCharge = $param["InCharge"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerRunTimeInstanceCntByStatusRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerRunTimeInstanceCntByStatusRequest.php index 7b696106c..72e786185 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerRunTimeInstanceCntByStatusRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerRunTimeInstanceCntByStatusRequest.php @@ -30,6 +30,10 @@ use TencentCloud\Common\AbstractModel; * @method void setStartTime(string $StartTime) 设置开始日期:2023-03-02 * @method string getEndTime() 获取结束日前:2023-03-20 * @method void setEndTime(string $EndTime) 设置结束日前:2023-03-20 + * @method integer getTaskType() 获取1 + * @method void setTaskType(integer $TaskType) 设置1 + * @method string getInCharge() 获取1 + * @method void setInCharge(string $InCharge) 设置1 */ class DescribeSchedulerRunTimeInstanceCntByStatusRequest extends AbstractModel { @@ -58,12 +62,24 @@ class DescribeSchedulerRunTimeInstanceCntByStatusRequest extends AbstractModel */ public $EndTime; + /** + * @var integer 1 + */ + public $TaskType; + + /** + * @var string 1 + */ + public $InCharge; + /** * @param string $ProjectId 项目ID * @param string $CycleUnit 周期类型 * @param string $TimeUnit 时间单元 eg: 12h * @param string $StartTime 开始日期:2023-03-02 * @param string $EndTime 结束日前:2023-03-20 + * @param integer $TaskType 1 + * @param string $InCharge 1 */ function __construct() { @@ -97,5 +113,13 @@ class DescribeSchedulerRunTimeInstanceCntByStatusRequest extends AbstractModel if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { $this->EndTime = $param["EndTime"]; } + + if (array_key_exists("TaskType",$param) and $param["TaskType"] !== null) { + $this->TaskType = $param["TaskType"]; + } + + if (array_key_exists("InCharge",$param) and $param["InCharge"] !== null) { + $this->InCharge = $param["InCharge"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerTaskCntByStatusRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerTaskCntByStatusRequest.php index 46c54df13..3dbad1fcd 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerTaskCntByStatusRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerTaskCntByStatusRequest.php @@ -26,6 +26,8 @@ use TencentCloud\Common\AbstractModel; * @method void setTypeName(string $TypeName) 设置Y * @method string getProjectId() 获取111 * @method void setProjectId(string $ProjectId) 设置111 + * @method string getInCharge() 获取1 + * @method void setInCharge(string $InCharge) 设置1 */ class DescribeSchedulerTaskCntByStatusRequest extends AbstractModel { @@ -44,10 +46,16 @@ class DescribeSchedulerTaskCntByStatusRequest extends AbstractModel */ public $ProjectId; + /** + * @var string 1 + */ + public $InCharge; + /** * @param integer $TaskType 1 * @param string $TypeName Y * @param string $ProjectId 111 + * @param string $InCharge 1 */ function __construct() { @@ -73,5 +81,9 @@ class DescribeSchedulerTaskCntByStatusRequest extends AbstractModel if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { $this->ProjectId = $param["ProjectId"]; } + + if (array_key_exists("InCharge",$param) and $param["InCharge"] !== null) { + $this->InCharge = $param["InCharge"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerTaskTypeCntRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerTaskTypeCntRequest.php index 153b61c41..984c0a482 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerTaskTypeCntRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeSchedulerTaskTypeCntRequest.php @@ -22,6 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getProjectId() 获取项目ID * @method void setProjectId(string $ProjectId) 设置项目ID + * @method string getInCharge() 获取1 + * @method void setInCharge(string $InCharge) 设置1 */ class DescribeSchedulerTaskTypeCntRequest extends AbstractModel { @@ -30,8 +32,14 @@ class DescribeSchedulerTaskTypeCntRequest extends AbstractModel */ public $ProjectId; + /** + * @var string 1 + */ + public $InCharge; + /** * @param string $ProjectId 项目ID + * @param string $InCharge 1 */ function __construct() { @@ -49,5 +57,9 @@ class DescribeSchedulerTaskTypeCntRequest extends AbstractModel if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { $this->ProjectId = $param["ProjectId"]; } + + if (array_key_exists("InCharge",$param) and $param["InCharge"] !== null) { + $this->InCharge = $param["InCharge"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeStatisticInstanceStatusTrendOpsRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeStatisticInstanceStatusTrendOpsRequest.php index 4db92b1ea..a81548c66 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeStatisticInstanceStatusTrendOpsRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeStatisticInstanceStatusTrendOpsRequest.php @@ -36,6 +36,16 @@ use TencentCloud\Common\AbstractModel; * @method void setExecutionGroupId(string $ExecutionGroupId) 设置资源组ID * @method string getExecutionGroupName() 获取资源组名称 * @method void setExecutionGroupName(string $ExecutionGroupName) 设置资源组名称 + * @method string getInCharge() 获取1 + * @method void setInCharge(string $InCharge) 设置1 + * @method integer getTaskType() 获取1 + * @method void setTaskType(integer $TaskType) 设置1 + * @method array getStateList() 获取1 + * @method void setStateList(array $StateList) 设置1 + * @method string getAggregationUnit() 获取D代表天,H代表小时 + * @method void setAggregationUnit(string $AggregationUnit) 设置D代表天,H代表小时 + * @method integer getAverageWindowSize() 获取1 + * @method void setAverageWindowSize(integer $AverageWindowSize) 设置1 */ class DescribeStatisticInstanceStatusTrendOpsRequest extends AbstractModel { @@ -79,6 +89,31 @@ class DescribeStatisticInstanceStatusTrendOpsRequest extends AbstractModel */ public $ExecutionGroupName; + /** + * @var string 1 + */ + public $InCharge; + + /** + * @var integer 1 + */ + public $TaskType; + + /** + * @var array 1 + */ + public $StateList; + + /** + * @var string D代表天,H代表小时 + */ + public $AggregationUnit; + + /** + * @var integer 1 + */ + public $AverageWindowSize; + /** * @param string $ProjectId 项目ID * @param string $TaskTypeId 任务类型Id @@ -88,6 +123,11 @@ class DescribeStatisticInstanceStatusTrendOpsRequest extends AbstractModel * @param string $EndTime 结束时间 * @param string $ExecutionGroupId 资源组ID * @param string $ExecutionGroupName 资源组名称 + * @param string $InCharge 1 + * @param integer $TaskType 1 + * @param array $StateList 1 + * @param string $AggregationUnit D代表天,H代表小时 + * @param integer $AverageWindowSize 1 */ function __construct() { @@ -133,5 +173,25 @@ class DescribeStatisticInstanceStatusTrendOpsRequest extends AbstractModel if (array_key_exists("ExecutionGroupName",$param) and $param["ExecutionGroupName"] !== null) { $this->ExecutionGroupName = $param["ExecutionGroupName"]; } + + if (array_key_exists("InCharge",$param) and $param["InCharge"] !== null) { + $this->InCharge = $param["InCharge"]; + } + + if (array_key_exists("TaskType",$param) and $param["TaskType"] !== null) { + $this->TaskType = $param["TaskType"]; + } + + if (array_key_exists("StateList",$param) and $param["StateList"] !== null) { + $this->StateList = $param["StateList"]; + } + + if (array_key_exists("AggregationUnit",$param) and $param["AggregationUnit"] !== null) { + $this->AggregationUnit = $param["AggregationUnit"]; + } + + if (array_key_exists("AverageWindowSize",$param) and $param["AverageWindowSize"] !== null) { + $this->AverageWindowSize = $param["AverageWindowSize"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeTaskByCycleRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeTaskByCycleRequest.php index 5e27b3fda..4e7d25cef 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeTaskByCycleRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeTaskByCycleRequest.php @@ -22,6 +22,8 @@ use TencentCloud\Common\AbstractModel; * * @method string getProjectId() 获取项目ID * @method void setProjectId(string $ProjectId) 设置项目ID + * @method string getInCharge() 获取1 + * @method void setInCharge(string $InCharge) 设置1 */ class DescribeTaskByCycleRequest extends AbstractModel { @@ -30,8 +32,14 @@ class DescribeTaskByCycleRequest extends AbstractModel */ public $ProjectId; + /** + * @var string 1 + */ + public $InCharge; + /** * @param string $ProjectId 项目ID + * @param string $InCharge 1 */ function __construct() { @@ -49,5 +57,9 @@ class DescribeTaskByCycleRequest extends AbstractModel if (array_key_exists("ProjectId",$param) and $param["ProjectId"] !== null) { $this->ProjectId = $param["ProjectId"]; } + + if (array_key_exists("InCharge",$param) and $param["InCharge"] !== null) { + $this->InCharge = $param["InCharge"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeTaskByStatusReportRequest.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeTaskByStatusReportRequest.php index 28feba1fb..d6329cdbd 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeTaskByStatusReportRequest.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/DescribeTaskByStatusReportRequest.php @@ -32,6 +32,14 @@ use TencentCloud\Common\AbstractModel; * @method void setStartTime(string $StartTime) 设置开始时间 * @method string getEndTime() 获取结束时间 * @method void setEndTime(string $EndTime) 设置结束时间 + * @method string getAggregationUnit() 获取无 + * @method void setAggregationUnit(string $AggregationUnit) 设置无 + * @method string getCycleUnit() 获取无 + * @method void setCycleUnit(string $CycleUnit) 设置无 + * @method string getStatus() 获取无 + * @method void setStatus(string $Status) 设置无 + * @method string getInCharge() 获取无 + * @method void setInCharge(string $InCharge) 设置无 */ class DescribeTaskByStatusReportRequest extends AbstractModel { @@ -65,6 +73,26 @@ class DescribeTaskByStatusReportRequest extends AbstractModel */ public $EndTime; + /** + * @var string 无 + */ + public $AggregationUnit; + + /** + * @var string 无 + */ + public $CycleUnit; + + /** + * @var string 无 + */ + public $Status; + + /** + * @var string 无 + */ + public $InCharge; + /** * @param string $ProjectId 项目ID * @param string $Type 时间类型 @@ -72,6 +100,10 @@ class DescribeTaskByStatusReportRequest extends AbstractModel * @param string $TypeName 类型名称 * @param string $StartTime 开始时间 * @param string $EndTime 结束时间 + * @param string $AggregationUnit 无 + * @param string $CycleUnit 无 + * @param string $Status 无 + * @param string $InCharge 无 */ function __construct() { @@ -109,5 +141,21 @@ class DescribeTaskByStatusReportRequest extends AbstractModel if (array_key_exists("EndTime",$param) and $param["EndTime"] !== null) { $this->EndTime = $param["EndTime"]; } + + if (array_key_exists("AggregationUnit",$param) and $param["AggregationUnit"] !== null) { + $this->AggregationUnit = $param["AggregationUnit"]; + } + + if (array_key_exists("CycleUnit",$param) and $param["CycleUnit"] !== null) { + $this->CycleUnit = $param["CycleUnit"]; + } + + if (array_key_exists("Status",$param) and $param["Status"] !== null) { + $this->Status = $param["Status"]; + } + + if (array_key_exists("InCharge",$param) and $param["InCharge"] !== null) { + $this->InCharge = $param["InCharge"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/InstanceStatisticInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/InstanceStatisticInfo.php index 3ce84f680..03df59d81 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/InstanceStatisticInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/InstanceStatisticInfo.php @@ -35,6 +35,14 @@ use TencentCloud\Common\AbstractModel; * @method string getShowTime() 获取当前展示时间 注意:此字段可能返回 null,表示取不到有效值。 * @method void setShowTime(string $ShowTime) 设置当前展示时间 +注意:此字段可能返回 null,表示取不到有效值。 + * @method string getReportTime() 获取1 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setReportTime(string $ReportTime) 设置1 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getCount() 获取1 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setCount(integer $Count) 设置1 注意:此字段可能返回 null,表示取不到有效值。 */ class InstanceStatisticInfo extends AbstractModel @@ -67,6 +75,18 @@ class InstanceStatisticInfo extends AbstractModel */ public $ShowTime; + /** + * @var string 1 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ReportTime; + + /** + * @var integer 1 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $Count; + /** * @param array $CountList 实例状态趋势状态统计 注意:此字段可能返回 null,表示取不到有效值。 @@ -75,6 +95,10 @@ class InstanceStatisticInfo extends AbstractModel * @param string $InstanceStatus 实例状态标识:WAITING_RUNNING、KILLING、FAILED、FAILED_TRYING、SUCCEED 分别表示等待执行、正在终止、失败、失败重试、成功,用于实例状态分布和实例状态趋势 * @param integer $InstanceCount 用于实例状态分布计数 * @param string $ShowTime 当前展示时间 +注意:此字段可能返回 null,表示取不到有效值。 + * @param string $ReportTime 1 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $Count 1 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -109,5 +133,13 @@ class InstanceStatisticInfo extends AbstractModel if (array_key_exists("ShowTime",$param) and $param["ShowTime"] !== null) { $this->ShowTime = $param["ShowTime"]; } + + if (array_key_exists("ReportTime",$param) and $param["ReportTime"] !== null) { + $this->ReportTime = $param["ReportTime"]; + } + + if (array_key_exists("Count",$param) and $param["Count"] !== null) { + $this->Count = $param["Count"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/IntegrationTaskInfo.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/IntegrationTaskInfo.php index 77fc1c95c..f03f603a4 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/IntegrationTaskInfo.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/IntegrationTaskInfo.php @@ -189,6 +189,18 @@ use TencentCloud\Common\AbstractModel; * @method array getTaskAlarmRegularList() 获取该任务关联的告警规则 注意:此字段可能返回 null,表示取不到有效值。 * @method void setTaskAlarmRegularList(array $TaskAlarmRegularList) 设置该任务关联的告警规则 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getSwitchResource() 获取资源分层情况: 0:进行中,1:成功 ,2:失败 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setSwitchResource(integer $SwitchResource) 设置资源分层情况: 0:进行中,1:成功 ,2:失败 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getReadPhase() 获取读取阶段:0:全部全量,1:部分全量,2:全部增量 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setReadPhase(integer $ReadPhase) 设置读取阶段:0:全部全量,1:部分全量,2:全部增量 +注意:此字段可能返回 null,表示取不到有效值。 + * @method integer getInstanceVersion() 获取版本号 +注意:此字段可能返回 null,表示取不到有效值。 + * @method void setInstanceVersion(integer $InstanceVersion) 设置版本号 注意:此字段可能返回 null,表示取不到有效值。 */ class IntegrationTaskInfo extends AbstractModel @@ -454,6 +466,24 @@ class IntegrationTaskInfo extends AbstractModel */ public $TaskAlarmRegularList; + /** + * @var integer 资源分层情况: 0:进行中,1:成功 ,2:失败 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $SwitchResource; + + /** + * @var integer 读取阶段:0:全部全量,1:部分全量,2:全部增量 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $ReadPhase; + + /** + * @var integer 版本号 +注意:此字段可能返回 null,表示取不到有效值。 + */ + public $InstanceVersion; + /** * @param string $TaskName 任务名称 * @param string $Description 任务描述 @@ -539,6 +569,12 @@ class IntegrationTaskInfo extends AbstractModel * @param float $RunningCu 耗费资源量 注意:此字段可能返回 null,表示取不到有效值。 * @param array $TaskAlarmRegularList 该任务关联的告警规则 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $SwitchResource 资源分层情况: 0:进行中,1:成功 ,2:失败 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $ReadPhase 读取阶段:0:全部全量,1:部分全量,2:全部增量 +注意:此字段可能返回 null,表示取不到有效值。 + * @param integer $InstanceVersion 版本号 注意:此字段可能返回 null,表示取不到有效值。 */ function __construct() @@ -755,5 +791,17 @@ class IntegrationTaskInfo extends AbstractModel if (array_key_exists("TaskAlarmRegularList",$param) and $param["TaskAlarmRegularList"] !== null) { $this->TaskAlarmRegularList = $param["TaskAlarmRegularList"]; } + + if (array_key_exists("SwitchResource",$param) and $param["SwitchResource"] !== null) { + $this->SwitchResource = $param["SwitchResource"]; + } + + if (array_key_exists("ReadPhase",$param) and $param["ReadPhase"] !== null) { + $this->ReadPhase = $param["ReadPhase"]; + } + + if (array_key_exists("InstanceVersion",$param) and $param["InstanceVersion"] !== null) { + $this->InstanceVersion = $param["InstanceVersion"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/TaskByStatus.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/TaskByStatus.php index 43478826b..51459e1e5 100644 --- a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/TaskByStatus.php +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/TaskByStatus.php @@ -36,6 +36,10 @@ use TencentCloud\Common\AbstractModel; 注意:此字段可能返回 null,表示取不到有效值。 * @method void setCycleUnit(string $CycleUnit) 设置周期单位 注意:此字段可能返回 null,表示取不到有效值。 + * @method string getReportTime() 获取1 + * @method void setReportTime(string $ReportTime) 设置1 + * @method integer getCount() 获取1 + * @method void setCount(integer $Count) 设置1 */ class TaskByStatus extends AbstractModel { @@ -63,6 +67,16 @@ class TaskByStatus extends AbstractModel */ public $CycleUnit; + /** + * @var string 1 + */ + public $ReportTime; + + /** + * @var integer 1 + */ + public $Count; + /** * @param string $CountGroup 统计值 注意:此字段可能返回 null,表示取不到有效值。 @@ -72,6 +86,8 @@ class TaskByStatus extends AbstractModel 注意:此字段可能返回 null,表示取不到有效值。 * @param string $CycleUnit 周期单位 注意:此字段可能返回 null,表示取不到有效值。 + * @param string $ReportTime 1 + * @param integer $Count 1 */ function __construct() { @@ -101,5 +117,13 @@ class TaskByStatus extends AbstractModel if (array_key_exists("CycleUnit",$param) and $param["CycleUnit"] !== null) { $this->CycleUnit = $param["CycleUnit"]; } + + if (array_key_exists("ReportTime",$param) and $param["ReportTime"] !== null) { + $this->ReportTime = $param["ReportTime"]; + } + + if (array_key_exists("Count",$param) and $param["Count"] !== null) { + $this->Count = $param["Count"]; + } } } diff --git a/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/TaskVersionInstance.php b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/TaskVersionInstance.php new file mode 100644 index 000000000..5646c0ae0 --- /dev/null +++ b/vendor/tencentcloud/tencentcloud-sdk-php/src/TencentCloud/Wedata/V20210820/Models/TaskVersionInstance.php @@ -0,0 +1,137 @@ +InstanceVersion = $param["InstanceVersion"]; + } + + if (array_key_exists("VersionDesc",$param) and $param["VersionDesc"] !== null) { + $this->VersionDesc = $param["VersionDesc"]; + } + + if (array_key_exists("ChangeType",$param) and $param["ChangeType"] !== null) { + $this->ChangeType = $param["ChangeType"]; + } + + if (array_key_exists("SubmitterUin",$param) and $param["SubmitterUin"] !== null) { + $this->SubmitterUin = $param["SubmitterUin"]; + } + + if (array_key_exists("InstanceDate",$param) and $param["InstanceDate"] !== null) { + $this->InstanceDate = $param["InstanceDate"]; + } + + if (array_key_exists("InstanceStatus",$param) and $param["InstanceStatus"] !== null) { + $this->InstanceStatus = $param["InstanceStatus"]; + } + } +} diff --git a/vendor/topthink/think-queue/.gitignore b/vendor/topthink/think-queue/.gitignore new file mode 100644 index 000000000..4aec78217 --- /dev/null +++ b/vendor/topthink/think-queue/.gitignore @@ -0,0 +1,4 @@ +/vendor/ +/.idea/ +/composer.lock +/thinkphp/ diff --git a/vendor/topthink/think-queue/LICENSE b/vendor/topthink/think-queue/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/vendor/topthink/think-queue/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/topthink/think-queue/README.md b/vendor/topthink/think-queue/README.md new file mode 100644 index 000000000..e4493f552 --- /dev/null +++ b/vendor/topthink/think-queue/README.md @@ -0,0 +1,114 @@ +# think-queue for ThinkPHP6 + +## 安装 + +> composer require topthink/think-queue + +## 配置 + +> 配置文件位于 `config/queue.php` + +### 公共配置 + +```bash +[ + 'default'=>'sync' //驱动类型,可选择 sync(默认):同步执行,database:数据库驱动,redis:Redis驱动//或其他自定义的完整的类名 +] +``` + + +## 创建任务类 +> 推荐使用 `app\job` 作为任务类的命名空间 +> 也可以放在任意可以自动加载到的地方 + +任务类不需继承任何类,如果这个类只有一个任务,那么就只需要提供一个`fire`方法就可以了,如果有多个小任务,就写多个方法,下面发布任务的时候会有区别 +每个方法会传入两个参数 `think\queue\Job $job`(当前的任务对象) 和 `$data`(发布任务时自定义的数据) + +还有个可选的任务失败执行的方法 `failed` 传入的参数为`$data`(发布任务时自定义的数据) + +### 下面写两个例子 + +```php +namespace app\job; + +use think\queue\Job; + +class Job1{ + + public function fire(Job $job, $data){ + + //....这里执行具体的任务 + + if ($job->attempts() > 3) { + //通过这个方法可以检查这个任务已经重试了几次了 + } + + + //如果任务执行成功后 记得删除任务,不然这个任务会重复执行,直到达到最大重试次数后失败后,执行failed方法 + $job->delete(); + + // 也可以重新发布这个任务 + $job->release($delay); //$delay为延迟时间 + + } + + public function failed($data){ + + // ...任务达到最大重试次数后,失败了 + } + +} + +``` + +```php + +namespace app\lib\job; + +use think\queue\Job; + +class Job2{ + + public function task1(Job $job, $data){ + + + } + + public function task2(Job $job, $data){ + + + } + + public function failed($data){ + + + } + +} + +``` + + +## 发布任务 +> `think\facade\Queue::push($job, $data = '', $queue = null)` 和 `think\facade\Queue::later($delay, $job, $data = '', $queue = null)` 两个方法,前者是立即执行,后者是在`$delay`秒后执行 + +`$job` 是任务名 +命名空间是`app\job`的,比如上面的例子一,写`Job1`类名即可 +其他的需要些完整的类名,比如上面的例子二,需要写完整的类名`app\lib\job\Job2` +如果一个任务类里有多个小任务的话,如上面的例子二,需要用@+方法名`app\lib\job\Job2@task1`、`app\lib\job\Job2@task2` + +`$data` 是你要传到任务里的参数 + +`$queue` 队列名,指定这个任务是在哪个队列上执行,同下面监控队列的时候指定的队列名,可不填 + +## 监听任务并执行 + +```bash +&> php think queue:listen + +&> php think queue:work +``` + +两种,具体的可选参数可以输入命令加 `--help` 查看 + +> 可配合supervisor使用,保证进程常驻 diff --git a/vendor/topthink/think-queue/composer.json b/vendor/topthink/think-queue/composer.json new file mode 100644 index 000000000..6af1e8000 --- /dev/null +++ b/vendor/topthink/think-queue/composer.json @@ -0,0 +1,45 @@ +{ + "name": "topthink/think-queue", + "description": "The ThinkPHP6 Queue Package", + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "license": "Apache-2.0", + "autoload": { + "psr-4": { + "think\\": "src" + }, + "files": [ + "src/common.php" + ] + }, + "autoload-dev": { + "psr-4": { + "think\\test\\queue\\": "tests" + } + }, + "require": { + "ext-json": "*", + "topthink/framework": "^6.0 || ^8.0", + "symfony/process": ">=4.2", + "nesbot/carbon": "^2.16" + }, + "extra": { + "think": { + "services": [ + "think\\queue\\Service" + ], + "config": { + "queue": "src/config.php" + } + } + }, + "require-dev": { + "phpunit/phpunit": "^6.2", + "mockery/mockery": "^1.2", + "topthink/think-migration": "^3.0" + } +} diff --git a/vendor/topthink/think-queue/phpunit.xml.dist b/vendor/topthink/think-queue/phpunit.xml.dist new file mode 100644 index 000000000..0234fbc30 --- /dev/null +++ b/vendor/topthink/think-queue/phpunit.xml.dist @@ -0,0 +1,30 @@ + + + + + ./tests + + + + + ./src + + ./src/queue/Service.php + ./src/common.php + ./src/config.php + + + + diff --git a/vendor/topthink/think-queue/src/Queue.php b/vendor/topthink/think-queue/src/Queue.php new file mode 100644 index 000000000..b107ad6bf --- /dev/null +++ b/vendor/topthink/think-queue/src/Queue.php @@ -0,0 +1,65 @@ + +// +---------------------------------------------------------------------- + +namespace think; + +use think\queue\Connector; +use think\queue\connector\Database; +use think\queue\connector\Redis; + +/** + * Class Queue + * @package think\queue + * + * @mixin Database + * @mixin Redis + */ +class Queue extends Manager +{ + protected $namespace = '\\think\\queue\\connector\\'; + + protected function resolveType(string $name) + { + return $this->app->config->get("queue.connections.{$name}.type", 'sync'); + } + + protected function resolveConfig(string $name) + { + return $this->app->config->get("queue.connections.{$name}"); + } + + protected function createDriver(string $name) + { + /** @var Connector $driver */ + $driver = parent::createDriver($name); + + return $driver->setApp($this->app) + ->setConnection($name); + } + + /** + * @param null|string $name + * @return Connector + */ + public function connection($name = null) + { + return $this->driver($name); + } + + /** + * 默认驱动 + * @return string + */ + public function getDefaultDriver() + { + return $this->app->config->get('queue.default'); + } +} diff --git a/vendor/topthink/think-queue/src/common.php b/vendor/topthink/think-queue/src/common.php new file mode 100644 index 000000000..207b0b8df --- /dev/null +++ b/vendor/topthink/think-queue/src/common.php @@ -0,0 +1,31 @@ + +// +---------------------------------------------------------------------- + +use think\facade\Queue; + +if (!function_exists('queue')) { + + /** + * 添加到队列 + * @param $job + * @param string $data + * @param int $delay + * @param null $queue + */ + function queue($job, $data = '', $delay = 0, $queue = null) + { + if ($delay > 0) { + Queue::later($delay, $job, $data, $queue); + } else { + Queue::push($job, $data, $queue); + } + } +} diff --git a/vendor/topthink/think-queue/src/config.php b/vendor/topthink/think-queue/src/config.php new file mode 100644 index 000000000..fb096a81f --- /dev/null +++ b/vendor/topthink/think-queue/src/config.php @@ -0,0 +1,39 @@ + +// +---------------------------------------------------------------------- + +return [ + 'default' => 'sync', + 'connections' => [ + 'sync' => [ + 'type' => 'sync', + ], + 'database' => [ + 'type' => 'database', + 'queue' => 'default', + 'table' => 'jobs', + 'connection' => null, + ], + 'redis' => [ + 'type' => 'redis', + 'queue' => 'default', + 'host' => '127.0.0.1', + 'port' => 6379, + 'password' => '', + 'select' => 0, + 'timeout' => 0, + 'persistent' => false, + ], + ], + 'failed' => [ + 'type' => 'none', + 'table' => 'failed_jobs', + ], +]; diff --git a/vendor/topthink/think-queue/src/facade/Queue.php b/vendor/topthink/think-queue/src/facade/Queue.php new file mode 100644 index 000000000..23c2c30a4 --- /dev/null +++ b/vendor/topthink/think-queue/src/facade/Queue.php @@ -0,0 +1,18 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue; + +use think\App; + +class CallQueuedHandler +{ + protected $app; + + public function __construct(App $app) + { + $this->app = $app; + } + + public function call(Job $job, array $data) + { + $command = unserialize($data['command']); + + $this->app->invoke([$command, 'handle']); + + if (!$job->isDeletedOrReleased()) { + $job->delete(); + } + } + + public function failed(array $data) + { + $command = unserialize($data['command']); + + if (method_exists($command, 'failed')) { + $command->failed(); + } + } +} diff --git a/vendor/topthink/think-queue/src/queue/Connector.php b/vendor/topthink/think-queue/src/queue/Connector.php new file mode 100644 index 000000000..cf5f82665 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/Connector.php @@ -0,0 +1,156 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue; + +use DateTimeInterface; +use InvalidArgumentException; +use think\App; + +abstract class Connector +{ + /** @var App */ + protected $app; + + /** + * The connector name for the queue. + * + * @var string + */ + protected $connection; + + protected $options = []; + + abstract public function size($queue = null); + + abstract public function push($job, $data = '', $queue = null); + + public function pushOn($queue, $job, $data = '') + { + return $this->push($job, $data, $queue); + } + + abstract public function pushRaw($payload, $queue = null, array $options = []); + + abstract public function later($delay, $job, $data = '', $queue = null); + + public function laterOn($queue, $delay, $job, $data = '') + { + return $this->later($delay, $job, $data, $queue); + } + + public function bulk($jobs, $data = '', $queue = null) + { + foreach ((array) $jobs as $job) { + $this->push($job, $data, $queue); + } + } + + abstract public function pop($queue = null); + + protected function createPayload($job, $data = '') + { + $payload = $this->createPayloadArray($job, $data); + + $payload = json_encode($payload); + + if (JSON_ERROR_NONE !== json_last_error()) { + throw new InvalidArgumentException('Unable to create payload: ' . json_last_error_msg()); + } + + return $payload; + } + + protected function createPayloadArray($job, $data = '') + { + return is_object($job) + ? $this->createObjectPayload($job) + : $this->createPlainPayload($job, $data); + } + + protected function createPlainPayload($job, $data) + { + return [ + 'job' => $job, + 'maxTries' => null, + 'timeout' => null, + 'data' => $data, + ]; + } + + protected function createObjectPayload($job) + { + return [ + 'job' => 'think\queue\CallQueuedHandler@call', + 'maxTries' => $job->tries ?? null, + 'timeout' => $job->timeout ?? null, + 'timeoutAt' => $this->getJobExpiration($job), + 'data' => [ + 'commandName' => get_class($job), + 'command' => serialize(clone $job), + ], + ]; + } + + public function getJobExpiration($job) + { + if (!method_exists($job, 'retryUntil') && !isset($job->timeoutAt)) { + return; + } + + $expiration = $job->timeoutAt ?? $job->retryUntil(); + + return $expiration instanceof DateTimeInterface + ? $expiration->getTimestamp() : $expiration; + } + + protected function setMeta($payload, $key, $value) + { + $payload = json_decode($payload, true); + $payload[$key] = $value; + $payload = json_encode($payload); + + if (JSON_ERROR_NONE !== json_last_error()) { + throw new InvalidArgumentException('Unable to create payload: ' . json_last_error_msg()); + } + + return $payload; + } + + public function setApp(App $app) + { + $this->app = $app; + return $this; + } + + /** + * Get the connector name for the queue. + * + * @return string + */ + public function getConnection() + { + return $this->connection; + } + + /** + * Set the connector name for the queue. + * + * @param string $name + * @return $this + */ + public function setConnection($name) + { + $this->connection = $name; + + return $this; + } +} diff --git a/vendor/topthink/think-queue/src/queue/FailedJob.php b/vendor/topthink/think-queue/src/queue/FailedJob.php new file mode 100644 index 000000000..e03f8166f --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/FailedJob.php @@ -0,0 +1,47 @@ +parseDateInterval($delay); + + return $delay instanceof DateTimeInterface + ? max(0, $delay->getTimestamp() - $this->currentTime()) + : (int) $delay; + } + + /** + * Get the "available at" UNIX timestamp. + * + * @param DateTimeInterface|DateInterval|int $delay + * @return int + */ + protected function availableAt($delay = 0) + { + $delay = $this->parseDateInterval($delay); + + return $delay instanceof DateTimeInterface + ? $delay->getTimestamp() + : Carbon::now()->addRealSeconds($delay)->getTimestamp(); + } + + /** + * If the given value is an interval, convert it to a DateTime instance. + * + * @param DateTimeInterface|DateInterval|int $delay + * @return DateTimeInterface|int + */ + protected function parseDateInterval($delay) + { + if ($delay instanceof DateInterval) { + $delay = Carbon::now()->add($delay); + } + + return $delay; + } + + /** + * Get the current system time as a UNIX timestamp. + * + * @return int + */ + protected function currentTime() + { + return Carbon::now()->getTimestamp(); + } +} diff --git a/vendor/topthink/think-queue/src/queue/Job.php b/vendor/topthink/think-queue/src/queue/Job.php new file mode 100644 index 000000000..4df28cc97 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/Job.php @@ -0,0 +1,293 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue; + +use Exception; +use think\App; +use think\helper\Arr; +use think\helper\Str; + +abstract class Job +{ + + /** + * The job handler instance. + * @var object + */ + private $instance; + + /** + * The JSON decoded version of "$job". + * @var array + */ + private $payload; + + /** + * @var App + */ + protected $app; + + /** + * The name of the queue the job belongs to. + * @var string + */ + protected $queue; + + /** + * The name of the connection the job belongs to. + */ + protected $connection; + + /** + * Indicates if the job has been deleted. + * @var bool + */ + protected $deleted = false; + + /** + * Indicates if the job has been released. + * @var bool + */ + protected $released = false; + + /** + * Indicates if the job has failed. + * + * @var bool + */ + protected $failed = false; + + /** + * Get the decoded body of the job. + * + * @return mixed + */ + public function payload($name = null, $default = null) + { + if (empty($this->payload)) { + $this->payload = json_decode($this->getRawBody(), true); + } + if (empty($name)) { + return $this->payload; + } + return Arr::get($this->payload, $name, $default); + } + + /** + * Fire the job. + * @return void + */ + public function fire() + { + $instance = $this->getResolvedJob(); + + [, $method] = $this->getParsedJob(); + + $instance->{$method}($this, $this->payload('data')); + } + + /** + * Process an exception that caused the job to fail. + * + * @param Exception $e + * @return void + */ + public function failed($e) + { + $instance = $this->getResolvedJob(); + + if (method_exists($instance, 'failed')) { + $instance->failed($this->payload('data'), $e); + } + } + + /** + * Delete the job from the queue. + * @return void + */ + public function delete() + { + $this->deleted = true; + } + + /** + * Determine if the job has been deleted. + * @return bool + */ + public function isDeleted() + { + return $this->deleted; + } + + /** + * Release the job back into the queue. + * @param int $delay + * @return void + */ + public function release($delay = 0) + { + $this->released = true; + } + + /** + * Determine if the job was released back into the queue. + * @return bool + */ + public function isReleased() + { + return $this->released; + } + + /** + * Determine if the job has been deleted or released. + * @return bool + */ + public function isDeletedOrReleased() + { + return $this->isDeleted() || $this->isReleased(); + } + + /** + * Get the job identifier. + * + * @return string + */ + abstract public function getJobId(); + + /** + * Get the number of times the job has been attempted. + * @return int + */ + abstract public function attempts(); + + /** + * Get the raw body string for the job. + * @return string + */ + abstract public function getRawBody(); + + /** + * Parse the job declaration into class and method. + * @return array + */ + protected function getParsedJob() + { + $job = $this->payload('job'); + $segments = explode('@', $job); + + return count($segments) > 1 ? $segments : [$segments[0], 'fire']; + } + + /** + * Resolve the given job handler. + * @param string $name + * @return mixed + */ + protected function resolve($name, $param) + { + $namespace = $this->app->getNamespace() . '\\job\\'; + + $class = false !== strpos($name, '\\') ? $name : $namespace . Str::studly($name); + + return $this->app->make($class, [$param], true); + } + + public function getResolvedJob() + { + if (empty($this->instance)) { + [$class] = $this->getParsedJob(); + + $this->instance = $this->resolve($class, $this->payload('data')); + } + + return $this->instance; + } + + /** + * Determine if the job has been marked as a failure. + * + * @return bool + */ + public function hasFailed() + { + return $this->failed; + } + + /** + * Mark the job as "failed". + * + * @return void + */ + public function markAsFailed() + { + $this->failed = true; + } + + /** + * Get the number of times to attempt a job. + * + * @return int|null + */ + public function maxTries() + { + return $this->payload('maxTries'); + } + + /** + * Get the number of seconds the job can run. + * + * @return int|null + */ + public function timeout() + { + return $this->payload('timeout'); + } + + /** + * Get the timestamp indicating when the job should timeout. + * + * @return int|null + */ + public function timeoutAt() + { + return $this->payload('timeoutAt'); + } + + /** + * Get the name of the queued job class. + * + * @return string + */ + public function getName() + { + return $this->payload('job'); + } + + /** + * Get the name of the connection the job belongs to. + * + * @return string + */ + public function getConnection() + { + return $this->connection; + } + + /** + * Get the name of the queue the job belongs to. + * @return string + */ + public function getQueue() + { + return $this->queue; + } +} diff --git a/vendor/topthink/think-queue/src/queue/Listener.php b/vendor/topthink/think-queue/src/queue/Listener.php new file mode 100644 index 000000000..632510dc5 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/Listener.php @@ -0,0 +1,162 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue; + +use Closure; +use Symfony\Component\Process\PhpExecutableFinder; +use Symfony\Component\Process\Process; +use think\App; + +class Listener +{ + + /** + * @var string + */ + protected $commandPath; + + /** + * @var string + */ + protected $workerCommand; + + /** + * @var \Closure|null + */ + protected $outputHandler; + + /** + * @param string $commandPath + */ + public function __construct($commandPath) + { + $this->commandPath = $commandPath; + } + + public static function __make(App $app) + { + return new self($app->getRootPath()); + } + + /** + * Get the PHP binary. + * + * @return string + */ + protected function phpBinary() + { + return (new PhpExecutableFinder)->find(false); + } + + /** + * @param string $connection + * @param string $queue + * @param int $delay + * @param int $sleep + * @param int $maxTries + * @param int $memory + * @param int $timeout + * @return void + */ + public function listen($connection, $queue, $delay = 0, $sleep = 3, $maxTries = 0, $memory = 128, $timeout = 60) + { + $process = $this->makeProcess($connection, $queue, $delay, $sleep, $maxTries, $memory, $timeout); + + while (true) { + $this->runProcess($process, $memory); + } + } + + /** + * @param string $connection + * @param string $queue + * @param int $delay + * @param int $sleep + * @param int $maxTries + * @param int $memory + * @param int $timeout + * @return Process + */ + public function makeProcess($connection, $queue, $delay, $sleep, $maxTries, $memory, $timeout) + { + $command = array_filter([ + $this->phpBinary(), + 'think', + 'queue:work', + $connection, + '--once', + "--queue={$queue}", + "--delay={$delay}", + "--memory={$memory}", + "--sleep={$sleep}", + "--tries={$maxTries}", + ], function ($value) { + return !is_null($value); + }); + + return new Process($command, $this->commandPath, null, null, $timeout); + } + + /** + * @param Process $process + * @param int $memory + */ + public function runProcess(Process $process, $memory) + { + $process->run(function ($type, $line) { + $this->handleWorkerOutput($type, $line); + }); + + if ($this->memoryExceeded($memory)) { + $this->stop(); + } + } + + /** + * @param int $type + * @param string $line + * @return void + */ + protected function handleWorkerOutput($type, $line) + { + if (isset($this->outputHandler)) { + call_user_func($this->outputHandler, $type, $line); + } + } + + /** + * @param int $memoryLimit + * @return bool + */ + public function memoryExceeded($memoryLimit) + { + return (memory_get_usage() / 1024 / 1024) >= $memoryLimit; + } + + /** + * @return void + */ + public function stop() + { + die; + } + + /** + * @param \Closure $outputHandler + * @return void + */ + public function setOutputHandler(Closure $outputHandler) + { + $this->outputHandler = $outputHandler; + } + +} diff --git a/vendor/topthink/think-queue/src/queue/Queueable.php b/vendor/topthink/think-queue/src/queue/Queueable.php new file mode 100644 index 000000000..8dc816688 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/Queueable.php @@ -0,0 +1,61 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue; + +trait Queueable +{ + + /** @var string 连接 */ + public $connection; + + /** @var string 队列名称 */ + public $queue; + + /** @var integer 延迟时间 */ + public $delay; + + /** + * 设置连接名 + * @param $connection + * @return $this + */ + public function onConnection($connection) + { + $this->connection = $connection; + + return $this; + } + + /** + * 设置队列名 + * @param $queue + * @return $this + */ + public function onQueue($queue) + { + $this->queue = $queue; + + return $this; + } + + /** + * 设置延迟时间 + * @param $delay + * @return $this + */ + public function delay($delay) + { + $this->delay = $delay; + + return $this; + } +} diff --git a/vendor/topthink/think-queue/src/queue/Service.php b/vendor/topthink/think-queue/src/queue/Service.php new file mode 100644 index 000000000..a6b3f4c3c --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/Service.php @@ -0,0 +1,50 @@ +app->bind('queue', Queue::class); + $this->app->bind('queue.failer', function () { + + $config = $this->app->config->get('queue.failed', []); + + $type = Arr::pull($config, 'type', 'none'); + + $class = false !== strpos($type, '\\') ? $type : '\\think\\queue\\failed\\' . Str::studly($type); + + return $this->app->invokeClass($class, [$config]); + }); + } + + public function boot() + { + $this->commands([ + FailedJob::class, + Table::class, + FlushFailed::class, + ForgetFailed::class, + ListFailed::class, + Retry::class, + Work::class, + Restart::class, + Listen::class, + FailedTable::class, + ]); + } +} diff --git a/vendor/topthink/think-queue/src/queue/ShouldQueue.php b/vendor/topthink/think-queue/src/queue/ShouldQueue.php new file mode 100644 index 000000000..cb49c12d0 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/ShouldQueue.php @@ -0,0 +1,17 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue; + +interface ShouldQueue +{ + +} diff --git a/vendor/topthink/think-queue/src/queue/Worker.php b/vendor/topthink/think-queue/src/queue/Worker.php new file mode 100644 index 000000000..458623c41 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/Worker.php @@ -0,0 +1,419 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue; + +use Carbon\Carbon; +use Exception; +use RuntimeException; +use think\Cache; +use think\Event; +use think\exception\Handle; +use think\Queue; +use think\queue\event\JobExceptionOccurred; +use think\queue\event\JobFailed; +use think\queue\event\JobProcessed; +use think\queue\event\JobProcessing; +use think\queue\event\WorkerStopping; +use think\queue\exception\MaxAttemptsExceededException; +use Throwable; + +class Worker +{ + /** @var Event */ + protected $event; + /** @var Handle */ + protected $handle; + /** @var Queue */ + protected $queue; + + /** @var Cache */ + protected $cache; + + /** + * Indicates if the worker should exit. + * + * @var bool + */ + public $shouldQuit = false; + + /** + * Indicates if the worker is paused. + * + * @var bool + */ + public $paused = false; + + public function __construct(Queue $queue, Event $event, Handle $handle, Cache $cache = null) + { + $this->queue = $queue; + $this->event = $event; + $this->handle = $handle; + $this->cache = $cache; + } + + /** + * @param string $connection + * @param string $queue + * @param int $delay + * @param int $sleep + * @param int $maxTries + * @param int $memory + * @param int $timeout + */ + public function daemon($connection, $queue, $delay = 0, $sleep = 3, $maxTries = 0, $memory = 128, $timeout = 60) + { + if ($this->supportsAsyncSignals()) { + $this->listenForSignals(); + } + + $lastRestart = $this->getTimestampOfLastQueueRestart(); + + while (true) { + + $job = $this->getNextJob( + $this->queue->connection($connection), + $queue + ); + + if ($this->supportsAsyncSignals()) { + $this->registerTimeoutHandler($job, $timeout); + } + + if ($job) { + $this->runJob($job, $connection, $maxTries, $delay); + } else { + $this->sleep($sleep); + } + + $this->stopIfNecessary($job, $lastRestart, $memory); + } + } + + protected function stopIfNecessary($job, $lastRestart, $memory) + { + if ($this->shouldQuit || $this->queueShouldRestart($lastRestart)) { + $this->stop(); + } elseif ($this->memoryExceeded($memory)) { + $this->stop(12); + } + } + + /** + * Determine if the queue worker should restart. + * + * @param int|null $lastRestart + * @return bool + */ + protected function queueShouldRestart($lastRestart) + { + return $this->getTimestampOfLastQueueRestart() != $lastRestart; + } + + /** + * Determine if the memory limit has been exceeded. + * + * @param int $memoryLimit + * @return bool + */ + public function memoryExceeded($memoryLimit) + { + return (memory_get_usage(true) / 1024 / 1024) >= $memoryLimit; + } + + /** + * 获取队列重启时间 + * @return mixed + */ + protected function getTimestampOfLastQueueRestart() + { + if ($this->cache) { + return $this->cache->get('think:queue:restart'); + } + } + + /** + * Register the worker timeout handler. + * + * @param Job|null $job + * @param int $timeout + * @return void + */ + protected function registerTimeoutHandler($job, $timeout) + { + pcntl_signal(SIGALRM, function () { + $this->kill(1); + }); + + pcntl_alarm( + max($this->timeoutForJob($job, $timeout), 0) + ); + } + + /** + * Stop listening and bail out of the script. + * + * @param int $status + * @return void + */ + public function stop($status = 0) + { + $this->event->trigger(new WorkerStopping($status)); + + exit($status); + } + + /** + * Kill the process. + * + * @param int $status + * @return void + */ + public function kill($status = 0) + { + $this->event->trigger(new WorkerStopping($status)); + + if (extension_loaded('posix')) { + posix_kill(getmypid(), SIGKILL); + } + + exit($status); + } + + /** + * Get the appropriate timeout for the given job. + * + * @param Job|null $job + * @param int $timeout + * @return int + */ + protected function timeoutForJob($job, $timeout) + { + return $job && !is_null($job->timeout()) ? $job->timeout() : $timeout; + } + + /** + * Determine if "async" signals are supported. + * + * @return bool + */ + protected function supportsAsyncSignals() + { + return extension_loaded('pcntl'); + } + + /** + * Enable async signals for the process. + * + * @return void + */ + protected function listenForSignals() + { + pcntl_async_signals(true); + + pcntl_signal(SIGTERM, function () { + $this->shouldQuit = true; + }); + + pcntl_signal(SIGUSR2, function () { + $this->paused = true; + }); + + pcntl_signal(SIGCONT, function () { + $this->paused = false; + }); + } + + /** + * 执行下个任务 + * @param string $connection + * @param string $queue + * @param int $delay + * @param int $sleep + * @param int $maxTries + * @return void + * @throws Exception + */ + public function runNextJob($connection, $queue, $delay = 0, $sleep = 3, $maxTries = 0) + { + + $job = $this->getNextJob($this->queue->connection($connection), $queue); + + if ($job) { + $this->runJob($job, $connection, $maxTries, $delay); + } else { + $this->sleep($sleep); + } + } + + /** + * 执行任务 + * @param Job $job + * @param string $connection + * @param int $maxTries + * @param int $delay + * @return void + */ + protected function runJob($job, $connection, $maxTries, $delay) + { + try { + $this->process($connection, $job, $maxTries, $delay); + } catch (Exception | Throwable $e) { + $this->handle->report($e); + } + } + + /** + * 获取下个任务 + * @param Connector $connector + * @param string $queue + * @return Job + */ + protected function getNextJob($connector, $queue) + { + try { + foreach (explode(',', $queue) as $queue) { + if (!is_null($job = $connector->pop($queue))) { + return $job; + } + } + } catch (Exception | Throwable $e) { + $this->handle->report($e); + $this->sleep(1); + } + } + + /** + * Process a given job from the queue. + * @param string $connection + * @param Job $job + * @param int $maxTries + * @param int $delay + * @return void + * @throws Exception + */ + public function process($connection, $job, $maxTries = 0, $delay = 0) + { + try { + $this->event->trigger(new JobProcessing($connection, $job)); + + $this->markJobAsFailedIfAlreadyExceedsMaxAttempts( + $connection, + $job, + (int) $maxTries + ); + + $job->fire(); + + $this->event->trigger(new JobProcessed($connection, $job)); + } catch (Exception | Throwable $e) { + try { + if (!$job->hasFailed()) { + $this->markJobAsFailedIfWillExceedMaxAttempts($connection, $job, (int) $maxTries, $e); + } + + $this->event->trigger(new JobExceptionOccurred($connection, $job, $e)); + } finally { + if (!$job->isDeleted() && !$job->isReleased() && !$job->hasFailed()) { + $job->release($delay); + } + } + + throw $e; + } + } + + /** + * @param string $connection + * @param Job $job + * @param int $maxTries + */ + protected function markJobAsFailedIfAlreadyExceedsMaxAttempts($connection, $job, $maxTries) + { + $maxTries = !is_null($job->maxTries()) ? $job->maxTries() : $maxTries; + + $timeoutAt = $job->timeoutAt(); + + if ($timeoutAt && Carbon::now()->getTimestamp() <= $timeoutAt) { + return; + } + + if (!$timeoutAt && (0 === $maxTries || $job->attempts() <= $maxTries)) { + return; + } + + $this->failJob($connection, $job, $e = new MaxAttemptsExceededException( + $job->getName() . ' has been attempted too many times or run too long. The job may have previously timed out.' + )); + + throw $e; + } + + /** + * @param string $connection + * @param Job $job + * @param int $maxTries + * @param Exception $e + */ + protected function markJobAsFailedIfWillExceedMaxAttempts($connection, $job, $maxTries, $e) + { + $maxTries = !is_null($job->maxTries()) ? $job->maxTries() : $maxTries; + + if ($job->timeoutAt() && $job->timeoutAt() <= Carbon::now()->getTimestamp()) { + $this->failJob($connection, $job, $e); + } + + if ($maxTries > 0 && $job->attempts() >= $maxTries) { + $this->failJob($connection, $job, $e); + } + } + + /** + * @param string $connection + * @param Job $job + * @param Exception $e + */ + protected function failJob($connection, $job, $e) + { + $job->markAsFailed(); + + if ($job->isDeleted()) { + return; + } + + try { + $job->delete(); + + $job->failed($e); + } finally { + $this->event->trigger(new JobFailed( + $connection, + $job, + $e ?: new RuntimeException('ManuallyFailed') + )); + } + } + + /** + * Sleep the script for a given number of seconds. + * @param int $seconds + * @return void + */ + public function sleep($seconds) + { + if ($seconds < 1) { + usleep($seconds * 1000000); + } else { + sleep($seconds); + } + } + +} diff --git a/vendor/topthink/think-queue/src/queue/command/FailedTable.php b/vendor/topthink/think-queue/src/queue/command/FailedTable.php new file mode 100644 index 000000000..620af934b --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/FailedTable.php @@ -0,0 +1,46 @@ +setName('queue:failed-table') + ->setDescription('Create a migration for the failed queue jobs database table'); + } + + public function handle() + { + if (!$this->app->has('migration.creator')) { + $this->output->error('Install think-migration first please'); + return; + } + + $table = $this->app->config->get('queue.failed.table'); + + $className = Str::studly("create_{$table}_table"); + + /** @var Creator $creator */ + $creator = $this->app->get('migration.creator'); + + $path = $creator->create($className); + + // Load the alternative template if it is defined. + $contents = file_get_contents(__DIR__ . '/stubs/failed_jobs.stub'); + + // inject the class names appropriate to this migration + $contents = strtr($contents, [ + 'CreateFailedJobsTable' => $className, + '{{table}}' => $table, + ]); + + file_put_contents($path, $contents); + + $this->output->info('Migration created successfully!'); + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/FlushFailed.php b/vendor/topthink/think-queue/src/queue/command/FlushFailed.php new file mode 100644 index 000000000..69ea8b435 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/FlushFailed.php @@ -0,0 +1,21 @@ +setName('queue:flush') + ->setDescription('Flush all of the failed queue jobs'); + } + + public function handle() + { + $this->app->get('queue.failer')->flush(); + + $this->output->info('All failed jobs deleted successfully!'); + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/ForgetFailed.php b/vendor/topthink/think-queue/src/queue/command/ForgetFailed.php new file mode 100644 index 000000000..37d175d18 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/ForgetFailed.php @@ -0,0 +1,25 @@ +setName('queue:forget') + ->addArgument('id', Argument::REQUIRED, 'The ID of the failed job') + ->setDescription('Delete a failed queue job'); + } + + public function handle() + { + if ($this->app['queue.failer']->forget($this->input->getArgument('id'))) { + $this->output->info('Failed job deleted successfully!'); + } else { + $this->output->error('No failed job matches the given ID.'); + } + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/ListFailed.php b/vendor/topthink/think-queue/src/queue/command/ListFailed.php new file mode 100644 index 000000000..66eb90aea --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/ListFailed.php @@ -0,0 +1,110 @@ +setName('queue:failed') + ->setDescription('List all of the failed queue jobs'); + } + + public function handle() + { + if (count($jobs = $this->getFailedJobs()) === 0) { + $this->output->info('No failed jobs!'); + return; + } + $this->displayFailedJobs($jobs); + } + + /** + * Display the failed jobs in the console. + * + * @param array $jobs + * @return void + */ + protected function displayFailedJobs(array $jobs) + { + $table = new Table(); + $table->setHeader($this->headers); + $table->setRows($jobs); + + $this->table($table); + } + + /** + * Compile the failed jobs into a displayable format. + * + * @return array + */ + protected function getFailedJobs() + { + $failed = $this->app['queue.failer']->all(); + + return collect($failed)->map(function ($failed) { + return $this->parseFailedJob((array) $failed); + })->filter()->all(); + } + + /** + * Parse the failed job row. + * + * @param array $failed + * @return array + */ + protected function parseFailedJob(array $failed) + { + $row = array_values(Arr::except($failed, ['payload', 'exception'])); + + array_splice($row, 3, 0, $this->extractJobName($failed['payload'])); + + return $row; + } + + /** + * Extract the failed job name from payload. + * + * @param string $payload + * @return string|null + */ + private function extractJobName($payload) + { + $payload = json_decode($payload, true); + + if ($payload && (!isset($payload['data']['command']))) { + return $payload['job'] ?? null; + } elseif ($payload && isset($payload['data']['command'])) { + return $this->matchJobName($payload); + } + } + + /** + * Match the job name from the payload. + * + * @param array $payload + * @return string + */ + protected function matchJobName($payload) + { + preg_match('/"([^"]+)"/', $payload['data']['command'], $matches); + + if (isset($matches[1])) { + return $matches[1]; + } + + return $payload['job'] ?? null; + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/Listen.php b/vendor/topthink/think-queue/src/queue/command/Listen.php new file mode 100644 index 000000000..61e47c1be --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/Listen.php @@ -0,0 +1,61 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue\command; + +use think\console\Command; +use think\console\Input; +use think\console\input\Argument; +use think\console\input\Option; +use think\console\Output; +use think\queue\Listener; + +class Listen extends Command +{ + /** @var Listener */ + protected $listener; + + public function __construct(Listener $listener) + { + parent::__construct(); + $this->listener = $listener; + $this->listener->setOutputHandler(function ($type, $line) { + $this->output->write($line); + }); + } + + protected function configure() + { + $this->setName('queue:listen') + ->addArgument('connection', Argument::OPTIONAL, 'The name of the queue connection to work', null) + ->addOption('queue', null, Option::VALUE_OPTIONAL, 'The queue to listen on', null) + ->addOption('delay', null, Option::VALUE_OPTIONAL, 'Amount of time to delay failed jobs', 0) + ->addOption('memory', null, Option::VALUE_OPTIONAL, 'The memory limit in megabytes', 128) + ->addOption('timeout', null, Option::VALUE_OPTIONAL, 'Seconds a job may run before timing out', 60) + ->addOption('sleep', null, Option::VALUE_OPTIONAL, 'Seconds to wait before checking queue for jobs', 3) + ->addOption('tries', null, Option::VALUE_OPTIONAL, 'Number of times to attempt a job before logging it failed', 0) + ->setDescription('Listen to a given queue'); + } + + public function execute(Input $input, Output $output) + { + $connection = $input->getArgument('connection') ?: $this->app->config->get('queue.default'); + + $queue = $input->getOption('queue') ?: $this->app->config->get("queue.connections.{$connection}.queue", 'default'); + $delay = $input->getOption('delay'); + $memory = $input->getOption('memory'); + $timeout = $input->getOption('timeout'); + $sleep = $input->getOption('sleep'); + $tries = $input->getOption('tries'); + + $this->listener->listen($connection, $queue, $delay, $sleep, $tries, $memory, $timeout); + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/Restart.php b/vendor/topthink/think-queue/src/queue/command/Restart.php new file mode 100644 index 000000000..f0d3b4dbc --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/Restart.php @@ -0,0 +1,33 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue\command; + +use think\Cache; +use think\console\Command; +use think\queue\InteractsWithTime; + +class Restart extends Command +{ + use InteractsWithTime; + + protected function configure() + { + $this->setName('queue:restart') + ->setDescription('Restart queue worker daemons after their current job'); + } + + public function handle(Cache $cache) + { + $cache->set('think:queue:restart', $this->currentTime()); + $this->output->info("Broadcasting queue restart signal."); + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/Retry.php b/vendor/topthink/think-queue/src/queue/command/Retry.php new file mode 100644 index 000000000..dba94e2ea --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/Retry.php @@ -0,0 +1,84 @@ +setName('queue:retry') + ->addArgument('id', Argument::IS_ARRAY | Argument::REQUIRED, 'The ID of the failed job or "all" to retry all jobs') + ->setDescription('Retry a failed queue job'); + } + + public function handle() + { + foreach ($this->getJobIds() as $id) { + $job = $this->app['queue.failer']->find($id); + + if (is_null($job)) { + $this->output->error("Unable to find failed job with ID [{$id}]."); + } else { + $this->retryJob($job); + + $this->output->info("The failed job [{$id}] has been pushed back onto the queue!"); + + $this->app['queue.failer']->forget($id); + } + } + } + + /** + * Retry the queue job. + * + * @param stdClass $job + * @return void + */ + protected function retryJob($job) + { + $this->app['queue']->connection($job['connection'])->pushRaw( + $this->resetAttempts($job['payload']), + $job['queue'] + ); + } + + /** + * Reset the payload attempts. + * + * Applicable to Redis jobs which store attempts in their payload. + * + * @param string $payload + * @return string + */ + protected function resetAttempts($payload) + { + $payload = json_decode($payload, true); + + if (isset($payload['attempts'])) { + $payload['attempts'] = 0; + } + + return json_encode($payload); + } + + /** + * Get the job IDs to be retried. + * + * @return array + */ + protected function getJobIds() + { + $ids = (array) $this->input->getArgument('id'); + + if (count($ids) === 1 && $ids[0] === 'all') { + $ids = Arr::pluck($this->app['queue.failer']->all(), 'id'); + } + + return $ids; + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/Table.php b/vendor/topthink/think-queue/src/queue/command/Table.php new file mode 100644 index 000000000..9354dc796 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/Table.php @@ -0,0 +1,46 @@ +setName('queue:table') + ->setDescription('Create a migration for the queue jobs database table'); + } + + public function handle() + { + if (!$this->app->has('migration.creator')) { + $this->output->error('Install think-migration first please'); + return; + } + + $table = $this->app->config->get('queue.connections.database.table'); + + $className = Str::studly("create_{$table}_table"); + + /** @var Creator $creator */ + $creator = $this->app->get('migration.creator'); + + $path = $creator->create($className); + + // Load the alternative template if it is defined. + $contents = file_get_contents(__DIR__ . '/stubs/jobs.stub'); + + // inject the class names appropriate to this migration + $contents = strtr($contents, [ + 'CreateJobsTable' => $className, + '{{table}}' => $table, + ]); + + file_put_contents($path, $contents); + + $this->output->info('Migration created successfully!'); + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/Work.php b/vendor/topthink/think-queue/src/queue/command/Work.php new file mode 100644 index 000000000..276eb2ad5 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/Work.php @@ -0,0 +1,154 @@ + +// +---------------------------------------------------------------------- +namespace think\queue\command; + +use think\console\Command; +use think\console\Input; +use think\console\input\Argument; +use think\console\input\Option; +use think\console\Output; +use think\queue\event\JobFailed; +use think\queue\event\JobProcessed; +use think\queue\event\JobProcessing; +use think\queue\Job; +use think\queue\Worker; + +class Work extends Command +{ + + /** + * The queue worker instance. + * @var Worker + */ + protected $worker; + + public function __construct(Worker $worker) + { + parent::__construct(); + $this->worker = $worker; + } + + protected function configure() + { + $this->setName('queue:work') + ->addArgument('connection', Argument::OPTIONAL, 'The name of the queue connection to work', null) + ->addOption('queue', null, Option::VALUE_OPTIONAL, 'The queue to listen on') + ->addOption('once', null, Option::VALUE_NONE, 'Only process the next job on the queue') + ->addOption('delay', null, Option::VALUE_OPTIONAL, 'Amount of time to delay failed jobs', 0) + ->addOption('force', null, Option::VALUE_NONE, 'Force the worker to run even in maintenance mode') + ->addOption('memory', null, Option::VALUE_OPTIONAL, 'The memory limit in megabytes', 128) + ->addOption('timeout', null, Option::VALUE_OPTIONAL, 'The number of seconds a child process can run', 60) + ->addOption('sleep', null, Option::VALUE_OPTIONAL, 'Number of seconds to sleep when no job is available', 3) + ->addOption('tries', null, Option::VALUE_OPTIONAL, 'Number of times to attempt a job before logging it failed', 0) + ->setDescription('Process the next job on a queue'); + } + + /** + * Execute the console command. + * @param Input $input + * @param Output $output + * @return int|null|void + */ + public function execute(Input $input, Output $output) + { + $connection = $input->getArgument('connection') ?: $this->app->config->get('queue.default'); + + $queue = $input->getOption('queue') ?: $this->app->config->get("queue.connections.{$connection}.queue", 'default'); + $delay = $input->getOption('delay'); + $sleep = $input->getOption('sleep'); + $tries = $input->getOption('tries'); + + $this->listenForEvents(); + + if ($input->getOption('once')) { + $this->worker->runNextJob($connection, $queue, $delay, $sleep, $tries); + } else { + $memory = $input->getOption('memory'); + $timeout = $input->getOption('timeout'); + $this->worker->daemon($connection, $queue, $delay, $sleep, $tries, $memory, $timeout); + } + } + + /** + * 注册事件 + */ + protected function listenForEvents() + { + $this->app->event->listen(JobProcessing::class, function (JobProcessing $event) { + $this->writeOutput($event->job, 'starting'); + }); + + $this->app->event->listen(JobProcessed::class, function (JobProcessed $event) { + $this->writeOutput($event->job, 'success'); + }); + + $this->app->event->listen(JobFailed::class, function (JobFailed $event) { + $this->writeOutput($event->job, 'failed'); + + $this->logFailedJob($event); + }); + } + + /** + * Write the status output for the queue worker. + * + * @param Job $job + * @param $status + */ + protected function writeOutput(Job $job, $status) + { + switch ($status) { + case 'starting': + $this->writeStatus($job, 'Processing', 'comment'); + break; + case 'success': + $this->writeStatus($job, 'Processed', 'info'); + break; + case 'failed': + $this->writeStatus($job, 'Failed', 'error'); + break; + } + } + + /** + * Format the status output for the queue worker. + * + * @param Job $job + * @param string $status + * @param string $type + * @return void + */ + protected function writeStatus(Job $job, $status, $type) + { + $this->output->writeln(sprintf( + "<{$type}>[%s][%s] %s %s", + date('Y-m-d H:i:s'), + $job->getJobId(), + str_pad("{$status}:", 11), + $job->getName() + )); + } + + /** + * 记录失败任务 + * @param JobFailed $event + */ + protected function logFailedJob(JobFailed $event) + { + $this->app['queue.failer']->log( + $event->connection, + $event->job->getQueue(), + $event->job->getRawBody(), + $event->exception + ); + } + +} diff --git a/vendor/topthink/think-queue/src/queue/command/stubs/failed_jobs.stub b/vendor/topthink/think-queue/src/queue/command/stubs/failed_jobs.stub new file mode 100644 index 000000000..948cebc97 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/stubs/failed_jobs.stub @@ -0,0 +1,18 @@ +table('{{table}}') + ->addColumn(Column::text('connection')) + ->addColumn(Column::text('queue')) + ->addColumn(Column::longText('payload')) + ->addColumn(Column::longText('exception')) + ->addColumn(Column::timestamp('fail_time')->setDefault('CURRENT_TIMESTAMP')) + ->create(); + } +} diff --git a/vendor/topthink/think-queue/src/queue/command/stubs/jobs.stub b/vendor/topthink/think-queue/src/queue/command/stubs/jobs.stub new file mode 100644 index 000000000..ab628aa61 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/command/stubs/jobs.stub @@ -0,0 +1,20 @@ +table('{{table}}') + ->addColumn(Column::string('queue')) + ->addColumn(Column::longText('payload')) + ->addColumn(Column::tinyInteger('attempts')->setUnsigned()) + ->addColumn(Column::unsignedInteger('reserve_time')->setNullable()) + ->addColumn(Column::unsignedInteger('available_time')) + ->addColumn(Column::unsignedInteger('create_time')) + ->addIndex('queue') + ->create(); + } +} diff --git a/vendor/topthink/think-queue/src/queue/connector/Database.php b/vendor/topthink/think-queue/src/queue/connector/Database.php new file mode 100644 index 000000000..7c1cf63f5 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/connector/Database.php @@ -0,0 +1,228 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue\connector; + +use Carbon\Carbon; +use stdClass; +use think\Db; +use think\db\ConnectionInterface; +use think\db\Query; +use think\queue\Connector; +use think\queue\InteractsWithTime; +use think\queue\job\Database as DatabaseJob; + +class Database extends Connector +{ + + use InteractsWithTime; + + protected $db; + + /** + * The database table that holds the jobs. + * + * @var string + */ + protected $table; + + /** + * The name of the default queue. + * + * @var string + */ + protected $default; + + /** + * The expiration time of a job. + * + * @var int|null + */ + protected $retryAfter = 60; + + public function __construct(ConnectionInterface $db, $table, $default = 'default', $retryAfter = 60) + { + $this->db = $db; + $this->table = $table; + $this->default = $default; + $this->retryAfter = $retryAfter; + } + + public static function __make(Db $db, $config) + { + $connection = $db->connect($config['connection'] ?? null); + + return new self($connection, $config['table'], $config['queue'], $config['retry_after'] ?? 60); + } + + public function size($queue = null) + { + return $this->db + ->name($this->table) + ->where('queue', $this->getQueue($queue)) + ->count(); + } + + public function push($job, $data = '', $queue = null) + { + return $this->pushToDatabase($queue, $this->createPayload($job, $data)); + } + + public function pushRaw($payload, $queue = null, array $options = []) + { + return $this->pushToDatabase($queue, $payload); + } + + public function later($delay, $job, $data = '', $queue = null) + { + return $this->pushToDatabase($queue, $this->createPayload($job, $data), $delay); + } + + public function bulk($jobs, $data = '', $queue = null) + { + $queue = $this->getQueue($queue); + + $availableAt = $this->availableAt(); + + return $this->db->name($this->table)->insertAll(collect((array) $jobs)->map( + function ($job) use ($queue, $data, $availableAt) { + return [ + 'queue' => $queue, + 'attempts' => 0, + 'reserve_time' => null, + 'available_time' => $availableAt, + 'create_time' => $this->currentTime(), + 'payload' => $this->createPayload($job, $data), + ]; + } + )->all()); + } + + /** + * 重新发布任务 + * + * @param string $queue + * @param StdClass $job + * @param int $delay + * @return mixed + */ + public function release($queue, $job, $delay) + { + return $this->pushToDatabase($queue, $job->payload, $delay, $job->attempts); + } + + /** + * Push a raw payload to the database with a given delay. + * + * @param \DateTime|int $delay + * @param string|null $queue + * @param string $payload + * @param int $attempts + * @return mixed + */ + protected function pushToDatabase($queue, $payload, $delay = 0, $attempts = 0) + { + return $this->db->name($this->table)->insertGetId([ + 'queue' => $this->getQueue($queue), + 'attempts' => $attempts, + 'reserve_time' => null, + 'available_time' => $this->availableAt($delay), + 'create_time' => $this->currentTime(), + 'payload' => $payload, + ]); + } + + public function pop($queue = null) + { + $queue = $this->getQueue($queue); + + return $this->db->transaction(function () use ($queue) { + + if ($job = $this->getNextAvailableJob($queue)) { + + $job = $this->markJobAsReserved($job); + + return new DatabaseJob($this->app, $this, $job, $this->connection, $queue); + } + }); + } + + /** + * 获取下个有效任务 + * + * @param string|null $queue + * @return StdClass|null + */ + protected function getNextAvailableJob($queue) + { + + $job = $this->db + ->name($this->table) + ->lock(true) + ->where('queue', $this->getQueue($queue)) + ->where(function (Query $query) { + $query->where(function (Query $query) { + $query->whereNull('reserve_time') + ->where('available_time', '<=', $this->currentTime()); + }); + + //超时任务重试 + $expiration = Carbon::now()->subSeconds($this->retryAfter)->getTimestamp(); + + $query->whereOr(function (Query $query) use ($expiration) { + $query->where('reserve_time', '<=', $expiration); + }); + }) + ->order('id', 'asc') + ->find(); + + return $job ? (object) $job : null; + } + + /** + * 标记任务正在执行. + * + * @param stdClass $job + * @return stdClass + */ + protected function markJobAsReserved($job) + { + $this->db + ->name($this->table) + ->where('id', $job->id) + ->update([ + 'reserve_time' => $job->reserve_time = $this->currentTime(), + 'attempts' => ++$job->attempts, + ]); + + return $job; + } + + /** + * 删除任务 + * + * @param string $id + * @return void + */ + public function deleteReserved($id) + { + $this->db->transaction(function () use ($id) { + if ($this->db->name($this->table)->lock(true)->find($id)) { + $this->db->name($this->table)->where('id', $id)->delete(); + } + }); + } + + protected function getQueue($queue) + { + return $queue ?: $this->default; + } +} diff --git a/vendor/topthink/think-queue/src/queue/connector/Redis.php b/vendor/topthink/think-queue/src/queue/connector/Redis.php new file mode 100644 index 000000000..4b757013f --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/connector/Redis.php @@ -0,0 +1,331 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue\connector; + +use Closure; +use Exception; +use RedisException; +use think\helper\Str; +use think\queue\Connector; +use think\queue\InteractsWithTime; +use think\queue\job\Redis as RedisJob; + +class Redis extends Connector +{ + use InteractsWithTime; + + /** @var \Redis */ + protected $redis; + + /** + * The name of the default queue. + * + * @var string + */ + protected $default; + + /** + * The expiration time of a job. + * + * @var int|null + */ + protected $retryAfter = 60; + + /** + * The maximum number of seconds to block for a job. + * + * @var int|null + */ + protected $blockFor = null; + + public function __construct($redis, $default = 'default', $retryAfter = 60, $blockFor = null) + { + $this->redis = $redis; + $this->default = $default; + $this->retryAfter = $retryAfter; + $this->blockFor = $blockFor; + } + + public static function __make($config) + { + if (!extension_loaded('redis')) { + throw new Exception('redis扩展未安装'); + } + + $redis = new class($config) { + protected $config; + protected $client; + + public function __construct($config) + { + $this->config = $config; + $this->client = $this->createClient(); + } + + protected function createClient() + { + $config = $this->config; + $func = $config['persistent'] ? 'pconnect' : 'connect'; + + $client = new \Redis; + $client->$func($config['host'], $config['port'], $config['timeout']); + + if ('' != $config['password']) { + $client->auth($config['password']); + } + + if (0 != $config['select']) { + $client->select($config['select']); + } + return $client; + } + + public function __call($name, $arguments) + { + try { + return call_user_func_array([$this->client, $name], $arguments); + } catch (RedisException $e) { + if (Str::contains($e->getMessage(), 'went away')) { + $this->client = $this->createClient(); + } + + throw $e; + } + } + }; + + return new self($redis, $config['queue'], $config['retry_after'] ?? 60, $config['block_for'] ?? null); + } + + public function size($queue = null) + { + $queue = $this->getQueue($queue); + + return $this->redis->lLen($queue) + $this->redis->zCard("{$queue}:delayed") + $this->redis->zCard("{$queue}:reserved"); + } + + public function push($job, $data = '', $queue = null) + { + return $this->pushRaw($this->createPayload($job, $data), $queue); + } + + public function pushRaw($payload, $queue = null, array $options = []) + { + if ($this->redis->rPush($this->getQueue($queue), $payload)) { + return json_decode($payload, true)['id'] ?? null; + } + } + + public function later($delay, $job, $data = '', $queue = null) + { + return $this->laterRaw($delay, $this->createPayload($job, $data), $queue); + } + + protected function laterRaw($delay, $payload, $queue = null) + { + if ($this->redis->zadd( + $this->getQueue($queue) . ':delayed', + $this->availableAt($delay), + $payload + )) { + return json_decode($payload, true)['id'] ?? null; + } + } + + public function pop($queue = null) + { + $this->migrate($prefixed = $this->getQueue($queue)); + + if (empty($nextJob = $this->retrieveNextJob($prefixed))) { + return; + } + + [$job, $reserved] = $nextJob; + + if ($reserved) { + return new RedisJob($this->app, $this, $job, $reserved, $this->connection, $queue); + } + } + + /** + * Migrate any delayed or expired jobs onto the primary queue. + * + * @param string $queue + * @return void + */ + protected function migrate($queue) + { + $this->migrateExpiredJobs($queue . ':delayed', $queue); + + if (!is_null($this->retryAfter)) { + $this->migrateExpiredJobs($queue . ':reserved', $queue); + } + } + + /** + * 移动延迟任务 + * + * @param string $from + * @param string $to + * @param bool $attempt + */ + public function migrateExpiredJobs($from, $to, $attempt = true) + { + $this->redis->watch($from); + + $jobs = $this->redis->zRangeByScore($from, '-inf', $this->currentTime()); + + if (!empty($jobs)) { + $this->transaction(function () use ($from, $to, $jobs, $attempt) { + + $this->redis->zRemRangeByRank($from, 0, count($jobs) - 1); + + for ($i = 0; $i < count($jobs); $i += 100) { + + $values = array_slice($jobs, $i, 100); + + $this->redis->rPush($to, ...$values); + } + }); + } + + $this->redis->unwatch(); + } + + /** + * Retrieve the next job from the queue. + * + * @param string $queue + * @return array + */ + protected function retrieveNextJob($queue) + { + if (!is_null($this->blockFor)) { + return $this->blockingPop($queue); + } + + $job = $this->redis->lpop($queue); + $reserved = false; + + if ($job) { + $reserved = json_decode($job, true); + $reserved['attempts']++; + $reserved = json_encode($reserved); + $this->redis->zAdd($queue . ':reserved', $this->availableAt($this->retryAfter), $reserved); + } + + return [$job, $reserved]; + } + + /** + * Retrieve the next job by blocking-pop. + * + * @param string $queue + * @return array + */ + protected function blockingPop($queue) + { + $rawBody = $this->redis->blpop($queue, $this->blockFor); + + if (!empty($rawBody)) { + $payload = json_decode($rawBody[1], true); + + $payload['attempts']++; + + $reserved = json_encode($payload); + + $this->redis->zadd($queue . ':reserved', $this->availableAt($this->retryAfter), $reserved); + + return [$rawBody[1], $reserved]; + } + + return [null, null]; + } + + /** + * 删除任务 + * + * @param string $queue + * @param RedisJob $job + * @return void + */ + public function deleteReserved($queue, $job) + { + $this->redis->zRem($this->getQueue($queue) . ':reserved', $job->getReservedJob()); + } + + /** + * Delete a reserved job from the reserved queue and release it. + * + * @param string $queue + * @param RedisJob $job + * @param int $delay + * @return void + */ + public function deleteAndRelease($queue, $job, $delay) + { + $queue = $this->getQueue($queue); + + $reserved = $job->getReservedJob(); + + $this->redis->zRem($queue . ':reserved', $reserved); + + $this->redis->zAdd($queue . ':delayed', $this->availableAt($delay), $reserved); + } + + /** + * redis事务 + * @param Closure $closure + */ + protected function transaction(Closure $closure) + { + $this->redis->multi(); + try { + call_user_func($closure); + if (!$this->redis->exec()) { + $this->redis->discard(); + } + } catch (Exception $e) { + $this->redis->discard(); + } + } + + protected function createPayloadArray($job, $data = '') + { + return array_merge(parent::createPayloadArray($job, $data), [ + 'id' => $this->getRandomId(), + 'attempts' => 0, + ]); + } + + /** + * 随机id + * + * @return string + */ + protected function getRandomId() + { + return Str::random(32); + } + + /** + * 获取队列名 + * + * @param string|null $queue + * @return string + */ + protected function getQueue($queue) + { + $queue = $queue ?: $this->default; + return "{queues:{$queue}}"; + } +} diff --git a/vendor/topthink/think-queue/src/queue/connector/Sync.php b/vendor/topthink/think-queue/src/queue/connector/Sync.php new file mode 100644 index 000000000..3f4d4204c --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/connector/Sync.php @@ -0,0 +1,74 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue\connector; + +use Exception; +use think\queue\Connector; +use think\queue\event\JobFailed; +use think\queue\event\JobProcessed; +use think\queue\event\JobProcessing; +use think\queue\job\Sync as SyncJob; +use Throwable; + +class Sync extends Connector +{ + + public function size($queue = null) + { + return 0; + } + + public function push($job, $data = '', $queue = null) + { + $queueJob = $this->resolveJob($this->createPayload($job, $data), $queue); + + try { + $this->triggerEvent(new JobProcessing($this->connection, $job)); + + $queueJob->fire(); + + $this->triggerEvent(new JobProcessed($this->connection, $job)); + } catch (Exception | Throwable $e) { + + $this->triggerEvent(new JobFailed($this->connection, $job, $e)); + + throw $e; + } + + return 0; + } + + protected function triggerEvent($event) + { + $this->app->event->trigger($event); + } + + public function pop($queue = null) + { + + } + + protected function resolveJob($payload, $queue) + { + return new SyncJob($this->app, $payload, $this->connection, $queue); + } + + public function pushRaw($payload, $queue = null, array $options = []) + { + + } + + public function later($delay, $job, $data = '', $queue = null) + { + return $this->push($job, $data, $queue); + } +} diff --git a/vendor/topthink/think-queue/src/queue/event/JobExceptionOccurred.php b/vendor/topthink/think-queue/src/queue/event/JobExceptionOccurred.php new file mode 100644 index 000000000..2e7d1ebfc --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/event/JobExceptionOccurred.php @@ -0,0 +1,45 @@ +job = $job; + $this->exception = $exception; + $this->connectionName = $connectionName; + } +} diff --git a/vendor/topthink/think-queue/src/queue/event/JobFailed.php b/vendor/topthink/think-queue/src/queue/event/JobFailed.php new file mode 100644 index 000000000..9e3706aa4 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/event/JobFailed.php @@ -0,0 +1,24 @@ +connection = $connection; + $this->job = $job; + $this->exception = $exception; + } +} diff --git a/vendor/topthink/think-queue/src/queue/event/JobProcessed.php b/vendor/topthink/think-queue/src/queue/event/JobProcessed.php new file mode 100644 index 000000000..9ae9fca38 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/event/JobProcessed.php @@ -0,0 +1,20 @@ +connection = $connection; + $this->job = $job; + } +} diff --git a/vendor/topthink/think-queue/src/queue/event/JobProcessing.php b/vendor/topthink/think-queue/src/queue/event/JobProcessing.php new file mode 100644 index 000000000..72ff3c574 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/event/JobProcessing.php @@ -0,0 +1,20 @@ +connection = $connection; + $this->job = $job; + } +} diff --git a/vendor/topthink/think-queue/src/queue/event/WorkerStopping.php b/vendor/topthink/think-queue/src/queue/event/WorkerStopping.php new file mode 100644 index 000000000..5f1fc7509 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/event/WorkerStopping.php @@ -0,0 +1,24 @@ +status = $status; + } +} diff --git a/vendor/topthink/think-queue/src/queue/exception/MaxAttemptsExceededException.php b/vendor/topthink/think-queue/src/queue/exception/MaxAttemptsExceededException.php new file mode 100644 index 000000000..fb8440b99 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/exception/MaxAttemptsExceededException.php @@ -0,0 +1,10 @@ +db = $db; + $this->table = $table; + } + + public static function __make(Db $db, $config) + { + return new self($db, $config['table']); + } + + /** + * Log a failed job into storage. + * + * @param string $connection + * @param string $queue + * @param string $payload + * @param \Exception $exception + * @return int|null + */ + public function log($connection, $queue, $payload, $exception) + { + $fail_time = Carbon::now()->toDateTimeString(); + + $exception = (string) $exception; + + return $this->getTable()->insertGetId(compact( + 'connection', + 'queue', + 'payload', + 'exception', + 'fail_time' + )); + } + + /** + * Get a list of all of the failed jobs. + * + * @return array + */ + public function all() + { + return collect($this->getTable()->order('id', 'desc')->select())->all(); + } + + /** + * Get a single failed job. + * + * @param mixed $id + * @return object|null + */ + public function find($id) + { + return $this->getTable()->find($id); + } + + /** + * Delete a single failed job from storage. + * + * @param mixed $id + * @return bool + */ + public function forget($id) + { + return $this->getTable()->where('id', $id)->delete() > 0; + } + + /** + * Flush all of the failed jobs from storage. + * + * @return void + */ + public function flush() + { + $this->getTable()->delete(true); + } + + protected function getTable() + { + return $this->db->name($this->table); + } +} diff --git a/vendor/topthink/think-queue/src/queue/failed/None.php b/vendor/topthink/think-queue/src/queue/failed/None.php new file mode 100644 index 000000000..205dd2fb1 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/failed/None.php @@ -0,0 +1,63 @@ + +// +---------------------------------------------------------------------- +namespace think\queue\job; + +use think\App; +use think\queue\connector\Database as DatabaseQueue; +use think\queue\Job; + +class Database extends Job +{ + /** + * The database queue instance. + * @var DatabaseQueue + */ + protected $database; + + /** + * The database job payload. + * @var Object + */ + protected $job; + + public function __construct(App $app, DatabaseQueue $database, $job, $connection, $queue) + { + $this->app = $app; + $this->job = $job; + $this->queue = $queue; + $this->database = $database; + $this->connection = $connection; + } + + /** + * 删除任务 + * @return void + */ + public function delete() + { + parent::delete(); + $this->database->deleteReserved($this->job->id); + } + + /** + * 重新发布任务 + * @param int $delay + * @return void + */ + public function release($delay = 0) + { + parent::release($delay); + + $this->delete(); + + $this->database->release($this->queue, $this->job, $delay); + } + + /** + * 获取当前任务尝试次数 + * @return int + */ + public function attempts() + { + return (int) $this->job->attempts; + } + + /** + * Get the raw body string for the job. + * @return string + */ + public function getRawBody() + { + return $this->job->payload; + } + + /** + * Get the job identifier. + * + * @return string + */ + public function getJobId() + { + return $this->job->id; + } +} diff --git a/vendor/topthink/think-queue/src/queue/job/Redis.php b/vendor/topthink/think-queue/src/queue/job/Redis.php new file mode 100644 index 000000000..cde8d4ecf --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/job/Redis.php @@ -0,0 +1,112 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue\job; + +use think\App; +use think\queue\connector\Redis as RedisQueue; +use think\queue\Job; + +class Redis extends Job +{ + + /** + * The redis queue instance. + * @var RedisQueue + */ + protected $redis; + + /** + * The database job payload. + * @var Object + */ + protected $job; + + /** + * The Redis job payload inside the reserved queue. + * + * @var string + */ + protected $reserved; + + public function __construct(App $app, RedisQueue $redis, $job, $reserved, $connection, $queue) + { + $this->app = $app; + $this->job = $job; + $this->queue = $queue; + $this->connection = $connection; + $this->redis = $redis; + $this->reserved = $reserved; + } + + /** + * Get the number of times the job has been attempted. + * @return int + */ + public function attempts() + { + return $this->payload('attempts') + 1; + } + + /** + * Get the raw body string for the job. + * @return string + */ + public function getRawBody() + { + return $this->job; + } + + /** + * 删除任务 + * + * @return void + */ + public function delete() + { + parent::delete(); + + $this->redis->deleteReserved($this->queue, $this); + } + + /** + * 重新发布任务 + * + * @param int $delay + * @return void + */ + public function release($delay = 0) + { + parent::release($delay); + + $this->redis->deleteAndRelease($this->queue, $this, $delay); + } + + /** + * Get the job identifier. + * + * @return string + */ + public function getJobId() + { + return $this->payload('id'); + } + + /** + * Get the underlying reserved Redis job. + * + * @return string + */ + public function getReservedJob() + { + return $this->reserved; + } +} diff --git a/vendor/topthink/think-queue/src/queue/job/Sync.php b/vendor/topthink/think-queue/src/queue/job/Sync.php new file mode 100644 index 000000000..68eb97da7 --- /dev/null +++ b/vendor/topthink/think-queue/src/queue/job/Sync.php @@ -0,0 +1,66 @@ + +// +---------------------------------------------------------------------- + +namespace think\queue\job; + +use think\App; +use think\queue\Job; + +class Sync extends Job +{ + /** + * The queue message data. + * + * @var string + */ + protected $job; + + public function __construct(App $app, $job, $connection, $queue) + { + $this->app = $app; + $this->connection = $connection; + $this->queue = $queue; + $this->job = $job; + } + + /** + * Get the number of times the job has been attempted. + * @return int + */ + public function attempts() + { + return 1; + } + + /** + * Get the raw body string for the job. + * @return string + */ + public function getRawBody() + { + return $this->job; + } + + /** + * Get the job identifier. + * + * @return string + */ + public function getJobId() + { + return ''; + } + + public function getQueue() + { + return 'sync'; + } +} diff --git a/vendor/topthink/think-queue/tests/DatabaseConnectorTest.php b/vendor/topthink/think-queue/tests/DatabaseConnectorTest.php new file mode 100644 index 000000000..3856886b3 --- /dev/null +++ b/vendor/topthink/think-queue/tests/DatabaseConnectorTest.php @@ -0,0 +1,123 @@ +db = m::mock(Db::class); + $this->connector = new Database($this->db, 'table', 'default'); + } + + public function testPushProperlyPushesJobOntoDatabase() + { + $this->db->shouldReceive('name')->with('table')->andReturn($query = m::mock(stdClass::class)); + + $query->shouldReceive('insertGetId')->once()->andReturnUsing(function ($array) { + $this->assertEquals('default', $array['queue']); + $this->assertEquals(json_encode(['job' => 'foo', 'maxTries' => null, 'timeout' => null, 'data' => ['data']]), $array['payload']); + $this->assertEquals(0, $array['attempts']); + $this->assertNull($array['reserved_at']); + $this->assertInternalType('int', $array['available_at']); + }); + $this->connector->push('foo', ['data']); + } + + public function testDelayedPushProperlyPushesJobOntoDatabase() + { + $this->db->shouldReceive('name')->with('table')->andReturn($query = m::mock(stdClass::class)); + + $query->shouldReceive('insertGetId')->once()->andReturnUsing(function ($array) { + $this->assertEquals('default', $array['queue']); + $this->assertEquals(json_encode(['job' => 'foo', 'maxTries' => null, 'timeout' => null, 'data' => ['data']]), $array['payload']); + $this->assertEquals(0, $array['attempts']); + $this->assertNull($array['reserved_at']); + $this->assertInternalType('int', $array['available_at']); + }); + + $this->connector->later(10, 'foo', ['data']); + } + + public function testFailureToCreatePayloadFromObject() + { + $this->expectException('InvalidArgumentException'); + + $job = new stdClass; + $job->invalid = "\xc3\x28"; + + $queue = $this->getMockForAbstractClass(Connector::class); + $class = new ReflectionClass(Connector::class); + + $createPayload = $class->getMethod('createPayload'); + $createPayload->setAccessible(true); + $createPayload->invokeArgs($queue, [ + $job, + 'queue-name', + ]); + } + + public function testFailureToCreatePayloadFromArray() + { + $this->expectException('InvalidArgumentException'); + + $queue = $this->getMockForAbstractClass(Connector::class); + $class = new ReflectionClass(Connector::class); + + $createPayload = $class->getMethod('createPayload'); + $createPayload->setAccessible(true); + $createPayload->invokeArgs($queue, [ + ["\xc3\x28"], + 'queue-name', + ]); + } + + public function testBulkBatchPushesOntoDatabase() + { + + $this->db->shouldReceive('name')->with('table')->andReturn($query = m::mock(stdClass::class)); + + Carbon::setTestNow( + $now = Carbon::now()->addSeconds() + ); + + $query->shouldReceive('insertAll')->once()->andReturnUsing(function ($records) use ($now) { + $this->assertEquals([ + [ + 'queue' => 'queue', + 'payload' => json_encode(['job' => 'foo', 'maxTries' => null, 'timeout' => null, 'data' => ['data']]), + 'attempts' => 0, + 'reserved_at' => null, + 'available_at' => $now->getTimestamp(), + 'created_at' => $now->getTimestamp(), + ], [ + 'queue' => 'queue', + 'payload' => json_encode(['job' => 'bar', 'maxTries' => null, 'timeout' => null, 'data' => ['data']]), + 'attempts' => 0, + 'reserved_at' => null, + 'available_at' => $now->getTimestamp(), + 'created_at' => $now->getTimestamp(), + ], + ], $records); + }); + + $this->connector->bulk(['foo', 'bar'], ['data'], 'queue'); + } + +} diff --git a/vendor/topthink/think-queue/tests/ListenerTest.php b/vendor/topthink/think-queue/tests/ListenerTest.php new file mode 100644 index 000000000..883b03330 --- /dev/null +++ b/vendor/topthink/think-queue/tests/ListenerTest.php @@ -0,0 +1,80 @@ +makePartial(); + $process->shouldReceive('run')->once(); + /** @var Listener|MockInterface $listener */ + $listener = m::mock(Listener::class)->makePartial(); + $listener->shouldReceive('memoryExceeded')->once()->with(1)->andReturn(false); + + $listener->runProcess($process, 1); + } + + public function testListenerStopsWhenMemoryIsExceeded() + { + /** @var Process|MockInterface $process */ + $process = m::mock(Process::class)->makePartial(); + $process->shouldReceive('run')->once(); + /** @var Listener|MockInterface $listener */ + $listener = m::mock(Listener::class)->makePartial(); + $listener->shouldReceive('memoryExceeded')->once()->with(1)->andReturn(true); + $listener->shouldReceive('stop')->once(); + + $listener->runProcess($process, 1); + } + + public function testMakeProcessCorrectlyFormatsCommandLine() + { + $listener = new Listener(__DIR__); + + $process = $listener->makeProcess('connection', 'queue', 1, 3, 0, 2, 3); + $escape = '\\' === DIRECTORY_SEPARATOR ? '"' : '\''; + + $this->assertInstanceOf(Process::class, $process); + $this->assertEquals(__DIR__, $process->getWorkingDirectory()); + $this->assertEquals(3, $process->getTimeout()); + $this->assertEquals($escape . PHP_BINARY . $escape . " {$escape}think{$escape} {$escape}queue:work{$escape} {$escape}connection{$escape} {$escape}--once{$escape} {$escape}--queue=queue{$escape} {$escape}--delay=1{$escape} {$escape}--memory=2{$escape} {$escape}--sleep=3{$escape} {$escape}--tries=0{$escape}", $process->getCommandLine()); + } + + public function testMakeProcessCorrectlyFormatsCommandLineWithAnEnvironmentSpecified() + { + $listener = new Listener(__DIR__); + + $process = $listener->makeProcess('connection', 'queue', 1, 3, 0, 2, 3); + $escape = '\\' === DIRECTORY_SEPARATOR ? '"' : '\''; + + $this->assertInstanceOf(Process::class, $process); + $this->assertEquals(__DIR__, $process->getWorkingDirectory()); + $this->assertEquals(3, $process->getTimeout()); + $this->assertEquals($escape . PHP_BINARY . $escape . " {$escape}think{$escape} {$escape}queue:work{$escape} {$escape}connection{$escape} {$escape}--once{$escape} {$escape}--queue=queue{$escape} {$escape}--delay=1{$escape} {$escape}--memory=2{$escape} {$escape}--sleep=3{$escape} {$escape}--tries=0{$escape}", $process->getCommandLine()); + } + + public function testMakeProcessCorrectlyFormatsCommandLineWhenTheConnectionIsNotSpecified() + { + $listener = new Listener(__DIR__); + + $process = $listener->makeProcess(null, 'queue', 1, 3, 0, 2, 3); + $escape = '\\' === DIRECTORY_SEPARATOR ? '"' : '\''; + + $this->assertInstanceOf(Process::class, $process); + $this->assertEquals(__DIR__, $process->getWorkingDirectory()); + $this->assertEquals(3, $process->getTimeout()); + $this->assertEquals($escape . PHP_BINARY . $escape . " {$escape}think{$escape} {$escape}queue:work{$escape} {$escape}--once{$escape} {$escape}--queue=queue{$escape} {$escape}--delay=1{$escape} {$escape}--memory=2{$escape} {$escape}--sleep=3{$escape} {$escape}--tries=0{$escape}", $process->getCommandLine()); + } +} diff --git a/vendor/topthink/think-queue/tests/QueueTest.php b/vendor/topthink/think-queue/tests/QueueTest.php new file mode 100644 index 000000000..a87c80db1 --- /dev/null +++ b/vendor/topthink/think-queue/tests/QueueTest.php @@ -0,0 +1,49 @@ +queue = new Queue($this->app); + } + + public function testDefaultConnectionCanBeResolved() + { + $sync = new Sync(); + + $this->app->shouldReceive('invokeClass')->once()->with('\think\queue\connector\Sync', [['driver' => 'sync']])->andReturn($sync); + + $config = m::mock(Config::class); + + $config->shouldReceive('get')->twice()->with('queue.connectors.sync', ['driver' => 'sync'])->andReturn(['driver' => 'sync']); + $config->shouldReceive('get')->once()->with('queue.default', 'sync')->andReturn('sync'); + + $this->app->shouldReceive('get')->times(3)->with('config')->andReturn($config); + + $this->assertSame($sync, $this->queue->driver('sync')); + $this->assertSame($sync, $this->queue->driver()); + } + + public function testNotSupportDriver() + { + $config = m::mock(Config::class); + + $config->shouldReceive('get')->once()->with('queue.connectors.hello', ['driver' => 'sync'])->andReturn(['driver' => 'hello']); + $this->app->shouldReceive('get')->once()->with('config')->andReturn($config); + + $this->expectException(InvalidArgumentException::class); + $this->queue->driver('hello'); + } +} diff --git a/vendor/topthink/think-queue/tests/TestCase.php b/vendor/topthink/think-queue/tests/TestCase.php new file mode 100644 index 000000000..5a9279df1 --- /dev/null +++ b/vendor/topthink/think-queue/tests/TestCase.php @@ -0,0 +1,23 @@ +app = m::mock(App::class)->makePartial(); + } +} diff --git a/vendor/topthink/think-queue/tests/WorkerTest.php b/vendor/topthink/think-queue/tests/WorkerTest.php new file mode 100644 index 000000000..87eeacc1a --- /dev/null +++ b/vendor/topthink/think-queue/tests/WorkerTest.php @@ -0,0 +1,420 @@ +queue = m::mock(Queue::class); + $this->handle = m::spy(Handle::class); + $this->event = m::spy(Event::class); + $this->cache = m::spy(Cache::class); + } + + public function testJobCanBeFired() + { + + $worker = $this->getWorker(['default' => [$job = new WorkerFakeJob]]); + + $this->event->shouldReceive('trigger')->with(m::type(JobProcessing::class))->once(); + $this->event->shouldReceive('trigger')->with(m::type(JobProcessed::class))->once(); + + $worker->runNextJob('sync', 'default'); + } + + public function testWorkerCanWorkUntilQueueIsEmpty() + { + $worker = $this->getWorker(['default' => [ + $firstJob = new WorkerFakeJob, + $secondJob = new WorkerFakeJob, + ]]); + + $this->expectException(LoopBreakerException::class); + + $worker->daemon('sync', 'default'); + + $this->assertTrue($firstJob->fired); + + $this->assertTrue($secondJob->fired); + + $this->assertSame(0, $worker->stoppedWithStatus); + + $this->event->shouldHaveReceived('trigger')->with(m::type(JobProcessing::class))->twice(); + + $this->event->shouldHaveReceived('trigger')->with(m::type(JobProcessed::class))->twice(); + } + + public function testJobCanBeFiredBasedOnPriority() + { + $worker = $this->getWorker([ + 'high' => [ + $highJob = new WorkerFakeJob, + $secondHighJob = new WorkerFakeJob, + ], + 'low' => [$lowJob = new WorkerFakeJob], + ]); + + $worker->runNextJob('sync', 'high,low'); + + $this->assertTrue($highJob->fired); + $this->assertFalse($secondHighJob->fired); + $this->assertFalse($lowJob->fired); + + $worker->runNextJob('sync', 'high,low'); + $this->assertTrue($secondHighJob->fired); + $this->assertFalse($lowJob->fired); + + $worker->runNextJob('sync', 'high,low'); + $this->assertTrue($lowJob->fired); + } + + public function testExceptionIsReportedIfConnectionThrowsExceptionOnJobPop() + { + $e = new RuntimeException(); + + $sync = m::mock(Sync::class); + + $sync->shouldReceive('pop')->andReturnUsing(function () use ($e) { + throw $e; + }); + + $this->queue->shouldReceive('driver')->with('sync')->andReturn($sync); + + $worker = new Worker($this->queue, $this->event, $this->handle); + + $worker->runNextJob('sync', 'default'); + + $this->handle->shouldHaveReceived('report')->with($e); + } + + public function testWorkerSleepsWhenQueueIsEmpty() + { + $worker = $this->getWorker(['default' => []]); + $worker->runNextJob('sync', 'default', 0, 5); + $this->assertEquals(5, $worker->sleptFor); + } + + public function testJobIsReleasedOnException() + { + $e = new RuntimeException; + + $job = new WorkerFakeJob(function () use ($e) { + throw $e; + }); + + $worker = $this->getWorker(['default' => [$job]]); + $worker->runNextJob('sync', 'default', 10); + + $this->assertEquals(10, $job->releaseAfter); + $this->assertFalse($job->deleted); + $this->handle->shouldHaveReceived('report')->with($e); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobExceptionOccurred::class))->once(); + $this->event->shouldNotHaveReceived('trigger', [m::type(JobProcessed::class)]); + } + + public function testJobIsNotReleasedIfItHasExceededMaxAttempts() + { + $e = new RuntimeException; + + $job = new WorkerFakeJob(function ($job) use ($e) { + // In normal use this would be incremented by being popped off the queue + $job->attempts++; + + throw $e; + }); + $job->attempts = 1; + + $worker = $this->getWorker(['default' => [$job]]); + $worker->runNextJob('sync', 'default', 0, 3, 1); + + $this->assertNull($job->releaseAfter); + $this->assertTrue($job->deleted); + $this->assertEquals($e, $job->failedWith); + $this->handle->shouldHaveReceived('report')->with($e); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobExceptionOccurred::class))->once(); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobFailed::class))->once(); + $this->event->shouldNotHaveReceived('trigger', [m::type(JobProcessed::class)]); + } + + public function testJobIsNotReleasedIfItHasExpired() + { + $e = new RuntimeException; + + $job = new WorkerFakeJob(function ($job) use ($e) { + // In normal use this would be incremented by being popped off the queue + $job->attempts++; + + throw $e; + }); + + $job->timeoutAt = Carbon::now()->addSeconds(1)->getTimestamp(); + + $job->attempts = 0; + + Carbon::setTestNow( + Carbon::now()->addSeconds(1) + ); + + $worker = $this->getWorker(['default' => [$job]]); + $worker->runNextJob('sync', 'default'); + + $this->assertNull($job->releaseAfter); + $this->assertTrue($job->deleted); + $this->assertEquals($e, $job->failedWith); + $this->handle->shouldHaveReceived('report')->with($e); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobExceptionOccurred::class))->once(); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobFailed::class))->once(); + $this->event->shouldNotHaveReceived('trigger', [m::type(JobProcessed::class)]); + } + + public function testJobIsFailedIfItHasAlreadyExceededMaxAttempts() + { + $job = new WorkerFakeJob(function ($job) { + $job->attempts++; + }); + + $job->attempts = 2; + + $worker = $this->getWorker(['default' => [$job]]); + $worker->runNextJob('sync', 'default', 0, 3, 1); + + $this->assertNull($job->releaseAfter); + $this->assertTrue($job->deleted); + $this->assertInstanceOf(MaxAttemptsExceededException::class, $job->failedWith); + $this->handle->shouldHaveReceived('report')->with(m::type(MaxAttemptsExceededException::class)); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobExceptionOccurred::class))->once(); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobFailed::class))->once(); + $this->event->shouldNotHaveReceived('trigger', [m::type(JobProcessed::class)]); + } + + public function testJobIsFailedIfItHasAlreadyExpired() + { + $job = new WorkerFakeJob(function ($job) { + $job->attempts++; + }); + + $job->timeoutAt = Carbon::now()->addSeconds(2)->getTimestamp(); + + $job->attempts = 1; + + Carbon::setTestNow( + Carbon::now()->addSeconds(3) + ); + + $worker = $this->getWorker(['default' => [$job]]); + $worker->runNextJob('sync', 'default'); + + $this->assertNull($job->releaseAfter); + $this->assertTrue($job->deleted); + $this->assertInstanceOf(MaxAttemptsExceededException::class, $job->failedWith); + $this->handle->shouldHaveReceived('report')->with(m::type(MaxAttemptsExceededException::class)); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobExceptionOccurred::class))->once(); + $this->event->shouldHaveReceived('trigger')->with(m::type(JobFailed::class))->once(); + $this->event->shouldNotHaveReceived('trigger', [m::type(JobProcessed::class)]); + } + + public function testJobBasedMaxRetries() + { + $job = new WorkerFakeJob(function ($job) { + $job->attempts++; + }); + + $job->attempts = 2; + + $job->maxTries = 10; + + $worker = $this->getWorker(['default' => [$job]]); + $worker->runNextJob('sync', 'default', 0, 3, 1); + + $this->assertFalse($job->deleted); + $this->assertNull($job->failedWith); + } + + protected function getWorker($jobs) + { + $sync = m::mock(Sync::class); + + $sync->shouldReceive('pop')->andReturnUsing(function ($queue) use (&$jobs) { + return array_shift($jobs[$queue]); + }); + + $this->queue->shouldReceive('driver')->with('sync')->andReturn($sync); + + return new Worker($this->queue, $this->event, $this->handle, $this->cache); + } +} + +class WorkerFakeConnector +{ + public $jobs = []; + + public function __construct($jobs) + { + $this->jobs = $jobs; + } + + public function pop($queue) + { + return array_shift($this->jobs[$queue]); + } +} + +class Worker extends \think\queue\Worker +{ + public $sleptFor; + + public $stoppedWithStatus; + + public function sleep($seconds) + { + $this->sleptFor = $seconds; + } + + public function stop($status = 0) + { + $this->stoppedWithStatus = $status; + + throw new LoopBreakerException; + } + + protected function stopIfNecessary($job, $lastRestart, $memory) + { + if (is_null($job)) { + $this->stop(); + } else { + parent::stopIfNecessary($job, $lastRestart, $memory); + } + } +} + +class WorkerFakeJob +{ + + public $fired = false; + public $callback; + public $deleted = false; + public $releaseAfter; + public $released = false; + public $maxTries; + public $timeoutAt; + public $attempts = 0; + public $failedWith; + public $failed = false; + public $connectionName; + + public function __construct($callback = null) + { + $this->callback = $callback ?: function () { + // + }; + } + + public function fire() + { + $this->fired = true; + $this->callback->__invoke($this); + } + + public function payload() + { + return []; + } + + public function maxTries() + { + return $this->maxTries; + } + + public function timeoutAt() + { + return $this->timeoutAt; + } + + public function delete() + { + $this->deleted = true; + } + + public function isDeleted() + { + return $this->deleted; + } + + public function release($delay) + { + $this->released = true; + + $this->releaseAfter = $delay; + } + + public function isReleased() + { + return $this->released; + } + + public function attempts() + { + return $this->attempts; + } + + public function markAsFailed() + { + $this->failed = true; + } + + public function failed($e) + { + $this->markAsFailed(); + + $this->failedWith = $e; + } + + public function hasFailed() + { + return $this->failed; + } + + public function timeout() + { + return time() + 60; + } + + public function getName() + { + return 'WorkerFakeJob'; + } +} + +class LoopBreakerException extends RuntimeException +{ + // +} diff --git a/vendor/topthink/think-queue/tests/bootstrap.php b/vendor/topthink/think-queue/tests/bootstrap.php new file mode 100644 index 000000000..401013c6d --- /dev/null +++ b/vendor/topthink/think-queue/tests/bootstrap.php @@ -0,0 +1,3 @@ +=6.9.0'} - dev: false + dev: true - /@babel/parser/7.18.5: - resolution: {integrity: sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==} + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/parser/7.19.4: + resolution: {integrity: sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.18.4 - dev: false + '@babel/types': 7.19.4 + dev: true - /@babel/types/7.18.4: - resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} + /@babel/types/7.19.4: + resolution: {integrity: sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.16.7 + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - dev: false + dev: true - /@docsearch/css/3.1.0: - resolution: {integrity: sha512-bh5IskwkkodbvC0FzSg1AxMykfDl95hebEKwxNoq4e5QaGzOXSBgW8+jnMFZ7JU4sTBiB04vZWoUSzNrPboLZA==} - dev: false + /@docsearch/css/3.2.1: + resolution: {integrity: sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==} + dev: true - /@docsearch/js/3.1.0: - resolution: {integrity: sha512-5XSK+xbP0hcTIp54MECqxkWLs6kf7Ug4nWdxWNtx8cUpLiFNFnKXDxCb35wnyNpjukmrx7Q9DkO5tFFsmNVxng==} + /@docsearch/js/3.2.1: + resolution: {integrity: sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==} dependencies: - '@docsearch/react': 3.1.0 - preact: 10.8.2 + '@docsearch/react': 3.2.1 + preact: 10.11.2 transitivePeerDependencies: + - '@algolia/client-search' - '@types/react' - react - react-dom - dev: false + dev: true - /@docsearch/react/3.1.0: - resolution: {integrity: sha512-bjB6ExnZzf++5B7Tfoi6UXgNwoUnNOfZ1NyvnvPhWgCMy5V/biAtLL4o7owmZSYdAKeFSvZ5Lxm0is4su/dBWg==} + /@docsearch/react/3.2.1: + resolution: {integrity: sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -182,10 +200,68 @@ packages: react-dom: optional: true dependencies: - '@algolia/autocomplete-core': 1.6.3 - '@docsearch/css': 3.1.0 - algoliasearch: 4.13.1 - dev: false + '@algolia/autocomplete-core': 1.7.1 + '@algolia/autocomplete-preset-algolia': 1.7.1_algoliasearch@4.14.2 + '@docsearch/css': 3.2.1 + algoliasearch: 4.14.2 + transitivePeerDependencies: + - '@algolia/client-search' + dev: true + + /@esbuild/android-arm/0.15.11: + resolution: {integrity: sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.15.11: + resolution: {integrity: sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -208,23 +284,6 @@ packages: fastq: 1.13.0 dev: false - /@overtrue/easywechat-theme/1.0.5_vue@3.2.37: - resolution: {integrity: sha512-lAhge9nsO1rmfstWMd30qF8vWt3x2SuA1rc/i6FbctvGv7NzoN5p4Z4gIfxutcMiVJqdWYsCTFlTXH4bM5sPxg==} - dependencies: - '@docsearch/css': 3.1.0 - '@docsearch/js': 3.1.0 - '@vueuse/core': 7.7.1_vue@3.2.37 - body-scroll-lock: 3.1.5 - normalize.css: 8.0.1 - shiki: 0.9.15 - transitivePeerDependencies: - - '@types/react' - - '@vue/composition-api' - - react - - react-dom - - vue - dev: false - /@types/linkify-it/3.0.2: resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} dev: true @@ -240,179 +299,136 @@ packages: resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} dev: true - /@types/node/16.11.41: - resolution: {integrity: sha512-mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ==} + /@types/node/16.11.65: + resolution: {integrity: sha512-Vfz7wGMOr4jbQGiQHVJm8VjeQwM9Ya7mHe9LtQ264/Epf5n1KiZShOFqk++nBzw6a/ubgYdB9Od7P+MH/LjoWw==} dev: true - /@types/web-bluetooth/0.0.14: - resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==} - dev: false + /@types/web-bluetooth/0.0.15: + resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} + dev: true - /@vitejs/plugin-vue/2.3.3_vite@2.9.12+vue@3.2.37: - resolution: {integrity: sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==} - engines: {node: '>=12.0.0'} + /@vitejs/plugin-vue/3.1.2_vite@3.1.8+vue@3.2.41: + resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^2.5.10 + vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 2.9.12 - vue: 3.2.37 - dev: false + vite: 3.1.8_terser@5.15.1 + vue: 3.2.41 + dev: true - /@vue/compiler-core/3.2.37: - resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} + /@vue/compiler-core/3.2.41: + resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==} dependencies: - '@babel/parser': 7.18.5 - '@vue/shared': 3.2.37 + '@babel/parser': 7.19.4 + '@vue/shared': 3.2.41 estree-walker: 2.0.2 source-map: 0.6.1 - dev: false + dev: true - /@vue/compiler-dom/3.2.37: - resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} + /@vue/compiler-dom/3.2.41: + resolution: {integrity: sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==} dependencies: - '@vue/compiler-core': 3.2.37 - '@vue/shared': 3.2.37 - dev: false + '@vue/compiler-core': 3.2.41 + '@vue/shared': 3.2.41 + dev: true - /@vue/compiler-sfc/3.2.37: - resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} + /@vue/compiler-sfc/3.2.41: + resolution: {integrity: sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==} dependencies: - '@babel/parser': 7.18.5 - '@vue/compiler-core': 3.2.37 - '@vue/compiler-dom': 3.2.37 - '@vue/compiler-ssr': 3.2.37 - '@vue/reactivity-transform': 3.2.37 - '@vue/shared': 3.2.37 + '@babel/parser': 7.19.4 + '@vue/compiler-core': 3.2.41 + '@vue/compiler-dom': 3.2.41 + '@vue/compiler-ssr': 3.2.41 + '@vue/reactivity-transform': 3.2.41 + '@vue/shared': 3.2.41 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.14 + postcss: 8.4.18 source-map: 0.6.1 - dev: false + dev: true - /@vue/compiler-ssr/3.2.37: - resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} + /@vue/compiler-ssr/3.2.41: + resolution: {integrity: sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==} dependencies: - '@vue/compiler-dom': 3.2.37 - '@vue/shared': 3.2.37 - dev: false + '@vue/compiler-dom': 3.2.41 + '@vue/shared': 3.2.41 + dev: true - /@vue/devtools-api/6.1.4: - resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==} - dev: false + /@vue/devtools-api/6.4.4: + resolution: {integrity: sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw==} + dev: true - /@vue/reactivity-transform/3.2.37: - resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} + /@vue/reactivity-transform/3.2.41: + resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==} dependencies: - '@babel/parser': 7.18.5 - '@vue/compiler-core': 3.2.37 - '@vue/shared': 3.2.37 + '@babel/parser': 7.19.4 + '@vue/compiler-core': 3.2.41 + '@vue/shared': 3.2.41 estree-walker: 2.0.2 magic-string: 0.25.9 - dev: false + dev: true - /@vue/reactivity/3.2.37: - resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} + /@vue/reactivity/3.2.41: + resolution: {integrity: sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==} dependencies: - '@vue/shared': 3.2.37 - dev: false + '@vue/shared': 3.2.41 + dev: true - /@vue/runtime-core/3.2.37: - resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} + /@vue/runtime-core/3.2.41: + resolution: {integrity: sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==} dependencies: - '@vue/reactivity': 3.2.37 - '@vue/shared': 3.2.37 - dev: false + '@vue/reactivity': 3.2.41 + '@vue/shared': 3.2.41 + dev: true - /@vue/runtime-dom/3.2.37: - resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} + /@vue/runtime-dom/3.2.41: + resolution: {integrity: sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==} dependencies: - '@vue/runtime-core': 3.2.37 - '@vue/shared': 3.2.37 - csstype: 2.6.20 - dev: false + '@vue/runtime-core': 3.2.41 + '@vue/shared': 3.2.41 + csstype: 2.6.21 + dev: true - /@vue/server-renderer/3.2.37_vue@3.2.37: - resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} + /@vue/server-renderer/3.2.41_vue@3.2.41: + resolution: {integrity: sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==} peerDependencies: - vue: 3.2.37 + vue: 3.2.41 dependencies: - '@vue/compiler-ssr': 3.2.37 - '@vue/shared': 3.2.37 - vue: 3.2.37 - dev: false + '@vue/compiler-ssr': 3.2.41 + '@vue/shared': 3.2.41 + vue: 3.2.41 + dev: true - /@vue/shared/3.2.37: - resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} - dev: false + /@vue/shared/3.2.41: + resolution: {integrity: sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==} + dev: true - /@vueuse/core/7.7.1_vue@3.2.37: - resolution: {integrity: sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true + /@vueuse/core/9.3.0_vue@3.2.41: + resolution: {integrity: sha512-64Rna8IQDWpdrJxgitDg7yv1yTp41ZmvV8zlLEylK4QQLWAhz1OFGZDPZ8bU4lwcGgbEJ2sGi2jrdNh4LttUSQ==} dependencies: - '@vueuse/shared': 7.7.1_vue@3.2.37 - vue: 3.2.37 - vue-demi: 0.13.1_vue@3.2.37 - dev: false + '@types/web-bluetooth': 0.0.15 + '@vueuse/metadata': 9.3.0 + '@vueuse/shared': 9.3.0_vue@3.2.41 + vue-demi: 0.13.11_vue@3.2.41 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true - /@vueuse/core/8.7.5_vue@3.2.37: - resolution: {integrity: sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true + /@vueuse/metadata/9.3.0: + resolution: {integrity: sha512-GnnfjbzIPJIh9ngL9s9oGU1+Hx/h5/KFqTfJykzh/1xjaHkedV9g0MASpdmPZIP+ynNhKAcEfA6g5i8KXwtoMA==} + dev: true + + /@vueuse/shared/9.3.0_vue@3.2.41: + resolution: {integrity: sha512-caGUWLY0DpPC6l31KxeUy6vPVNA0yKxx81jFYLoMpyP6cF84FG5Dkf69DfSUqL57wX8JcUkJDMnQaQIZPWFEQQ==} dependencies: - '@types/web-bluetooth': 0.0.14 - '@vueuse/metadata': 8.7.5 - '@vueuse/shared': 8.7.5_vue@3.2.37 - vue: 3.2.37 - vue-demi: 0.13.1_vue@3.2.37 - dev: false - - /@vueuse/metadata/8.7.5: - resolution: {integrity: sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg==} - dev: false - - /@vueuse/shared/7.7.1_vue@3.2.37: - resolution: {integrity: sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true - dependencies: - vue: 3.2.37 - vue-demi: 0.13.1_vue@3.2.37 - dev: false - - /@vueuse/shared/8.7.5_vue@3.2.37: - resolution: {integrity: sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true - dependencies: - vue: 3.2.37 - vue-demi: 0.13.1_vue@3.2.37 - dev: false + vue-demi: 0.13.11_vue@3.2.41 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true /acorn-node/1.8.2: resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} @@ -433,24 +449,30 @@ packages: hasBin: true dev: false - /algoliasearch/4.13.1: - resolution: {integrity: sha512-dtHUSE0caWTCE7liE1xaL+19AFf6kWEcyn76uhcitWpntqvicFHXKFoZe5JJcv9whQOTRM6+B8qJz6sFj+rDJA==} + /acorn/8.8.0: + resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /algoliasearch/4.14.2: + resolution: {integrity: sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==} dependencies: - '@algolia/cache-browser-local-storage': 4.13.1 - '@algolia/cache-common': 4.13.1 - '@algolia/cache-in-memory': 4.13.1 - '@algolia/client-account': 4.13.1 - '@algolia/client-analytics': 4.13.1 - '@algolia/client-common': 4.13.1 - '@algolia/client-personalization': 4.13.1 - '@algolia/client-search': 4.13.1 - '@algolia/logger-common': 4.13.1 - '@algolia/logger-console': 4.13.1 - '@algolia/requester-browser-xhr': 4.13.1 - '@algolia/requester-common': 4.13.1 - '@algolia/requester-node-http': 4.13.1 - '@algolia/transporter': 4.13.1 - dev: false + '@algolia/cache-browser-local-storage': 4.14.2 + '@algolia/cache-common': 4.14.2 + '@algolia/cache-in-memory': 4.14.2 + '@algolia/client-account': 4.14.2 + '@algolia/client-analytics': 4.14.2 + '@algolia/client-common': 4.14.2 + '@algolia/client-personalization': 4.14.2 + '@algolia/client-search': 4.14.2 + '@algolia/logger-common': 4.14.2 + '@algolia/logger-console': 4.14.2 + '@algolia/requester-browser-xhr': 4.14.2 + '@algolia/requester-common': 4.14.2 + '@algolia/requester-node-http': 4.14.2 + '@algolia/transporter': 4.14.2 + dev: true /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} @@ -464,19 +486,19 @@ packages: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} dev: false - /autoprefixer/10.4.7_postcss@8.4.14: - resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==} + /autoprefixer/10.4.12_postcss@8.4.18: + resolution: {integrity: sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.0 - caniuse-lite: 1.0.30001359 + browserslist: 4.21.4 + caniuse-lite: 1.0.30001419 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.14 + postcss: 8.4.18 postcss-value-parser: 4.2.0 dev: false @@ -485,13 +507,9 @@ packages: engines: {node: '>=8'} dev: false - /body-scroll-lock/3.1.5: - resolution: {integrity: sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg==} - dev: false - /body-scroll-lock/4.0.0-beta.0: resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} - dev: false + dev: true /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -500,24 +518,28 @@ packages: fill-range: 7.0.1 dev: false - /browserslist/4.21.0: - resolution: {integrity: sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==} + /browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001359 - electron-to-chromium: 1.4.169 - node-releases: 2.0.5 - update-browserslist-db: 1.0.4_browserslist@4.21.0 + caniuse-lite: 1.0.30001419 + electron-to-chromium: 1.4.283 + node-releases: 2.0.6 + update-browserslist-db: 1.0.10_browserslist@4.21.4 dev: false + /buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + /camelcase-css/2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} dev: false - /caniuse-lite/1.0.30001359: - resolution: {integrity: sha512-Xln/BAsPzEuiVLgJ2/45IaqD9jShtk3Y33anKb4+yLwQzws3+v6odKfpgES/cDEaZMLzSChpIGdbOYtH9MyuHw==} + /caniuse-lite/1.0.30001419: + resolution: {integrity: sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==} dev: false /chokidar/3.5.3: @@ -547,18 +569,22 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: false + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + /cssesc/3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true dev: false - /csstype/2.6.20: - resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} - dev: false + /csstype/2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + dev: true - /defined/1.0.0: - resolution: {integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=} + /defined/1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} dev: false /delegate/3.2.0: @@ -571,8 +597,8 @@ packages: hasBin: true dependencies: acorn-node: 1.8.2 - defined: 1.0.0 - minimist: 1.2.6 + defined: 1.0.1 + minimist: 1.2.7 dev: false /didyoumean/1.2.2: @@ -587,217 +613,219 @@ packages: resolution: {integrity: sha1-uQvcM2Bc7+ZSuEFucB95v27vzjI=} dev: false - /electron-to-chromium/1.4.169: - resolution: {integrity: sha512-Yb7UFva1sLlAaRyCkgoFF3qWvwZacFDtsGKi44rZsk8vnhL0DMhsUdhI4Dz9CCJQfftncDMGSI3AYiDtg8mD/w==} + /electron-to-chromium/1.4.283: + resolution: {integrity: sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==} dev: false - /esbuild-android-64/0.14.47: - resolution: {integrity: sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==} + /esbuild-android-64/0.15.11: + resolution: {integrity: sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-android-arm64/0.14.47: - resolution: {integrity: sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==} + /esbuild-android-arm64/0.15.11: + resolution: {integrity: sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-darwin-64/0.14.47: - resolution: {integrity: sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==} + /esbuild-darwin-64/0.15.11: + resolution: {integrity: sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-darwin-arm64/0.14.47: - resolution: {integrity: sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==} + /esbuild-darwin-arm64/0.15.11: + resolution: {integrity: sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-freebsd-64/0.14.47: - resolution: {integrity: sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==} + /esbuild-freebsd-64/0.15.11: + resolution: {integrity: sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-freebsd-arm64/0.14.47: - resolution: {integrity: sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==} + /esbuild-freebsd-arm64/0.15.11: + resolution: {integrity: sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-linux-32/0.14.47: - resolution: {integrity: sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==} + /esbuild-linux-32/0.15.11: + resolution: {integrity: sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-linux-64/0.14.47: - resolution: {integrity: sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==} + /esbuild-linux-64/0.15.11: + resolution: {integrity: sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-linux-arm/0.14.47: - resolution: {integrity: sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==} + /esbuild-linux-arm/0.15.11: + resolution: {integrity: sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-linux-arm64/0.14.47: - resolution: {integrity: sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==} + /esbuild-linux-arm64/0.15.11: + resolution: {integrity: sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-linux-mips64le/0.14.47: - resolution: {integrity: sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==} + /esbuild-linux-mips64le/0.15.11: + resolution: {integrity: sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-linux-ppc64le/0.14.47: - resolution: {integrity: sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==} + /esbuild-linux-ppc64le/0.15.11: + resolution: {integrity: sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-linux-riscv64/0.14.47: - resolution: {integrity: sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==} + /esbuild-linux-riscv64/0.15.11: + resolution: {integrity: sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-linux-s390x/0.14.47: - resolution: {integrity: sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==} + /esbuild-linux-s390x/0.15.11: + resolution: {integrity: sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-netbsd-64/0.14.47: - resolution: {integrity: sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==} + /esbuild-netbsd-64/0.15.11: + resolution: {integrity: sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-openbsd-64/0.14.47: - resolution: {integrity: sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==} + /esbuild-openbsd-64/0.15.11: + resolution: {integrity: sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-sunos-64/0.14.47: - resolution: {integrity: sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==} + /esbuild-sunos-64/0.15.11: + resolution: {integrity: sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-windows-32/0.14.47: - resolution: {integrity: sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==} + /esbuild-windows-32/0.15.11: + resolution: {integrity: sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-windows-64/0.14.47: - resolution: {integrity: sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==} + /esbuild-windows-64/0.15.11: + resolution: {integrity: sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true - dev: false + dev: true optional: true - /esbuild-windows-arm64/0.14.47: - resolution: {integrity: sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==} + /esbuild-windows-arm64/0.15.11: + resolution: {integrity: sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true - dev: false + dev: true optional: true - /esbuild/0.14.47: - resolution: {integrity: sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==} + /esbuild/0.15.11: + resolution: {integrity: sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.47 - esbuild-android-arm64: 0.14.47 - esbuild-darwin-64: 0.14.47 - esbuild-darwin-arm64: 0.14.47 - esbuild-freebsd-64: 0.14.47 - esbuild-freebsd-arm64: 0.14.47 - esbuild-linux-32: 0.14.47 - esbuild-linux-64: 0.14.47 - esbuild-linux-arm: 0.14.47 - esbuild-linux-arm64: 0.14.47 - esbuild-linux-mips64le: 0.14.47 - esbuild-linux-ppc64le: 0.14.47 - esbuild-linux-riscv64: 0.14.47 - esbuild-linux-s390x: 0.14.47 - esbuild-netbsd-64: 0.14.47 - esbuild-openbsd-64: 0.14.47 - esbuild-sunos-64: 0.14.47 - esbuild-windows-32: 0.14.47 - esbuild-windows-64: 0.14.47 - esbuild-windows-arm64: 0.14.47 - dev: false + '@esbuild/android-arm': 0.15.11 + '@esbuild/linux-loong64': 0.15.11 + esbuild-android-64: 0.15.11 + esbuild-android-arm64: 0.15.11 + esbuild-darwin-64: 0.15.11 + esbuild-darwin-arm64: 0.15.11 + esbuild-freebsd-64: 0.15.11 + esbuild-freebsd-arm64: 0.15.11 + esbuild-linux-32: 0.15.11 + esbuild-linux-64: 0.15.11 + esbuild-linux-arm: 0.15.11 + esbuild-linux-arm64: 0.15.11 + esbuild-linux-mips64le: 0.15.11 + esbuild-linux-ppc64le: 0.15.11 + esbuild-linux-riscv64: 0.15.11 + esbuild-linux-s390x: 0.15.11 + esbuild-netbsd-64: 0.15.11 + esbuild-openbsd-64: 0.15.11 + esbuild-sunos-64: 0.15.11 + esbuild-windows-32: 0.15.11 + esbuild-windows-64: 0.15.11 + esbuild-windows-arm64: 0.15.11 + dev: true /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -806,10 +834,10 @@ packages: /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: false + dev: true - /fast-glob/3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -841,12 +869,10 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: false optional: true /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: false /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -868,8 +894,8 @@ packages: delegate: 3.2.0 dev: false - /gsap/3.10.4: - resolution: {integrity: sha512-6QatdkKxXCMfvCW4rM++0RqyLQAzFX5nwl3yHS0XPgkZBkiSEY3VZVbMltrdtsbER/xZonLtyHt684wRp4erlQ==} + /gsap/3.11.3: + resolution: {integrity: sha512-xc/iIJy+LWiMbRa4IdMtdnnKa/7PXEK6NNzV71gdOYUVeTZN7UWnLU0fB7Hi1iwiz4ZZoYkBZPPYGg+2+zzFHA==} dev: false /has/1.0.3: @@ -877,7 +903,6 @@ packages: engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: false /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} @@ -886,11 +911,10 @@ packages: binary-extensions: 2.2.0 dev: false - /is-core-module/2.9.0: - resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} + /is-core-module/2.10.0: + resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: has: 1.0.3 - dev: false /is-extglob/2.1.1: resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} @@ -909,12 +933,12 @@ packages: engines: {node: '>=0.12.0'} dev: false - /jsonc-parser/3.0.0: - resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} - dev: false + /jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true - /lilconfig/2.0.5: - resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + /lilconfig/2.0.6: + resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} dev: false @@ -922,7 +946,7 @@ packages: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 - dev: false + dev: true /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -937,18 +961,17 @@ packages: picomatch: 2.3.1 dev: false - /minimist/1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} dev: false /nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: false - /node-releases/2.0.5: - resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==} + /node-releases/2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: false /normalize-path/3.0.0: @@ -961,10 +984,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /normalize.css/8.0.1: - resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==} - dev: false - /object-hash/3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} @@ -972,11 +991,9 @@ packages: /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: false /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: false /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -986,31 +1003,29 @@ packages: /pify/2.3.0: resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} engines: {node: '>=0.10.0'} - dev: false - /postcss-import/14.1.0_postcss@8.4.14: + /postcss-import/14.1.0_postcss@8.4.18: resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.14 + postcss: 8.4.18 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 - dev: false - /postcss-js/4.0.0_postcss@8.4.14: + /postcss-js/4.0.0_postcss@8.4.18: resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.3.3 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.14 + postcss: 8.4.18 dev: false - /postcss-load-config/3.1.4_postcss@8.4.14: + /postcss-load-config/3.1.4_postcss@8.4.18: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -1022,18 +1037,18 @@ packages: ts-node: optional: true dependencies: - lilconfig: 2.0.5 - postcss: 8.4.14 + lilconfig: 2.0.6 + postcss: 8.4.18 yaml: 1.10.2 dev: false - /postcss-nested/5.0.6_postcss@8.4.14: + /postcss-nested/5.0.6_postcss@8.4.18: resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.14 + postcss: 8.4.18 postcss-selector-parser: 6.0.10 dev: false @@ -1047,20 +1062,18 @@ packages: /postcss-value-parser/4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: false - /postcss/8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + /postcss/8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false - /preact/10.8.2: - resolution: {integrity: sha512-AKGt0BsDSiAYzVS78jZ9qRwuorY2CoSZtf1iOC6gLb/3QyZt+fLT09aYJBjRc/BEcRc4j+j3ggERMdNE43i1LQ==} - dev: false + /preact/10.11.2: + resolution: {integrity: sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==} + dev: true /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -1075,7 +1088,6 @@ packages: resolution: {integrity: sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=} dependencies: pify: 2.3.0 - dev: false /readdirp/3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} @@ -1088,23 +1100,22 @@ packages: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.9.0 + is-core-module: 2.10.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: false /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: false - /rollup/2.75.7: - resolution: {integrity: sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==} + /rollup/2.78.1: + resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: false + dev: true /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -1116,43 +1127,40 @@ packages: resolution: {integrity: sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=} dev: false - /shiki/0.10.1: - resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} + /shiki/0.11.1: + resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==} dependencies: - jsonc-parser: 3.0.0 + jsonc-parser: 3.2.0 vscode-oniguruma: 1.6.2 - vscode-textmate: 5.2.0 - dev: false - - /shiki/0.9.15: - resolution: {integrity: sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==} - dependencies: - jsonc-parser: 3.0.0 - vscode-oniguruma: 1.6.2 - vscode-textmate: 5.2.0 - dev: false + vscode-textmate: 6.0.0 + dev: true /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: false + + /source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - dev: false + dev: true /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: false + dev: true /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - dev: false - /tailwindcss/3.1.4: - resolution: {integrity: sha512-NrxbFV4tYsga/hpWbRyUfIaBrNMXDxx5BsHgBS4v5tlyjf+sDsgBg5m9OxjrXIqAS/uR9kicxLKP+bEHI7BSeQ==} + /tailwindcss/3.1.8: + resolution: {integrity: sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==} engines: {node: '>=12.13.0'} hasBin: true dependencies: @@ -1162,18 +1170,18 @@ packages: detective: 5.2.1 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.2.11 + fast-glob: 3.2.12 glob-parent: 6.0.2 is-glob: 4.0.3 - lilconfig: 2.0.5 + lilconfig: 2.0.6 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.14 - postcss-import: 14.1.0_postcss@8.4.14 - postcss-js: 4.0.0_postcss@8.4.14 - postcss-load-config: 3.1.4_postcss@8.4.14 - postcss-nested: 5.0.6_postcss@8.4.14 + postcss: 8.4.18 + postcss-import: 14.1.0_postcss@8.4.18 + postcss-js: 4.0.0_postcss@8.4.18 + postcss-load-config: 3.1.4_postcss@8.4.18 + postcss-nested: 5.0.6_postcss@8.4.18 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 quick-lru: 5.1.1 @@ -1182,6 +1190,17 @@ packages: - ts-node dev: false + /terser/5.15.1: + resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.2 + acorn: 8.8.0 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + /tiny-emitter/2.1.0: resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} dev: false @@ -1189,7 +1208,7 @@ packages: /to-fast-properties/2.0.0: resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} engines: {node: '>=4'} - dev: false + dev: true /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -1198,13 +1217,13 @@ packages: is-number: 7.0.0 dev: false - /update-browserslist-db/1.0.4_browserslist@4.21.0: - resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==} + /update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.0 + browserslist: 4.21.4 escalade: 3.1.1 picocolors: 1.0.0 dev: false @@ -1213,14 +1232,15 @@ packages: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} dev: false - /vite/2.9.12: - resolution: {integrity: sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew==} - engines: {node: '>=12.2.0'} + /vite/3.1.8_terser@5.15.1: + resolution: {integrity: sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==} + engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: less: '*' sass: '*' stylus: '*' + terser: ^5.4.0 peerDependenciesMeta: less: optional: true @@ -1228,30 +1248,33 @@ packages: optional: true stylus: optional: true + terser: + optional: true dependencies: - esbuild: 0.14.47 - postcss: 8.4.14 + esbuild: 0.15.11 + postcss: 8.4.18 resolve: 1.22.1 - rollup: 2.75.7 + rollup: 2.78.1 + terser: 5.15.1 optionalDependencies: fsevents: 2.3.2 - dev: false + dev: true - /vitepress/1.0.0-alpha.4: - resolution: {integrity: sha512-bOAA4KW6vYGlkbcrPLZLTKWTgXVroObU+o9xj9EENyEl6yg26WWvfN7DGA4BftjdM5O8nR93Z5khPQ3W/tFE7Q==} - engines: {node: '>=14.6.0'} + /vitepress/1.0.0-alpha.21_terser@5.15.1: + resolution: {integrity: sha512-D/tkoDW16uUZ9pnWd28Kk1vX26zNiTml3m9oGbfx2pAfYg99PHd1GceZyEm4jZsJU0+n9S++1ctFxoQvsq376A==} hasBin: true dependencies: - '@docsearch/css': 3.1.0 - '@docsearch/js': 3.1.0 - '@vitejs/plugin-vue': 2.3.3_vite@2.9.12+vue@3.2.37 - '@vue/devtools-api': 6.1.4 - '@vueuse/core': 8.7.5_vue@3.2.37 + '@docsearch/css': 3.2.1 + '@docsearch/js': 3.2.1 + '@vitejs/plugin-vue': 3.1.2_vite@3.1.8+vue@3.2.41 + '@vue/devtools-api': 6.4.4 + '@vueuse/core': 9.3.0_vue@3.2.41 body-scroll-lock: 4.0.0-beta.0 - shiki: 0.10.1 - vite: 2.9.12 - vue: 3.2.37 + shiki: 0.11.1 + vite: 3.1.8_terser@5.15.1 + vue: 3.2.41 transitivePeerDependencies: + - '@algolia/client-search' - '@types/react' - '@vue/composition-api' - less @@ -1259,18 +1282,19 @@ packages: - react-dom - sass - stylus - dev: false + - terser + dev: true /vscode-oniguruma/1.6.2: resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} - dev: false + dev: true - /vscode-textmate/5.2.0: - resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} - dev: false + /vscode-textmate/6.0.0: + resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==} + dev: true - /vue-demi/0.13.1_vue@3.2.37: - resolution: {integrity: sha512-xmkJ56koG3ptpLnpgmIzk9/4nFf4CqduSJbUM0OdPoU87NwRuZ6x49OLhjSa/fC15fV+5CbEnrxU4oyE022svg==} + /vue-demi/0.13.11_vue@3.2.41: + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -1281,18 +1305,18 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.37 - dev: false + vue: 3.2.41 + dev: true - /vue/3.2.37: - resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} + /vue/3.2.41: + resolution: {integrity: sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==} dependencies: - '@vue/compiler-dom': 3.2.37 - '@vue/compiler-sfc': 3.2.37 - '@vue/runtime-dom': 3.2.37 - '@vue/server-renderer': 3.2.37_vue@3.2.37 - '@vue/shared': 3.2.37 - dev: false + '@vue/compiler-dom': 3.2.41 + '@vue/compiler-sfc': 3.2.41 + '@vue/runtime-dom': 3.2.41 + '@vue/server-renderer': 3.2.41_vue@3.2.41 + '@vue/shared': 3.2.41 + dev: true /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} diff --git a/vendor/w7corp/easywechat/docs/src/3.x/notice.md b/vendor/w7corp/easywechat/docs/src/3.x/notice.md index 2ddfa1f6a..5b871efbb 100755 --- a/vendor/w7corp/easywechat/docs/src/3.x/notice.md +++ b/vendor/w7corp/easywechat/docs/src/3.x/notice.md @@ -15,12 +15,12 @@ $notice = $app->notice; ### API -+ `boolean setIndustry($industryId1, $industryId2)` 修改账号所属行业; -+ `array getIndustry()` 返回所有支持的行业列表,用于做下拉选择行业可视化更新; -+ `string addTemplate($shortId)` 添加模板并获取模板ID; -+ `collection send($message)` 发送模板消息, 返回消息ID; -+ `array getPrivateTemplates()` 获取所有模板列表; -+ `array deletePrivateTemplate($templateId)` 删除指定ID的模板。 +- `boolean setIndustry($industryId1, $industryId2)` 修改账号所属行业; +- `array getIndustry()` 返回所有支持的行业列表,用于做下拉选择行业可视化更新; +- `string addTemplate($shortId)` 添加模板并获取模板 ID; +- `collection send($message)` 发送模板消息, 返回消息 ID; +- `array getPrivateTemplates()` 获取所有模板列表; +- `array deletePrivateTemplate($templateId)` 删除指定 ID 的模板。 非链接调用方法: @@ -93,50 +93,48 @@ var_dump($result); // } ``` -结果: - -![notice-demo](http://7u2jwa.com1.z0.glb.clouddn.com/QQ20160111-0@2x.png) - ## 模板数据 为了方便大家开发,我们拓展支持以下格式的模板数据,其它格式的数据可能会导致接口调用失败: - 所有数据项颜色一样的(这是方便的一种方式): - ```php - $data = array( - "first" => "恭喜你购买成功!", - "keynote1" => "巧克力", - "keynote2" => "39.8元", - "keynote3" => "2014年9月16日", - "remark" => "欢迎再次购买!", - ); - ``` + ```php + $data = array( + "first" => "恭喜你购买成功!", + "keynote1" => "巧克力", + "keynote2" => "39.8元", + "keynote3" => "2014年9月16日", + "remark" => "欢迎再次购买!", + ); + ``` + 默认颜色为'#173177', 你可以通过 `defaultColor($color)` 来修改 - 独立设置每个模板项颜色的: - + 简便型: + - 简便型: - ```php - $data = array( - "first" => array("恭喜你购买成功!", '#555555'), - "keynote1" => array("巧克力", "#336699"), - "keynote2" => array("39.8元", "#FF0000"), - "keynote3" => array("2014年9月16日", "#888888"), - "remark" => array("欢迎再次购买!", "#5599FF"), - ); - ``` - + 复杂型(也是微信官方唯一支持的方式,估计没有人想这么用): + ```php + $data = array( + "first" => array("恭喜你购买成功!", '#555555'), + "keynote1" => array("巧克力", "#336699"), + "keynote2" => array("39.8元", "#FF0000"), + "keynote3" => array("2014年9月16日", "#888888"), + "remark" => array("欢迎再次购买!", "#5599FF"), + ); + ``` - ```php - $data = array( - "first" => array("value" => "恭喜你购买成功!", "color" => '#555555'), - "keynote1" => array("value" => "巧克力", "color" => "#336699"), - "keynote2" => array("value" => "39.8元","color" => "#FF0000"), - "keynote3" => array("value" => "2014年9月16日", "color" => "#888888"), - "remark" => array("value" => "欢迎再次购买!", "color" => "#5599FF"), - ); - ``` + - 复杂型(也是微信官方唯一支持的方式,估计没有人想这么用): + + ```php + $data = array( + "first" => array("value" => "恭喜你购买成功!", "color" => '#555555'), + "keynote1" => array("value" => "巧克力", "color" => "#336699"), + "keynote2" => array("value" => "39.8元","color" => "#FF0000"), + "keynote3" => array("value" => "2014年9月16日", "color" => "#888888"), + "remark" => array("value" => "欢迎再次购买!", "color" => "#5599FF"), + ); + ``` 关于模板消息的使用请参考 [微信官方文档](http://mp.weixin.qq.com/wiki/) diff --git a/vendor/w7corp/easywechat/docs/src/3.x/oauth.md b/vendor/w7corp/easywechat/docs/src/3.x/oauth.md index d724960fe..ce54379e7 100755 --- a/vendor/w7corp/easywechat/docs/src/3.x/oauth.md +++ b/vendor/w7corp/easywechat/docs/src/3.x/oauth.md @@ -1,9 +1,8 @@ # 网页授权 - ## 关于 OAuth2.0 -OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 +OAuth 是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是 2.0 版。 ``` @@ -26,6 +25,7 @@ OAuth是一个关于授权(authorization)的开放网络标准,在全世 +--------+ +---------------+ OAuth 授权流程 ``` + > 摘自:[RFC 6749](https://datatracker.ietf.org/doc/rfc6749/?include_text=1) 步骤解释: @@ -59,8 +59,8 @@ OAuth是一个关于授权(authorization)的开放网络标准,在全世 1. 用户尝试访问一个我们的业务页面,例如: `/user/profile` 2. 如果用户已经登录,则正常显示该页面 -2. 系统检查当前访问的用户并未登录(从 session 或者其它方式检查),则跳转到**跳转到微信授权服务器**(上面的两种中一种**授权 URL**),并告知微信授权服务器我的**回调URL(redirect_uri=callback.php)**,此时用户看到蓝色的授权确认页面(`scope` 为 `snsapi_base` 时不显示) -4. 用户点击确定完成授权,浏览器跳转到**回调URL**: `callback.php` 并带上 `code`: `?code=CODE&state=STATE`。 +3. 系统检查当前访问的用户并未登录(从 session 或者其它方式检查),则跳转到**跳转到微信授权服务器**(上面的两种中一种**授权 URL**),并告知微信授权服务器我的**回调 URL(redirect_uri=callback.php)**,此时用户看到蓝色的授权确认页面(`scope` 为 `snsapi_base` 时不显示) +4. 用户点击确定完成授权,浏览器跳转到**回调 URL**: `callback.php` 并带上 `code`: `?code=CODE&state=STATE`。 5. 在 `callback.php` 中得到 `code` 后,通过 `code` 再次向微信服务器请求得到 **网页授权 access_token** 与 `openid` 6. 你可以选择拿 `openid` 去请求 API 得到用户信息(可选) 7. 将用户信息写入 SESSION。 @@ -68,12 +68,12 @@ OAuth是一个关于授权(authorization)的开放网络标准,在全世 > 看懵了?没事,使用 SDK,你不用管这么多。:smile: > -> 注意,上面的第3步:redirect_uri=callback.php实际上我们会在 `callback.php` 后面还会带上授权目标页面 `user/profile`,所以完整的 `redirect_uri` 应该是下面的这样的PHP去拼出来:`'redirect_uri='.urlencode('callback.php?target=user/profile')` +> 注意,上面的第 3 步:redirect_uri=callback.php 实际上我们会在 `callback.php` 后面还会带上授权目标页面 `user/profile`,所以完整的 `redirect_uri` 应该是下面的这样的 PHP 去拼出来:`'redirect_uri='.urlencode('callback.php?target=user/profile')` > 结果:redirect_uri=callback.php%3Ftarget%3Duser%2Fprofile ## 逻辑组成 -从上面我们所描述的授权流程来看,我们至少有3个页面: +从上面我们所描述的授权流程来看,我们至少有 3 个页面: 1. **业务页面**,也就是需要授权才能访问的页面。 2. **发起授权页**,此页面其实可以省略,可以做成一个中间件,全局检查未登录就发起授权。 @@ -87,7 +87,7 @@ OAuth是一个关于授权(authorization)的开放网络标准,在全世 ## SDK 中 OAuth 模块的 API - 在 SDK 中,我们使用名称为 `oauth` 的模块来完成授权服务,我们主要用到以下两个 API: +在 SDK 中,我们使用名称为 `oauth` 的模块来完成授权服务,我们主要用到以下两个 API: ### 发起授权 @@ -96,7 +96,7 @@ $response = $app->oauth->scopes(['snsapi_userinfo']) ->redirect(); ``` -当你的应用是分布式架构且没有会话保持的情况下,你需要自行设置请求对象以实现会话共享。比如在 [Laravel](http://laravel.com) 框架中支持Session储存在Redis中,那么需要这样: +当你的应用是分布式架构且没有会话保持的情况下,你需要自行设置请求对象以实现会话共享。比如在 [Laravel](http://laravel.com) 框架中支持 Session 储存在 Redis 中,那么需要这样: ```php $response = $app->oauth->scopes(['snsapi_userinfo']) @@ -115,7 +115,7 @@ $response = $app->oauth->scopes(['snsapi_userinfo']) return $response; ``` -在有的框架 (比如yii2) 中是直接 `echo` 或者 `$this->display()` 这种的时候,你就直接: +在有的框架 (比如 yii2) 中是直接 `echo` 或者 `$this->display()` 这种的时候,你就直接: ```php $response->send(); // Laravel 里请使用:return $response; @@ -143,10 +143,10 @@ $user = $app->oauth->user(); ## 网页授权实例 -我们这里来用原生 PHP 写法举个例子,`oauth_callback` 是我们的授权回调URL (未urlencode编码的URL), `user/profile` 是我们需要授权才能访问的页面,它的 PHP 代码如下: +我们这里来用原生 PHP 写法举个例子,`oauth_callback` 是我们的授权回调 URL (未 urlencode 编码的 URL), `user/profile` 是我们需要授权才能访问的页面,它的 PHP 代码如下: ```php -// http://easywechat.org/user/profile +// http://easywechat.com/user/profile 'iPad mini 16G 白色', 'out_trade_no' => '1217752501201407033233368018',    'total_fee'       => 5388, // 单位:分 -    'notify_url'       => 'http://xxx.com/order-notify', // 支付结果通知网址,如果不设置则会使用配置里的默认地址 +    'notify_url'       => 'http://easywechat.com/order-notify', // 支付结果通知网址,如果不设置则会使用配置里的默认地址 'openid' => '当前用户的 openid', // trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识, // ... ]; @@ -76,7 +74,7 @@ $attributes = [ 'detail' => 'iPad mini 16G 白色', 'out_trade_no' => '1217752501201407033233368018', 'total_fee' => 5388, // 单位:分 - 'notify_url' => 'http://xxx.com/order-notify', // 支付结果通知网址,如果不设置则会使用配置里的默认地址 + 'notify_url' => 'http://easywechat.com/order-notify', // 支付结果通知网址,如果不设置则会使用配置里的默认地址    'sub_openid'        => '当前用户的 openid', // 如果传入sub_openid, 请在实例化Application时, 同时传入$sub_app_id, $sub_merchant_id    // ... ]; @@ -85,8 +83,7 @@ $order = new Order($attributes); ``` - -通知url必须为直接可访问的url,不能携带参数。示例:notify_url:“https://pay.weixin.qq.com/wxpay/pay.action” +通知 url 必须为直接可访问的 url,不能携带参数。示例:notify_url:“https://pay.weixin.qq.com/wxpay/pay.action” ## 下单接口 @@ -113,7 +110,7 @@ if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS'){ ## 支付结果通知 -在用户成功支付后,微信服务器会向该 **订单中设置的回调URL** 发起一个 POST 请求,请求的内容为一个 XML。里面包含了所有的详细信息,具体请参考: +在用户成功支付后,微信服务器会向该 **订单中设置的回调 URL** 发起一个 POST 请求,请求的内容为一个 XML。里面包含了所有的详细信息,具体请参考: [支付结果通用通知](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7) 在本 SDK 中处理回调真的再简单不过了,请求验证你就不用管了,SDK 已经为你做好了,你只需要关注业务即可: @@ -132,8 +129,8 @@ $response->send(); // Laravel 里请使用:return $response; 1. `handleNotify` 只接收一个 [`callable`](http://php.net/manual/zh/language.types.callable.php) 参数,通常用一个匿名函数即可。 2. 该匿名函数接收两个参数,这两个参数分别为: - - `$notify` 为封装了通知信息的 `EasyWeChat\Support\Collection` 对象,前面已经讲过这里就不赘述了,你可以以对象或者数组形式来读取通知内容,比如:`$notify->total_fee` 或者 `$notify['total_fee']`。 - - `$successful` 这个参数其实就是判断 **用户是否付款成功了**(result_code == 'SUCCESS') + - `$notify` 为封装了通知信息的 `EasyWeChat\Support\Collection` 对象,前面已经讲过这里就不赘述了,你可以以对象或者数组形式来读取通知内容,比如:`$notify->total_fee` 或者 `$notify['total_fee']`。 + - `$successful` 这个参数其实就是判断 **用户是否付款成功了**(result_code == 'SUCCESS') 3. 该函数返回值就是告诉微信 **“我是否处理完成”**,如果你返回一个 `false` 或者一个具体的错误消息,那么微信会在稍后再次继续通知你,直到你明确的告诉它:“我已经处理完成了”,在函数里 `return true;` 代表处理完成。 @@ -176,12 +173,11 @@ return $response; > 注意:请把 “支付成功与否” 与 “是否处理完成” 分开,它俩没有必然关系。 > 比如:微信通知你用户支付完成,但是支付失败了(result_code 为 'FAIL'),你应该**更新你的订单为支付失败**,但是要**告诉微信处理完成**。 - -## 撤销订单API +## 撤销订单 API 目前只有 **刷卡支付** 有此功能。 -> 调用支付接口后请勿立即调用撤销订单API,建议支付后至少15s后再调用撤销订单接口。 +> 调用支付接口后请勿立即调用撤销订单 API,建议支付后至少 15s 后再调用撤销订单接口。 ```php $orderNo = "商户系统内部的订单号(out_trade_no)"; @@ -196,17 +192,16 @@ $orderNo = "微信的订单号(transaction_id)"; $payment->reverseByTransactionId($orderNo); ``` - ## 查询订单 该接口提供所有微信支付订单的查询,商户可以通过该接口主动查询订单状态,完成下一步的业务逻辑。 需要调用查询接口的情况: - - 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知; - - 调用支付接口后,返回系统错误或未知交易状态情况; - - 调用被扫支付API,返回USERPAYING的状态; - - 调用关单或撤销接口API之前,需确认支付状态; +- 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知; +- 调用支付接口后,返回系统错误或未知交易状态情况; +- 调用被扫支付 API,返回 USERPAYING 的状态; +- 调用关单或撤销接口 API 之前,需确认支付状态; ```php $orderNo = "商户系统内部的订单号(out_trade_no)"; @@ -223,7 +218,7 @@ $payment->queryByTransactionId($orderNo); ## 关闭订单 -> 注意:订单生成后不能马上调用关单接口,最短调用时间间隔为5分钟。 +> 注意:订单生成后不能马上调用关单接口,最短调用时间间隔为 5 分钟。 ```php $orderNo = "商户系统内部的订单号(out_trade_no)"; @@ -273,7 +268,7 @@ $result = $payment->refundByTransactionId($transactionId, $refundNo, 100, 80, 19 ## 查询退款 -提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。 +提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款 20 分钟内到账,银行卡支付的退款 3 个工作日后重新查询退款状态。 ```php $result = $payment->queryRefund($outTradeNo); @@ -299,10 +294,10 @@ file_put_contents('YOUR/PATH/TO/bill-20140603.csv', $bill); 第二个参数为类型: - - **ALL**:返回当日所有订单信息(默认值) - - **SUCCESS**:返回当日成功支付的订单 - - **REFUND**:返回当日退款订单 - - **REVOKED**:已撤销的订单 +- **ALL**:返回当日所有订单信息(默认值) +- **SUCCESS**:返回当日成功支付的订单 +- **REFUND**:返回当日退款订单 +- **REVOKED**:已撤销的订单 ## 测速上报 @@ -320,10 +315,10 @@ $payment->report($api, $timeConsuming, $resultCode, $returnCode, [ ## 转换短链接 ```php -$shortUrl = $payment->urlShorten('http://easywechat.org'); +$shortUrl = $payment->urlShorten('http://easywechat.com'); ``` -## 授权码查询OPENID接口 +## 授权码查询 OPENID 接口 ```php $response = $payment->authCodeToOpenId($authCode); @@ -336,47 +331,47 @@ $response->openid; 1. WeixinJSBridge: - ```php - $json = $payment->configForPayment($prepayId); // 返回 json 字符串,如果想返回数组,传第二个参数 false - ``` + ```php + $json = $payment->configForPayment($prepayId); // 返回 json 字符串,如果想返回数组,传第二个参数 false + ``` - javascript: + javascript: - ```js - ... - WeixinJSBridge.invoke( - 'getBrandWCPayRequest', , - function(res){ - if(res.err_msg == "get_brand_wcpay_request:ok" ) { - // 使用以上方式判断前端返回,微信团队郑重提示: - // res.err_msg将在用户支付成功后返回 - // ok,但并不保证它绝对可靠。 - } - } - ); - ... - ``` + ```js + ... + WeixinJSBridge.invoke( + 'getBrandWCPayRequest', , + function(res){ + if(res.err_msg == "get_brand_wcpay_request:ok" ) { + // 使用以上方式判断前端返回,微信团队郑重提示: + // res.err_msg将在用户支付成功后返回 + // ok,但并不保证它绝对可靠。 + } + } + ); + ... + ``` 2. JSSDK: - ```php - $config = $payment->configForJSSDKPayment($prepayId); // 返回数组 - ``` + ```php + $config = $payment->configForJSSDKPayment($prepayId); // 返回数组 + ``` - javascript: + javascript: - ```js - wx.chooseWXPay({ - timestamp: , - nonceStr: '', - package: '', - signType: '', - paySign: '', // 支付签名 - success: function (res) { - // 支付成功后的回调函数 - } - }); - ``` + ```js + wx.chooseWXPay({ + timestamp: , + nonceStr: '', + package: '', + signType: '', + paySign: '', // 支付签名 + success: function (res) { + // 支付成功后的回调函数 + } + }); + ``` ## 生成共享收货地址 JS 配置 @@ -419,4 +414,3 @@ $config = $payment->configForAppPayment($prepayId); - https://github.com/Bacon/BaconQrCode - https://github.com/SimpleSoftwareIO/simple-qrcode (Bacon/BaconQrCode 的 Laravel 版本) - https://github.com/aferrandini/PHPQRCode - diff --git a/vendor/w7corp/easywechat/docs/src/3.x/poi.md b/vendor/w7corp/easywechat/docs/src/3.x/poi.md index 1e6bed091..fcb81f0a8 100644 --- a/vendor/w7corp/easywechat/docs/src/3.x/poi.md +++ b/vendor/w7corp/easywechat/docs/src/3.x/poi.md @@ -1,6 +1,5 @@ # 门店 - ## 获取实例 ```php @@ -43,8 +42,8 @@ $info = array( "longitude" => 115.32375, "latitude" => 25.097486, "photo_list" => array( - array("photo_url" => "https://XXX.com"), - array("photo_url" => "https://XXX.com"), + array("photo_url" => "https://easywechat.com"), + array("photo_url" => "https://easywechat.com"), ), "recommend" => "麦辣鸡腿堡套餐,麦乐鸡,全家桶", "special" => "免费 wifi,外卖服务", @@ -56,14 +55,15 @@ $info = array( $result = $poi->create($info); // true or exception ``` -> 注意:新创建的门店在审核通过后,会以事件形式推送给商户填写的回调URL +> 注意:新创建的门店在审核通过后,会以事件形式推送给商户填写的回调 URL ## 获取指定门店信息 ```php $poi->get($poiId); ``` -- `$poiId` 为门店ID + +- `$poiId` 为门店 ID example: @@ -117,7 +117,7 @@ $pois = $poi->lists(0, 2);// 取2条记录 $poi->update($poiId, $data); ``` -- `$poiId` 为门店ID +- `$poiId` 为门店 ID - `$data` 需要更新的部分数据,**若有填写内容则为覆盖更新,若无内容则视为不 修改,维持原有内容。photo_list 字段为全列表覆盖,若需要增加图片,需将之前图片同样放入 list 中,在其后增加新增图片。如:已有 A、B、C 三张图片,又要增加 D、E 两张图,则需要调 用该接口,photo_list 传入 A、B、C、D、E 五张图片的链接。** example: @@ -149,6 +149,6 @@ $poi->delete(271262077);// true or exception - `invalid categories` 分类不合法,必须严格按照附表的分类填写 - `invalid photo url` 图片 url 不合法,必须使用接口 1 的图片上传 接口所获取的 url - `poi audit state must be approved` 门店状态必须未审核通过 -- `invalid poiid` poi_id 不正确 -- `invalid args` 参数不正确,请检查 json 字段 -- `system error` 系统错误,请稍后重试 \ No newline at end of file +- `invalid poiid` poi_id 不正确 +- `invalid args` 参数不正确,请检查 json 字段 +- `system error` 系统错误,请稍后重试 diff --git a/vendor/w7corp/easywechat/docs/src/3.x/roadmap.md b/vendor/w7corp/easywechat/docs/src/3.x/roadmap.md index 46cde9e48..238dea5ec 100755 --- a/vendor/w7corp/easywechat/docs/src/3.x/roadmap.md +++ b/vendor/w7corp/easywechat/docs/src/3.x/roadmap.md @@ -1,6 +1,5 @@ # 路线图 - ## 3.1 - 微信小店 @@ -11,12 +10,12 @@ - 全新的架构,更清晰的模块拆分 - Debug 优化,便于快速定位问题 -- 统一返回微信API原值,以 Collection 类装载,便于便捷操作 +- 统一返回微信 API 原值,以 Collection 类装载,便于便捷操作 - 大量模块重写 - 全新的支付模块 - 多类型缓存系统 - 新的命名空间:EasyWeChat -- 专属网站与更清晰与文档:http://easywechat.org +- 专属网站与更清晰与文档:http://easywechat.com ## 2.1 diff --git a/vendor/w7corp/easywechat/docs/src/3.x/tutorial.md b/vendor/w7corp/easywechat/docs/src/3.x/tutorial.md index 0e5192df0..cca31c52e 100755 --- a/vendor/w7corp/easywechat/docs/src/3.x/tutorial.md +++ b/vendor/w7corp/easywechat/docs/src/3.x/tutorial.md @@ -1,7 +1,6 @@ # 快速开始 - -在我们已经安装完成后,即可很快的开始使用它了,当然你还是有必要明白PHP基本知识,如命名空间等,我这里就不赘述了。 +在我们已经安装完成后,即可很快的开始使用它了,当然你还是有必要明白 PHP 基本知识,如命名空间等,我这里就不赘述了。 我们以完成服务器端验证与接收响应用户发送的消息为例来演示,首先你有必要了解一下微信交互的运行流程: @@ -25,7 +24,7 @@ 考虑到这些,我已经把验证这一步给封装到 SDK 里了,你可以完全忽略这一步。 -下面我们来配置一个基本的服务端,这里假设我们自己的服务器域名叫 `easywechat.org`,我们在服务器上准备这么一个文件`server.php`: +下面我们来配置一个基本的服务端,这里假设我们自己的服务器域名叫 `easywechat.com`,我们在服务器上准备这么一个文件`server.php`: // server.php @@ -91,20 +90,17 @@ $response->send(); // Laravel 里请使用:return $response; 最后这一行我有必要详细讲一下: - ->1. 我们的 `$app->server->serve()` 就是执行服务端业务了,那么它的返回值呢,是一个 `Symfony\Component\HttpFoundation\Response` 实例。 ->2. 我这里是直接调用了它的 `send()` 方法,它就是直接输出了,我们在一些框架就不能直接输出了,那你就直接拿到 Response 实例后做相应的操作即可,比如 Laravel 里你就可以直接 `return $app->server->serve();` - +> 1. 我们的 `$app->server->serve()` 就是执行服务端业务了,那么它的返回值呢,是一个 `Symfony\Component\HttpFoundation\Response` 实例。 +> 2. 我这里是直接调用了它的 `send()` 方法,它就是直接输出了,我们在一些框架就不能直接输出了,那你就直接拿到 Response 实例后做相应的操作即可,比如 Laravel 里你就可以直接 `return $app->server->serve();` OK, 有了上面的代码,那么请你按 **[微信官方的接入指引](http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html)** 操作,并相应修改上面的 `$options` 的配置。 -> URL 就是我们的 `http://easywechat.org/server.php`,这里我是举例哦,你可不要填写我的域名。 +> URL 就是我们的 `http://easywechat.com/server.php`,这里我是举例哦,你可不要填写我的域名。 -这样,点击提交验证就OK了。 +这样,点击提交验证就 OK 了。 > :heart: 请一定要将微信后台的开发者模式 “**启用**” !!!!!!看到红色 “**停用**” 才真正的是启用了。 - ## 接收 & 回复用户消息 那服务端验证通过了,我们就来试一下接收消息吧。 @@ -137,42 +133,41 @@ $response->send(); // Laravel 里请使用:return $response; 1. 所有的服务都通过主入口 `EasyWeChat\Foundation\Application` 类来获取: - ```php - $app = new Application($options); +```php +$app = new Application($options); - // services... - $server = $app->server; - $user = $app->user; - $oauth = $app->oauth; +// services... +$server = $app->server; +$user = $app->user; +$oauth = $app->oauth; - // ... js/menu/staff/material/qrcode/notice/stats... +// ... js/menu/staff/material/qrcode/notice/stats... - ``` +``` 2. 所有的 API 返回值均为 [`EasyWeChat\Support\Collection`](https://github.com/EasyWeChat/support/blob/master/src/Collection.php) 类,这个类是个什么东西呢? - 它实现了一些 **[PHP预定义接口](http://php.net/manual/zh/reserved.interfaces.php)**,比如:[`ArrayAccess`](http://php.net/manual/zh/class.arrayaccess.php)、[`Serializable`](http://php.net/manual/zh/class.serializable.php) 等。 +它实现了一些 **[PHP 预定义接口](http://php.net/manual/zh/reserved.interfaces.php)**,比如:[`ArrayAccess`](http://php.net/manual/zh/class.arrayaccess.php)、[`Serializable`](http://php.net/manual/zh/class.serializable.php) 等。 - 有啥好处呢?它让我们操作起返回值来更方便,比如: +有啥好处呢?它让我们操作起返回值来更方便,比如: - ```php - $userService = $app->user; // 用户API +```php +$userService = $app->user; // 用户API - $user = $userService->get($openId); +$user = $userService->get($openId); - // $user 便是一个 EasyWeChat\Support\Collection 实例 - $user['nickname']; - $user->nickname; - $user->get('nickname'); +// $user 便是一个 EasyWeChat\Support\Collection 实例 +$user['nickname']; +$user->nickname; +$user->get('nickname'); - //... - ``` +//... +``` - 还有这些方便的操作:检查是否存在某个属性 `$user->has('email')`、元素个数 `$user->count()`,还有返回数组 `$user->toArray()` ,生成 JSON `$user->toJSON()` 等。 +还有这些方便的操作:检查是否存在某个属性 `$user->has('email')`、元素个数 `$user->count()`,还有返回数组 `$user->toArray()` ,生成 JSON `$user->toJSON()` 等。 +## 最后 - ## 最后 +希望你在使用本 SDK 的时候能忘记微信官方给你的痛苦,同时如果你发现 SDK 的不足,欢迎提交 PR 或者给我[提建议 & 报告问题](https://github.com/overtrue/wechat/issues)。 - 希望你在使用本 SDK 的时候能忘记微信官方给你的痛苦,同时如果你发现 SDK 的不足,欢迎提交 PR 或者给我[提建议 & 报告问题](https://github.com/overtrue/wechat/issues)。 - - 祝你生活愉快! +祝你生活愉快! diff --git a/vendor/w7corp/easywechat/docs/src/4.x/client.md b/vendor/w7corp/easywechat/docs/src/4.x/client.md new file mode 100644 index 000000000..8c486d0d5 --- /dev/null +++ b/vendor/w7corp/easywechat/docs/src/4.x/client.md @@ -0,0 +1,44 @@ +# API 调用 + +该方法将 API 交由开发者自行调用,微信有部分新的接口4.x并未全部兼容支持,可以使用该方案去自行封装接口: + +例如URL Link接口 +```php +$api = $app->getClient(); + +$response = $api->httpPostJson('wxa/generate_urllink',[ + 'path' => 'pages/index/index', + 'is_expire' => true, + 'expire_type' => 1, + 'expire_interval' => 1 +]); +``` + +## 语法说明 + +```php +httpGet(string $uri, array $query = []) +httpPostJson(string $uri, array $data = [], array $query = []) +``` + + + +### GET + +```php +$response = $api->httpGet('/cgi-bin/user/list', [ + 'next_openid' => 'OPENID1', +]); +``` + +### POST + +```php +$response = $api->httpPostJson('/cgi-bin/user/info/updateremark', [ + "openid" => "oDF3iY9ffA-hqb2vVvbr7qxf6A0Q", + "remark" => "pangzi" +]); +``` + + + diff --git a/vendor/w7corp/easywechat/docs/src/4.x/official-account/accounts.md b/vendor/w7corp/easywechat/docs/src/4.x/official-account/accounts.md index bdbd37eb5..c0f310457 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/official-account/accounts.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/official-account/accounts.md @@ -12,7 +12,7 @@ 在微信公众平台的设置中,您可以将您帐号中平台的 `url` 设置为 `您的网址/?id=xxx`,如: ``` -http://www.easywechat.com/wechat?id=1 +http://easywechat.com/wechat?id=1 ``` 而在程序入口处,根据 `id` 查找对应帐号的 `appid` 和 其它信息来创建配置数组创建实例即可。 diff --git a/vendor/w7corp/easywechat/docs/src/4.x/official-account/card.md b/vendor/w7corp/easywechat/docs/src/4.x/official-account/card.md index adaf3edc9..153a3c7d6 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/official-account/card.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/official-account/card.md @@ -37,7 +37,7 @@ $card->create($cardType = 'member_card', array $attributes); ```php [ @@ -109,7 +109,7 @@ $attributes = [ 'logo_url' => 'http://mmbiz.qpic.cn/mmbiz/2aJY6aCPatSeibYAyy7yct9zJXL9WsNVL4JdkTbBr184gNWS6nibcA75Hia9CqxicsqjYiaw2xuxYZiaibkmORS2oovdg/0', 'center_title' => '顶部居中按钮', 'center_sub_title' => '按钮下方的wording', - 'center_url' => 'http://www.easywechat.com', + 'center_url' => 'http://easywechat.com', 'custom_url_name' => '立即使用', 'custom_url' => 'http://www.qq.com', 'custom_url_sub_title' => '6个汉字tips', diff --git a/vendor/w7corp/easywechat/docs/src/4.x/official-account/material.md b/vendor/w7corp/easywechat/docs/src/4.x/official-account/material.md index 4ff1e2277..d25098a4c 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/official-account/material.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/official-account/material.md @@ -84,7 +84,7 @@ $result = $app->material->updateArticle($mediaId, [ 'show_cover' => 1, // 是否在文章内容显示封面图片 'digest' => '这里是文章摘要', 'content' => '这里是文章内容,你可以放很长的内容', - 'source_url' => 'https://www.easywechat.com', + 'source_url' => 'https://easywechat.com', ]); // 指定更新多图文中的第 2 篇 @@ -230,7 +230,7 @@ $stats = $app->material->stats(); // } ``` -### 删除永久素材; +### 删除永久素材 ```php $app->material->delete($mediaId); diff --git a/vendor/w7corp/easywechat/docs/src/4.x/official-account/oauth.md b/vendor/w7corp/easywechat/docs/src/4.x/official-account/oauth.md index 559ac6322..d8e235640 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/official-account/oauth.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/official-account/oauth.md @@ -133,7 +133,7 @@ $user = $app->oauth->user(); 我们这里来用原生 PHP 写法举个例子,`oauth_callback` 是我们的授权回调 URL (未 urlencode 编码的 URL), `user/profile` 是我们需要授权才能访问的页面,它的 PHP 代码如下: ```php -// http://easywechat.org/user/profile +// http://easywechat.com/user/profile 115.32375, "latitude" => 25.097486, "photo_list" => array( - array("photo_url" => "https://XXX.com"), - array("photo_url" => "https://XXX.com"), + array("photo_url" => "https://easywechat.com"), + array("photo_url" => "https://easywechat.com"), ), "recommend" => "麦辣鸡腿堡套餐,麦乐鸡,全家桶", "special" => "免费 wifi,外卖服务", diff --git a/vendor/w7corp/easywechat/docs/src/4.x/official-account/template_message.md b/vendor/w7corp/easywechat/docs/src/4.x/official-account/template_message.md index b48d94cf3..9f6d31a21 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/official-account/template_message.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/official-account/template_message.md @@ -40,7 +40,7 @@ $app->template_message->deletePrivateTemplate($templateId); $app->template_message->send([ 'touser' => 'user-openid', 'template_id' => 'template-id', - 'url' => 'https://easywechat.org', + 'url' => 'https://easywechat.com', 'miniprogram' => [ 'appid' => 'xxxxxxx', 'pagepath' => 'pages/xxx', @@ -52,6 +52,7 @@ $app->template_message->send([ ], ]); ``` + > 如果 url 和 miniprogram 字段都传,会优先跳转小程序。 ## 发送一次性订阅消息 @@ -60,7 +61,7 @@ $app->template_message->send([ $app->template_message->sendSubscription([ 'touser' => 'user-openid', 'template_id' => 'template-id', - 'url' => 'https://easywechat.org', + 'url' => 'https://easywechat.com', 'scene' => 1000, 'data' => [ 'key1' => 'VALUE', diff --git a/vendor/w7corp/easywechat/docs/src/4.x/overview.md b/vendor/w7corp/easywechat/docs/src/4.x/overview.md index 0454d8126..2b7b5a367 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/overview.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/overview.md @@ -28,7 +28,7 @@ EasyWeChat 的安装非常简单,因为它是一个标准的 [Composer](https: ### 开始之前 -我们提供了视频教程:https://www.easywechat.com/tutorials 当然,我还是建议你具备以下基础知识,否则可能没有那么快上手。 +我们提供了视频教程: 当然,我还是建议你具备以下基础知识,否则可能没有那么快上手。 本 SDK 不是一个全新再造的东西,所以我不会从 0 开始教会你开发微信,你完全有必要在使用本 SDK 前做好以下工作: @@ -43,8 +43,8 @@ EasyWeChat 的安装非常简单,因为它是一个标准的 [Composer](https: 另外你有必要看一下以下的链接: -> - https://learnku.com/laravel/t/535/assertion-people-who-do-not-understand-the-wisdom-of-asking-questions-will-not-graduate-from-junior-programmers -> - http://laravel-china.github.io/php-the-right-way/ +> - +> - 如果你在群里问以下类似的问题,这真的是你没有做好上面的工作: diff --git a/vendor/w7corp/easywechat/docs/src/4.x/payment/order.md b/vendor/w7corp/easywechat/docs/src/4.x/payment/order.md index 9997e4bc4..e5a7e8092 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/payment/order.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/payment/order.md @@ -57,7 +57,7 @@ $result = $app->order->unify([ 'plan_id' => 123,// 协议模板id 'contract_code' => 100001256,// 签约协议号 'contract_display_account' => '腾讯充值中心',// 签约用户的名称 - 'contract_notify_url' => 'http://easywechat.org/contract_notify' + 'contract_notify_url' => 'http://easywechat.com/contract_notify' ], $isContract); //$result: diff --git a/vendor/w7corp/easywechat/docs/src/4.x/payment/scan-pay.md b/vendor/w7corp/easywechat/docs/src/4.x/payment/scan-pay.md index e7b0b7d78..a035356af 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/payment/scan-pay.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/payment/scan-pay.md @@ -2,7 +2,7 @@ ### 模式一:先生成产品二维码,扫码下单后支付 -> 请务必先熟悉流程:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4 +> 请务必先熟悉流程: #### 生成产品二维码内容 @@ -14,13 +14,13 @@ $content = $app->scheme($productId); // $productId 为你的产品/商品ID, 将 `$content` 生成二维码,SDK 并不内置二维码生成库,使用你熟悉的工具创建二维码即可,比如 PHP 部分有以下工具可以选择: -> - https://github.com/endroid/qr-code -> - https://github.com/SimpleSoftwareIO/simple-qrcode -> - https://github.com/aferrandini/PHPQRCode +> - +> - +> - #### 处理回调 -当用户扫码时,你的回调接口会收到一个通知,调用[统一下单接口](https://www.easywechat.com/docs/master/zh-CN/payment/order)创建订单后返回 `prepay_id`,你可以使用下面的代码处理扫码通知: +当用户扫码时,你的回调接口会收到一个通知,调用[统一下单接口](https://easywechat.com/docs/master/zh-CN/payment/order)创建订单后返回 `prepay_id`,你可以使用下面的代码处理扫码通知: ```php // 扫码支付通知接收第三个参数 `$alert`,如果触发该函数,会返回“业务错误”到微信服务器,触发 `$fail` 则返回“通信错误” @@ -39,15 +39,15 @@ $response = $app->handleScannedNotify(function ($message, $fail, $alert) use ($a $response->send(); ``` -用户在手机上付完钱以后,你会再收到**付款结果通知**,这时候请参考:[处理微信支付通知](https://www.easywechat.com/docs/master/zh-CN/payment/notify) 更新您的订单状态。 +用户在手机上付完钱以后,你会再收到**付款结果通知**,这时候请参考:[处理微信支付通知](https://easywechat.com/docs/master/zh-CN/payment/notify) 更新您的订单状态。 ### 模式二:先下单,生成订单后创建二维码 -> :https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 +> : #### 根据用户选购的商品生成订单 -调用[统一下单接口](https://www.easywechat.com/docs/master/zh-CN/payment/order)创建订单: +调用[统一下单接口](https://easywechat.com/docs/master/zh-CN/payment/order)创建订单: ```php $result = $app->order->unify([ @@ -67,4 +67,4 @@ $result = $app->order->unify([ #### 支付通知 -这种方式的通知就只有**付款结果通知**了,这时候请参考:[处理微信支付通知](https://www.easywechat.com/docs/master/zh-CN/payment/notify) 更新您的订单状态。 +这种方式的通知就只有**付款结果通知**了,这时候请参考:[处理微信支付通知](https://easywechat.com/docs/master/zh-CN/payment/notify) 更新您的订单状态。 diff --git a/vendor/w7corp/easywechat/docs/src/4.x/sidebar.js b/vendor/w7corp/easywechat/docs/src/4.x/sidebar.js index c193ec941..f24d5f3f8 100644 --- a/vendor/w7corp/easywechat/docs/src/4.x/sidebar.js +++ b/vendor/w7corp/easywechat/docs/src/4.x/sidebar.js @@ -195,6 +195,13 @@ exports = module.exports = [ { text: '模块替换', link: '/4.x/customize/replace-service.html' } ] }, + { + text: '通用', + collapsible: true, + items: [ + { text: 'API 调用', link: '/4.x/client.html' } + ] + }, { text: '其他', collapsible: true, diff --git a/vendor/w7corp/easywechat/docs/src/4.x/wework/external-contact.md b/vendor/w7corp/easywechat/docs/src/4.x/wework/external-contact.md index d23196ade..4d7b8754b 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/wework/external-contact.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/wework/external-contact.md @@ -128,6 +128,57 @@ $configId = '42b34949e138eb6e027c123cba77fad7'; $app->contact_way->delete($configId); ``` +## 客户朋友圈 + +### 企业发表内容到客户的朋友圈 + +```php +$msg = [ + "text" => [ + "content" => "文本消息内容" + ], + "attachments" => [ + [ + "msgtype" => "image", + "image" => [ + "media_id" => "MEDIA_ID" + ] + ], + [ + "msgtype" => "video", + "video" => [ + "media_id" => "MEDIA_ID" + ] + ], + [ + "msgtype" => "link", + "link" => [ + "title" => "消息标题", + "url" => "https://example.link.com/path", + "media_id" => "MEDIA_ID" + ] + ] + ], + "visible_range" => [ + "sender_list" => [ + "user_list" => ["zhangshan","lisi"], + "department_list" => [2,3] + ], + "external_contact_list" => [ + "tag_list" => [ "etXXXXXXXXXX", "etYYYYYYYYYY"] + ] + ] +]; + +$app->external_contact_message->moments($msg); + +//{ +// "errcode":0, +// "errmsg":"ok", +// "jobid":"xxxx" +//} +``` + ## 消息管理 diff --git a/vendor/w7corp/easywechat/docs/src/4.x/wework/group-robot.md b/vendor/w7corp/easywechat/docs/src/4.x/wework/group-robot.md index 305d47291..6d18af0bb 100644 --- a/vendor/w7corp/easywechat/docs/src/4.x/wework/group-robot.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/wework/group-robot.md @@ -1,11 +1,12 @@ # 群机器人 ## 使用说明 + 使用前必须先在群组里面添加机器人,然后将 `Webhook 地址` 中的 `key` 取出来,作为示例中 `$groupKey` 的值。 -> Webhook 地址示例:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=`ab4f609a-3feb-427c-ae9d-b319ca712d36` +> Webhook 地址示例: -> 微信文档:https://work.weixin.qq.com/api/doc#90000/90136/91770 +> 微信文档: ## 发送文本类型消息 @@ -100,7 +101,7 @@ $items = [ new NewsItem([ 'title' => '中秋节礼品领取', 'description' => '今年中秋节公司有豪礼相送', - 'url' => 'https://www.easywechat.com', + 'url' => 'https://easywechat.com', 'image' => 'http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png', ]), diff --git a/vendor/w7corp/easywechat/docs/src/4.x/wework/media.md b/vendor/w7corp/easywechat/docs/src/4.x/wework/media.md index d115b6476..0d94643a4 100755 --- a/vendor/w7corp/easywechat/docs/src/4.x/wework/media.md +++ b/vendor/w7corp/easywechat/docs/src/4.x/wework/media.md @@ -41,4 +41,18 @@ $app->media->uploadFile($path); ```php $app->media->get($mediaId); +``` + +## 上传附件资源 + +所有文件size必须大于5个字节 + +目前 商品图册只支持图片类型; 朋友圈只支持图片、视频类型 + +> - 图片(image):10MB,支持JPG,PNG格式,朋友圈类型图片不超过1440 x 1080 +> - 视频(video) :10MB,支持MP4格式,朋友圈类型视频时长不超过30秒 +> - 文件(file) :10MB + +```php +$app->media->uploadAttachmentResources($path, 'image', 1); ``` \ No newline at end of file diff --git a/vendor/w7corp/easywechat/docs/src/5.x/official-account/accounts.md b/vendor/w7corp/easywechat/docs/src/5.x/official-account/accounts.md index bdbd37eb5..c0f310457 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/official-account/accounts.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/official-account/accounts.md @@ -12,7 +12,7 @@ 在微信公众平台的设置中,您可以将您帐号中平台的 `url` 设置为 `您的网址/?id=xxx`,如: ``` -http://www.easywechat.com/wechat?id=1 +http://easywechat.com/wechat?id=1 ``` 而在程序入口处,根据 `id` 查找对应帐号的 `appid` 和 其它信息来创建配置数组创建实例即可。 diff --git a/vendor/w7corp/easywechat/docs/src/5.x/official-account/card.md b/vendor/w7corp/easywechat/docs/src/5.x/official-account/card.md index adaf3edc9..153a3c7d6 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/official-account/card.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/official-account/card.md @@ -37,7 +37,7 @@ $card->create($cardType = 'member_card', array $attributes); ```php [ @@ -109,7 +109,7 @@ $attributes = [ 'logo_url' => 'http://mmbiz.qpic.cn/mmbiz/2aJY6aCPatSeibYAyy7yct9zJXL9WsNVL4JdkTbBr184gNWS6nibcA75Hia9CqxicsqjYiaw2xuxYZiaibkmORS2oovdg/0', 'center_title' => '顶部居中按钮', 'center_sub_title' => '按钮下方的wording', - 'center_url' => 'http://www.easywechat.com', + 'center_url' => 'http://easywechat.com', 'custom_url_name' => '立即使用', 'custom_url' => 'http://www.qq.com', 'custom_url_sub_title' => '6个汉字tips', diff --git a/vendor/w7corp/easywechat/docs/src/5.x/official-account/material.md b/vendor/w7corp/easywechat/docs/src/5.x/official-account/material.md index 4ff1e2277..d25098a4c 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/official-account/material.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/official-account/material.md @@ -84,7 +84,7 @@ $result = $app->material->updateArticle($mediaId, [ 'show_cover' => 1, // 是否在文章内容显示封面图片 'digest' => '这里是文章摘要', 'content' => '这里是文章内容,你可以放很长的内容', - 'source_url' => 'https://www.easywechat.com', + 'source_url' => 'https://easywechat.com', ]); // 指定更新多图文中的第 2 篇 @@ -230,7 +230,7 @@ $stats = $app->material->stats(); // } ``` -### 删除永久素材; +### 删除永久素材 ```php $app->material->delete($mediaId); diff --git a/vendor/w7corp/easywechat/docs/src/5.x/official-account/oauth.md b/vendor/w7corp/easywechat/docs/src/5.x/official-account/oauth.md index 66ff72eb9..f4a35b4a6 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/official-account/oauth.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/official-account/oauth.md @@ -127,7 +127,7 @@ $user = $app->oauth->userFromCode($code); 我们这里来用原生 PHP 写法举个例子,`oauth_callback` 是我们的授权回调 URL (未 urlencode 编码的 URL), `user/profile` 是我们需要授权才能访问的页面,它的 PHP 代码如下: ```php -// http://easywechat.org/user/profile +// http://easywechat.com/user/profile 115.32375, "latitude" => 25.097486, "photo_list" => array( - array("photo_url" => "https://XXX.com"), - array("photo_url" => "https://XXX.com"), + array("photo_url" => "https://easywechat.com"), + array("photo_url" => "https://easywechat.com"), ), "recommend" => "麦辣鸡腿堡套餐,麦乐鸡,全家桶", "special" => "免费 wifi,外卖服务", diff --git a/vendor/w7corp/easywechat/docs/src/5.x/official-account/template_message.md b/vendor/w7corp/easywechat/docs/src/5.x/official-account/template_message.md index b48d94cf3..9f6d31a21 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/official-account/template_message.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/official-account/template_message.md @@ -40,7 +40,7 @@ $app->template_message->deletePrivateTemplate($templateId); $app->template_message->send([ 'touser' => 'user-openid', 'template_id' => 'template-id', - 'url' => 'https://easywechat.org', + 'url' => 'https://easywechat.com', 'miniprogram' => [ 'appid' => 'xxxxxxx', 'pagepath' => 'pages/xxx', @@ -52,6 +52,7 @@ $app->template_message->send([ ], ]); ``` + > 如果 url 和 miniprogram 字段都传,会优先跳转小程序。 ## 发送一次性订阅消息 @@ -60,7 +61,7 @@ $app->template_message->send([ $app->template_message->sendSubscription([ 'touser' => 'user-openid', 'template_id' => 'template-id', - 'url' => 'https://easywechat.org', + 'url' => 'https://easywechat.com', 'scene' => 1000, 'data' => [ 'key1' => 'VALUE', diff --git a/vendor/w7corp/easywechat/docs/src/5.x/open-platform/authorizer-delegate.md b/vendor/w7corp/easywechat/docs/src/5.x/open-platform/authorizer-delegate.md index c145d4fbb..86ca4f461 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/open-platform/authorizer-delegate.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/open-platform/authorizer-delegate.md @@ -25,7 +25,7 @@ $miniProgram = $openPlatform->miniProgram(string $appId, string $refreshToken); > $appId 为授权方公众号 APPID,非开放平台第三方平台 APPID > -> $refreshToken 为授权方的 refresh_token,可通过 [获取授权方授权信息](https://www.easywechat.com/docs/master/open-platform/index#heading-h2-2) 接口获得。 +> $refreshToken 为授权方的 refresh_token,可通过 [获取授权方授权信息](https://easywechat.com/docs/master/open-platform/index#heading-h2-2) 接口获得。 ### 帮助授权方管理开放平台账号 @@ -51,11 +51,11 @@ $result = $account->getBinding(); > 授权第三方平台注册的开放平台帐号只可用于获取用户 unionid 实现用户身份打通。 > -> 第三方平台不可操作(包括绑定/解绑)通过 open.weixin.qq.com 线上流程注册的开放平台帐号。 +> 第三方平台不可操作(包括绑定/解绑)通过 open.weixin.qq.com 线上流程注册的开放平台帐号。 > -> 公众号只可将此权限集授权给一个第三方平台,授权互斥。 +> 公众号只可将此权限集授权给一个第三方平台,授权互斥。 -接下来的 API 调用等操作和公众号、小程序的开发一致,请移步到[公众号](https://www.easywechat.com/docs/master/official-account/index)或[小程序](https://www.easywechat.com/docs/master/mini-program/index)开发章节继续进行开发吧。 +接下来的 API 调用等操作和公众号、小程序的开发一致,请移步到[公众号](https://easywechat.com/docs/master/official-account/index)或[小程序](https://easywechat.com/docs/master/mini-program/index)开发章节继续进行开发吧。 ### 代码示例 diff --git a/vendor/w7corp/easywechat/docs/src/5.x/overview.md b/vendor/w7corp/easywechat/docs/src/5.x/overview.md index 90d0b69a4..a5abcbdc3 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/overview.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/overview.md @@ -28,7 +28,7 @@ EasyWeChat 的安装非常简单,因为它是一个标准的 [Composer](https: ### 开始之前 -我们提供了视频教程:https://www.easywechat.com/tutorials 当然,我还是建议你具备以下基础知识,否则可能没有那么快上手。 +我们提供了视频教程: 当然,我还是建议你具备以下基础知识,否则可能没有那么快上手。 本 SDK 不是一个全新再造的东西,所以我不会从 0 开始教会你开发微信,你完全有必要在使用本 SDK 前做好以下工作: @@ -43,8 +43,8 @@ EasyWeChat 的安装非常简单,因为它是一个标准的 [Composer](https: 另外你有必要看一下以下的链接: -> - https://learnku.com/laravel/t/535/assertion-people-who-do-not-understand-the-wisdom-of-asking-questions-will-not-graduate-from-junior-programmers -> - http://laravel-china.github.io/php-the-right-way/ +> - +> - 如果你在群里问以下类似的问题,这真的是你没有做好上面的工作: diff --git a/vendor/w7corp/easywechat/docs/src/5.x/payment/order.md b/vendor/w7corp/easywechat/docs/src/5.x/payment/order.md index 7516daab9..a55844c96 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/payment/order.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/payment/order.md @@ -53,7 +53,7 @@ $result = $app->order->unify([ 'plan_id' => 123,// 协议模板id 'contract_code' => 100001256,// 签约协议号 'contract_display_account' => '腾讯充值中心',// 签约用户的名称 - 'contract_notify_url' => 'http://easywechat.org/contract_notify' + 'contract_notify_url' => 'http://easywechat.com/contract_notify' ], $isContract); //$result: diff --git a/vendor/w7corp/easywechat/docs/src/5.x/payment/scan-pay.md b/vendor/w7corp/easywechat/docs/src/5.x/payment/scan-pay.md index f1642aec3..a6eac7bce 100755 --- a/vendor/w7corp/easywechat/docs/src/5.x/payment/scan-pay.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/payment/scan-pay.md @@ -2,7 +2,7 @@ ### 模式一:先生成产品二维码,扫码下单后支付 -> 请务必先熟悉流程:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4 +> 请务必先熟悉流程: #### 生成产品二维码内容 @@ -14,13 +14,13 @@ $content = $app->scheme($productId); // $productId 为你的产品/商品ID, 将 `$content` 生成二维码,SDK 并不内置二维码生成库,使用你熟悉的工具创建二维码即可,比如 PHP 部分有以下工具可以选择: -> - https://github.com/endroid/qr-code -> - https://github.com/SimpleSoftwareIO/simple-qrcode -> - https://github.com/aferrandini/PHPQRCode +> - +> - +> - #### 处理回调 -当用户扫码时,你的回调接口会收到一个通知,调用[统一下单接口](https://www.easywechat.com/5.x/payment/order)创建订单后返回 `prepay_id`,你可以使用下面的代码处理扫码通知: +当用户扫码时,你的回调接口会收到一个通知,调用[统一下单接口](https://easywechat.com/5.x/payment/order)创建订单后返回 `prepay_id`,你可以使用下面的代码处理扫码通知: ```php // 扫码支付通知接收第三个参数 `$alert`,如果触发该函数,会返回“业务错误”到微信服务器,触发 `$fail` 则返回“通信错误” @@ -39,15 +39,15 @@ $response = $app->handleScannedNotify(function ($message, $fail, $alert) use ($a $response->send(); ``` -用户在手机上付完钱以后,你会再收到**付款结果通知**,这时候请参考:[处理微信支付通知](https://www.easywechat.com/5.x/payment/notify) 更新您的订单状态。 +用户在手机上付完钱以后,你会再收到**付款结果通知**,这时候请参考:[处理微信支付通知](https://easywechat.com/5.x/payment/notify) 更新您的订单状态。 ### 模式二:先下单,生成订单后创建二维码 -> :https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 +> : #### 根据用户选购的商品生成订单 -调用[统一下单接口](https://www.easywechat.com/5.x/payment/order)创建订单: +调用[统一下单接口](https://easywechat.com/5.x/payment/order)创建订单: ```php $result = $app->order->unify([ @@ -67,4 +67,4 @@ $result = $app->order->unify([ #### 支付通知 -这种方式的通知就只有**付款结果通知**了,这时候请参考:[处理微信支付通知](https://www.easywechat.com/5.x/payment/notify) 更新您的订单状态。 +这种方式的通知就只有**付款结果通知**了,这时候请参考:[处理微信支付通知](https://easywechat.com/5.x/payment/notify) 更新您的订单状态。 diff --git a/vendor/w7corp/easywechat/docs/src/5.x/wework/group-robot.md b/vendor/w7corp/easywechat/docs/src/5.x/wework/group-robot.md index 305d47291..6d18af0bb 100644 --- a/vendor/w7corp/easywechat/docs/src/5.x/wework/group-robot.md +++ b/vendor/w7corp/easywechat/docs/src/5.x/wework/group-robot.md @@ -1,11 +1,12 @@ # 群机器人 ## 使用说明 + 使用前必须先在群组里面添加机器人,然后将 `Webhook 地址` 中的 `key` 取出来,作为示例中 `$groupKey` 的值。 -> Webhook 地址示例:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=`ab4f609a-3feb-427c-ae9d-b319ca712d36` +> Webhook 地址示例: -> 微信文档:https://work.weixin.qq.com/api/doc#90000/90136/91770 +> 微信文档: ## 发送文本类型消息 @@ -100,7 +101,7 @@ $items = [ new NewsItem([ 'title' => '中秋节礼品领取', 'description' => '今年中秋节公司有豪礼相送', - 'url' => 'https://www.easywechat.com', + 'url' => 'https://easywechat.com', 'image' => 'http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png', ]), diff --git a/vendor/w7corp/easywechat/docs/src/6.x/client.md b/vendor/w7corp/easywechat/docs/src/6.x/client.md index facdd002c..99e1b5e51 100644 --- a/vendor/w7corp/easywechat/docs/src/6.x/client.md +++ b/vendor/w7corp/easywechat/docs/src/6.x/client.md @@ -39,7 +39,7 @@ delete(string $uri, array $options = []): Symfony\Contracts\HttpClient\ResponseI ### GET ```php -$response = $api->get('/cgi-bin/user/list', [ +$response = $api->get('/cgi-bin/user/list', [ 'next_openid' => 'OPENID1', ]); ``` diff --git a/vendor/w7corp/easywechat/docs/src/6.x/index.md b/vendor/w7corp/easywechat/docs/src/6.x/index.md index 0f2e3fcb6..87db69a64 100755 --- a/vendor/w7corp/easywechat/docs/src/6.x/index.md +++ b/vendor/w7corp/easywechat/docs/src/6.x/index.md @@ -1,5 +1,6 @@ > 👋🏼 您当前浏览的文档为 6.x,其它版本的文档请参考:[5.x](/5.x/)、[4.x](/4.x/)、[3.x](/3.x/) + # EasyWeChat EasyWeChat 是一个开源的 [微信](http://www.wechat.com) 非官方 SDK。安装非常简单,因为它是一个标准的 [Composer](https://getcomposer.org/) 包,这意味着任何满足下列安装条件的 PHP 项目支持 Composer 都可以使用它。 @@ -14,6 +15,11 @@ EasyWeChat 是一个开源的 [微信](http://www.wechat.com) 非官方 SDK。 ## 安装 +::: warning +阿里云的 Composer 源已经停止维护,请停止使用,或更换官方源,或者[腾讯软件源](https://mirrors.tencent.com/help/composer.html) +::: + + ```shell composer require w7corp/easywechat:^6.7 ``` diff --git a/vendor/w7corp/easywechat/docs/src/6.x/mini-app/config.md b/vendor/w7corp/easywechat/docs/src/6.x/mini-app/config.md index 42a07c54b..0ad908651 100644 --- a/vendor/w7corp/easywechat/docs/src/6.x/mini-app/config.md +++ b/vendor/w7corp/easywechat/docs/src/6.x/mini-app/config.md @@ -14,6 +14,14 @@ 'token' => 'your-token', // Token 'aes_key' => '', // EncodingAESKey,兼容与安全模式下请一定要填写!!! + /** + * 是否使用 Stable Access Token + * 默认 false + * https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getStableAccessToken.html + * true 使用 false 不使用 + */ + 'use_stable_access_token' => false, + /** * 接口请求相关配置,超时时间等,具体可用参数请参考: * https://github.com/symfony/symfony/blob/5.3/src/Symfony/Contracts/HttpClient/HttpClientInterface.php diff --git a/vendor/w7corp/easywechat/docs/src/6.x/oauth.md b/vendor/w7corp/easywechat/docs/src/6.x/oauth.md index 207cf6767..420b287f9 100755 --- a/vendor/w7corp/easywechat/docs/src/6.x/oauth.md +++ b/vendor/w7corp/easywechat/docs/src/6.x/oauth.md @@ -27,12 +27,12 @@ OAuth 是一个关于授权(authorization)的开放网络标准,在全世 > - **公众平台网页授权获取用户信息** -**授权 URL**: `https://open.weixin.qq.com/connect/oauth2/authorize` +**授权 URL**: `https://open.weixin.qq.com/connect/oauth2/authorize` **Scopes**: `snsapi_base` 与 `snsapi_userinfo` > - **开放平台网页登录** -**授权 URL**: `https://open.weixin.qq.com/connect/qrconnect` +**授权 URL**: `https://open.weixin.qq.com/connect/qrconnect` **Scopes**: `snsapi_login` 他们的逻辑都一样: @@ -101,14 +101,14 @@ $user = $oauth->userFromCode($code); - `$user->getNickname(); ` 对应微信的 `nickname` - `$user->getName(); ` 对应微信的 `nickname` - `$user->getAvatar(); ` 头像地址 -- ~~`$user->getRaw(); ` 原始 API 返回的结果~~ +- `$user->getRaw(); ` 原始 API 返回的结果 - `$user->getAccessToken(); ` `access_token` - `$user->getRefreshToken(); ` `refresh_token` - `$user->getExpiresIn(); ` `expires_in`,Access Token 过期时间 - `$user->getTokenResponse(); ` 返回 `access_token` 时的响应值 > `$user` 里没有`openid`, `$user->id` 便是 `openid`. -> 如果你想拿微信返回给你的原样的全部信息,请使用:~~$user->getRaw();~~$user->getAttributes(); +> 如果你想拿微信返回给你的原样的全部信息,请使用:$user->getRaw(); 当 `scope` 为 `snsapi_base` 时 `$oauth->userFromCode($code);` 对象里只有 `id`,没有其它信息。 @@ -117,7 +117,7 @@ $user = $oauth->userFromCode($code); 我们这里来用公众号原生 PHP 写法举个例子,`oauth_callback` 是我们的授权回调 URL (未 urlencode 编码的 URL), `user/profile` 是我们需要授权才能访问的页面,它的 PHP 代码如下: ```php -// http://easywechat.org/user/profile +// http://easywechat.com/user/profile 'your-token', // Token 'aes_key' => '', // EncodingAESKey,兼容与安全模式下请一定要填写!!! + /** + * 是否使用 Stable Access Token + * 默认 false + * https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/getStableAccessToken.html + * true 使用 false 不使用 + */ + 'use_stable_access_token' => false, + /** * OAuth 配置 * diff --git a/vendor/w7corp/easywechat/docs/src/6.x/official-account/examples.md b/vendor/w7corp/easywechat/docs/src/6.x/official-account/examples.md index f6dea7c7f..2e470d257 100644 --- a/vendor/w7corp/easywechat/docs/src/6.x/official-account/examples.md +++ b/vendor/w7corp/easywechat/docs/src/6.x/official-account/examples.md @@ -2,6 +2,39 @@ > 👏🏻 欢迎点击本页下方 "帮助我们改善此页面!" 链接参与贡献更多的使用示例! +
    + webman 服务端验证消息 + +```php +get(), $request->post(), [], $request->cookie(), [], [], $request->rawBody()); + $symfony_request->headers = new HeaderBag($request->header()); + $app->setRequestFromSymfonyRequest($symfony_request); + $server = $app->getServer(); + $response = $server->serve(); + + return response($response->getBody()); + } +} +``` + +