Compare commits

...
32 Commits
Author SHA1 Message Date
Hide_D 6282445f7d feat: 토너먼트 베팅에서 모든 NPC가 10원씩 베팅함
- 추가로 베팅 공지
2021-11-16 23:12:32 +09:00
Hide_D bf244533f7 game: 국력, 랜임 계산식에서 유저장 전투력 계수를 NPC의 1.5로 설정 2021-11-16 22:40:47 +09:00
Hide_D 5ebfaf24ee feat: 토너먼트 비중을 강제로 조정 2021-11-16 22:18:29 +09:00
Hide_D 0c0283dc02 feat: '능동 행동 수' 유산 포인트 추가
- 거병, 건국, 방량, 선양, 모반
- 임관, 랜덤임관, 장수대상임관, 등용수락, 하야
- 출병(500명 이상, 훈사 7070 초과)
- 인재탐색 성공(난도에 따라 추가 보정)
- 첩보(예외, 0.5)
- 증축, 감축, 국기변경, 국호변경, 천도성공
2021-11-16 21:38:55 +09:00
Hide_D 375b08be87 feat: NPC정책 최대 포상량 지정 2021-11-16 20:45:16 +09:00
Hide_D cbc8f94b0a game: 국고가 2000 밑으로 가더라도 무조건 물자조달만 하지는 않게 수정정 2021-11-16 20:01:50 +09:00
Hide_D bdac8d163d game: 전특 요구 포인트 감소, 버프 요구 포인트 감소 2021-11-16 19:37:16 +09:00
Hide_D 1f61f37841 fix: 토큰 갱신 시 UserID가 잘못된 버그 수정정 2021-11-14 22:55:37 +09:00
Hide_D 51d523ae72 game: 국력 계산식에 랜덤임관 계산식 일부를 반영 2021-11-14 18:45:28 +09:00
Hide_D 3f9e4962e6 fix: 서버 정지로 의심되는 opcache_reset 해제
- 현재 validate timestamp를 켜서 사용하도록 유도
2021-11-14 13:31:30 +09:00
Hide_D f8fc4fe56b misc: 미활용 함수/상수 제거 2021-11-14 13:20:19 +09:00
Hide_D fb64b7e412 feat: NPC 거병, 이동 로직 대폭 개선
- 근처에 세울 도시를 보고 거병
- 원하는 도시를 정하고 그 도시를 향해 이동
2021-11-14 05:06:39 +09:00
Hide_D 3209cfbc45 fix: warning 제거거 2021-11-14 04:15:04 +09:00
Hide_D 8a99476136 game: 랜덤임관 평가 기준 변경
- 전투 기준을 총 전투 대신 대인 전투로
- 내정 능력에 무력, 지력 비율 반영영
2021-11-14 02:51:40 +09:00
Hide_D eb80f8d111 feat: 자율행동 표기를 휴식(자율행동)으로 변경 2021-11-14 02:47:53 +09:00
Hide_D afde3ce54d game: 랜덤임관 가중치 변경 2021-11-14 02:39:09 +09:00
Hide_D c4b61fec17 game: 작위 보상에도 최대 보유 유니크 수 적용 2021-11-14 00:50:09 +09:00
Hide_D 0b74abf300 game: 랜덤임관 로직에 전투력과 내정능력을 적극적으로 반영영 2021-11-14 00:46:46 +09:00
Hide_D e6c3c9f1d4 fix: 자율턴에서 '월' 표기 빠짐 2021-11-13 16:48:49 +09:00
Hide_D 4e7560b4ed feat: 자율행동 휴식을 명시적으로 자율행동으로 표기 2021-11-13 16:37:47 +09:00
Hide_D 542491b278 feat: 자율턴 한계 표기 2021-11-13 16:33:11 +09:00
Hide_D d36439355d fix: 자율행동턴 시간 제한이 동작하지 않던 버그 수정 2021-11-13 16:05:03 +09:00
Hide_D 4a80815b39 game: 기간별 최대 유니크 획득 수 변경경 2021-11-13 02:25:52 +09:00
Hide_D 6dc57f2566 fix: 자동로그인 과정 버그 수정정 2021-11-11 00:37:29 +09:00
Hide_D 07e8511ce1 game: snipe_combat 제거거 2021-11-08 23:31:56 +09:00
Hide_D 8e927831f5 fix: dummySession 인자 수정정 2021-11-08 23:27:37 +09:00
Hide_D 2c533d2ab3 dep: package update 2021-11-08 16:10:01 +09:00
Hide_D 38208750e7 game: 수비자는 전멸 시 증가하는 사기량을 50%만 적용 2021-11-08 15:20:23 +09:00
Hide_D df14d7c306 game: 반계 효과 유니크 시도 확률 반감 2021-11-08 15:16:15 +09:00
Hide_D b3612db7d2 game: 피장파장 턴을 60턴 기준으로 변경(72턴 동일) 2021-11-08 15:11:24 +09:00
Hide_D 8d90da659e game: 피장파장 딜레이를 최소 72턴으로로 2021-11-08 15:10:45 +09:00
Hide_D f8ddbc0622 game: 종횡가 전략 딜레이를 1/2에서 3/4으로로 2021-11-08 15:08:21 +09:00
833 changed files with 5154 additions and 21339 deletions
+1 -2
View File
@@ -8,7 +8,7 @@
], ],
"config": { "config": {
"platform": { "platform": {
"php": "7.4" "php": "8.0"
} }
}, },
"require": { "require": {
@@ -16,7 +16,6 @@
"sergeytsalkov/meekrodb": "^2.3", "sergeytsalkov/meekrodb": "^2.3",
"league/plates": "^3.3", "league/plates": "^3.3",
"guzzlehttp/guzzle": "^6.3", "guzzlehttp/guzzle": "^6.3",
"scssphp/scssphp": "^1.0",
"monolog/monolog": "^1.23", "monolog/monolog": "^1.23",
"firephp/firephp-core": "^0.4.0", "firephp/firephp-core": "^0.4.0",
"vlucas/valitron": "^1.4", "vlucas/valitron": "^1.4",
Generated
+214 -221
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "317938cff7b30806f4e385a70f4943fc", "content-hash": "94cfbcb22b9f475e421ad5009391006f",
"packages": [ "packages": [
{ {
"name": "brandonwamboldt/utilphp", "name": "brandonwamboldt/utilphp",
@@ -122,16 +122,16 @@
}, },
{ {
"name": "composer/semver", "name": "composer/semver",
"version": "3.2.5", "version": "3.2.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/semver.git", "url": "https://github.com/composer/semver.git",
"reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9" "reference": "83e511e247de329283478496f7a1e114c9517506"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9", "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506",
"reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9", "reference": "83e511e247de329283478496f7a1e114c9517506",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -183,7 +183,7 @@
"support": { "support": {
"irc": "irc://irc.freenode.org/composer", "irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/semver/issues", "issues": "https://github.com/composer/semver/issues",
"source": "https://github.com/composer/semver/tree/3.2.5" "source": "https://github.com/composer/semver/tree/3.2.6"
}, },
"funding": [ "funding": [
{ {
@@ -199,7 +199,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-05-24T12:41:47+00:00" "time": "2021-10-25T11:34:17+00:00"
}, },
{ {
"name": "composer/xdebug-handler", "name": "composer/xdebug-handler",
@@ -267,34 +267,30 @@
}, },
{ {
"name": "doctrine/inflector", "name": "doctrine/inflector",
"version": "2.0.3", "version": "2.0.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/inflector.git", "url": "https://github.com/doctrine/inflector.git",
"reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
"reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.2 || ^8.0" "php": "^7.2 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^7.0", "doctrine/coding-standard": "^8.2",
"phpstan/phpstan": "^0.11", "phpstan/phpstan": "^0.12",
"phpstan/phpstan-phpunit": "^0.11", "phpstan/phpstan-phpunit": "^0.12",
"phpstan/phpstan-strict-rules": "^0.11", "phpstan/phpstan-strict-rules": "^0.12",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
"vimeo/psalm": "^4.10"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector" "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
@@ -342,7 +338,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/inflector/issues", "issues": "https://github.com/doctrine/inflector/issues",
"source": "https://github.com/doctrine/inflector/tree/2.0.x" "source": "https://github.com/doctrine/inflector/tree/2.0.4"
}, },
"funding": [ "funding": [
{ {
@@ -358,7 +354,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2020-05-29T15:13:26+00:00" "time": "2021-10-22T20:16:43+00:00"
}, },
{ {
"name": "erusev/parsedown", "name": "erusev/parsedown",
@@ -674,16 +670,16 @@
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"version": "1.4.1", "version": "1.5.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
"reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -695,7 +691,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.4-dev" "dev-master": "1.5-dev"
} }
}, },
"autoload": { "autoload": {
@@ -711,10 +707,25 @@
"MIT" "MIT"
], ],
"authors": [ "authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{ {
"name": "Michael Dowling", "name": "Michael Dowling",
"email": "mtdowling@gmail.com", "email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling" "homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
} }
], ],
"description": "Guzzle promises library", "description": "Guzzle promises library",
@@ -723,22 +734,36 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/promises/issues", "issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/1.4.1" "source": "https://github.com/guzzle/promises/tree/1.5.1"
}, },
"time": "2021-03-07T09:25:29+00:00" "funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
"type": "tidelift"
}
],
"time": "2021-10-22T20:56:57+00:00"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "1.8.2", "version": "1.8.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "dc960a912984efb74d0a90222870c72c87f10c91" "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
"reference": "dc960a912984efb74d0a90222870c72c87f10c91", "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -775,13 +800,34 @@
"MIT" "MIT"
], ],
"authors": [ "authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{ {
"name": "Michael Dowling", "name": "Michael Dowling",
"email": "mtdowling@gmail.com", "email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling" "homepage": "https://github.com/mtdowling"
}, },
{
"name": "George Mponos",
"email": "gmponos@gmail.com",
"homepage": "https://github.com/gmponos"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://github.com/sagikazarmark"
},
{ {
"name": "Tobias Schultze", "name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion" "homepage": "https://github.com/Tobion"
} }
], ],
@@ -798,22 +844,36 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.8.2" "source": "https://github.com/guzzle/psr7/tree/1.8.3"
}, },
"time": "2021-04-26T09:17:50+00:00" "funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
"type": "tidelift"
}
],
"time": "2021-10-05T13:56:00+00:00"
}, },
{ {
"name": "illuminate/bus", "name": "illuminate/bus",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/bus.git", "url": "https://github.com/illuminate/bus.git",
"reference": "808097c0dfd893309bd77b00139586c516b965c9" "reference": "be400399687b97d5558a224e970060fd5d5f2735"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/bus/zipball/808097c0dfd893309bd77b00139586c516b965c9", "url": "https://api.github.com/repos/illuminate/bus/zipball/be400399687b97d5558a224e970060fd5d5f2735",
"reference": "808097c0dfd893309bd77b00139586c516b965c9", "reference": "be400399687b97d5558a224e970060fd5d5f2735",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -853,20 +913,20 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-08-10T16:49:48+00:00" "time": "2021-10-21T19:19:36+00:00"
}, },
{ {
"name": "illuminate/collections", "name": "illuminate/collections",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/collections.git", "url": "https://github.com/illuminate/collections.git",
"reference": "18fa841df912ec56849351dd6ca8928e8a98b69d" "reference": "05f286ec5fd2dd286e8384577047efc375c8954c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/collections/zipball/18fa841df912ec56849351dd6ca8928e8a98b69d", "url": "https://api.github.com/repos/illuminate/collections/zipball/05f286ec5fd2dd286e8384577047efc375c8954c",
"reference": "18fa841df912ec56849351dd6ca8928e8a98b69d", "reference": "05f286ec5fd2dd286e8384577047efc375c8954c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -907,20 +967,20 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-09-08T12:48:16+00:00" "time": "2021-10-22T18:01:46+00:00"
}, },
{ {
"name": "illuminate/container", "name": "illuminate/container",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/container.git", "url": "https://github.com/illuminate/container.git",
"reference": "862b64ea4ab56e307a1676104a1b93295d347ad0" "reference": "ef73feb5216ef97ab7023cf59c0c8dbbd5505a9d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/container/zipball/862b64ea4ab56e307a1676104a1b93295d347ad0", "url": "https://api.github.com/repos/illuminate/container/zipball/ef73feb5216ef97ab7023cf59c0c8dbbd5505a9d",
"reference": "862b64ea4ab56e307a1676104a1b93295d347ad0", "reference": "ef73feb5216ef97ab7023cf59c0c8dbbd5505a9d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -958,20 +1018,20 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-09-09T13:55:23+00:00" "time": "2021-09-15T14:32:50+00:00"
}, },
{ {
"name": "illuminate/contracts", "name": "illuminate/contracts",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/contracts.git", "url": "https://github.com/illuminate/contracts.git",
"reference": "ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913" "reference": "e76f4bce73a2a1656add24bd5210ebc4b8af49c0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913", "url": "https://api.github.com/repos/illuminate/contracts/zipball/e76f4bce73a2a1656add24bd5210ebc4b8af49c0",
"reference": "ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913", "reference": "e76f4bce73a2a1656add24bd5210ebc4b8af49c0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1006,20 +1066,20 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-09-08T12:09:40+00:00" "time": "2021-10-22T18:01:46+00:00"
}, },
{ {
"name": "illuminate/database", "name": "illuminate/database",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/database.git", "url": "https://github.com/illuminate/database.git",
"reference": "acc11d6839ddb3b694bc6585177fa5141b70c693" "reference": "43c7ffb6299ae55b000b286cf1278afd268ef29f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/database/zipball/acc11d6839ddb3b694bc6585177fa5141b70c693", "url": "https://api.github.com/repos/illuminate/database/zipball/43c7ffb6299ae55b000b286cf1278afd268ef29f",
"reference": "acc11d6839ddb3b694bc6585177fa5141b70c693", "reference": "43c7ffb6299ae55b000b286cf1278afd268ef29f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1033,7 +1093,7 @@
"symfony/console": "^5.1.4" "symfony/console": "^5.1.4"
}, },
"suggest": { "suggest": {
"doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.2).",
"fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
"illuminate/console": "Required to use the database commands (^8.0).", "illuminate/console": "Required to use the database commands (^8.0).",
"illuminate/events": "Required to use the observers with Eloquent (^8.0).", "illuminate/events": "Required to use the observers with Eloquent (^8.0).",
@@ -1074,20 +1134,20 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-09-13T18:43:43+00:00" "time": "2021-10-29T19:46:53+00:00"
}, },
{ {
"name": "illuminate/events", "name": "illuminate/events",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/events.git", "url": "https://github.com/illuminate/events.git",
"reference": "7def78033f29cd0c0383513b27c291d233a7f90e" "reference": "b7f06cafb6c09581617f2ca05d69e9b159e5a35d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/events/zipball/7def78033f29cd0c0383513b27c291d233a7f90e", "url": "https://api.github.com/repos/illuminate/events/zipball/b7f06cafb6c09581617f2ca05d69e9b159e5a35d",
"reference": "7def78033f29cd0c0383513b27c291d233a7f90e", "reference": "b7f06cafb6c09581617f2ca05d69e9b159e5a35d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1129,11 +1189,11 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-08-16T21:45:47+00:00" "time": "2021-09-15T14:32:50+00:00"
}, },
{ {
"name": "illuminate/macroable", "name": "illuminate/macroable",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/macroable.git", "url": "https://github.com/illuminate/macroable.git",
@@ -1179,7 +1239,7 @@
}, },
{ {
"name": "illuminate/pipeline", "name": "illuminate/pipeline",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/pipeline.git", "url": "https://github.com/illuminate/pipeline.git",
@@ -1227,16 +1287,16 @@
}, },
{ {
"name": "illuminate/support", "name": "illuminate/support",
"version": "v8.61.0", "version": "v8.69.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/support.git", "url": "https://github.com/illuminate/support.git",
"reference": "b0a21c41163381dd9a5abbd68fe85ed7b4247d30" "reference": "a8851b7001530d3c11626a81449ed9b63dd10db7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/support/zipball/b0a21c41163381dd9a5abbd68fe85ed7b4247d30", "url": "https://api.github.com/repos/illuminate/support/zipball/a8851b7001530d3c11626a81449ed9b63dd10db7",
"reference": "b0a21c41163381dd9a5abbd68fe85ed7b4247d30", "reference": "a8851b7001530d3c11626a81449ed9b63dd10db7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1246,7 +1306,7 @@
"illuminate/collections": "^8.0", "illuminate/collections": "^8.0",
"illuminate/contracts": "^8.0", "illuminate/contracts": "^8.0",
"illuminate/macroable": "^8.0", "illuminate/macroable": "^8.0",
"nesbot/carbon": "^2.31", "nesbot/carbon": "^2.53.1",
"php": "^7.3|^8.0", "php": "^7.3|^8.0",
"voku/portable-ascii": "^1.4.8" "voku/portable-ascii": "^1.4.8"
}, },
@@ -1255,8 +1315,8 @@
}, },
"suggest": { "suggest": {
"illuminate/filesystem": "Required to use the composer class (^8.0).", "illuminate/filesystem": "Required to use the composer class (^8.0).",
"league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^1.3|^2.0).", "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^1.3|^2.0.2).",
"ramsey/uuid": "Required to use Str::uuid() (^4.0).", "ramsey/uuid": "Required to use Str::uuid() (^4.2.2).",
"symfony/process": "Required to use the composer class (^5.1.4).", "symfony/process": "Required to use the composer class (^5.1.4).",
"symfony/var-dumper": "Required to use the dd function (^5.1.4).", "symfony/var-dumper": "Required to use the dd function (^5.1.4).",
"vlucas/phpdotenv": "Required to use the Env class and env helper (^5.2)." "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.2)."
@@ -1291,7 +1351,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2021-09-13T18:43:43+00:00" "time": "2021-10-29T13:34:03+00:00"
}, },
{ {
"name": "league/plates", "name": "league/plates",
@@ -1490,16 +1550,16 @@
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "2.53.1", "version": "2.54.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/briannesbitt/Carbon.git", "url": "https://github.com/briannesbitt/Carbon.git",
"reference": "f4655858a784988f880c1b8c7feabbf02dfdf045" "reference": "eed83939f1aed3eee517d03a33f5ec587ac529b5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f4655858a784988f880c1b8c7feabbf02dfdf045", "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/eed83939f1aed3eee517d03a33f5ec587ac529b5",
"reference": "f4655858a784988f880c1b8c7feabbf02dfdf045", "reference": "eed83939f1aed3eee517d03a33f5ec587ac529b5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1510,6 +1570,7 @@
"symfony/translation": "^3.4 || ^4.0 || ^5.0" "symfony/translation": "^3.4 || ^4.0 || ^5.0"
}, },
"require-dev": { "require-dev": {
"doctrine/dbal": "^2.0 || ^3.0",
"doctrine/orm": "^2.7", "doctrine/orm": "^2.7",
"friendsofphp/php-cs-fixer": "^3.0", "friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0", "kylekatarnls/multi-tester": "^2.0",
@@ -1580,7 +1641,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-09-06T09:29:23+00:00" "time": "2021-11-01T21:22:20+00:00"
}, },
{ {
"name": "netresearch/jsonmapper", "name": "netresearch/jsonmapper",
@@ -1773,20 +1834,20 @@
}, },
{ {
"name": "nette/utils", "name": "nette/utils",
"version": "v3.2.2", "version": "v3.2.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/utils.git", "url": "https://github.com/nette/utils.git",
"reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c" "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nette/utils/zipball/967cfc4f9a1acd5f1058d76715a424c53343c20c", "url": "https://api.github.com/repos/nette/utils/zipball/9cd80396ca58d7969ab44fc7afcf03624dfa526e",
"reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c", "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2 <8.1" "php": ">=7.2 <8.2"
}, },
"conflict": { "conflict": {
"nette/di": "<3.0.6" "nette/di": "<3.0.6"
@@ -1852,9 +1913,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nette/utils/issues", "issues": "https://github.com/nette/utils/issues",
"source": "https://github.com/nette/utils/tree/v3.2.2" "source": "https://github.com/nette/utils/tree/v3.2.5"
}, },
"time": "2021-03-03T22:53:25+00:00" "time": "2021-09-20T10:50:11+00:00"
}, },
{ {
"name": "pguardiario/phpuri", "name": "pguardiario/phpuri",
@@ -2110,16 +2171,16 @@
}, },
{ {
"name": "phpdocumentor/reflection-docblock", "name": "phpdocumentor/reflection-docblock",
"version": "5.2.2", "version": "5.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2130,7 +2191,8 @@
"webmozart/assert": "^1.9.1" "webmozart/assert": "^1.9.1"
}, },
"require-dev": { "require-dev": {
"mockery/mockery": "~1.3.2" "mockery/mockery": "~1.3.2",
"psalm/phar": "^4.8"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -2160,22 +2222,22 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
}, },
"time": "2020-09-03T19:13:55+00:00" "time": "2021-10-19T17:43:47+00:00"
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "1.4.0", "version": "1.5.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae",
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2183,7 +2245,8 @@
"phpdocumentor/reflection-common": "^2.0" "phpdocumentor/reflection-common": "^2.0"
}, },
"require-dev": { "require-dev": {
"ext-tokenizer": "*" "ext-tokenizer": "*",
"psalm/phar": "^4.8"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -2209,26 +2272,26 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues", "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1"
}, },
"time": "2020-09-17T18:55:26+00:00" "time": "2021-10-02T14:08:47+00:00"
}, },
{ {
"name": "psr/container", "name": "psr/container",
"version": "1.1.1", "version": "1.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/container.git", "url": "https://github.com/php-fig/container.git",
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2.0" "php": ">=7.4.0"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@@ -2257,9 +2320,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/php-fig/container/issues", "issues": "https://github.com/php-fig/container/issues",
"source": "https://github.com/php-fig/container/tree/1.1.1" "source": "https://github.com/php-fig/container/tree/1.1.2"
}, },
"time": "2021-03-05T17:36:06+00:00" "time": "2021-11-05T16:50:12+00:00"
}, },
{ {
"name": "psr/http-message", "name": "psr/http-message",
@@ -2461,23 +2524,23 @@
}, },
{ {
"name": "sabre/event", "name": "sabre/event",
"version": "5.1.2", "version": "5.1.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sabre-io/event.git", "url": "https://github.com/sabre-io/event.git",
"reference": "c120bec57c17b6251a496efc82b732418b49d50a" "reference": "d7da22897125d34d7eddf7977758191c06a74497"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sabre-io/event/zipball/c120bec57c17b6251a496efc82b732418b49d50a", "url": "https://api.github.com/repos/sabre-io/event/zipball/d7da22897125d34d7eddf7977758191c06a74497",
"reference": "c120bec57c17b6251a496efc82b732418b49d50a", "reference": "d7da22897125d34d7eddf7977758191c06a74497",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1 || ^8.0" "php": "^7.1 || ^8.0"
}, },
"require-dev": { "require-dev": {
"friendsofphp/php-cs-fixer": "~2.16.1", "friendsofphp/php-cs-fixer": "~2.17.1",
"phpstan/phpstan": "^0.12", "phpstan/phpstan": "^0.12",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.0" "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
}, },
@@ -2523,80 +2586,7 @@
"issues": "https://github.com/sabre-io/event/issues", "issues": "https://github.com/sabre-io/event/issues",
"source": "https://github.com/fruux/sabre-event" "source": "https://github.com/fruux/sabre-event"
}, },
"time": "2020-10-03T11:02:22+00:00" "time": "2021-11-04T06:51:17+00:00"
},
{
"name": "scssphp/scssphp",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/scssphp/scssphp.git",
"reference": "b83594e2323c5d6e80785df3f91b9d1d32aad530"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/scssphp/scssphp/zipball/b83594e2323c5d6e80785df3f91b9d1d32aad530",
"reference": "b83594e2323c5d6e80785df3f91b9d1d32aad530",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-json": "*",
"php": ">=5.6.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.4",
"phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3 || ^9.4",
"sass/sass-spec": "*",
"squizlabs/php_codesniffer": "~3.5",
"symfony/phpunit-bridge": "^5.1",
"twbs/bootstrap": "~5.0",
"twbs/bootstrap4": "4.6.0",
"zurb/foundation": "~6.5"
},
"suggest": {
"ext-iconv": "Can be used as fallback when ext-mbstring is not available",
"ext-mbstring": "For best performance, mbstring should be installed as it is faster than ext-iconv"
},
"bin": [
"bin/pscss"
],
"type": "library",
"autoload": {
"psr-4": {
"ScssPhp\\ScssPhp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Anthon Pang",
"email": "apang@softwaredevelopment.ca",
"homepage": "https://github.com/robocoder"
},
{
"name": "Cédric Morin",
"email": "cedric@yterium.com",
"homepage": "https://github.com/Cerdic"
}
],
"description": "scssphp is a compiler for SCSS written in PHP.",
"homepage": "http://scssphp.github.io/scssphp/",
"keywords": [
"css",
"less",
"sass",
"scss",
"stylesheet"
],
"support": {
"issues": "https://github.com/scssphp/scssphp/issues",
"source": "https://github.com/scssphp/scssphp/tree/v1.6.0"
},
"time": "2021-07-02T16:28:10+00:00"
}, },
{ {
"name": "sergeytsalkov/meekrodb", "name": "sergeytsalkov/meekrodb",
@@ -2648,16 +2638,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v5.3.6", "version": "v5.3.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "51b71afd6d2dc8f5063199357b9880cea8d8bfe2" "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/51b71afd6d2dc8f5063199357b9880cea8d8bfe2", "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
"reference": "51b71afd6d2dc8f5063199357b9880cea8d8bfe2", "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2727,7 +2717,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v5.3.6" "source": "https://github.com/symfony/console/tree/v5.3.10"
}, },
"funding": [ "funding": [
{ {
@@ -2743,7 +2733,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-07-27T19:10:22+00:00" "time": "2021-10-26T09:30:15+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@@ -2814,16 +2804,16 @@
}, },
{ {
"name": "symfony/lock", "name": "symfony/lock",
"version": "v4.4.27", "version": "v4.4.33",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/lock.git", "url": "https://github.com/symfony/lock.git",
"reference": "6ca476d4ac992802f2a4043929f68f1818449486" "reference": "567d29b1bc6e3937652054dafc069151d17824a9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/lock/zipball/6ca476d4ac992802f2a4043929f68f1818449486", "url": "https://api.github.com/repos/symfony/lock/zipball/567d29b1bc6e3937652054dafc069151d17824a9",
"reference": "6ca476d4ac992802f2a4043929f68f1818449486", "reference": "567d29b1bc6e3937652054dafc069151d17824a9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2872,7 +2862,7 @@
"semaphore" "semaphore"
], ],
"support": { "support": {
"source": "https://github.com/symfony/lock/tree/v4.4.27" "source": "https://github.com/symfony/lock/tree/v4.4.33"
}, },
"funding": [ "funding": [
{ {
@@ -2888,7 +2878,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-07-23T15:41:52+00:00" "time": "2021-10-05T20:27:01+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@@ -3620,16 +3610,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v5.3.3", "version": "v5.3.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1" "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1", "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
"reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1", "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3683,7 +3673,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v5.3.3" "source": "https://github.com/symfony/string/tree/v5.3.10"
}, },
"funding": [ "funding": [
{ {
@@ -3699,20 +3689,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-06-27T11:44:38+00:00" "time": "2021-10-27T18:21:46+00:00"
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v5.3.7", "version": "v5.3.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "4d595a6d15fd3a2c67f6f31d14d15d3b7356d7a6" "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/4d595a6d15fd3a2c67f6f31d14d15d3b7356d7a6", "url": "https://api.github.com/repos/symfony/translation/zipball/6ef197aea2ac8b9cd63e0da7522b3771714035aa",
"reference": "4d595a6d15fd3a2c67f6f31d14d15d3b7356d7a6", "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3778,7 +3768,7 @@
"description": "Provides tools to internationalize your application", "description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/translation/tree/v5.3.7" "source": "https://github.com/symfony/translation/tree/v5.3.10"
}, },
"funding": [ "funding": [
{ {
@@ -3794,7 +3784,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-08-26T08:22:53+00:00" "time": "2021-10-10T06:43:24+00:00"
}, },
{ {
"name": "symfony/translation-contracts", "name": "symfony/translation-contracts",
@@ -3876,16 +3866,16 @@
}, },
{ {
"name": "tysonandre/var_representation_polyfill", "name": "tysonandre/var_representation_polyfill",
"version": "0.0.2", "version": "0.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/TysonAndre/var_representation_polyfill.git", "url": "https://github.com/TysonAndre/var_representation_polyfill.git",
"reference": "3f17999ee1f257319ddc6721dd26ebbc5d175f33" "reference": "0a942e74e18af5514749895507bc6ca7ab96399a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/TysonAndre/var_representation_polyfill/zipball/3f17999ee1f257319ddc6721dd26ebbc5d175f33", "url": "https://api.github.com/repos/TysonAndre/var_representation_polyfill/zipball/0a942e74e18af5514749895507bc6ca7ab96399a",
"reference": "3f17999ee1f257319ddc6721dd26ebbc5d175f33", "reference": "0a942e74e18af5514749895507bc6ca7ab96399a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3896,6 +3886,9 @@
"phan/phan": "^4.0", "phan/phan": "^4.0",
"phpunit/phpunit": "^8.5.0" "phpunit/phpunit": "^8.5.0"
}, },
"suggest": {
"ext-var_representation": "*"
},
"type": "library", "type": "library",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@@ -3914,16 +3907,16 @@
"name": "Tyson Andre" "name": "Tyson Andre"
} }
], ],
"description": "Polyfill for var_representation", "description": "Polyfill for var_representation: convert a variable to a string in a way that fixes the shortcomings of var_export",
"keywords": [ "keywords": [
"var_export", "var_export",
"var_representation" "var_representation"
], ],
"support": { "support": {
"issues": "https://github.com/TysonAndre/var_representation_polyfill/issues", "issues": "https://github.com/TysonAndre/var_representation_polyfill/issues",
"source": "https://github.com/TysonAndre/var_representation_polyfill/tree/0.0.2" "source": "https://github.com/TysonAndre/var_representation_polyfill/tree/0.1.1"
}, },
"time": "2021-06-26T18:55:02+00:00" "time": "2021-08-16T00:12:50+00:00"
}, },
{ {
"name": "vlucas/valitron", "name": "vlucas/valitron",
@@ -4181,7 +4174,7 @@
"platform": [], "platform": [],
"platform-dev": [], "platform-dev": [],
"platform-overrides": { "platform-overrides": {
"php": "7.4" "php": "8.0"
}, },
"plugin-api-version": "2.0.0" "plugin-api-version": "2.0.0"
} }
+44 -20
View File
@@ -1348,17 +1348,29 @@ function triggerTournament()
$db = DB::db(); $db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env'); $gameStor = KVStorage::getStorage($db, 'game_env');
$admin = $gameStor->getValues(['tournament', 'tnmt_trig']); [$tournament, $tnmt_trig, $tnmt_pattern] = $gameStor->getValuesAsArray(['tournament', 'tnmt_trig', 'tnmt_pattern']);
//현재 토너먼트 없고, 자동개시 걸려있을때, 40%확률 //현재 토너먼트 없고, 자동개시 걸려있을때, 40%확률
if ($admin['tournament'] == 0 && $admin['tnmt_trig'] > 0 && rand() % 100 < 40) { if($tournament != 0){
$type = rand() % 5; // 0 : 전력전, 1 : 통솔전, 2 : 일기토, 3 : 설전 return;
//전력전 40%, 통, 일, 설 각 20%
if ($type > 3) {
$type = 0;
}
startTournament($admin['tnmt_trig'], $type);
} }
if($tnmt_trig == 0){
return;
}
if(!Util::randBool(0.4)){
return;
}
if(!$tnmt_pattern){
// 0 : 전력전, 1 : 통솔전, 2 : 일기토, 3 : 설전
//전력전 40%, 통, 일, 설 각 20%
$tnmt_pattern = [0, 0, 1, 2, 3];
shuffle($tnmt_pattern);
}
$tnmt_type = array_pop($tnmt_pattern);
$gameStor->setValue('tnmt_pattern', $tnmt_pattern);
startTournament($tnmt_trig, $tnmt_type);
} }
function CheckHall($no) function CheckHall($no)
@@ -1840,21 +1852,26 @@ function tryUniqueItemLottery(General $general, string $acquireType = '아이템
return false; return false;
} }
$inheritUnique = $general->getAuxVar('inheritUniqueTrial'); $itemTypeCnt = count(GameConst::$allItems);
if ($acquireType != '설문조사' && $inheritUnique && count($inheritUnique)) {
LogText("유니크 준비?? {$general->getID()}", $inheritUnique); [$startYear, $year] = $gameStor->getValuesAsArray(['startyear', 'year']);
$trialResult = tryInheritUniqueItem($general, $acquireType); $relYear = $year - $startYear;
if ($trialResult) { $maxTrialCountByYear = 1;
return true; foreach(GameConst::$maxUniqueItemLimit as $tmpVals){
[$targetYear, $targetTrialCnt] = $tmpVals;
if($relYear < $targetYear){
break;
} }
$maxTrialCountByYear = $targetTrialCnt;
} }
$itemTypeCnt = count(GameConst::$allItems); $trialCnt = Util::valueFit($itemTypeCnt, null, $maxTrialCountByYear);
$trialCnt = $itemTypeCnt; $maxCnt = $itemTypeCnt;
foreach ($general->getItems() as $item) { foreach ($general->getItems() as $item) {
if (!$item->isBuyable()) { if (!$item->isBuyable()) {
$trialCnt -= 1; $trialCnt -= 1;
$maxCnt -= 1;
} }
} }
@@ -1866,10 +1883,17 @@ function tryUniqueItemLottery(General $general, string $acquireType = '아이템
$userLogger = new UserLogger($general->getVar('owner')); $userLogger = new UserLogger($general->getVar('owner'));
$userLogger->push(sprintf("유니크를 얻을 공간이 없어 %d 포인트 반환", GameConst::$inheritItemRandomPoint), "inheritPoint"); $userLogger->push(sprintf("유니크를 얻을 공간이 없어 %d 포인트 반환", GameConst::$inheritItemRandomPoint), "inheritPoint");
} }
tryRollbackInheritUniqueItem($general);
return false; return false;
} }
$inheritUnique = $general->getAuxVar('inheritUniqueTrial');
if ($acquireType != '설문조사' && $inheritUnique && count($inheritUnique)) {
$trialResult = tryInheritUniqueItem($general, $acquireType);
if ($trialResult) {
return true;
}
}
$scenario = $gameStor->scenario; $scenario = $gameStor->scenario;
$genCount = $db->queryFirstField('SELECT count(*) FROM general WHERE npc<2'); $genCount = $db->queryFirstField('SELECT count(*) FROM general WHERE npc<2');
@@ -1899,7 +1923,7 @@ function tryUniqueItemLottery(General $general, string $acquireType = '아이템
$prob = 1; $prob = 1;
} }
foreach (Util::range($trialCnt) as $_idx) { foreach (Util::range($maxCnt) as $_idx) {
if (Util::randBool($prob)) { if (Util::randBool($prob)) {
$result = true; $result = true;
break; break;
@@ -1907,10 +1931,10 @@ function tryUniqueItemLottery(General $general, string $acquireType = '아이템
$prob *= $moreProb; $prob *= $moreProb;
} }
if (!$result) { if (!$result) {
LogText("{$general->getName()}, {$general->getID()} 유니크 실패 {$trialCnt}", $prob); LogText("{$general->getName()}, {$general->getID()} 유니크 실패 {$maxCnt}", $prob);
return false; return false;
} }
LogText("{$general->getName()}, {$general->getID()} 유니크 성공 {$trialCnt}", $prob); LogText("{$general->getName()}, {$general->getID()} 유니크 성공 {$maxCnt}", $prob);
return giveRandomUniqueItem($general, $acquireType); return giveRandomUniqueItem($general, $acquireType);
} }
+58 -41
View File
@@ -167,14 +167,15 @@ function checkSupply()
} }
} }
function updateGeneralNumber(){ function updateGeneralNumber()
{
$db = DB::db(); $db = DB::db();
foreach($db->queryAllLists('SELECT nation, count(*) FROM general WHERE npc != 5 GROUP BY nation') as [$nationID, $gennum]){ foreach ($db->queryAllLists('SELECT nation, count(*) FROM general WHERE npc != 5 GROUP BY nation') as [$nationID, $gennum]) {
if($nationID === 0){ if ($nationID === 0) {
continue; continue;
} }
$db->update('nation', [ $db->update('nation', [
'gennum'=>$gennum 'gennum' => $gennum
], 'nation=%i', $nationID); ], 'nation=%i', $nationID);
} }
refreshNationStaticInfo(); refreshNationStaticInfo();
@@ -370,7 +371,11 @@ function postUpdateMonthly()
sum(pop)*sum(pop+agri+comm+secu+wall+def)/sum(pop_max+agri_max+comm_max+secu_max+wall_max+def_max)/100 sum(pop)*sum(pop+agri+comm+secu+wall+def)/sum(pop_max+agri_max+comm_max+secu_max+wall_max+def_max)/100
) from city where nation=A.nation and supply=1 ) from city where nation=A.nation and supply=1
)) ))
+(select sum(leadership+strength+intel) from general where nation=A.nation) +(select SUM((ra.value + 1000)/(rb.value + 1000)*(CASE WHEN g.`npc` < 2 THEN 1.5 ELSE 1 END)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)*2 + (SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/2)
FROM general AS g
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = \'killcrew_person\'
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = \'deathcrew_person\'
WHERE g.nation = A.nation)
+(select round(sum(dex1+dex2+dex3+dex4+dex5)/1000) from general where nation=A.nation) +(select round(sum(dex1+dex2+dex3+dex4+dex5)/1000) from general where nation=A.nation)
+(select round(sum(experience+dedication)/100) from general where nation=A.nation) +(select round(sum(experience+dedication)/100) from general where nation=A.nation)
+(select round(avg(connect)) from general where nation=A.nation) +(select round(avg(connect)) from general where nation=A.nation)
@@ -386,7 +391,7 @@ function postUpdateMonthly()
$nationStor = KVStorage::getStorage($db, $nationID, 'nation_env'); $nationStor = KVStorage::getStorage($db, $nationID, 'nation_env');
$genNum[$nationID] = $nation['gennum']; $genNum[$nationID] = $nation['gennum'];
$powerValues = $maxPowerValues[$nationID]??[]; $powerValues = $maxPowerValues[$nationID] ?? [];
//약간의 랜덤치 부여 (95% ~ 105%) //약간의 랜덤치 부여 (95% ~ 105%)
@@ -405,7 +410,7 @@ function postUpdateMonthly()
} }
// 전쟁기한 세팅 // 전쟁기한 세팅
foreach($db->query('SELECT me, you, dead, term FROM diplomacy WHERE state = 0') as $dip) { foreach ($db->query('SELECT me, you, dead, term FROM diplomacy WHERE state = 0') as $dip) {
$genCount = $genNum[$dip['me']]; $genCount = $genNum[$dip['me']];
// 25% 참여율일때 두당 10턴에 4000명 소모한다고 계산 // 25% 참여율일때 두당 10턴에 4000명 소모한다고 계산
// 4000 / 10 * 0.25 = 100 // 4000 / 10 * 0.25 = 100
@@ -420,7 +425,7 @@ function postUpdateMonthly()
} }
//개전국 로그 //개전국 로그
foreach($db->query('SELECT me, you FROM diplomacy WHERE state = 1 AND term <= 1 AND me < you') as $dip){ foreach ($db->query('SELECT me, you FROM diplomacy WHERE state = 1 AND term <= 1 AND me < you') as $dip) {
$nation1 = getNationStaticInfo($dip['me']); $nation1 = getNationStaticInfo($dip['me']);
$name1 = $nation1['name']; $name1 = $nation1['name'];
$nation2 = getNationStaticInfo($dip['you']); $nation2 = getNationStaticInfo($dip['you']);
@@ -432,14 +437,13 @@ function postUpdateMonthly()
} }
//휴전국 로그 //휴전국 로그
$stopWarList = []; $stopWarList = [];
foreach($db->queryAllLists('SELECT me,you FROM diplomacy WHERE state=0 AND term <= 1 ORDER BY me desc, you desc') as [$me, $you]){ foreach ($db->queryAllLists('SELECT me,you FROM diplomacy WHERE state=0 AND term <= 1 ORDER BY me desc, you desc') as [$me, $you]) {
if($me < $you){ if ($me < $you) {
$key = "{$me}_{$you}"; $key = "{$me}_{$you}";
} } else {
else{
$key = "{$you}_{$me}"; $key = "{$you}_{$me}";
} }
if(!key_exists($key, $stopWarList)){ if (!key_exists($key, $stopWarList)) {
$stopWarList[$key] = true; $stopWarList[$key] = true;
continue; continue;
} }
@@ -455,8 +459,8 @@ function postUpdateMonthly()
$globalLogger->pushGlobalHistoryLog("<R><b>【휴전】</b></><D><b>$name1</b></>{$josaWa} <D><b>$name2</b></>{$josaYi} <S>휴전</>합니다."); $globalLogger->pushGlobalHistoryLog("<R><b>【휴전】</b></><D><b>$name1</b></>{$josaWa} <D><b>$name2</b></>{$josaYi} <S>휴전</>합니다.");
$db->update('diplomacy', [ $db->update('diplomacy', [
'state'=>2, 'state' => 2,
'term'=>0, 'term' => 0,
], '(me=%i AND you=%i) OR (you=%i AND me=%i)', $me, $you, $me, $you); ], '(me=%i AND you=%i) OR (you=%i AND me=%i)', $me, $you, $me, $you);
} }
@@ -464,17 +468,17 @@ function postUpdateMonthly()
//사상자 초기화, 외교 기한-1 //사상자 초기화, 외교 기한-1
$db->update('diplomacy', [ $db->update('diplomacy', [
'dead'=>$db->sqleval('if(state!=0, 0, dead)'), 'dead' => $db->sqleval('if(state!=0, 0, dead)'),
'term'=>$db->sqleval('greatest(0, term-1)'), 'term' => $db->sqleval('greatest(0, term-1)'),
], true); ], true);
//불가침 끝나면 통상으로 //불가침 끝나면 통상으로
$db->update('diplomacy', [ $db->update('diplomacy', [
'state'=>2, 'state' => 2,
], 'state = 7 AND term = 0'); ], 'state = 7 AND term = 0');
//선포 끝나면 교전으로 //선포 끝나면 교전으로
$db->update('diplomacy', [ $db->update('diplomacy', [
'state'=>0, 'state' => 0,
'term'=>6, 'term' => 6,
], 'state = 1 AND term = 0'); ], 'state = 1 AND term = 0');
//초반이후 방랑군 자동 해체 //초반이후 방랑군 자동 해체
@@ -567,8 +571,8 @@ function updateNationState()
$updateVals = [ $updateVals = [
'level' => $nationlevel, 'level' => $nationlevel,
'gold'=>$db->sqleval('gold + %i', $nationlevel*1000), 'gold' => $db->sqleval('gold + %i', $nationlevel * 1000),
'rice'=>$db->sqleval('rice + %i', $nationlevel*1000), 'rice' => $db->sqleval('rice + %i', $nationlevel * 1000),
]; ];
switch ($nationlevel) { switch ($nationlevel) {
@@ -627,11 +631,22 @@ function updateNationState()
$chiefID = null; $chiefID = null;
$uniqueLotteryWeightList = []; $uniqueLotteryWeightList = [];
[$startYear, $year] = $gameStor->getValuesAsArray(['startyear', 'year']);
$relYear = $year - $startYear;
$maxTrialCountByYear = 1;
foreach (GameConst::$maxUniqueItemLimit as $tmpVals) {
[$targetYear, $targetTrialCnt] = $tmpVals;
if ($relYear < $targetYear) {
break;
}
$maxTrialCountByYear = $targetTrialCnt;
}
foreach ($nationGenList as $nationGen) { foreach ($nationGenList as $nationGen) {
if ($nationGen->getVar('officer_level') == 12) { if ($nationGen->getVar('officer_level') == 12) {
$chiefID = $nationGen->getID(); $chiefID = $nationGen->getID();
} }
$trialCnt = count(GameConst::$allItems); $trialCnt = min($maxTrialCountByYear, count(GameConst::$allItems));
foreach ($nationGen->getItems() as $item) { foreach ($nationGen->getItems() as $item) {
if (!$item->isBuyable()) { if (!$item->isBuyable()) {
@@ -670,7 +685,7 @@ function updateNationState()
$winnerObj->applyDB($db); $winnerObj->applyDB($db);
} }
if($chiefID){ if ($chiefID) {
$chiefObj = General::createGeneralObjFromDB($chiefID, ['belong', 'npc', 'aux'], 2); $chiefObj = General::createGeneralObjFromDB($chiefID, ['belong', 'npc', 'aux'], 2);
$chiefObj->increaseInheritancePoint('unifier', 250 * $levelDiff); $chiefObj->increaseInheritancePoint('unifier', 250 * $levelDiff);
$chiefObj->applyDB($db); $chiefObj->applyDB($db);
@@ -701,9 +716,9 @@ function updateNationState()
$nation['nation'] $nation['nation']
); );
$npcObj->setAffinity(999)->setStat(10, 10, 10) $npcObj->setAffinity(999)->setStat(10, 10, 10)
->setSpecialSingle('척사')->setEgo('che_은둔') ->setSpecialSingle('척사')->setEgo('che_은둔')
->setKillturn(70)->setGoldRice(0, 0) ->setKillturn(70)->setGoldRice(0, 0)
->setNPCType(5)->fillRemainSpecAsZero($admin); ->setNPCType(5)->fillRemainSpecAsZero($admin);
$npcObj->build($admin); $npcObj->build($admin);
$npcID = $npcObj->getGeneralID(); $npcID = $npcObj->getGeneralID();
@@ -992,9 +1007,9 @@ function checkEmperior()
$nationLogger = new ActionLogger(0, $nationID, $admin['year'], $admin['month']); $nationLogger = new ActionLogger(0, $nationID, $admin['year'], $admin['month']);
$nationLogger->pushNationalHistoryLog("<D><b>{$nationName}</b></>{$josaYi} 전토를 통일"); $nationLogger->pushNationalHistoryLog("<D><b>{$nationName}</b></>{$josaYi} 전토를 통일");
foreach(General::createGeneralObjListFromDB($db->queryFirstColumn('SELECT `no` FROM general WHERE npc = 0')) as $genObj){ foreach (General::createGeneralObjListFromDB($db->queryFirstColumn('SELECT `no` FROM general WHERE npc = 0')) as $genObj) {
if($genObj->getNationID() == $nationID){ if ($genObj->getNationID() == $nationID) {
if($genObj->getVar('officer_level') > 4){ if ($genObj->getVar('officer_level') > 4) {
$genObj->increaseInheritancePoint('unifier', 2000); $genObj->increaseInheritancePoint('unifier', 2000);
}; };
} }
@@ -1010,7 +1025,7 @@ function checkEmperior()
[$totalPop, $totalMaxPop] = $db->queryFirstList('SELECT SUM(pop), SUM(pop_max) FROM city'); [$totalPop, $totalMaxPop] = $db->queryFirstList('SELECT SUM(pop), SUM(pop_max) FROM city');
$pop = "{$totalPop} / {$totalMaxPop}"; $pop = "{$totalPop} / {$totalMaxPop}";
$poprate = round($totalPop / $totalMaxPop * 100, 2). " %"; $poprate = round($totalPop / $totalMaxPop * 100, 2) . " %";
$chiefs = Util::convertArrayToDict( $chiefs = Util::convertArrayToDict(
$db->query( $db->query(
@@ -1152,29 +1167,30 @@ function checkEmperior()
LogHistory(); LogHistory();
} }
function resetInheritanceUser(int $userID, bool $isRebirth=false):float{ function resetInheritanceUser(int $userID, bool $isRebirth = false): float
{
$rebirthDegraded = [ $rebirthDegraded = [
'dex'=>0.5, 'dex' => 0.5,
]; ];
$inheritStor = KVStorage::getStorage(DB::db(), "inheritance_{$userID}"); $inheritStor = KVStorage::getStorage(DB::db(), "inheritance_{$userID}");
$totalPoint = 0; $totalPoint = 0;
$allPoints = $inheritStor->getAll(); $allPoints = $inheritStor->getAll();
if(!$allPoints || count($allPoints) == 0){ if (!$allPoints || count($allPoints) == 0) {
//비었으므로 리셋 안함 //비었으므로 리셋 안함
return 0; return 0;
} }
if(count($allPoints) == 1 && key_exists('previous', $allPoints)){ if (count($allPoints) == 1 && key_exists('previous', $allPoints)) {
//이미 리셋되었으므로 리셋 안함 //이미 리셋되었으므로 리셋 안함
return $allPoints['previous'][0]; return $allPoints['previous'][0];
} }
$userLogger = new UserLogger($userID); $userLogger = new UserLogger($userID);
$previousPoint = ($allPoints['previous']??[0,0])[0]; $previousPoint = ($allPoints['previous'] ?? [0, 0])[0];
foreach($allPoints as $key=>[$value,]){ foreach ($allPoints as $key => [$value,]) {
if($isRebirth && key_exists($key, $rebirthDegraded)){ if ($isRebirth && key_exists($key, $rebirthDegraded)) {
$value *= $rebirthDegraded[$key]; $value *= $rebirthDegraded[$key];
} }
$keyText = General::INHERITANCE_KEY[$key][2]; $keyText = General::INHERITANCE_KEY[$key][2];
@@ -1190,13 +1206,14 @@ function resetInheritanceUser(int $userID, bool $isRebirth=false):float{
return $totalPoint; return $totalPoint;
} }
function updateMaxDomesticCritical(General $general, $score){ function updateMaxDomesticCritical(General $general, $score)
$maxDomesticCritical = $general->getAuxVar('max_domestic_critical')??0; {
$maxDomesticCritical = $general->getAuxVar('max_domestic_critical') ?? 0;
$maxDomesticCritical += $score / 2; $maxDomesticCritical += $score / 2;
$general->setAuxVar('max_domestic_critical', $maxDomesticCritical); $general->setAuxVar('max_domestic_critical', $maxDomesticCritical);
$oldMaxDomesticCritical = $general->getInheritancePoint('max_domestic_critical'); $oldMaxDomesticCritical = $general->getInheritancePoint('max_domestic_critical');
if($maxDomesticCritical > $oldMaxDomesticCritical){ if ($maxDomesticCritical > $oldMaxDomesticCritical) {
$general->setInheritancePoint('max_domestic_critical', $maxDomesticCritical); $general->setInheritancePoint('max_domestic_critical', $maxDomesticCritical);
} }
} }
-11
View File
@@ -77,12 +77,6 @@ function pushProcessLog($log) {
pushRawFileLog(__DIR__."/logs/".UniqueConst::$serverID."/_{$date}_processlog.txt", $log); pushRawFileLog(__DIR__."/logs/".UniqueConst::$serverID."/_{$date}_processlog.txt", $log);
} }
function pushStepLog($log) {
$date = date('Y_m_d');
pushRawFileLog(__DIR__."/logs/".UniqueConst::$serverID."/_{$date}_steplog.txt", $log);
}
function pushLockLog($log) { function pushLockLog($log) {
$date = date('Y_m_d'); $date = date('Y_m_d');
pushRawFileLog(__DIR__."/logs/".UniqueConst::$serverID."/_{$date}_locklog.txt", $log); pushRawFileLog(__DIR__."/logs/".UniqueConst::$serverID."/_{$date}_locklog.txt", $log);
@@ -378,8 +372,6 @@ function getGlobalActionLogWithDate(int $year, int $month):array {
} }
function LogHistory($isFirst=0) { function LogHistory($isFirst=0) {
if(STEP_LOG) pushStepLog(TimeUtil::now().', LogHistory Start');
$db = DB::db(); $db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env'); $gameStor = KVStorage::getStorage($db, 'game_env');
$obj = $gameStor->getValues(['startyear', 'year', 'month']); $obj = $gameStor->getValues(['startyear', 'year', 'month']);
@@ -426,8 +418,6 @@ function LogHistory($isFirst=0) {
return -($lhs['power']<=>$rhs['power']); return -($lhs['power']<=>$rhs['power']);
}); });
if(STEP_LOG) pushStepLog(TimeUtil::now().', contents collected');
$db->insert('ng_history', [ $db->insert('ng_history', [
'server_id' => UniqueConst::$serverID, 'server_id' => UniqueConst::$serverID,
'year' => $year, 'year' => $year,
@@ -438,6 +428,5 @@ function LogHistory($isFirst=0) {
'nations' => Json::encode($nations), 'nations' => Json::encode($nations),
]); ]);
if(STEP_LOG) pushStepLog(TimeUtil::now().', LogHistory Finish');
return true; return true;
} }
+129 -87
View File
@@ -8,8 +8,7 @@ function processTournament() {
$admin = $gameStor->getValues(['tournament', 'phase', 'tnmt_type', 'tnmt_auto', 'tnmt_time']); $admin = $gameStor->getValues(['tournament', 'phase', 'tnmt_type', 'tnmt_auto', 'tnmt_time']);
$now = new \DateTime(); $now = new \DateTime();
$admin['now'] = $now->format('Y-m-d H:i:s'); $offset = $now->getTimestamp() - (new \DateTime($admin['tnmt_time']))->getTimestamp();
$admin['offset'] = $now->getTimestamp() - (new \DateTime($admin['tnmt_time']))->getTimestamp();
//수동일땐 무시 //수동일땐 무시
if($admin['tnmt_auto'] == 0) { return; } if($admin['tnmt_auto'] == 0) { return; }
@@ -18,99 +17,102 @@ function processTournament() {
$tnmt = $admin['tournament']; $tnmt = $admin['tournament'];
$phase = $admin['phase']; $phase = $admin['phase'];
if($offset < 0){
return;
}
//현시간이 스탬프 지나친경우 //현시간이 스탬프 지나친경우
if($admin['offset'] >= 0) { switch($admin['tnmt_auto']) {
switch($admin['tnmt_auto']) { case 1: $unit = 720; break;
case 1: $unit = 720; break; case 2: $unit = 420; break;
case 2: $unit = 420; break; case 3: $unit = 180; break;
case 3: $unit = 180; break; case 4: $unit = 60; break;
case 4: $unit = 60; break; case 5: $unit = 30; break;
case 5: $unit = 30; break; case 6: $unit = 15; break;
case 6: $unit = 15; break; case 7: $unit = 5; break;
case 7: $unit = 5; break; default: throw new MustNotBeReachedException();
default: throw new MustNotBeReachedException(); }
//업데이트 횟수
$iter = intdiv($offset, $unit) + 1;
for($i=0; $i < $iter; $i++) {
switch($tnmt) {
case 1: //신청 마감
fillLowGenAll();
$tnmt = 2; $phase = 0;
break;
case 2: //예선중
qualify($type, $tnmt, $phase); $phase++;
if($phase >= 56) { $tnmt = 3; $phase = 0; }
break;
case 3: //추첨중
selectionAll($type, $tnmt, $phase); $phase+=8;
if($phase >= 32) { $tnmt = 4; $phase = 0; }
break;
case 4: //본선중
finallySingle($type, $tnmt, $phase); $phase++;
if($phase >= 6) { $tnmt = 5; $phase = 0; }
break;
case 5: //배정중
final16set();
$tnmt = 6; $phase = 0;
startBetting();
break;
case 6: //베팅중
$tnmt = 7; $phase = 0;
break;
case 7: //16강중
finalFight($type, $tnmt, $phase, 16); $phase++;
if($phase >= 8) { $tnmt = 8; $phase = 0; }
break;
case 8: //8강중
finalFight($type, $tnmt, $phase, 8); $phase++;
if($phase >= 4) { $tnmt = 9; $phase = 0; }
break;
case 9: //4강중
finalFight($type, $tnmt, $phase, 4); $phase++;
if($phase >= 2) { $tnmt = 10; $phase = 0; }
break;
case 10: //결승중
finalFight($type, $tnmt, $phase, 2);
$tnmt = 0; $phase = 0;
setGift($type, $tnmt, $phase);
$i = $iter;
break;
} }
//업데이트 횟수 //베팅은 무조건 60페이즈후 진행(최대 1시간)
$iter = intdiv($admin['offset'], $unit) + 1; if($tnmt == 6) {
$betTerm = $unit * 60;
if($betTerm > 3600) { $betTerm = 3600; }
//처리 초 더한 날짜
$dt = date("Y-m-d H:i:s", strtotime($admin['tnmt_time']) + $unit * $i + $betTerm);
$gameStor->tournament = $tnmt;
$gameStor->phase = $phase;
$gameStor->tnmt_time = $dt;
return;
}
for($i=0; $i < $iter; $i++) { if($admin['tnmt_auto'] == 1) {
switch($tnmt) { //처리 초 더한 날짜
case 1: //신청 마감 $dt = date("Y-m-d H:i:s", strtotime($admin['tnmt_time']) + $unit * $i);
fillLowGenAll(); $hr = substr($dt, 11, 2);
$tnmt = 2; $phase = 0; //지정시간대 넘어가면 중단 20~24시
break; if($hr < 20) {
case 2: //예선중 $dt = substr($dt, 0, 11)."20:00:00";
qualify($type, $tnmt, $phase); $phase++;
if($phase >= 56) { $tnmt = 3; $phase = 0; }
break;
case 3: //추첨중
selectionAll($type, $tnmt, $phase); $phase+=8;
if($phase >= 32) { $tnmt = 4; $phase = 0; }
break;
case 4: //본선중
finallySingle($type, $tnmt, $phase); $phase++;
if($phase >= 6) { $tnmt = 5; $phase = 0; }
break;
case 5: //배정중
final16set();
$tnmt = 6; $phase = 0;
break;
case 6: //베팅중
$tnmt = 7; $phase = 0;
break;
case 7: //16강중
finalFight($type, $tnmt, $phase, 16); $phase++;
if($phase >= 8) { $tnmt = 8; $phase = 0; }
break;
case 8: //8강중
finalFight($type, $tnmt, $phase, 8); $phase++;
if($phase >= 4) { $tnmt = 9; $phase = 0; }
break;
case 9: //4강중
finalFight($type, $tnmt, $phase, 4); $phase++;
if($phase >= 2) { $tnmt = 10; $phase = 0; }
break;
case 10: //결승중
finalFight($type, $tnmt, $phase, 2);
$tnmt = 0; $phase = 0;
setGift($type, $tnmt, $phase);
$i = $iter;
break;
}
//베팅은 무조건 60페이즈후 진행(최대 1시간)
if($tnmt == 6) {
$betTerm = $unit * 60;
if($betTerm > 3600) { $betTerm = 3600; }
//처리 초 더한 날짜
$dt = date("Y-m-d H:i:s", strtotime($admin['tnmt_time']) + $unit * $i + $betTerm);
$gameStor->tournament = $tnmt; $gameStor->tournament = $tnmt;
$gameStor->phase = $phase; $gameStor->phase = $phase;
$gameStor->tnmt_time = $dt; $gameStor->tnmt_time = $dt;
return; return;
} }
if($admin['tnmt_auto'] == 1) {
//처리 초 더한 날짜
$dt = date("Y-m-d H:i:s", strtotime($admin['tnmt_time']) + $unit * $i);
$hr = substr($dt, 11, 2);
//지정시간대 넘어가면 중단 20~24시
if($hr < 20) {
$dt = substr($dt, 0, 11)."20:00:00";
$gameStor->tournament = $tnmt;
$gameStor->phase = $phase;
$gameStor->tnmt_time = $dt;
return;
}
}
} }
$second = $unit * $iter;
$gameStor->tournament = $tnmt;
$gameStor->phase = $phase;
$gameStor->tnmt_time = (new \DateTimeImmutable($admin['tnmt_time']))->add(new \DateInterval("PT{$second}S"))->format('Y-m-d H:i:s');
} }
$second = $unit * $iter;
$gameStor->tournament = $tnmt;
$gameStor->phase = $phase;
$gameStor->tnmt_time = (new \DateTimeImmutable($admin['tnmt_time']))->add(new \DateInterval("PT{$second}S"))->format('Y-m-d H:i:s');
} }
function getTournamentTerm() { function getTournamentTerm() {
@@ -296,11 +298,51 @@ function startTournament($auto, $type) {
['설전','책사'], ['설전','책사'],
][$type]; ][$type];
$history[] = "<S>◆</>{$admin['year']}{$admin['month']}월:{$openerText}<C>{$typeText}</> 대회가 개최됩니다! 천하의 <span class='ev_highlight'>{$genTypeText}</span>들을 모집하고 있습니다!"; $history[] = "<S>◆</>{$admin['year']}{$admin['month']}월:<B><b>【대회】</b></>{$openerText}<C>{$typeText}</> 대회가 개최됩니다! 천하의 <span class='ev_highlight'>{$genTypeText}</span>들을 모집하고 있습니다!";
pushGlobalHistoryLog($history, $admin['year'], $admin['month']); pushGlobalHistoryLog($history, $admin['year'], $admin['month']);
} }
function startBetting(){
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
[$year, $month] = $gameStor->getValuesAsArray(['year', 'month']);
pushGlobalHistoryLog([
"<S>◆</>{$year}{$month}월:<B><b>【대회】</b></>우승자를 예상하는 <C>내기</>가 진행중입니다! 호사가의 참여를 기다립니다!"
], $year, $month);
$betGold = 10;
$npcList = $db->queryFirstColumn('SELECT no FROM general WHERE npc >= 2 AND gold >= (500 + %i)', $betGold);
$npcBet = [];
$betSum = [
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
];
foreach($npcList as $npcID){
$target = Util::randRangeInt(0, 15);
$betSum[$target] += $betGold;
$npcBet[] = [$npcID, $target];
}
$db->update('general', [
'gold'=>$db->sqleval('gold - %i', $betGold),
], 'no IN %li', $npcList);
foreach($npcBet as [$npcID, $betTarget]){
$targetKey = "bet{$betTarget}";
$db->update('betting', [
"bet{$betTarget}"=>$db->sqleval('%b + %i', $targetKey, $betGold),
], 'general_id = %i', $npcID);
}
foreach($betSum as $betTarget=>$betSumGold){
$targetKey = "bet{$betTarget}";
$db->update('betting', [
"bet{$betTarget}"=>$db->sqleval('%b + %i', $targetKey, $betSumGold),
], 'general_id = 0');
}
}
function fillLowGenAll() { function fillLowGenAll() {
$db = DB::db(); $db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env'); $gameStor = KVStorage::getStorage($db, 'game_env');
@@ -785,8 +827,8 @@ function setGift($tnmt_type, $tnmt, $phase) {
$josaYiWinner = JosaUtil::pick($winner['name'], '이'); $josaYiWinner = JosaUtil::pick($winner['name'], '이');
$josaYiRunnerUp = JosaUtil::pick($runnerUp['name'], '이'); $josaYiRunnerUp = JosaUtil::pick($runnerUp['name'], '이');
$winnerLogger->pushGlobalHistoryLog("<C>{$tp}</> 대회에서 <Y>{$winner['name']}</>{$josaYiWinner} <C>우승</>, <Y>{$runnerUp['name']}</>{$josaYiRunnerUp} <C>준우승</>을 차지하여 천하에 이름을 떨칩니다!", ActionLogger::EVENT_YEAR_MONTH); $winnerLogger->pushGlobalHistoryLog("<B><b>【대회】</b></><C>{$tp}</> 대회에서 <Y>{$winner['name']}</>{$josaYiWinner} <C>우승</>, <Y>{$runnerUp['name']}</>{$josaYiRunnerUp} <C>준우승</>을 차지하여 천하에 이름을 떨칩니다!", ActionLogger::EVENT_YEAR_MONTH);
$winnerLogger->pushGlobalHistoryLog("<C>{$tp}</> 대회의 <S>우승자</>에게는 <C>{$winnerRewardText}</>, <S>준우승자</>에겐 <C>{$runnerUpRewardText}</>의 <S>상금</>과 약간의 <S>명성</>이 주어집니다!", ActionLogger::EVENT_YEAR_MONTH); $winnerLogger->pushGlobalHistoryLog("<B><b>【대회】</b></><C>{$tp}</> 대회의 <S>우승자</>에게는 <C>{$winnerRewardText}</>, <S>준우승자</>에겐 <C>{$runnerUpRewardText}</>의 <S>상금</>과 약간의 <S>명성</>이 주어집니다!", ActionLogger::EVENT_YEAR_MONTH);
$generalObjList = General::createGeneralObjListFromDB(array_keys($resultHelper)); $generalObjList = General::createGeneralObjListFromDB(array_keys($resultHelper));
+5 -2
View File
@@ -21,9 +21,11 @@ foreach($rawTurn as [$turn_idx, $action, $arg, $brief]){
]; ];
} }
[$turnTerm, $year, $month, $lastExecute] = $gameStor->getValuesAsArray(['turnterm', 'year', 'month', 'turntime']); [$turnTerm, $year, $month, $lastExecute] = $gameStor->getValuesAsArray(['turnterm', 'year', 'month', 'turntime']);
$turnTime = $db->queryFirstField('SELECT turntime FROM general WHERE no=%i', $generalID); [$turnTime, $rawGeneralAux] = $db->queryFirstList('SELECT turntime, aux FROM general WHERE no=%i', $generalID);
$generalAux = Json::decode($rawGeneralAux??'{}');
if(cutTurn($turnTime, $turnTerm) > cutTurn($lastExecute, $turnTerm)){ if(cutTurn($turnTime, $turnTerm) > cutTurn($lastExecute, $turnTerm)){
//이미 이번달에 실행된 턴이다. //이미 이번달에 실행된 턴이다.
@@ -42,5 +44,6 @@ Json::die([
'year'=>$year, 'year'=>$year,
'month'=>$month, 'month'=>$month,
'date'=>TimeUtil::now(true), 'date'=>TimeUtil::now(true),
'turn'=>$commandList 'turn'=>$commandList,
'autorun_limit'=> $generalAux['autorun_limit']??null,
]); ]);
-4
View File
@@ -20,10 +20,6 @@ $loader->addClassMap((function () {
//디버그용 매크로 //디버그용 매크로
ini_set("session.cache_expire", 10080); // minutes ini_set("session.cache_expire", 10080); // minutes
// 각종 변수
define('STEP_LOG', true);
define('PROCESS_LOG', true);
ob_start(); ob_start();
// 에러 메세지 출력 // 에러 메세지 출력
+2
View File
@@ -264,12 +264,14 @@ function processWar_NG(
$attackerCrewTypeCoef = $attacker->getCrewType()->getAttackCoef($defender->getCrewType()) * $defender->getCrewType()->getDefenceCoef($attacker->getCrewType()); $attackerCrewTypeCoef = $attacker->getCrewType()->getAttackCoef($defender->getCrewType()) * $defender->getCrewType()->getDefenceCoef($attacker->getCrewType());
$defenderCrewTypeCoef = $defender->getCrewType()->getAttackCoef($attacker->getCrewType()) * $attacker->getCrewType()->getDefenceCoef($defender->getCrewType()); $defenderCrewTypeCoef = $defender->getCrewType()->getAttackCoef($attacker->getCrewType()) * $attacker->getCrewType()->getDefenceCoef($defender->getCrewType());
/*
if($attackerCrewTypeCoef > $defenderCrewTypeCoef && $attacker instanceof WarUnitGeneral){ if($attackerCrewTypeCoef > $defenderCrewTypeCoef && $attacker instanceof WarUnitGeneral){
$attacker->getGeneral()->increaseInheritancePoint('snipe_combat', 1); $attacker->getGeneral()->increaseInheritancePoint('snipe_combat', 1);
} }
if($defenderCrewTypeCoef > $attackerCrewTypeCoef && $defender instanceof WarUnitGeneral){ if($defenderCrewTypeCoef > $attackerCrewTypeCoef && $defender instanceof WarUnitGeneral){
$defender->getGeneral()->increaseInheritancePoint('snipe_combat', 1); $defender->getGeneral()->increaseInheritancePoint('snipe_combat', 1);
} }
*/
$attackerName = $attacker->getName(); $attackerName = $attacker->getName();
$attackerCrewTypeName = $attacker->getCrewTypeName(); $attackerCrewTypeName = $attacker->getCrewTypeName();
@@ -15,7 +15,7 @@ class che_반계_백우선 extends \sammo\BaseItem{
protected $id = 45; protected $id = 45;
protected $rawName = '백우선'; protected $rawName = '백우선';
protected $name = '백우선(반계)'; protected $name = '백우선(반계)';
protected $info = '[전투] 상대의 계략 성공 확률 -10%p, 상대의 계략을 40% 확률로 되돌림'; protected $info = '[전투] 상대의 계략 성공 확률 -10%p, 상대의 계략을 20% 확률로 되돌림';
protected $cost = 200; protected $cost = 200;
protected $consumable = false; protected $consumable = false;
@@ -29,7 +29,7 @@ class che_반계_백우선 extends \sammo\BaseItem{
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( return new WarUnitTriggerCaller(
new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*301), new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*301, 0.2),
new che_반계발동($unit) new che_반계발동($unit)
); );
} }
@@ -15,7 +15,7 @@ class che_반계_파초선 extends \sammo\BaseItem{
protected $id = 45; protected $id = 45;
protected $rawName = '파초선'; protected $rawName = '파초선';
protected $name = '파초선(반계)'; protected $name = '파초선(반계)';
protected $info = '[전투] 상대의 계략 성공 확률 -10%p, 상대의 계략을 40% 확률로 되돌림'; protected $info = '[전투] 상대의 계략 성공 확률 -10%p, 상대의 계략을 20% 확률로 되돌림';
protected $cost = 200; protected $cost = 200;
protected $consumable = false; protected $consumable = false;
@@ -29,7 +29,7 @@ class che_반계_파초선 extends \sammo\BaseItem{
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( return new WarUnitTriggerCaller(
new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*302), new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM +BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*302, 0.2),
new che_반계발동($unit) new che_반계발동($unit)
); );
} }
@@ -16,12 +16,12 @@ class che_서적_07_사마법 extends \sammo\BaseStatItem{
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
$this->info .= "<br>[전투] 상대의 계략을 20% 확률로 되돌림"; $this->info .= "<br>[전투] 상대의 계략을 10% 확률로 되돌림";
} }
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( return new WarUnitTriggerCaller(
new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM+BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*207, 0.2), new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM+BaseWarUnitTrigger::TYPE_DEDUP_TYPE_BASE*207, 0.1),
new che_반계발동($unit) new che_반계발동($unit)
); );
} }
@@ -16,12 +16,12 @@ class che_서적_12_산해경 extends \sammo\BaseStatItem{
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
$this->info .= "<br>[전투] 상대의 계략을 20% 확률로 되돌림"; $this->info .= "<br>[전투] 상대의 계략을 10% 확률로 되돌림";
} }
public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{ public function getBattlePhaseSkillTriggerList(WarUnit $unit):?WarUnitTriggerCaller{
return new WarUnitTriggerCaller( return new WarUnitTriggerCaller(
new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM, 0.2), new che_반계시도($unit, BaseWarUnitTrigger::TYPE_ITEM, 0.1),
new che_반계발동($unit) new che_반계발동($unit)
); );
} }
+1 -1
View File
@@ -35,7 +35,7 @@ class che_종횡가 extends \sammo\BaseNation{
public function onCalcStrategic(string $turnType, string $varType, $value){ public function onCalcStrategic(string $turnType, string $varType, $value){
if($varType == 'delay'){ if($varType == 'delay'){
return Util::round($value / 2); return Util::round($value * 3 / 4);
} }
if($varType == 'globalDelay'){ if($varType == 'globalDelay'){
return Util::round($value / 2); return Util::round($value / 2);
+2
View File
@@ -137,6 +137,7 @@ class AutorunNationPolicy {
public $reqNPCDevelRice = 500; public $reqNPCDevelRice = 500;
public $minimumResourceActionAmount = 1000; public $minimumResourceActionAmount = 1000;
public $maximumResourceActionAmount = 10000;
public $minNPCWarLeadership = 40; public $minNPCWarLeadership = 40;
public $minWarCrew = 1500; public $minWarCrew = 1500;
@@ -164,6 +165,7 @@ class AutorunNationPolicy {
'reqNPCDevelRice'=>500, 'reqNPCDevelRice'=>500,
'minimumResourceActionAmount'=>1000, 'minimumResourceActionAmount'=>1000,
'maximumResourceActionAmount'=>10000,
'minNPCWarLeadership'=>40, 'minNPCWarLeadership'=>40,
'minWarCrew'=>1500, 'minWarCrew'=>1500,
+1
View File
@@ -162,6 +162,7 @@ class che_거병 extends Command\GeneralCommand{
$exp = 100; $exp = 100;
$ded = 100; $ded = 100;
$general->increaseInheritancePoint('active_action', 1);
$general->addExperience($exp); $general->addExperience($exp);
$general->addDedication($ded); $general->addDedication($ded);
$general->setVar('belong', 1); $general->setVar('belong', 1);
+1
View File
@@ -188,6 +188,7 @@ class che_건국 extends Command\GeneralCommand
refreshNationStaticInfo(); refreshNationStaticInfo();
$general->increaseInheritancePoint('active_action', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
tryUniqueItemLottery($general, '건국'); tryUniqueItemLottery($general, '건국');
@@ -194,7 +194,7 @@ class che_등용수락 extends Command\GeneralCommand{
} }
$db->update('nation', $setScoutNationValues, 'nation=%i', $destNationID); $db->update('nation', $setScoutNationValues, 'nation=%i', $destNationID);
$general->increaseInheritancePoint('active_action', 1);
$general->setVar('permission', 'normal'); $general->setVar('permission', 'normal');
$general->setVar('belong', 1); $general->setVar('belong', 1);
$general->setVar('officer_level', 1); $general->setVar('officer_level', 1);
+20 -26
View File
@@ -181,51 +181,44 @@ class che_랜덤임관 extends Command\GeneralCommand
$generalsCnt = []; $generalsCnt = [];
if ($notIn) { if ($notIn) {
$rawGeneralsCnt = $db->query( $rawGeneralsCnt = $db->query(
'SELECT general.nation as nation, nation.gennum, nation.name, npc, count(*) as cnt FROM general JOIN nation ON general.nation = nation.nation WHERE (npc < 4 OR npc = 6) AND nation.gennum < %i AND nation.scout=0 AND nation.nation NOT IN %li GROUP BY general.nation, general.npc', "SELECT g.`nation`, n.`gennum`, n.name, SUM((ra.value + 1000)/(rb.value + 1000)*(CASE WHEN g.`npc` < 2 THEN 1.5 ELSE 1 END)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)) AS warpower, SUM(SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/5 AS develpower
FROM general AS g
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = 'killcrew_person'
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = 'deathcrew_person'
LEFT JOIN `nation` AS n ON g.`nation` = n.`nation`
WHERE g.`npc` IN (0, 1, 2, 3, 6) AND g.nation != 0 AND n.scout=0 AND n.gennum < %i AND n.nation NOT IN %li
GROUP BY g.`nation`",
$genLimit, $genLimit,
$notIn $notIn
); );
} else { } else {
$rawGeneralsCnt = $db->query( $rawGeneralsCnt = $db->query(
'SELECT general.nation as nation, nation.gennum, nation.name, npc, count(*) as cnt FROM general JOIN nation ON general.nation = nation.nation WHERE (npc < 4 OR npc = 6) AND nation.gennum < %i AND nation.scout=0 GROUP BY general.nation, general.npc', "SELECT g.`nation`, n.`gennum`, n.name, SUM((ra.value + 100)/(rb.value + 100)*(CASE WHEN g.`npc` < 2 THEN 1.5 ELSE 1 END)*(CASE WHEN g.`leadership` >= 40 THEN g.`leadership` ELSE 0 END)) AS warpower, SUM(SQRT(g.intel * g.strength) * 2 + g.leadership / 2)/5 AS develpower
FROM general AS g
LEFT JOIN `rank_data` AS ra ON g.`no` = ra.general_id AND ra.`type` = 'killcrew_person'
LEFT JOIN `rank_data` AS rb ON g.`no` = rb.general_id AND rb.`type` = 'deathcrew_person'
LEFT JOIN `nation` AS n ON g.`nation` = n.`nation`
WHERE g.`npc` IN (0, 1, 2, 3, 6) AND g.nation != 0 AND n.scout=0 AND n.gennum < %i
GROUP BY g.`nation`",
$genLimit $genLimit
); );
} }
foreach ($rawGeneralsCnt as $nation) { foreach ($rawGeneralsCnt as $nation) {
$nationID = $nation['nation']; $calcCnt = $nation['warpower'] + $nation['develpower'];
if (!\key_exists($nationID, $generalsCnt)) {
$generalsCnt[$nationID] = [
'nation' => $nationID,
'gennum' => $nation['gennum'],
'name' => $nation['name'],
'cnt' => 0,
];
$generalsCnt[$nationID]['cnt'] = 0;
}
if ($nation['npc'] <= 2) {
$calcCnt = $nation['cnt'];
} else {
$calcCnt = $nation['cnt'] / 2;
}
if ($general->getNPCType() < 2 && Util::starts_with($nation['name'], 'ⓤ')) { if ($general->getNPCType() < 2 && Util::starts_with($nation['name'], 'ⓤ')) {
$calcCnt *= 100; $calcCnt *= 100;
} }
$generalsCnt[$nationID]['cnt'] += $calcCnt; $generalsCnt[] = [$nation, (1 / $calcCnt)**3];
} }
$randVals = []; if ($generalsCnt) {
foreach ($generalsCnt as $testNation) { $destNation = Util::choiceRandomUsingWeightPair($generalsCnt);
$randVals[] = [$testNation, 1 / $testNation['cnt']];
}
if ($randVals) {
$destNation = Util::choiceRandomUsingWeightPair($randVals);
} }
} }
@@ -292,6 +285,7 @@ class che_랜덤임관 extends Command\GeneralCommand
$general->setAuxVar('joinedNations', $joinedNations); $general->setAuxVar('joinedNations', $joinedNations);
} }
$general->increaseInheritancePoint('active_action', 1);
$general->addExperience($exp); $general->addExperience($exp);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
@@ -96,6 +96,7 @@ class che_모반시도 extends Command\GeneralCommand{
$lordLogger->pushGeneralHistoryLog("<D><b>{$generalName}</b></>의 모반으로 인해 <D><b>{$nationName}</b></>의 군주자리를 박탈당함"); $lordLogger->pushGeneralHistoryLog("<D><b>{$generalName}</b></>의 모반으로 인해 <D><b>{$nationName}</b></>의 군주자리를 박탈당함");
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->increaseInheritancePoint('active_action', 1);
$general->checkStatChange(); $general->checkStatChange();
tryRollbackInheritUniqueItem($general); tryRollbackInheritUniqueItem($general);
$general->applyDB($db); $general->applyDB($db);
+1 -1
View File
@@ -121,7 +121,7 @@ class che_방랑 extends Command\GeneralCommand{
], 'me=%i OR you=%i', $nationID, $nationID); ], 'me=%i OR you=%i', $nationID, $nationID);
refreshNationStaticInfo(); refreshNationStaticInfo();
$general->increaseInheritancePoint('active_action', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
tryRollbackInheritUniqueItem($general); tryRollbackInheritUniqueItem($general);
$general->applyDB($db); $general->applyDB($db);
+1
View File
@@ -135,6 +135,7 @@ class che_선양 extends Command\GeneralCommand
$logger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>의 군주자리를 <Y>{$destGeneralName}</>에게 선양"); $logger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>의 군주자리를 <Y>{$destGeneralName}</>에게 선양");
$destLogger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>의 군주자리를 물려 받음"); $destLogger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>의 군주자리를 물려 받음");
$general->increaseInheritancePoint('active_action', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
tryRollbackInheritUniqueItem($general); tryRollbackInheritUniqueItem($general);
@@ -210,6 +210,7 @@ class che_인재탐색 extends Command\GeneralCommand
$exp = 200; $exp = 200;
$ded = 300; $ded = 300;
$general->increaseInheritancePoint('active_action', Util::valueFit(sqrt(1 / $foundProp), 1));
$general->increaseVarWithLimit('gold', -$reqGold, 0); $general->increaseVarWithLimit('gold', -$reqGold, 0);
$general->increaseVarWithLimit('rice', -$reqRice, 0); $general->increaseVarWithLimit('rice', -$reqRice, 0);
$general->addExperience($exp); $general->addExperience($exp);
+1
View File
@@ -171,6 +171,7 @@ class che_임관 extends Command\GeneralCommand{
$general->setAuxVar('joinedNations', $joinedNations); $general->setAuxVar('joinedNations', $joinedNations);
} }
$general->increaseInheritancePoint('active_action', 1);
$general->addExperience($exp); $general->addExperience($exp);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
@@ -176,6 +176,7 @@ class che_장수대상임관 extends Command\GeneralCommand{
$general->setAuxVar('joinedNations', $joinedNations); $general->setAuxVar('joinedNations', $joinedNations);
} }
$general->increaseInheritancePoint('active_action', 1);
$general->addExperience($exp); $general->addExperience($exp);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
+1
View File
@@ -211,6 +211,7 @@ class che_첩보 extends Command\GeneralCommand
$ded = Util::randRangeInt(1, 70); $ded = Util::randRangeInt(1, 70);
[$reqGold, $reqRice] = $this->getCost(); [$reqGold, $reqRice] = $this->getCost();
$general->increaseInheritancePoint('active_action', 0.5);//NOTE: 첩보만 예외!
$general->increaseVarWithLimit('gold', -$reqGold, 0); $general->increaseVarWithLimit('gold', -$reqGold, 0);
$general->increaseVarWithLimit('rice', -$reqRice, 0); $general->increaseVarWithLimit('rice', -$reqRice, 0);
$general->addExperience($exp); $general->addExperience($exp);
+5 -1
View File
@@ -223,9 +223,13 @@ class che_출병 extends Command\GeneralCommand
$this->destCity['term'] = 3; $this->destCity['term'] = 3;
$general->addDex($general->getCrewTypeObj(), $general->getVar('crew') / 100); $general->addDex($general->getCrewTypeObj(), $general->getVar('crew') / 100);
if($general->getVar('crew') > 500 && $general->getVar('train') * $general->getVar('atmos') > 70 * 70){
//500명 이상, 모훈출, 모사출
$general->increaseInheritancePoint('active_action', 1);
}
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->applyDB($db); $general->applyDB($db);
processWar($general, $this->nation, $this->destCity); processWar($general, $this->nation, $this->destCity);
+1
View File
@@ -101,6 +101,7 @@ class che_하야 extends Command\GeneralCommand{
$general->setVar('officer_city', 0); $general->setVar('officer_city', 0);
$general->setVar('belong', 0); $general->setVar('belong', 0);
$general->setVar('makelimit', 12); $general->setVar('makelimit', 12);
$general->increaseInheritancePoint('active_action', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
+1
View File
@@ -199,6 +199,7 @@ class che_감축 extends Command\NationCommand{
$logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} <G><b>{$destCityName}</b></>{$josaUl} <M>감축</>하였습니다."); $logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} <G><b>{$destCityName}</b></>{$josaUl} <M>감축</>하였습니다.");
$logger->pushGlobalHistoryLog("<M><b>【감축】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>감축</>하였습니다."); $logger->pushGlobalHistoryLog("<M><b>【감축】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>감축</>하였습니다.");
$general->increaseInheritancePoint('active_action', 1);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
$general->applyDB($db); $general->applyDB($db);
@@ -146,6 +146,7 @@ class che_국기변경 extends Command\NationCommand
$logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} <span style='color:{$color};'><b>국기</b></span>를 변경하였습니다"); $logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} <span style='color:{$color};'><b>국기</b></span>를 변경하였습니다");
$logger->pushGlobalHistoryLog("<S><b>【국기변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} <span style='color:{$color};'><b>국기</b></span>를 변경하였습니다."); $logger->pushGlobalHistoryLog("<S><b>【국기변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} <span style='color:{$color};'><b>국기</b></span>를 변경하였습니다.");
$general->increaseInheritancePoint('active_action', 1);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -152,6 +152,7 @@ class che_국호변경 extends Command\NationCommand
$logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다."); $logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다.");
$logger->pushGlobalHistoryLog("<S><b>【국호변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다."); $logger->pushGlobalHistoryLog("<S><b>【국호변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다.");
$general->increaseInheritancePoint('active_action', 1);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+1
View File
@@ -162,6 +162,7 @@ class che_증축 extends Command\NationCommand{
$general->addExperience(5 * ($this->getPreReqTurn() + 1)); $general->addExperience(5 * ($this->getPreReqTurn() + 1));
$general->addDedication(5 * ($this->getPreReqTurn() + 1)); $general->addDedication(5 * ($this->getPreReqTurn() + 1));
$general->increaseInheritancePoint('active_action', 1);
$josaUl = JosaUtil::pick($destCityName, '을'); $josaUl = JosaUtil::pick($destCityName, '을');
$josaYi = JosaUtil::pick($generalName, '이'); $josaYi = JosaUtil::pick($generalName, '이');
+1
View File
@@ -218,6 +218,7 @@ class che_천도 extends Command\NationCommand
'capset' => $db->sqleval('capset + 1'), 'capset' => $db->sqleval('capset + 1'),
], 'nation=%i', $nationID); ], 'nation=%i', $nationID);
$general->increaseInheritancePoint('active_action', 1);
$logger->pushGeneralActionLog("<G><b>{$destCityName}</b></>{$josaRo} 천도했습니다. <1>$date</>"); $logger->pushGeneralActionLog("<G><b>{$destCityName}</b></>{$josaRo} 천도했습니다. <1>$date</>");
$logger->pushGeneralHistoryLog("<G><b>{$destCityName}</b></>{$josaRo} <M>천도</>명령"); $logger->pushGeneralHistoryLog("<G><b>{$destCityName}</b></>{$josaRo} <M>천도</>명령");
$logger->pushNationalHistoryLog("<Y>{$generalName}</>{$josaYi} <G><b>{$destCityName}</b></>{$josaRo} <M>천도</> 명령"); $logger->pushNationalHistoryLog("<Y>{$generalName}</>{$josaYi} <G><b>{$destCityName}</b></>{$josaRo} <M>천도</> 명령");
@@ -184,6 +184,7 @@ class che_초토화 extends Command\NationCommand{
\sammo\refreshNationStaticInfo(); \sammo\refreshNationStaticInfo();
\sammo\SetNationFront($nationID); \sammo\SetNationFront($nationID);
$general->increaseInheritancePoint('active_action', 1);
$logger->pushGeneralActionLog("<G><b>{$destCityName}</b></>{$josaUl} 초토화했습니다. <1>$date</>"); $logger->pushGeneralActionLog("<G><b>{$destCityName}</b></>{$josaUl} 초토화했습니다. <1>$date</>");
$logger->pushGeneralHistoryLog("<G><b>{$destCityName}</b></>{$josaUl} <M>초토화</> 명령"); $logger->pushGeneralHistoryLog("<G><b>{$destCityName}</b></>{$josaUl} <M>초토화</> 명령");
$logger->pushNationalHistoryLog("<Y>{$generalName}</>{$josaYi} <G><b>{$destCityName}</b></>{$josaUl} <M>초토화</> 명령"); $logger->pushNationalHistoryLog("<Y>{$generalName}</>{$josaYi} <G><b>{$destCityName}</b></>{$josaUl} <M>초토화</> 명령");
@@ -132,6 +132,7 @@ class che_피장파장 extends Command\NationCommand{
$nextTerm = Util::round(sqrt($genCount*2)*10); $nextTerm = Util::round(sqrt($genCount*2)*10);
$nextTerm = $this->generalObj->onCalcStrategic($this->getName(), 'delay', $nextTerm); $nextTerm = $this->generalObj->onCalcStrategic($this->getName(), 'delay', $nextTerm);
$nextTerm = Util::valueFit($nextTerm, Util::round(static::$delayCnt * 1.2));
return $nextTerm; return $nextTerm;
} }
+10 -3
View File
@@ -195,14 +195,21 @@ class GameConstBase
'che_은둔', 'None' 'che_은둔', 'None'
]; ];
public static $inheritBornSpecialPoint = 12000; public static $maxUniqueItemLimit = [
[-1, 1],
[3, 2],
[10, 3],
[20, 4]
];
public static $inheritBornSpecialPoint = 6000;
public static $inheritBornTurntimePoint = 3000; public static $inheritBornTurntimePoint = 3000;
public static $inheritBornCityPoint = 1000; public static $inheritBornCityPoint = 1000;
public static $inheritBornStatPoint = 1000; public static $inheritBornStatPoint = 1000;
public static $inheritItemUniqueMinPoint = 5000; public static $inheritItemUniqueMinPoint = 5000;
public static $inheritItemRandomPoint = 3000; public static $inheritItemRandomPoint = 3000;
public static $inheritBuffPoints = [0, 250, 750, 1500, 2500, 3750]; public static $inheritBuffPoints = [0, 200, 600, 1200, 2000, 3000];
public static $inheritSpecificSpecialPoint = 5000; public static $inheritSpecificSpecialPoint = 4000;
public static $inheritResetAttrPointBase = [1000, 1000, 2000, 3000];//필요하면 늘려서 쓰기 public static $inheritResetAttrPointBase = [1000, 1000, 2000, 3000];//필요하면 늘려서 쓰기
public static $allItems = [ public static $allItems = [
+2 -1
View File
@@ -58,7 +58,8 @@ class General implements iAction
'lived_month' => [true, 1, '생존'], 'lived_month' => [true, 1, '생존'],
'max_belong' => [false, 10, '최대 임관년 수'], 'max_belong' => [false, 10, '최대 임관년 수'],
'max_domestic_critical' => [true, 1, '최대 연속 내정 성공'], 'max_domestic_critical' => [true, 1, '최대 연속 내정 성공'],
'snipe_combat' => [true, 10, '병종 상성 우위 횟수'], 'active_action' => [true, 3, '능동 행동 수'],
//'snipe_combat' => [true, 10, '병종 상성 우위 횟수'],
'combat' => [['rank', 'warnum'], 5, '전투 횟수'], 'combat' => [['rank', 'warnum'], 5, '전투 횟수'],
'sabotage' => [['rank', 'firenum'], 20, '계략 성공 횟수'], 'sabotage' => [['rank', 'firenum'], 20, '계략 성공 횟수'],
'unifier' => [true, 1, '천통 기여'], 'unifier' => [true, 1, '천통 기여'],
+98 -40
View File
@@ -116,19 +116,19 @@ class GeneralAI
$nationStor = KVStorage::getStorage($db, $this->nation['nation'], 'nation_env'); $nationStor = KVStorage::getStorage($db, $this->nation['nation'], 'nation_env');
$nationStor->cacheValues(['npc_nation_policy', 'npc_general_policy', 'prev_income_gold', 'prev_income_rice']); $nationStor->cacheValues(['npc_nation_policy', 'npc_general_policy', 'prev_income_gold', 'prev_income_rice']);
$this->nationPolicy = new AutorunNationPolicy($general, $this->env['autorun_user']['options'], $nationStor->getValue('npc_nation_policy'), $gameStor->getValue('npc_nation_policy'), $this->nation, $this->env); $this->nationPolicy = new AutorunNationPolicy($general, $this->env['autorun_user']['options']??null, $nationStor->getValue('npc_nation_policy'), $gameStor->getValue('npc_nation_policy'), $this->nation, $this->env);
$this->generalPolicy = new AutorunGeneralPolicy($general, $this->env['autorun_user']['options'], $nationStor->getValue('npc_general_policy'), $gameStor->getValue('npc_general_policy'), $this->nation, $this->env); $this->generalPolicy = new AutorunGeneralPolicy($general, $this->env['autorun_user']['options']??null, $nationStor->getValue('npc_general_policy'), $gameStor->getValue('npc_general_policy'), $this->nation, $this->env);
$prevIncomeGold = $nationStor->prev_income_gold ?? 1000; $prevIncomeGold = $nationStor->prev_income_gold ?? 1000;
$prevIncomeRice = $nationStor->prev_income_rice ?? 1000; $prevIncomeRice = $nationStor->prev_income_rice ?? 1000;
$this->maxResourceActionAmount = Util::round(max( $this->maxResourceActionAmount = Util::valueFit(Util::round(max(
$this->nationPolicy->minimumResourceActionAmount, $this->nationPolicy->minimumResourceActionAmount,
$prevIncomeGold / 10, $prevIncomeGold / 10,
$prevIncomeRice / 10, $prevIncomeRice / 10,
$this->nation['gold'] / 5, $this->nation['gold'] / 5,
$this->nation['rice'] / 5, $this->nation['rice'] / 5,
($this->env['year'] - $this->env['startyear'] - 3) * 1000 ($this->env['year'] - $this->env['startyear'] - 3) * 1000
), -2); ), -2), null, $this->nationPolicy->maximumResourceActionAmount);
if ($this->maxResourceActionAmount > GameConst::$maxResourceActionAmount) { if ($this->maxResourceActionAmount > GameConst::$maxResourceActionAmount) {
$this->maxResourceActionAmount = GameConst::$maxResourceActionAmount; $this->maxResourceActionAmount = GameConst::$maxResourceActionAmount;
} }
@@ -2091,7 +2091,7 @@ class GeneralAI
$cmdList = []; $cmdList = [];
if ($nation['rice'] < GameConst::$baserice) { if (($nation['rice'] < GameConst::$baserice) && Util::randBool(0.3)) {
return null; return null;
} }
@@ -2226,7 +2226,7 @@ class GeneralAI
$city = $this->city; $city = $this->city;
$nation = $this->nation; $nation = $this->nation;
if ($nation['rice'] < GameConst::$baserice) { if (($nation['rice'] < GameConst::$baserice) && Util::randBool(0.3)) {
return null; return null;
} }
@@ -2665,7 +2665,7 @@ class GeneralAI
$city = $this->city; $city = $this->city;
$nation = $this->nation; $nation = $this->nation;
if ($nation['rice'] < GameConst::$baserice) { if (($nation['rice'] < GameConst::$baserice) && Util::randBool(0.7)) {
return null; return null;
} }
@@ -2938,10 +2938,6 @@ class GeneralAI
return null; return null;
} }
if ($this->nation['rice'] < GameConst::$baserice) {
return null;
}
$this->categorizeNationCities(); $this->categorizeNationCities();
$this->categorizeNationGeneral(); $this->categorizeNationGeneral();
@@ -2970,9 +2966,6 @@ class GeneralAI
protected function do내정워프(): ?GeneralCommand protected function do내정워프(): ?GeneralCommand
{ {
if ($this->nation['rice'] < GameConst::$baserice) {
return null;
}
if (($this->genType & self::t통솔장) && in_array($this->dipState, [self::d징병, self::d직전, self::d전쟁])) { if (($this->genType & self::t통솔장) && in_array($this->dipState, [self::d징병, self::d직전, self::d전쟁])) {
return null; return null;
} }
@@ -3082,7 +3075,7 @@ class GeneralAI
$general = $this->general; $general = $this->general;
$lordCities = $db->queryFirstColumn('SELECT city.city as city FROM general LEFT JOIN city ON general.city = city.city WHERE general.officer_level = 12 AND city.nation = 0'); $lordCities = $db->queryFirstColumn('SELECT city.city as city FROM general LEFT JOIN city ON general.city = city.city WHERE general.officer_level = 12 AND city.nation = 0');
$nationCities = $db->queryFirstColumn('SELECT city a FROM city WHERE nation != 0'); $nationCities = $db->queryFirstColumn('SELECT city FROM city WHERE nation != 0');
$occupiedCities = []; $occupiedCities = [];
foreach ($lordCities as $tCityId) { foreach ($lordCities as $tCityId) {
@@ -3092,38 +3085,62 @@ class GeneralAI
$occupiedCities[$tCityId] = 1; $occupiedCities[$tCityId] = 1;
} }
$movingTargetCityID = $general->getAuxVar('movingTargetCityID');
$currCityID = $general->getCityID(); $currCityID = $general->getCityID();
$targetCity = []; if($movingTargetCityID === $currCityID){
$movingTargetCityID = null;
}
else if(key_exists($movingTargetCityID, $occupiedCities)){
$movingTargetCityID = null;
}
//NOTE: 최단 거리가 현재 도시에서 '어떻게 가야' 가장 짧은지 알 수가 없으므로, 한칸 간 다음 계산하기로 if($movingTargetCityID === null){
//출발지가 정해져 있으므로, searchAllDistanceByCityList는 비효율적. //어느 도시로 갈 것인가?
foreach (array_keys(CityConst::byID($currCityID)->path) as $nearCityID) { $candidateCities = [];
if (CityConst::byID($nearCityID)->level < 4) { foreach(searchDistance($currCityID, 4) as $testCityID => $dist){
$targetCity[$nearCityID] = 0.5; if(key_exists($testCityID, $occupiedCities)){
} else if (!key_exists($nearCityID, $occupiedCities)) { continue;
$targetCity[$nearCityID] = 2;
} else {
$targetCity[$nearCityID] = 0;
}
$distanceFrom = searchDistance($nearCityID, 4, true);
foreach ($distanceFrom as $distance => $distCities) {
foreach ($distCities as $distCity) {
if (key_exists($distCity, $occupiedCities)) {
continue;
}
if (CityConst::byID($distCity)->level < 4) {
continue;
}
$targetCity[$nearCityID] += 1 / (2 ** $distance);
} }
$cityLevel = CityConst::byID($testCityID)->level;
if ($cityLevel < 5 || 6 < $cityLevel) {
continue;
}
$candidateCities[] = [$testCityID, 1 / pow(2, $dist)];
} }
if(!$candidateCities){
return null;
}
$movingTargetCityID = Util::choiceRandomUsingWeightPair($candidateCities);
$general->setAuxVar('movingTargetCityID', $movingTargetCityID);
}
if($movingTargetCityID == $currCityID){
return buildGeneralCommandClass('che_인재탐색', $general, $this->env);
}
$distMap = searchDistance($movingTargetCityID, 99);
$targetDistance = $distMap[$currCityID];
$candidateCities = [];
foreach (array_keys(CityConst::byID($currCityID)->path) as $nearCityID) {
$cityLevel = CityConst::byID($nearCityID)->level;
if(5 <= $cityLevel && $cityLevel <= 6 && !key_exists($nearCityID, $occupiedCities)){
//바로 옆 도시로 이동하면 건국 가능하다면? 가보자
$candidateCities[] = [$nearCityID, 10];
}
if($distMap[$nearCityID] + 1 == $targetDistance){
$candidateCities[] = [$nearCityID, 1];
}
}
if(!$candidateCities){
return null;
} }
$cmd = buildGeneralCommandClass('che_이동', $general, $this->env, [ $cmd = buildGeneralCommandClass('che_이동', $general, $this->env, [
'destCityID' => Util::choiceRandomUsingWeight($targetCity) 'destCityID' => Util::choiceRandomUsingWeightPair($candidateCities)
]); ]);
if (!$cmd->hasFullConditionMet()) { if (!$cmd->hasFullConditionMet()) {
return null; return null;
@@ -3146,6 +3163,43 @@ class GeneralAI
return null; return null;
} }
$currentCityLevel = CityConst::byID($general->getCityID())->level;
if (($currentCityLevel < 5 || 6 < $currentCityLevel) && Util::randBool(0.5)){
return null;
}
$db = DB::db();
$lordCities = $db->queryFirstColumn('SELECT city.city as city FROM general LEFT JOIN city ON general.city = city.city WHERE general.officer_level = 12 AND city.nation = 0');
$nationCities = $db->queryFirstColumn('SELECT city FROM city WHERE nation != 0');
$occupiedCities = [];
foreach ($lordCities as $tCityId) {
$occupiedCities[$tCityId] = 2;
}
foreach ($nationCities as $tCityId) {
$occupiedCities[$tCityId] = 1;
}
$availableNearCity = false;
foreach(searchDistance($general->getCityID(), 3) as $targetCityID => $dist){
if(key_exists($targetCityID, $occupiedCities)){
continue;
}
$cityLevel = CityConst::byID($targetCityID)->level;
if($cityLevel < 5 || 6 < $cityLevel){
continue;
}
if($dist == 3 && Util::randBool()){
continue;
}
$availableNearCity = true;
break;
}
if(!$availableNearCity){
return null;
}
$prop = Util::randF() * (GameConst::$defaultStatNPCMax + GameConst::$chiefStatMin) / 2; $prop = Util::randF() * (GameConst::$defaultStatNPCMax + GameConst::$chiefStatMin) / 2;
$ratio = ($this->fullLeadership + $this->fullStrength + $this->fullIntel) / 3; $ratio = ($this->fullLeadership + $this->fullStrength + $this->fullIntel) / 3;
@@ -3156,7 +3210,7 @@ class GeneralAI
//XXX: 건국기한 2년 //XXX: 건국기한 2년
$more = Util::valueFit(3 - $this->env['year'] + $this->env['init_year'], 1, 3); $more = Util::valueFit(3 - $this->env['year'] + $this->env['init_year'], 1, 3);
if (!Util::randBool(0.005 * $more)) { if (!Util::randBool(0.0075 * $more)) {
return null; return null;
} }
@@ -3175,6 +3229,8 @@ class GeneralAI
return null; return null;
} }
$this->general->setAuxVar('movingTargetCityID', null);
return $cmd; return $cmd;
} }
@@ -3191,6 +3247,8 @@ class GeneralAI
return null; return null;
} }
$this->general->setAuxVar('movingTargetCityID', null);
return $cmd; return $cmd;
} }
+1 -1
View File
@@ -128,7 +128,7 @@ class ResetHelper{
} }
} }
opcache_reset(); //opcache_reset();
$gameStor = KVStorage::getStorage($db, 'game_env'); $gameStor = KVStorage::getStorage($db, 'game_env');
$gameStor->resetValues(); $gameStor->resetValues();
+21 -1
View File
@@ -238,6 +238,7 @@ class TurnExecutionHelper
$turnObj = new static($general); $turnObj = new static($general);
$env = $gameStor->getAll(true); $env = $gameStor->getAll(true);
[$startYear, $year, $month, $turnterm] = $gameStor->getValuesAsArray(['startyear', 'year', 'month', 'turnterm']);
$hasNationTurn = false; $hasNationTurn = false;
if ($general->getVar('nation') != 0 && $general->getVar('officer_level') >= 5) { if ($general->getVar('nation') != 0 && $general->getVar('officer_level') >= 5) {
@@ -263,13 +264,22 @@ class TurnExecutionHelper
$turnObj->preprocessCommand($env); $turnObj->preprocessCommand($env);
if ($general->getNPCType() >= 2 || ($autorun_user['limit_minutes'] ?? false)) { if ($general->getNPCType() >= 2){
$ai = new GeneralAI($turnObj->getGeneral()); $ai = new GeneralAI($turnObj->getGeneral());
} else {
$limitYearMonth = $general->getAuxVar('autorun_limit')??Util::joinYearMonth($year-2, $month);
if(Util::joinYearMonth($year, $month) < $limitYearMonth){
$ai = new GeneralAI($turnObj->getGeneral());
}
} }
$hasReservedTurn = false;
if (!$turnObj->processBlocked()) { if (!$turnObj->processBlocked()) {
if ($hasNationTurn) { if ($hasNationTurn) {
if (!($nationCommandObj instanceof Command\Nation\휴식)) {
$hasReservedTurn = true;
}
if ($ai && ($general->getAuxVar('use_auto_nation_turn') ?? 1)) { if ($ai && ($general->getAuxVar('use_auto_nation_turn') ?? 1)) {
$nationCommandObj = $ai->chooseNationTurn($nationCommandObj); $nationCommandObj = $ai->chooseNationTurn($nationCommandObj);
$cityName = CityConst::byID($general->getCityID())->name; $cityName = CityConst::byID($general->getCityID())->name;
@@ -283,6 +293,9 @@ class TurnExecutionHelper
} }
$generalCommandObj = $general->getReservedTurn(0, $env); $generalCommandObj = $general->getReservedTurn(0, $env);
if (!($generalCommandObj instanceof Command\General\휴식)) {
$hasReservedTurn = true;
}
if ($ai) { if ($ai) {
$newGeneralCommandObj = $ai->chooseGeneralTurn($generalCommandObj); // npc AI 처리 $newGeneralCommandObj = $ai->chooseGeneralTurn($generalCommandObj); // npc AI 처리
@@ -302,6 +315,13 @@ class TurnExecutionHelper
$currentTurn = $general->getTurnTime(); $currentTurn = $general->getTurnTime();
$general->increaseVarWithLimit('myset', 3, null, 9); $general->increaseVarWithLimit('myset', 3, null, 9);
if(($autorun_user['limit_minutes']??false) && $general->getNPCType() < 2 && $hasReservedTurn){
$autorun_limit = Util::joinYearMonth($year, $month);
$autorun_limit += intdiv($autorun_user['limit_minutes'], $turnterm);
$general->setAuxVar('autorun_limit', $autorun_limit);
}
$turnObj->updateTurnTime(); $turnObj->updateTurnTime();
$turnObj->applyDB(); $turnObj->applyDB();
} }
+7 -1
View File
@@ -157,7 +157,13 @@ class WarUnitGeneral extends WarUnit
$general->increaseRankVar('occupied', 1); $general->increaseRankVar('occupied', 1);
} }
$general->multiplyVarWithLimit('atmos', 1.1, null, GameConst::$maxAtmosByWar); if($this->isAttacker()){
$general->multiplyVarWithLimit('atmos', 1.1, null, GameConst::$maxAtmosByWar);
}
else{
$general->multiplyVarWithLimit('atmos', 1.05, null, GameConst::$maxAtmosByWar);
}
$this->addStatExp(1); $this->addStatExp(1);
} }
+8
View File
@@ -154,6 +154,14 @@
title="포상/몰수/헌납/삼/팜 최소 단위" title="포상/몰수/헌납/삼/팜 최소 단위"
>연산결과가 단위보다 적다면 수행하지 않습니다.</NumberInputWithInfo >연산결과가 단위보다 적다면 수행하지 않습니다.</NumberInputWithInfo
> >
</div>
<div class="col">
<NumberInputWithInfo
v-model="nationPolicy.maximumResourceActionAmount"
:step="100"
title="포상/몰수/헌납/삼/팜 최대 단위"
>연산결과가 단위보다 크다면, 값에 맞춥니다.</NumberInputWithInfo
>
</div> </div>
<div class="col"> <div class="col">
<NumberInputWithInfo <NumberInputWithInfo
+1
View File
@@ -125,6 +125,7 @@ export type NationPolicy = {
reqNPCDevelGold: number, reqNPCDevelGold: number,
reqNPCDevelRice: number, reqNPCDevelRice: number,
minimumResourceActionAmount: number, minimumResourceActionAmount: number,
maximumResourceActionAmount: number,
minNPCWarLeadership: number, minNPCWarLeadership: number,
minWarCrew: number, minWarCrew: number,
minNPCRecruitCityPopulation: number, minNPCRecruitCityPopulation: number,
+8 -3
View File
@@ -272,7 +272,8 @@ type InheritanceType =
| "lived_month" | "lived_month"
| "max_belong" | "max_belong"
| "max_domestic_critical" | "max_domestic_critical"
| "snipe_combat" | "active_action"
// | "snipe_combat"
| "combat" | "combat"
| "sabotage" | "sabotage"
| "unifier" | "unifier"
@@ -320,10 +321,14 @@ const inheritanceViewText: Record<
title: "최대 연속 내정 성공", title: "최대 연속 내정 성공",
info: "성공한 내정 중 최대 연속값입니다.", info: "성공한 내정 중 최대 연속값입니다.",
}, },
snipe_combat: { active_action: {
title: "능동 행동 수",
info: "장수 동향에 본인의 이름이 직접 나타난 수입니다.<br>일부 사령턴은 제외됩니다."
},
/* snipe_combat: {
title: "병종 상성 우위 횟수", title: "병종 상성 우위 횟수",
info: "유리한 상성을 가지고 전투했습니다.", info: "유리한 상성을 가지고 전투했습니다.",
}, },*/
combat: { combat: {
title: "전투 횟수", title: "전투 횟수",
info: "전투 횟수입니다.", info: "전투 횟수입니다.",
+18 -7
View File
@@ -13,6 +13,8 @@ import './msg.ts';
import './map.ts'; import './map.ts';
import { exportWindow } from './util/exportWindow'; import { exportWindow } from './util/exportWindow';
import {stringifyUrl} from 'query-string'; import {stringifyUrl} from 'query-string';
import { joinYearMonth } from './util/joinYearMonth';
import { parseYearMonth } from './util/parseYearMonth';
exportWindow($, '$'); exportWindow($, '$');
type TurnArg = { type TurnArg = {
@@ -33,6 +35,7 @@ type ReservedTurnResponse = {
month: number, month: number,
date: string, date: string,
turn: TurnItem[], turn: TurnItem[],
autorun_limit: number|null,
} }
$(function ($) { $(function ($) {
@@ -65,10 +68,12 @@ $(function ($) {
const turnTime = parseTime(data.turnTime); const turnTime = parseTime(data.turnTime);
let nextTurnTime = new Date(turnTime); let nextTurnTime = new Date(turnTime);
let year = data.year; let nowYearMonth = joinYearMonth(data.year, data.month);
let month = data.month; const autorunLimitYearMonth = data.autorun_limit ?? nowYearMonth - 1;
const [autorunLimitYear, autorunLimitMonth] = parseYearMonth(autorunLimitYearMonth);
for (const [turnIdx, turnInfo] of Object.entries(data.turn)) { for (const [turnIdx, turnInfo] of Object.entries(data.turn)) {
const [year, month] = parseYearMonth(nowYearMonth);
const $tr = $(`#command_${turnIdx}`); const $tr = $(`#command_${turnIdx}`);
$tr.find('.time_pad').text(formatTime(nextTurnTime, 'HH:mm')); $tr.find('.time_pad').text(formatTime(nextTurnTime, 'HH:mm'));
@@ -76,6 +81,16 @@ $(function ($) {
const $turn_pad = $tr.find('.turn_pad'); const $turn_pad = $tr.find('.turn_pad');
const $turn_text = $turn_pad.find('.turn_text'); const $turn_text = $turn_pad.find('.turn_text');
$turn_text.text(turnInfo.brief).css('font-size', '13px'); $turn_text.text(turnInfo.brief).css('font-size', '13px');
if(nowYearMonth <= autorunLimitYearMonth){
const brief = turnInfo.brief != '휴식'? turnInfo.brief :'휴식<small>(자율 행동)</small>';
const autorunTooltip = `<span class="obj_tooltip" data-toggle="tooltip" data-placement="top"
><span style='color:#aaffff;'>${brief}</span
><span class="tooltiptext">자율 행동 기간: ${autorunLimitYear}${autorunLimitMonth}월까지</span
></span>`;
$turn_text.html(autorunTooltip);
initTooltip($turn_text);
}
const oWidth = unwrap($turn_pad.innerWidth()); const oWidth = unwrap($turn_pad.innerWidth());
const iWidth = unwrap($turn_text.outerWidth()); const iWidth = unwrap($turn_text.outerWidth());
@@ -85,11 +100,7 @@ $(function ($) {
} }
nextTurnTime = addMinutes(nextTurnTime, data.turnTerm); nextTurnTime = addMinutes(nextTurnTime, data.turnTerm);
month += 1; nowYearMonth += 1;
if (month >= 13) {
year += 1;
month -= 12;
}
} }
console.log(data); console.log(data);
+3
View File
@@ -0,0 +1,3 @@
export function joinYearMonth(year: number, month: number): number {
return year * 12 + month - 1;
}
+3
View File
@@ -0,0 +1,3 @@
export function parseYearMonth(yearMonth: number): [number, number] {
return [(yearMonth / 12) | 0, yearMonth % 12 + 1];
}
+2 -2
View File
@@ -63,8 +63,8 @@ if ($currentNationPolicy['reqHumanWarUrgentRice'] ?? 0) {
if ($currentNationPolicy['reqHumanWarUrgentGold'] ?? 0) { if ($currentNationPolicy['reqHumanWarUrgentGold'] ?? 0) {
$autoPolicyVariable['reqHumanWarUrgentGold'] = $currentNationPolicy['reqHumanWarUrgentGold']; $autoPolicyVariable['reqHumanWarUrgentGold'] = $currentNationPolicy['reqHumanWarUrgentGold'];
} }
$autoPolicy = new AutorunNationPolicy($general, ($gameStor->autorun_user)['options'], ['values' => $autoPolicyVariable], null, $nation, $gameStor->getAll(true)); $autoPolicy = new AutorunNationPolicy($general, ($gameStor->autorun_user)['options']??[], ['values' => $autoPolicyVariable], null, $nation, $gameStor->getAll(true));
$zeroPolicy = new AutorunNationPolicy($general, ($gameStor->autorun_user)['options'], null, null, $nation, $gameStor->getAll(true)); $zeroPolicy = new AutorunNationPolicy($general, ($gameStor->autorun_user)['options']??[], null, null, $nation, $gameStor->getAll(true));
$lastSetters = [ $lastSetters = [
'policy' => [ 'policy' => [
+2 -2
View File
@@ -267,7 +267,7 @@ if ($server == $baseServerName) {
$storage->$server = [$target, $version]; $storage->$server = [$target, $version];
opcache_reset(); //opcache_reset();
Json::die([ Json::die([
'server' => $server, 'server' => $server,
@@ -321,7 +321,7 @@ genJS($server);
$storage->$server = [$target, $version]; $storage->$server = [$target, $version];
//ServConfig::getServerList()[$server]->closeServer(); //ServConfig::getServerList()[$server]->closeServer();
opcache_reset(); //opcache_reset();
Json::die([ Json::die([
'server' => $server, 'server' => $server,
+1 -1
View File
@@ -139,7 +139,7 @@ class LoginByToken extends LoginByID
'login_token', 'login_token',
'id = %i', $token_id 'id = %i', $token_id
); );
$nextToken = $this->addToken($token_id); $nextToken = $this->addToken($userInfo['no']);
return [ return [
'result' => true, 'result' => true,
'silent' => true, 'silent' => true,
+3 -1
View File
@@ -82,7 +82,7 @@ class DummySession extends Session
return Util::array_get($_SESSION[$name]); return Util::array_get($_SESSION[$name]);
} }
public function login(int $userID, string $userName, int $grade, bool $reqOTP, ?string $tokenValidUntil, array $acl): Session public function login(int $userID, string $userName, int $grade, bool $reqOTP, ?string $tokenValidUntil, ?int $tokenID, array $acl): Session
{ {
$this->set('userID', $userID); $this->set('userID', $userID);
$this->set('userName', $userName); $this->set('userName', $userName);
@@ -92,6 +92,7 @@ class DummySession extends Session
$this->set('acl', $acl); $this->set('acl', $acl);
$this->set('reqOTP', $reqOTP); $this->set('reqOTP', $reqOTP);
$this->set('tokenValidUntil', $tokenValidUntil); $this->set('tokenValidUntil', $tokenValidUntil);
$this->set('tokenID', $tokenID);
return $this; return $this;
} }
@@ -117,6 +118,7 @@ class DummySession extends Session
$this->set('reqOTP', null); $this->set('reqOTP', null);
$this->set('time', time()); $this->set('time', time());
$this->set('lastMsgGet', null); $this->set('lastMsgGet', null);
$this->set('tokenID', null);
return $this; return $this;
} }
+1 -1
View File
@@ -212,7 +212,7 @@ class KakaoUtil
$session->refresh_token = $refreshToken; $session->refresh_token = $refreshToken;
$session->refresh_token_expires = $refreshTokenValidUntil; $session->refresh_token_expires = $refreshTokenValidUntil;
if (!createOTPbyUserNO($userInfo['no'])) { if (!static::createOTPbyUserNO($userInfo['no'])) {
return [false, '인증 코드를 보내는데 실패했습니다.']; return [false, '인증 코드를 보내는데 실패했습니다.'];
} }
-1
View File
@@ -1 +0,0 @@
../scssphp/scssphp/bin/pscss
+72 -81
View File
@@ -29,7 +29,7 @@ private static $installed = array (
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'cf3f40b5787b2a1aed9255775143108ef5b1f278', 'reference' => '872755e57f84720a9c4c63d5455441f83c41f6c6',
'name' => 'sammo-hid/sammo', 'name' => 'sammo-hid/sammo',
), ),
'versions' => 'versions' =>
@@ -54,12 +54,12 @@ private static $installed = array (
), ),
'composer/semver' => 'composer/semver' =>
array ( array (
'pretty_version' => '3.2.5', 'pretty_version' => '3.2.6',
'version' => '3.2.5.0', 'version' => '3.2.6.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '31f3ea725711245195f62e54ffa402d8ef2fdba9', 'reference' => '83e511e247de329283478496f7a1e114c9517506',
), ),
'composer/xdebug-handler' => 'composer/xdebug-handler' =>
array ( array (
@@ -72,12 +72,12 @@ private static $installed = array (
), ),
'doctrine/inflector' => 'doctrine/inflector' =>
array ( array (
'pretty_version' => '2.0.3', 'pretty_version' => '2.0.4',
'version' => '2.0.3.0', 'version' => '2.0.4.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '9cf661f4eb38f7c881cac67c75ea9b00bf97b210', 'reference' => '8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89',
), ),
'erusev/parsedown' => 'erusev/parsedown' =>
array ( array (
@@ -135,80 +135,80 @@ private static $installed = array (
), ),
'guzzlehttp/promises' => 'guzzlehttp/promises' =>
array ( array (
'pretty_version' => '1.4.1', 'pretty_version' => '1.5.1',
'version' => '1.4.1.0', 'version' => '1.5.1.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '8e7d04f1f6450fef59366c399cfad4b9383aa30d', 'reference' => 'fe752aedc9fd8fcca3fe7ad05d419d32998a06da',
), ),
'guzzlehttp/psr7' => 'guzzlehttp/psr7' =>
array ( array (
'pretty_version' => '1.8.2', 'pretty_version' => '1.8.3',
'version' => '1.8.2.0', 'version' => '1.8.3.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'dc960a912984efb74d0a90222870c72c87f10c91', 'reference' => '1afdd860a2566ed3c2b0b4a3de6e23434a79ec85',
), ),
'illuminate/bus' => 'illuminate/bus' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '808097c0dfd893309bd77b00139586c516b965c9', 'reference' => 'be400399687b97d5558a224e970060fd5d5f2735',
), ),
'illuminate/collections' => 'illuminate/collections' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '18fa841df912ec56849351dd6ca8928e8a98b69d', 'reference' => '05f286ec5fd2dd286e8384577047efc375c8954c',
), ),
'illuminate/container' => 'illuminate/container' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '862b64ea4ab56e307a1676104a1b93295d347ad0', 'reference' => 'ef73feb5216ef97ab7023cf59c0c8dbbd5505a9d',
), ),
'illuminate/contracts' => 'illuminate/contracts' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913', 'reference' => 'e76f4bce73a2a1656add24bd5210ebc4b8af49c0',
), ),
'illuminate/database' => 'illuminate/database' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'acc11d6839ddb3b694bc6585177fa5141b70c693', 'reference' => '43c7ffb6299ae55b000b286cf1278afd268ef29f',
), ),
'illuminate/events' => 'illuminate/events' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '7def78033f29cd0c0383513b27c291d233a7f90e', 'reference' => 'b7f06cafb6c09581617f2ca05d69e9b159e5a35d',
), ),
'illuminate/macroable' => 'illuminate/macroable' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
@@ -216,8 +216,8 @@ private static $installed = array (
), ),
'illuminate/pipeline' => 'illuminate/pipeline' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
@@ -225,12 +225,12 @@ private static $installed = array (
), ),
'illuminate/support' => 'illuminate/support' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'b0a21c41163381dd9a5abbd68fe85ed7b4247d30', 'reference' => 'a8851b7001530d3c11626a81449ed9b63dd10db7',
), ),
'league/plates' => 'league/plates' =>
array ( array (
@@ -261,12 +261,12 @@ private static $installed = array (
), ),
'nesbot/carbon' => 'nesbot/carbon' =>
array ( array (
'pretty_version' => '2.53.1', 'pretty_version' => '2.54.0',
'version' => '2.53.1.0', 'version' => '2.54.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'f4655858a784988f880c1b8c7feabbf02dfdf045', 'reference' => 'eed83939f1aed3eee517d03a33f5ec587ac529b5',
), ),
'netresearch/jsonmapper' => 'netresearch/jsonmapper' =>
array ( array (
@@ -297,12 +297,12 @@ private static $installed = array (
), ),
'nette/utils' => 'nette/utils' =>
array ( array (
'pretty_version' => 'v3.2.2', 'pretty_version' => 'v3.2.5',
'version' => '3.2.2.0', 'version' => '3.2.5.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '967cfc4f9a1acd5f1058d76715a424c53343c20c', 'reference' => '9cd80396ca58d7969ab44fc7afcf03624dfa526e',
), ),
'pguardiario/phpuri' => 'pguardiario/phpuri' =>
array ( array (
@@ -351,30 +351,30 @@ private static $installed = array (
), ),
'phpdocumentor/reflection-docblock' => 'phpdocumentor/reflection-docblock' =>
array ( array (
'pretty_version' => '5.2.2', 'pretty_version' => '5.3.0',
'version' => '5.2.2.0', 'version' => '5.3.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556', 'reference' => '622548b623e81ca6d78b721c5e029f4ce664f170',
), ),
'phpdocumentor/type-resolver' => 'phpdocumentor/type-resolver' =>
array ( array (
'pretty_version' => '1.4.0', 'pretty_version' => '1.5.1',
'version' => '1.4.0.0', 'version' => '1.5.1.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0', 'reference' => 'a12f7e301eb7258bb68acd89d4aefa05c2906cae',
), ),
'psr/container' => 'psr/container' =>
array ( array (
'pretty_version' => '1.1.1', 'pretty_version' => '1.1.2',
'version' => '1.1.1.0', 'version' => '1.1.2.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea',
), ),
'psr/container-implementation' => 'psr/container-implementation' =>
array ( array (
@@ -436,12 +436,12 @@ private static $installed = array (
), ),
'sabre/event' => 'sabre/event' =>
array ( array (
'pretty_version' => '5.1.2', 'pretty_version' => '5.1.4',
'version' => '5.1.2.0', 'version' => '5.1.4.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'c120bec57c17b6251a496efc82b732418b49d50a', 'reference' => 'd7da22897125d34d7eddf7977758191c06a74497',
), ),
'sammo-hid/sammo' => 'sammo-hid/sammo' =>
array ( array (
@@ -450,16 +450,7 @@ private static $installed = array (
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'cf3f40b5787b2a1aed9255775143108ef5b1f278', 'reference' => '872755e57f84720a9c4c63d5455441f83c41f6c6',
),
'scssphp/scssphp' =>
array (
'pretty_version' => 'v1.6.0',
'version' => '1.6.0.0',
'aliases' =>
array (
),
'reference' => 'b83594e2323c5d6e80785df3f91b9d1d32aad530',
), ),
'sergeytsalkov/meekrodb' => 'sergeytsalkov/meekrodb' =>
array ( array (
@@ -472,12 +463,12 @@ private static $installed = array (
), ),
'symfony/console' => 'symfony/console' =>
array ( array (
'pretty_version' => 'v5.3.6', 'pretty_version' => 'v5.3.10',
'version' => '5.3.6.0', 'version' => '5.3.10.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '51b71afd6d2dc8f5063199357b9880cea8d8bfe2', 'reference' => 'd4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3',
), ),
'symfony/deprecation-contracts' => 'symfony/deprecation-contracts' =>
array ( array (
@@ -490,12 +481,12 @@ private static $installed = array (
), ),
'symfony/lock' => 'symfony/lock' =>
array ( array (
'pretty_version' => 'v4.4.27', 'pretty_version' => 'v4.4.33',
'version' => '4.4.27.0', 'version' => '4.4.33.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '6ca476d4ac992802f2a4043929f68f1818449486', 'reference' => '567d29b1bc6e3937652054dafc069151d17824a9',
), ),
'symfony/polyfill-ctype' => 'symfony/polyfill-ctype' =>
array ( array (
@@ -580,21 +571,21 @@ private static $installed = array (
), ),
'symfony/string' => 'symfony/string' =>
array ( array (
'pretty_version' => 'v5.3.3', 'pretty_version' => 'v5.3.10',
'version' => '5.3.3.0', 'version' => '5.3.10.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1', 'reference' => 'd70c35bb20bbca71fc4ab7921e3c6bda1a82a60c',
), ),
'symfony/translation' => 'symfony/translation' =>
array ( array (
'pretty_version' => 'v5.3.7', 'pretty_version' => 'v5.3.10',
'version' => '5.3.7.0', 'version' => '5.3.10.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '4d595a6d15fd3a2c67f6f31d14d15d3b7356d7a6', 'reference' => '6ef197aea2ac8b9cd63e0da7522b3771714035aa',
), ),
'symfony/translation-contracts' => 'symfony/translation-contracts' =>
array ( array (
@@ -614,12 +605,12 @@ private static $installed = array (
), ),
'tysonandre/var_representation_polyfill' => 'tysonandre/var_representation_polyfill' =>
array ( array (
'pretty_version' => '0.0.2', 'pretty_version' => '0.1.1',
'version' => '0.0.2.0', 'version' => '0.1.1.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '3f17999ee1f257319ddc6721dd26ebbc5d175f33', 'reference' => '0a942e74e18af5514749895507bc6ca7ab96399a',
), ),
'vlucas/valitron' => 'vlucas/valitron' =>
array ( array (
+1
View File
@@ -108,6 +108,7 @@ return array(
'Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', 'Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php',
'Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', 'Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', 'Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php',
'Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php',
'Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', 'Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', 'Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php',
'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
-1
View File
@@ -27,7 +27,6 @@ return array(
'Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), 'Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'),
'Symfony\\Component\\Lock\\' => array($vendorDir . '/symfony/lock'), 'Symfony\\Component\\Lock\\' => array($vendorDir . '/symfony/lock'),
'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), 'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'),
'ScssPhp\\ScssPhp\\' => array($vendorDir . '/scssphp/scssphp/src'),
'Sabre\\Event\\' => array($vendorDir . '/sabre/event/lib'), 'Sabre\\Event\\' => array($vendorDir . '/sabre/event/lib'),
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
+1 -5
View File
@@ -76,7 +76,6 @@ class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a
'Symfony\\Component\\String\\' => 25, 'Symfony\\Component\\String\\' => 25,
'Symfony\\Component\\Lock\\' => 23, 'Symfony\\Component\\Lock\\' => 23,
'Symfony\\Component\\Console\\' => 26, 'Symfony\\Component\\Console\\' => 26,
'ScssPhp\\ScssPhp\\' => 16,
'Sabre\\Event\\' => 12, 'Sabre\\Event\\' => 12,
), ),
'P' => 'P' =>
@@ -218,10 +217,6 @@ class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a
array ( array (
0 => __DIR__ . '/..' . '/symfony/console', 0 => __DIR__ . '/..' . '/symfony/console',
), ),
'ScssPhp\\ScssPhp\\' =>
array (
0 => __DIR__ . '/..' . '/scssphp/scssphp/src',
),
'Sabre\\Event\\' => 'Sabre\\Event\\' =>
array ( array (
0 => __DIR__ . '/..' . '/sabre/event/lib', 0 => __DIR__ . '/..' . '/sabre/event/lib',
@@ -472,6 +467,7 @@ class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a
'Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', 'Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php',
'Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', 'Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', 'Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php',
'Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php',
'Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', 'Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php',
'Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', 'Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php',
'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
+236 -246
View File
@@ -118,17 +118,17 @@
}, },
{ {
"name": "composer/semver", "name": "composer/semver",
"version": "3.2.5", "version": "3.2.6",
"version_normalized": "3.2.5.0", "version_normalized": "3.2.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/semver.git", "url": "https://github.com/composer/semver.git",
"reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9" "reference": "83e511e247de329283478496f7a1e114c9517506"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9", "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506",
"reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9", "reference": "83e511e247de329283478496f7a1e114c9517506",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -138,7 +138,7 @@
"phpstan/phpstan": "^0.12.54", "phpstan/phpstan": "^0.12.54",
"symfony/phpunit-bridge": "^4.2 || ^5" "symfony/phpunit-bridge": "^4.2 || ^5"
}, },
"time": "2021-05-24T12:41:47+00:00", "time": "2021-10-25T11:34:17+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -182,7 +182,7 @@
"support": { "support": {
"irc": "irc://irc.freenode.org/composer", "irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/semver/issues", "issues": "https://github.com/composer/semver/issues",
"source": "https://github.com/composer/semver/tree/3.2.5" "source": "https://github.com/composer/semver/tree/3.2.6"
}, },
"funding": [ "funding": [
{ {
@@ -269,36 +269,32 @@
}, },
{ {
"name": "doctrine/inflector", "name": "doctrine/inflector",
"version": "2.0.3", "version": "2.0.4",
"version_normalized": "2.0.3.0", "version_normalized": "2.0.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/inflector.git", "url": "https://github.com/doctrine/inflector.git",
"reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
"reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.2 || ^8.0" "php": "^7.2 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^7.0", "doctrine/coding-standard": "^8.2",
"phpstan/phpstan": "^0.11", "phpstan/phpstan": "^0.12",
"phpstan/phpstan-phpunit": "^0.11", "phpstan/phpstan-phpunit": "^0.12",
"phpstan/phpstan-strict-rules": "^0.11", "phpstan/phpstan-strict-rules": "^0.12",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
"vimeo/psalm": "^4.10"
}, },
"time": "2020-05-29T15:13:26+00:00", "time": "2021-10-22T20:16:43+00:00",
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@@ -347,7 +343,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/inflector/issues", "issues": "https://github.com/doctrine/inflector/issues",
"source": "https://github.com/doctrine/inflector/tree/2.0.x" "source": "https://github.com/doctrine/inflector/tree/2.0.4"
}, },
"funding": [ "funding": [
{ {
@@ -684,17 +680,17 @@
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"version": "1.4.1", "version": "1.5.1",
"version_normalized": "1.4.1.0", "version_normalized": "1.5.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
"reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -703,11 +699,11 @@
"require-dev": { "require-dev": {
"symfony/phpunit-bridge": "^4.4 || ^5.1" "symfony/phpunit-bridge": "^4.4 || ^5.1"
}, },
"time": "2021-03-07T09:25:29+00:00", "time": "2021-10-22T20:56:57+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.4-dev" "dev-master": "1.5-dev"
} }
}, },
"installation-source": "dist", "installation-source": "dist",
@@ -724,10 +720,25 @@
"MIT" "MIT"
], ],
"authors": [ "authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{ {
"name": "Michael Dowling", "name": "Michael Dowling",
"email": "mtdowling@gmail.com", "email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling" "homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
} }
], ],
"description": "Guzzle promises library", "description": "Guzzle promises library",
@@ -736,23 +747,37 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/promises/issues", "issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/1.4.1" "source": "https://github.com/guzzle/promises/tree/1.5.1"
}, },
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
"type": "tidelift"
}
],
"install-path": "../guzzlehttp/promises" "install-path": "../guzzlehttp/promises"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "1.8.2", "version": "1.8.3",
"version_normalized": "1.8.2.0", "version_normalized": "1.8.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "dc960a912984efb74d0a90222870c72c87f10c91" "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
"reference": "dc960a912984efb74d0a90222870c72c87f10c91", "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -770,7 +795,7 @@
"suggest": { "suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
}, },
"time": "2021-04-26T09:17:50+00:00", "time": "2021-10-05T13:56:00+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -791,13 +816,34 @@
"MIT" "MIT"
], ],
"authors": [ "authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{ {
"name": "Michael Dowling", "name": "Michael Dowling",
"email": "mtdowling@gmail.com", "email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling" "homepage": "https://github.com/mtdowling"
}, },
{
"name": "George Mponos",
"email": "gmponos@gmail.com",
"homepage": "https://github.com/gmponos"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://github.com/sagikazarmark"
},
{ {
"name": "Tobias Schultze", "name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion" "homepage": "https://github.com/Tobion"
} }
], ],
@@ -814,23 +860,37 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.8.2" "source": "https://github.com/guzzle/psr7/tree/1.8.3"
}, },
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
"type": "tidelift"
}
],
"install-path": "../guzzlehttp/psr7" "install-path": "../guzzlehttp/psr7"
}, },
{ {
"name": "illuminate/bus", "name": "illuminate/bus",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/bus.git", "url": "https://github.com/illuminate/bus.git",
"reference": "808097c0dfd893309bd77b00139586c516b965c9" "reference": "be400399687b97d5558a224e970060fd5d5f2735"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/bus/zipball/808097c0dfd893309bd77b00139586c516b965c9", "url": "https://api.github.com/repos/illuminate/bus/zipball/be400399687b97d5558a224e970060fd5d5f2735",
"reference": "808097c0dfd893309bd77b00139586c516b965c9", "reference": "be400399687b97d5558a224e970060fd5d5f2735",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -843,7 +903,7 @@
"suggest": { "suggest": {
"illuminate/queue": "Required to use closures when chaining jobs (^7.0)." "illuminate/queue": "Required to use closures when chaining jobs (^7.0)."
}, },
"time": "2021-08-10T16:49:48+00:00", "time": "2021-10-21T19:19:36+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -876,17 +936,17 @@
}, },
{ {
"name": "illuminate/collections", "name": "illuminate/collections",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/collections.git", "url": "https://github.com/illuminate/collections.git",
"reference": "18fa841df912ec56849351dd6ca8928e8a98b69d" "reference": "05f286ec5fd2dd286e8384577047efc375c8954c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/collections/zipball/18fa841df912ec56849351dd6ca8928e8a98b69d", "url": "https://api.github.com/repos/illuminate/collections/zipball/05f286ec5fd2dd286e8384577047efc375c8954c",
"reference": "18fa841df912ec56849351dd6ca8928e8a98b69d", "reference": "05f286ec5fd2dd286e8384577047efc375c8954c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -897,7 +957,7 @@
"suggest": { "suggest": {
"symfony/var-dumper": "Required to use the dump method (^5.1.4)." "symfony/var-dumper": "Required to use the dump method (^5.1.4)."
}, },
"time": "2021-09-08T12:48:16+00:00", "time": "2021-10-22T18:01:46+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -933,17 +993,17 @@
}, },
{ {
"name": "illuminate/container", "name": "illuminate/container",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/container.git", "url": "https://github.com/illuminate/container.git",
"reference": "862b64ea4ab56e307a1676104a1b93295d347ad0" "reference": "ef73feb5216ef97ab7023cf59c0c8dbbd5505a9d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/container/zipball/862b64ea4ab56e307a1676104a1b93295d347ad0", "url": "https://api.github.com/repos/illuminate/container/zipball/ef73feb5216ef97ab7023cf59c0c8dbbd5505a9d",
"reference": "862b64ea4ab56e307a1676104a1b93295d347ad0", "reference": "ef73feb5216ef97ab7023cf59c0c8dbbd5505a9d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -954,7 +1014,7 @@
"provide": { "provide": {
"psr/container-implementation": "1.0" "psr/container-implementation": "1.0"
}, },
"time": "2021-09-09T13:55:23+00:00", "time": "2021-09-15T14:32:50+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -987,17 +1047,17 @@
}, },
{ {
"name": "illuminate/contracts", "name": "illuminate/contracts",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/contracts.git", "url": "https://github.com/illuminate/contracts.git",
"reference": "ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913" "reference": "e76f4bce73a2a1656add24bd5210ebc4b8af49c0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913", "url": "https://api.github.com/repos/illuminate/contracts/zipball/e76f4bce73a2a1656add24bd5210ebc4b8af49c0",
"reference": "ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913", "reference": "e76f4bce73a2a1656add24bd5210ebc4b8af49c0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1005,7 +1065,7 @@
"psr/container": "^1.0", "psr/container": "^1.0",
"psr/simple-cache": "^1.0" "psr/simple-cache": "^1.0"
}, },
"time": "2021-09-08T12:09:40+00:00", "time": "2021-10-22T18:01:46+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1038,17 +1098,17 @@
}, },
{ {
"name": "illuminate/database", "name": "illuminate/database",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/database.git", "url": "https://github.com/illuminate/database.git",
"reference": "acc11d6839ddb3b694bc6585177fa5141b70c693" "reference": "43c7ffb6299ae55b000b286cf1278afd268ef29f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/database/zipball/acc11d6839ddb3b694bc6585177fa5141b70c693", "url": "https://api.github.com/repos/illuminate/database/zipball/43c7ffb6299ae55b000b286cf1278afd268ef29f",
"reference": "acc11d6839ddb3b694bc6585177fa5141b70c693", "reference": "43c7ffb6299ae55b000b286cf1278afd268ef29f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1062,7 +1122,7 @@
"symfony/console": "^5.1.4" "symfony/console": "^5.1.4"
}, },
"suggest": { "suggest": {
"doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.2).",
"fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
"illuminate/console": "Required to use the database commands (^8.0).", "illuminate/console": "Required to use the database commands (^8.0).",
"illuminate/events": "Required to use the observers with Eloquent (^8.0).", "illuminate/events": "Required to use the observers with Eloquent (^8.0).",
@@ -1070,7 +1130,7 @@
"illuminate/pagination": "Required to paginate the result set (^8.0).", "illuminate/pagination": "Required to paginate the result set (^8.0).",
"symfony/finder": "Required to use Eloquent model factories (^5.1.4)." "symfony/finder": "Required to use Eloquent model factories (^5.1.4)."
}, },
"time": "2021-09-13T18:43:43+00:00", "time": "2021-10-29T19:46:53+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1109,17 +1169,17 @@
}, },
{ {
"name": "illuminate/events", "name": "illuminate/events",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/events.git", "url": "https://github.com/illuminate/events.git",
"reference": "7def78033f29cd0c0383513b27c291d233a7f90e" "reference": "b7f06cafb6c09581617f2ca05d69e9b159e5a35d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/events/zipball/7def78033f29cd0c0383513b27c291d233a7f90e", "url": "https://api.github.com/repos/illuminate/events/zipball/b7f06cafb6c09581617f2ca05d69e9b159e5a35d",
"reference": "7def78033f29cd0c0383513b27c291d233a7f90e", "reference": "b7f06cafb6c09581617f2ca05d69e9b159e5a35d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1131,7 +1191,7 @@
"illuminate/support": "^8.0", "illuminate/support": "^8.0",
"php": "^7.3|^8.0" "php": "^7.3|^8.0"
}, },
"time": "2021-08-16T21:45:47+00:00", "time": "2021-09-15T14:32:50+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1167,8 +1227,8 @@
}, },
{ {
"name": "illuminate/macroable", "name": "illuminate/macroable",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/macroable.git", "url": "https://github.com/illuminate/macroable.git",
@@ -1216,8 +1276,8 @@
}, },
{ {
"name": "illuminate/pipeline", "name": "illuminate/pipeline",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/pipeline.git", "url": "https://github.com/illuminate/pipeline.git",
@@ -1267,17 +1327,17 @@
}, },
{ {
"name": "illuminate/support", "name": "illuminate/support",
"version": "v8.61.0", "version": "v8.69.0",
"version_normalized": "8.61.0.0", "version_normalized": "8.69.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/illuminate/support.git", "url": "https://github.com/illuminate/support.git",
"reference": "b0a21c41163381dd9a5abbd68fe85ed7b4247d30" "reference": "a8851b7001530d3c11626a81449ed9b63dd10db7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/illuminate/support/zipball/b0a21c41163381dd9a5abbd68fe85ed7b4247d30", "url": "https://api.github.com/repos/illuminate/support/zipball/a8851b7001530d3c11626a81449ed9b63dd10db7",
"reference": "b0a21c41163381dd9a5abbd68fe85ed7b4247d30", "reference": "a8851b7001530d3c11626a81449ed9b63dd10db7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1287,7 +1347,7 @@
"illuminate/collections": "^8.0", "illuminate/collections": "^8.0",
"illuminate/contracts": "^8.0", "illuminate/contracts": "^8.0",
"illuminate/macroable": "^8.0", "illuminate/macroable": "^8.0",
"nesbot/carbon": "^2.31", "nesbot/carbon": "^2.53.1",
"php": "^7.3|^8.0", "php": "^7.3|^8.0",
"voku/portable-ascii": "^1.4.8" "voku/portable-ascii": "^1.4.8"
}, },
@@ -1296,13 +1356,13 @@
}, },
"suggest": { "suggest": {
"illuminate/filesystem": "Required to use the composer class (^8.0).", "illuminate/filesystem": "Required to use the composer class (^8.0).",
"league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^1.3|^2.0).", "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^1.3|^2.0.2).",
"ramsey/uuid": "Required to use Str::uuid() (^4.0).", "ramsey/uuid": "Required to use Str::uuid() (^4.2.2).",
"symfony/process": "Required to use the composer class (^5.1.4).", "symfony/process": "Required to use the composer class (^5.1.4).",
"symfony/var-dumper": "Required to use the dd function (^5.1.4).", "symfony/var-dumper": "Required to use the dd function (^5.1.4).",
"vlucas/phpdotenv": "Required to use the Env class and env helper (^5.2)." "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.2)."
}, },
"time": "2021-09-13T18:43:43+00:00", "time": "2021-10-29T13:34:03+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1542,17 +1602,17 @@
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "2.53.1", "version": "2.54.0",
"version_normalized": "2.53.1.0", "version_normalized": "2.54.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/briannesbitt/Carbon.git", "url": "https://github.com/briannesbitt/Carbon.git",
"reference": "f4655858a784988f880c1b8c7feabbf02dfdf045" "reference": "eed83939f1aed3eee517d03a33f5ec587ac529b5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f4655858a784988f880c1b8c7feabbf02dfdf045", "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/eed83939f1aed3eee517d03a33f5ec587ac529b5",
"reference": "f4655858a784988f880c1b8c7feabbf02dfdf045", "reference": "eed83939f1aed3eee517d03a33f5ec587ac529b5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1563,6 +1623,7 @@
"symfony/translation": "^3.4 || ^4.0 || ^5.0" "symfony/translation": "^3.4 || ^4.0 || ^5.0"
}, },
"require-dev": { "require-dev": {
"doctrine/dbal": "^2.0 || ^3.0",
"doctrine/orm": "^2.7", "doctrine/orm": "^2.7",
"friendsofphp/php-cs-fixer": "^3.0", "friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0", "kylekatarnls/multi-tester": "^2.0",
@@ -1572,7 +1633,7 @@
"phpunit/phpunit": "^7.5.20 || ^8.5.14", "phpunit/phpunit": "^7.5.20 || ^8.5.14",
"squizlabs/php_codesniffer": "^3.4" "squizlabs/php_codesniffer": "^3.4"
}, },
"time": "2021-09-06T09:29:23+00:00", "time": "2021-11-01T21:22:20+00:00",
"bin": [ "bin": [
"bin/carbon" "bin/carbon"
], ],
@@ -1833,21 +1894,21 @@
}, },
{ {
"name": "nette/utils", "name": "nette/utils",
"version": "v3.2.2", "version": "v3.2.5",
"version_normalized": "3.2.2.0", "version_normalized": "3.2.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/utils.git", "url": "https://github.com/nette/utils.git",
"reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c" "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nette/utils/zipball/967cfc4f9a1acd5f1058d76715a424c53343c20c", "url": "https://api.github.com/repos/nette/utils/zipball/9cd80396ca58d7969ab44fc7afcf03624dfa526e",
"reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c", "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2 <8.1" "php": ">=7.2 <8.2"
}, },
"conflict": { "conflict": {
"nette/di": "<3.0.6" "nette/di": "<3.0.6"
@@ -1866,7 +1927,7 @@
"ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
"ext-xml": "to use Strings::length() etc. when mbstring is not available" "ext-xml": "to use Strings::length() etc. when mbstring is not available"
}, },
"time": "2021-03-03T22:53:25+00:00", "time": "2021-09-20T10:50:11+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1915,7 +1976,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/nette/utils/issues", "issues": "https://github.com/nette/utils/issues",
"source": "https://github.com/nette/utils/tree/v3.2.2" "source": "https://github.com/nette/utils/tree/v3.2.5"
}, },
"install-path": "../nette/utils" "install-path": "../nette/utils"
}, },
@@ -2176,17 +2237,17 @@
}, },
{ {
"name": "phpdocumentor/reflection-docblock", "name": "phpdocumentor/reflection-docblock",
"version": "5.2.2", "version": "5.3.0",
"version_normalized": "5.2.2.0", "version_normalized": "5.3.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2197,9 +2258,10 @@
"webmozart/assert": "^1.9.1" "webmozart/assert": "^1.9.1"
}, },
"require-dev": { "require-dev": {
"mockery/mockery": "~1.3.2" "mockery/mockery": "~1.3.2",
"psalm/phar": "^4.8"
}, },
"time": "2020-09-03T19:13:55+00:00", "time": "2021-10-19T17:43:47+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -2229,23 +2291,23 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
}, },
"install-path": "../phpdocumentor/reflection-docblock" "install-path": "../phpdocumentor/reflection-docblock"
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "1.4.0", "version": "1.5.1",
"version_normalized": "1.4.0.0", "version_normalized": "1.5.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae",
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2253,9 +2315,10 @@
"phpdocumentor/reflection-common": "^2.0" "phpdocumentor/reflection-common": "^2.0"
}, },
"require-dev": { "require-dev": {
"ext-tokenizer": "*" "ext-tokenizer": "*",
"psalm/phar": "^4.8"
}, },
"time": "2020-09-17T18:55:26+00:00", "time": "2021-10-02T14:08:47+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -2281,29 +2344,29 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues", "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1"
}, },
"install-path": "../phpdocumentor/type-resolver" "install-path": "../phpdocumentor/type-resolver"
}, },
{ {
"name": "psr/container", "name": "psr/container",
"version": "1.1.1", "version": "1.1.2",
"version_normalized": "1.1.1.0", "version_normalized": "1.1.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/container.git", "url": "https://github.com/php-fig/container.git",
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2.0" "php": ">=7.4.0"
}, },
"time": "2021-03-05T17:36:06+00:00", "time": "2021-11-05T16:50:12+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -2332,7 +2395,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/php-fig/container/issues", "issues": "https://github.com/php-fig/container/issues",
"source": "https://github.com/php-fig/container/tree/1.1.1" "source": "https://github.com/php-fig/container/tree/1.1.2"
}, },
"install-path": "../psr/container" "install-path": "../psr/container"
}, },
@@ -2541,28 +2604,28 @@
}, },
{ {
"name": "sabre/event", "name": "sabre/event",
"version": "5.1.2", "version": "5.1.4",
"version_normalized": "5.1.2.0", "version_normalized": "5.1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sabre-io/event.git", "url": "https://github.com/sabre-io/event.git",
"reference": "c120bec57c17b6251a496efc82b732418b49d50a" "reference": "d7da22897125d34d7eddf7977758191c06a74497"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sabre-io/event/zipball/c120bec57c17b6251a496efc82b732418b49d50a", "url": "https://api.github.com/repos/sabre-io/event/zipball/d7da22897125d34d7eddf7977758191c06a74497",
"reference": "c120bec57c17b6251a496efc82b732418b49d50a", "reference": "d7da22897125d34d7eddf7977758191c06a74497",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1 || ^8.0" "php": "^7.1 || ^8.0"
}, },
"require-dev": { "require-dev": {
"friendsofphp/php-cs-fixer": "~2.16.1", "friendsofphp/php-cs-fixer": "~2.17.1",
"phpstan/phpstan": "^0.12", "phpstan/phpstan": "^0.12",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.0" "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
}, },
"time": "2020-10-03T11:02:22+00:00", "time": "2021-11-04T06:51:17+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -2608,82 +2671,6 @@
}, },
"install-path": "../sabre/event" "install-path": "../sabre/event"
}, },
{
"name": "scssphp/scssphp",
"version": "v1.6.0",
"version_normalized": "1.6.0.0",
"source": {
"type": "git",
"url": "https://github.com/scssphp/scssphp.git",
"reference": "b83594e2323c5d6e80785df3f91b9d1d32aad530"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/scssphp/scssphp/zipball/b83594e2323c5d6e80785df3f91b9d1d32aad530",
"reference": "b83594e2323c5d6e80785df3f91b9d1d32aad530",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-json": "*",
"php": ">=5.6.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.4",
"phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3 || ^9.4",
"sass/sass-spec": "*",
"squizlabs/php_codesniffer": "~3.5",
"symfony/phpunit-bridge": "^5.1",
"twbs/bootstrap": "~5.0",
"twbs/bootstrap4": "4.6.0",
"zurb/foundation": "~6.5"
},
"suggest": {
"ext-iconv": "Can be used as fallback when ext-mbstring is not available",
"ext-mbstring": "For best performance, mbstring should be installed as it is faster than ext-iconv"
},
"time": "2021-07-02T16:28:10+00:00",
"bin": [
"bin/pscss"
],
"type": "library",
"installation-source": "dist",
"autoload": {
"psr-4": {
"ScssPhp\\ScssPhp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Anthon Pang",
"email": "apang@softwaredevelopment.ca",
"homepage": "https://github.com/robocoder"
},
{
"name": "Cédric Morin",
"email": "cedric@yterium.com",
"homepage": "https://github.com/Cerdic"
}
],
"description": "scssphp is a compiler for SCSS written in PHP.",
"homepage": "http://scssphp.github.io/scssphp/",
"keywords": [
"css",
"less",
"sass",
"scss",
"stylesheet"
],
"support": {
"issues": "https://github.com/scssphp/scssphp/issues",
"source": "https://github.com/scssphp/scssphp/tree/v1.6.0"
},
"install-path": "../scssphp/scssphp"
},
{ {
"name": "sergeytsalkov/meekrodb", "name": "sergeytsalkov/meekrodb",
"version": "v2.4", "version": "v2.4",
@@ -2737,17 +2724,17 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v5.3.6", "version": "v5.3.10",
"version_normalized": "5.3.6.0", "version_normalized": "5.3.10.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "51b71afd6d2dc8f5063199357b9880cea8d8bfe2" "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/51b71afd6d2dc8f5063199357b9880cea8d8bfe2", "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
"reference": "51b71afd6d2dc8f5063199357b9880cea8d8bfe2", "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2785,7 +2772,7 @@
"symfony/lock": "", "symfony/lock": "",
"symfony/process": "" "symfony/process": ""
}, },
"time": "2021-07-27T19:10:22+00:00", "time": "2021-10-26T09:30:15+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -2819,7 +2806,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v5.3.6" "source": "https://github.com/symfony/console/tree/v5.3.10"
}, },
"funding": [ "funding": [
{ {
@@ -2909,17 +2896,17 @@
}, },
{ {
"name": "symfony/lock", "name": "symfony/lock",
"version": "v4.4.27", "version": "v4.4.33",
"version_normalized": "4.4.27.0", "version_normalized": "4.4.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/lock.git", "url": "https://github.com/symfony/lock.git",
"reference": "6ca476d4ac992802f2a4043929f68f1818449486" "reference": "567d29b1bc6e3937652054dafc069151d17824a9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/lock/zipball/6ca476d4ac992802f2a4043929f68f1818449486", "url": "https://api.github.com/repos/symfony/lock/zipball/567d29b1bc6e3937652054dafc069151d17824a9",
"reference": "6ca476d4ac992802f2a4043929f68f1818449486", "reference": "567d29b1bc6e3937652054dafc069151d17824a9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2934,7 +2921,7 @@
"doctrine/dbal": "^2.6|^3.0", "doctrine/dbal": "^2.6|^3.0",
"predis/predis": "~1.0" "predis/predis": "~1.0"
}, },
"time": "2021-07-23T15:41:52+00:00", "time": "2021-10-05T20:27:01+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -2970,7 +2957,7 @@
"semaphore" "semaphore"
], ],
"support": { "support": {
"source": "https://github.com/symfony/lock/tree/v4.4.27" "source": "https://github.com/symfony/lock/tree/v4.4.33"
}, },
"funding": [ "funding": [
{ {
@@ -3745,17 +3732,17 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v5.3.3", "version": "v5.3.10",
"version_normalized": "5.3.3.0", "version_normalized": "5.3.10.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1" "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1", "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
"reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1", "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3772,7 +3759,7 @@
"symfony/translation-contracts": "^1.1|^2", "symfony/translation-contracts": "^1.1|^2",
"symfony/var-exporter": "^4.4|^5.0" "symfony/var-exporter": "^4.4|^5.0"
}, },
"time": "2021-06-27T11:44:38+00:00", "time": "2021-10-27T18:21:46+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -3811,7 +3798,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v5.3.3" "source": "https://github.com/symfony/string/tree/v5.3.10"
}, },
"funding": [ "funding": [
{ {
@@ -3831,17 +3818,17 @@
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v5.3.7", "version": "v5.3.10",
"version_normalized": "5.3.7.0", "version_normalized": "5.3.10.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "4d595a6d15fd3a2c67f6f31d14d15d3b7356d7a6" "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/4d595a6d15fd3a2c67f6f31d14d15d3b7356d7a6", "url": "https://api.github.com/repos/symfony/translation/zipball/6ef197aea2ac8b9cd63e0da7522b3771714035aa",
"reference": "4d595a6d15fd3a2c67f6f31d14d15d3b7356d7a6", "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3878,7 +3865,7 @@
"symfony/config": "", "symfony/config": "",
"symfony/yaml": "" "symfony/yaml": ""
}, },
"time": "2021-08-26T08:22:53+00:00", "time": "2021-10-10T06:43:24+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -3909,7 +3896,7 @@
"description": "Provides tools to internationalize your application", "description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/translation/tree/v5.3.7" "source": "https://github.com/symfony/translation/tree/v5.3.10"
}, },
"funding": [ "funding": [
{ {
@@ -4010,17 +3997,17 @@
}, },
{ {
"name": "tysonandre/var_representation_polyfill", "name": "tysonandre/var_representation_polyfill",
"version": "0.0.2", "version": "0.1.1",
"version_normalized": "0.0.2.0", "version_normalized": "0.1.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/TysonAndre/var_representation_polyfill.git", "url": "https://github.com/TysonAndre/var_representation_polyfill.git",
"reference": "3f17999ee1f257319ddc6721dd26ebbc5d175f33" "reference": "0a942e74e18af5514749895507bc6ca7ab96399a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/TysonAndre/var_representation_polyfill/zipball/3f17999ee1f257319ddc6721dd26ebbc5d175f33", "url": "https://api.github.com/repos/TysonAndre/var_representation_polyfill/zipball/0a942e74e18af5514749895507bc6ca7ab96399a",
"reference": "3f17999ee1f257319ddc6721dd26ebbc5d175f33", "reference": "0a942e74e18af5514749895507bc6ca7ab96399a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4031,7 +4018,10 @@
"phan/phan": "^4.0", "phan/phan": "^4.0",
"phpunit/phpunit": "^8.5.0" "phpunit/phpunit": "^8.5.0"
}, },
"time": "2021-06-26T18:55:02+00:00", "suggest": {
"ext-var_representation": "*"
},
"time": "2021-08-16T00:12:50+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
@@ -4051,14 +4041,14 @@
"name": "Tyson Andre" "name": "Tyson Andre"
} }
], ],
"description": "Polyfill for var_representation", "description": "Polyfill for var_representation: convert a variable to a string in a way that fixes the shortcomings of var_export",
"keywords": [ "keywords": [
"var_export", "var_export",
"var_representation" "var_representation"
], ],
"support": { "support": {
"issues": "https://github.com/TysonAndre/var_representation_polyfill/issues", "issues": "https://github.com/TysonAndre/var_representation_polyfill/issues",
"source": "https://github.com/TysonAndre/var_representation_polyfill/tree/0.0.2" "source": "https://github.com/TysonAndre/var_representation_polyfill/tree/0.1.1"
}, },
"install-path": "../tysonandre/var_representation_polyfill" "install-path": "../tysonandre/var_representation_polyfill"
}, },
+72 -81
View File
@@ -6,7 +6,7 @@
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'cf3f40b5787b2a1aed9255775143108ef5b1f278', 'reference' => '872755e57f84720a9c4c63d5455441f83c41f6c6',
'name' => 'sammo-hid/sammo', 'name' => 'sammo-hid/sammo',
), ),
'versions' => 'versions' =>
@@ -31,12 +31,12 @@
), ),
'composer/semver' => 'composer/semver' =>
array ( array (
'pretty_version' => '3.2.5', 'pretty_version' => '3.2.6',
'version' => '3.2.5.0', 'version' => '3.2.6.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '31f3ea725711245195f62e54ffa402d8ef2fdba9', 'reference' => '83e511e247de329283478496f7a1e114c9517506',
), ),
'composer/xdebug-handler' => 'composer/xdebug-handler' =>
array ( array (
@@ -49,12 +49,12 @@
), ),
'doctrine/inflector' => 'doctrine/inflector' =>
array ( array (
'pretty_version' => '2.0.3', 'pretty_version' => '2.0.4',
'version' => '2.0.3.0', 'version' => '2.0.4.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '9cf661f4eb38f7c881cac67c75ea9b00bf97b210', 'reference' => '8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89',
), ),
'erusev/parsedown' => 'erusev/parsedown' =>
array ( array (
@@ -112,80 +112,80 @@
), ),
'guzzlehttp/promises' => 'guzzlehttp/promises' =>
array ( array (
'pretty_version' => '1.4.1', 'pretty_version' => '1.5.1',
'version' => '1.4.1.0', 'version' => '1.5.1.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '8e7d04f1f6450fef59366c399cfad4b9383aa30d', 'reference' => 'fe752aedc9fd8fcca3fe7ad05d419d32998a06da',
), ),
'guzzlehttp/psr7' => 'guzzlehttp/psr7' =>
array ( array (
'pretty_version' => '1.8.2', 'pretty_version' => '1.8.3',
'version' => '1.8.2.0', 'version' => '1.8.3.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'dc960a912984efb74d0a90222870c72c87f10c91', 'reference' => '1afdd860a2566ed3c2b0b4a3de6e23434a79ec85',
), ),
'illuminate/bus' => 'illuminate/bus' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '808097c0dfd893309bd77b00139586c516b965c9', 'reference' => 'be400399687b97d5558a224e970060fd5d5f2735',
), ),
'illuminate/collections' => 'illuminate/collections' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '18fa841df912ec56849351dd6ca8928e8a98b69d', 'reference' => '05f286ec5fd2dd286e8384577047efc375c8954c',
), ),
'illuminate/container' => 'illuminate/container' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '862b64ea4ab56e307a1676104a1b93295d347ad0', 'reference' => 'ef73feb5216ef97ab7023cf59c0c8dbbd5505a9d',
), ),
'illuminate/contracts' => 'illuminate/contracts' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'ab4bb4ec3b36905ccf972c84f9aaa2bdd1153913', 'reference' => 'e76f4bce73a2a1656add24bd5210ebc4b8af49c0',
), ),
'illuminate/database' => 'illuminate/database' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'acc11d6839ddb3b694bc6585177fa5141b70c693', 'reference' => '43c7ffb6299ae55b000b286cf1278afd268ef29f',
), ),
'illuminate/events' => 'illuminate/events' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '7def78033f29cd0c0383513b27c291d233a7f90e', 'reference' => 'b7f06cafb6c09581617f2ca05d69e9b159e5a35d',
), ),
'illuminate/macroable' => 'illuminate/macroable' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
@@ -193,8 +193,8 @@
), ),
'illuminate/pipeline' => 'illuminate/pipeline' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
@@ -202,12 +202,12 @@
), ),
'illuminate/support' => 'illuminate/support' =>
array ( array (
'pretty_version' => 'v8.61.0', 'pretty_version' => 'v8.69.0',
'version' => '8.61.0.0', 'version' => '8.69.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'b0a21c41163381dd9a5abbd68fe85ed7b4247d30', 'reference' => 'a8851b7001530d3c11626a81449ed9b63dd10db7',
), ),
'league/plates' => 'league/plates' =>
array ( array (
@@ -238,12 +238,12 @@
), ),
'nesbot/carbon' => 'nesbot/carbon' =>
array ( array (
'pretty_version' => '2.53.1', 'pretty_version' => '2.54.0',
'version' => '2.53.1.0', 'version' => '2.54.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'f4655858a784988f880c1b8c7feabbf02dfdf045', 'reference' => 'eed83939f1aed3eee517d03a33f5ec587ac529b5',
), ),
'netresearch/jsonmapper' => 'netresearch/jsonmapper' =>
array ( array (
@@ -274,12 +274,12 @@
), ),
'nette/utils' => 'nette/utils' =>
array ( array (
'pretty_version' => 'v3.2.2', 'pretty_version' => 'v3.2.5',
'version' => '3.2.2.0', 'version' => '3.2.5.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '967cfc4f9a1acd5f1058d76715a424c53343c20c', 'reference' => '9cd80396ca58d7969ab44fc7afcf03624dfa526e',
), ),
'pguardiario/phpuri' => 'pguardiario/phpuri' =>
array ( array (
@@ -328,30 +328,30 @@
), ),
'phpdocumentor/reflection-docblock' => 'phpdocumentor/reflection-docblock' =>
array ( array (
'pretty_version' => '5.2.2', 'pretty_version' => '5.3.0',
'version' => '5.2.2.0', 'version' => '5.3.0.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556', 'reference' => '622548b623e81ca6d78b721c5e029f4ce664f170',
), ),
'phpdocumentor/type-resolver' => 'phpdocumentor/type-resolver' =>
array ( array (
'pretty_version' => '1.4.0', 'pretty_version' => '1.5.1',
'version' => '1.4.0.0', 'version' => '1.5.1.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0', 'reference' => 'a12f7e301eb7258bb68acd89d4aefa05c2906cae',
), ),
'psr/container' => 'psr/container' =>
array ( array (
'pretty_version' => '1.1.1', 'pretty_version' => '1.1.2',
'version' => '1.1.1.0', 'version' => '1.1.2.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea',
), ),
'psr/container-implementation' => 'psr/container-implementation' =>
array ( array (
@@ -413,12 +413,12 @@
), ),
'sabre/event' => 'sabre/event' =>
array ( array (
'pretty_version' => '5.1.2', 'pretty_version' => '5.1.4',
'version' => '5.1.2.0', 'version' => '5.1.4.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'c120bec57c17b6251a496efc82b732418b49d50a', 'reference' => 'd7da22897125d34d7eddf7977758191c06a74497',
), ),
'sammo-hid/sammo' => 'sammo-hid/sammo' =>
array ( array (
@@ -427,16 +427,7 @@
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'cf3f40b5787b2a1aed9255775143108ef5b1f278', 'reference' => '872755e57f84720a9c4c63d5455441f83c41f6c6',
),
'scssphp/scssphp' =>
array (
'pretty_version' => 'v1.6.0',
'version' => '1.6.0.0',
'aliases' =>
array (
),
'reference' => 'b83594e2323c5d6e80785df3f91b9d1d32aad530',
), ),
'sergeytsalkov/meekrodb' => 'sergeytsalkov/meekrodb' =>
array ( array (
@@ -449,12 +440,12 @@
), ),
'symfony/console' => 'symfony/console' =>
array ( array (
'pretty_version' => 'v5.3.6', 'pretty_version' => 'v5.3.10',
'version' => '5.3.6.0', 'version' => '5.3.10.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '51b71afd6d2dc8f5063199357b9880cea8d8bfe2', 'reference' => 'd4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3',
), ),
'symfony/deprecation-contracts' => 'symfony/deprecation-contracts' =>
array ( array (
@@ -467,12 +458,12 @@
), ),
'symfony/lock' => 'symfony/lock' =>
array ( array (
'pretty_version' => 'v4.4.27', 'pretty_version' => 'v4.4.33',
'version' => '4.4.27.0', 'version' => '4.4.33.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '6ca476d4ac992802f2a4043929f68f1818449486', 'reference' => '567d29b1bc6e3937652054dafc069151d17824a9',
), ),
'symfony/polyfill-ctype' => 'symfony/polyfill-ctype' =>
array ( array (
@@ -557,21 +548,21 @@
), ),
'symfony/string' => 'symfony/string' =>
array ( array (
'pretty_version' => 'v5.3.3', 'pretty_version' => 'v5.3.10',
'version' => '5.3.3.0', 'version' => '5.3.10.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => 'bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1', 'reference' => 'd70c35bb20bbca71fc4ab7921e3c6bda1a82a60c',
), ),
'symfony/translation' => 'symfony/translation' =>
array ( array (
'pretty_version' => 'v5.3.7', 'pretty_version' => 'v5.3.10',
'version' => '5.3.7.0', 'version' => '5.3.10.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '4d595a6d15fd3a2c67f6f31d14d15d3b7356d7a6', 'reference' => '6ef197aea2ac8b9cd63e0da7522b3771714035aa',
), ),
'symfony/translation-contracts' => 'symfony/translation-contracts' =>
array ( array (
@@ -591,12 +582,12 @@
), ),
'tysonandre/var_representation_polyfill' => 'tysonandre/var_representation_polyfill' =>
array ( array (
'pretty_version' => '0.0.2', 'pretty_version' => '0.1.1',
'version' => '0.0.2.0', 'version' => '0.1.1.0',
'aliases' => 'aliases' =>
array ( array (
), ),
'reference' => '3f17999ee1f257319ddc6721dd26ebbc5d175f33', 'reference' => '0a942e74e18af5514749895507bc6ca7ab96399a',
), ),
'vlucas/valitron' => 'vlucas/valitron' =>
array ( array (
+2 -2
View File
@@ -4,8 +4,8 @@
$issues = array(); $issues = array();
if (!(PHP_VERSION_ID >= 70300)) { if (!(PHP_VERSION_ID >= 70400)) {
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.'; $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
} }
if ($issues) { if ($issues) {
+4
View File
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/). This project adheres to [Semantic Versioning](http://semver.org/).
### [3.2.6] 2021-10-25
* Fixed: type improvements to parseStability
### [3.2.5] 2021-05-24 ### [3.2.5] 2021-05-24
* Fixed: issue comparing disjunctive MultiConstraints to conjunctive ones (#127) * Fixed: issue comparing disjunctive MultiConstraints to conjunctive ones (#127)
+1
View File
@@ -47,6 +47,7 @@ class VersionParser
* @param string $version * @param string $version
* *
* @return string * @return string
* @phpstan-return 'stable'|'RC'|'beta'|'alpha'|'dev'
*/ */
public static function parseStability($version) public static function parseStability($version)
{ {
+2 -3
View File
@@ -3,6 +3,5 @@
Doctrine Inflector is a small library that can perform string manipulations Doctrine Inflector is a small library that can perform string manipulations
with regard to uppercase/lowercase and singular/plural forms of words. with regard to uppercase/lowercase and singular/plural forms of words.
[![Build Status](https://travis-ci.org/doctrine/inflector.svg)](https://travis-ci.org/doctrine/inflector) [![Build Status](https://github.com/doctrine/inflector/workflows/Continuous%20Integration/badge.svg)](https://github.com/doctrine/inflector/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A4.0.x)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/inflector/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/inflector/?branch=master) [![Code Coverage](https://codecov.io/gh/doctrine/inflector/branch/2.0.x/graph/badge.svg)](https://codecov.io/gh/doctrine/inflector/branch/2.0.x)
[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/inflector/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/inflector/?branch=master)
+6 -10
View File
@@ -16,11 +16,12 @@
"php": "^7.2 || ^8.0" "php": "^7.2 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^7.0", "doctrine/coding-standard": "^8.2",
"phpstan/phpstan": "^0.11", "phpstan/phpstan": "^0.12",
"phpstan/phpstan-phpunit": "^0.11", "phpstan/phpstan-phpunit": "^0.12",
"phpstan/phpstan-strict-rules": "^0.11", "phpstan/phpstan-strict-rules": "^0.12",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
"vimeo/psalm": "^4.10"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@@ -31,10 +32,5 @@
"psr-4": { "psr-4": {
"Doctrine\\Tests\\Inflector\\": "tests/Doctrine/Tests/Inflector" "Doctrine\\Tests\\Inflector\\": "tests/Doctrine/Tests/Inflector"
} }
},
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
} }
} }
@@ -17,7 +17,7 @@ class CachedWordInflector implements WordInflector
$this->wordInflector = $wordInflector; $this->wordInflector = $wordInflector;
} }
public function inflect(string $word) : string public function inflect(string $word): string
{ {
return $this->cache[$word] ?? $this->cache[$word] = $this->wordInflector->inflect($word); return $this->cache[$word] ?? $this->cache[$word] = $this->wordInflector->inflect($word);
} }
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Doctrine\Inflector; namespace Doctrine\Inflector;
use Doctrine\Inflector\Rules\Ruleset; use Doctrine\Inflector\Rules\Ruleset;
use function array_unshift; use function array_unshift;
abstract class GenericLanguageInflectorFactory implements LanguageInflectorFactory abstract class GenericLanguageInflectorFactory implements LanguageInflectorFactory
@@ -21,7 +22,7 @@ abstract class GenericLanguageInflectorFactory implements LanguageInflectorFacto
$this->pluralRulesets[] = $this->getPluralRuleset(); $this->pluralRulesets[] = $this->getPluralRuleset();
} }
final public function build() : Inflector final public function build(): Inflector
{ {
return new Inflector( return new Inflector(
new CachedWordInflector(new RulesetInflector( new CachedWordInflector(new RulesetInflector(
@@ -33,7 +34,7 @@ abstract class GenericLanguageInflectorFactory implements LanguageInflectorFacto
); );
} }
final public function withSingularRules(?Ruleset $singularRules, bool $reset = false) : LanguageInflectorFactory final public function withSingularRules(?Ruleset $singularRules, bool $reset = false): LanguageInflectorFactory
{ {
if ($reset) { if ($reset) {
$this->singularRulesets = []; $this->singularRulesets = [];
@@ -46,7 +47,7 @@ abstract class GenericLanguageInflectorFactory implements LanguageInflectorFacto
return $this; return $this;
} }
final public function withPluralRules(?Ruleset $pluralRules, bool $reset = false) : LanguageInflectorFactory final public function withPluralRules(?Ruleset $pluralRules, bool $reset = false): LanguageInflectorFactory
{ {
if ($reset) { if ($reset) {
$this->pluralRulesets = []; $this->pluralRulesets = [];
@@ -59,7 +60,7 @@ abstract class GenericLanguageInflectorFactory implements LanguageInflectorFacto
return $this; return $this;
} }
abstract protected function getSingularRuleset() : Ruleset; abstract protected function getSingularRuleset(): Ruleset;
abstract protected function getPluralRuleset() : Ruleset; abstract protected function getPluralRuleset(): Ruleset;
} }
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Doctrine\Inflector; namespace Doctrine\Inflector;
use RuntimeException; use RuntimeException;
use function chr; use function chr;
use function function_exists; use function function_exists;
use function lcfirst; use function lcfirst;
@@ -228,7 +229,7 @@ class Inflector
/** /**
* Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'. * Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'.
*/ */
public function tableize(string $word) : string public function tableize(string $word): string
{ {
$tableized = preg_replace('~(?<=\\w)([A-Z])~u', '_$1', $word); $tableized = preg_replace('~(?<=\\w)([A-Z])~u', '_$1', $word);
@@ -245,7 +246,7 @@ class Inflector
/** /**
* Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'. * Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'.
*/ */
public function classify(string $word) : string public function classify(string $word): string
{ {
return str_replace([' ', '_', '-'], '', ucwords($word, ' _-')); return str_replace([' ', '_', '-'], '', ucwords($word, ' _-'));
} }
@@ -253,7 +254,7 @@ class Inflector
/** /**
* Camelizes a word. This uses the classify() method and turns the first character to lowercase. * Camelizes a word. This uses the classify() method and turns the first character to lowercase.
*/ */
public function camelize(string $word) : string public function camelize(string $word): string
{ {
return lcfirst($this->classify($word)); return lcfirst($this->classify($word));
} }
@@ -283,7 +284,7 @@ class Inflector
* *
* @return string The string with all delimiter-separated words capitalized. * @return string The string with all delimiter-separated words capitalized.
*/ */
public function capitalize(string $string, string $delimiters = " \n\t\r\0\x0B-") : string public function capitalize(string $string, string $delimiters = " \n\t\r\0\x0B-"): string
{ {
return ucwords($string, $delimiters); return ucwords($string, $delimiters);
} }
@@ -293,7 +294,7 @@ class Inflector
* *
* @param string $string The string to check for utf8 characters in. * @param string $string The string to check for utf8 characters in.
*/ */
public function seemsUtf8(string $string) : bool public function seemsUtf8(string $string): bool
{ {
for ($i = 0; $i < strlen($string); $i++) { for ($i = 0; $i < strlen($string); $i++) {
if (ord($string[$i]) < 0x80) { if (ord($string[$i]) < 0x80) {
@@ -331,7 +332,7 @@ class Inflector
* *
* @return string Unaccented string * @return string Unaccented string
*/ */
public function unaccent(string $string) : string public function unaccent(string $string): string
{ {
if (preg_match('/[\x80-\xff]/', $string) === false) { if (preg_match('/[\x80-\xff]/', $string) === false) {
return $string; return $string;
@@ -444,7 +445,7 @@ class Inflector
* *
* @return string Urlized string. * @return string Urlized string.
*/ */
public function urlize(string $string) : string public function urlize(string $string): string
{ {
// Remove all non url friendly characters with the unaccent function // Remove all non url friendly characters with the unaccent function
$unaccented = $this->unaccent($string); $unaccented = $this->unaccent($string);
@@ -487,7 +488,7 @@ class Inflector
* *
* @return string The word in singular form. * @return string The word in singular form.
*/ */
public function singularize(string $word) : string public function singularize(string $word): string
{ {
return $this->singularizer->inflect($word); return $this->singularizer->inflect($word);
} }
@@ -499,7 +500,7 @@ class Inflector
* *
* @return string The word in plural form. * @return string The word in plural form.
*/ */
public function pluralize(string $word) : string public function pluralize(string $word): string
{ {
return $this->pluralizer->inflect($word); return $this->pluralizer->inflect($word);
} }
@@ -11,30 +11,37 @@ use Doctrine\Inflector\Rules\Portuguese;
use Doctrine\Inflector\Rules\Spanish; use Doctrine\Inflector\Rules\Spanish;
use Doctrine\Inflector\Rules\Turkish; use Doctrine\Inflector\Rules\Turkish;
use InvalidArgumentException; use InvalidArgumentException;
use function sprintf; use function sprintf;
final class InflectorFactory final class InflectorFactory
{ {
public static function create() : LanguageInflectorFactory public static function create(): LanguageInflectorFactory
{ {
return self::createForLanguage(Language::ENGLISH); return self::createForLanguage(Language::ENGLISH);
} }
public static function createForLanguage(string $language) : LanguageInflectorFactory public static function createForLanguage(string $language): LanguageInflectorFactory
{ {
switch ($language) { switch ($language) {
case Language::ENGLISH: case Language::ENGLISH:
return new English\InflectorFactory(); return new English\InflectorFactory();
case Language::FRENCH: case Language::FRENCH:
return new French\InflectorFactory(); return new French\InflectorFactory();
case Language::NORWEGIAN_BOKMAL: case Language::NORWEGIAN_BOKMAL:
return new NorwegianBokmal\InflectorFactory(); return new NorwegianBokmal\InflectorFactory();
case Language::PORTUGUESE: case Language::PORTUGUESE:
return new Portuguese\InflectorFactory(); return new Portuguese\InflectorFactory();
case Language::SPANISH: case Language::SPANISH:
return new Spanish\InflectorFactory(); return new Spanish\InflectorFactory();
case Language::TURKISH: case Language::TURKISH:
return new Turkish\InflectorFactory(); return new Turkish\InflectorFactory();
default: default:
throw new InvalidArgumentException(sprintf( throw new InvalidArgumentException(sprintf(
'Language "%s" is not supported.', 'Language "%s" is not supported.',
@@ -15,7 +15,7 @@ interface LanguageInflectorFactory
* *
* @return $this * @return $this
*/ */
public function withSingularRules(?Ruleset $singularRules, bool $reset = false) : self; public function withSingularRules(?Ruleset $singularRules, bool $reset = false): self;
/** /**
* Applies custom rules for pluralisation * Applies custom rules for pluralisation
@@ -24,10 +24,10 @@ interface LanguageInflectorFactory
* *
* @return $this * @return $this
*/ */
public function withPluralRules(?Ruleset $pluralRules, bool $reset = false) : self; public function withPluralRules(?Ruleset $pluralRules, bool $reset = false): self;
/** /**
* Builds the inflector instance with all applicable rules * Builds the inflector instance with all applicable rules
*/ */
public function build() : Inflector; public function build(): Inflector;
} }
@@ -6,7 +6,7 @@ namespace Doctrine\Inflector;
class NoopWordInflector implements WordInflector class NoopWordInflector implements WordInflector
{ {
public function inflect(string $word) : string public function inflect(string $word): string
{ {
return $word; return $word;
} }
@@ -14,7 +14,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield new Transformation(new Pattern('(s)tatuses$'), '\1\2tatus'); yield new Transformation(new Pattern('(s)tatuses$'), '\1\2tatus');
yield new Transformation(new Pattern('(s)tatus$'), '\1\2tatus'); yield new Transformation(new Pattern('(s)tatus$'), '\1\2tatus');
@@ -62,7 +62,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield new Transformation(new Pattern('(s)tatus$'), '\1\2tatuses'); yield new Transformation(new Pattern('(s)tatus$'), '\1\2tatuses');
yield new Transformation(new Pattern('(quiz)$'), '\1zes'); yield new Transformation(new Pattern('(quiz)$'), '\1zes');
@@ -94,7 +94,7 @@ class Inflectible
/** /**
* @return Substitution[] * @return Substitution[]
*/ */
public static function getIrregular() : iterable public static function getIrregular(): iterable
{ {
yield new Substitution(new Word('atlas'), new Word('atlases')); yield new Substitution(new Word('atlas'), new Word('atlases'));
yield new Substitution(new Word('axe'), new Word('axes')); yield new Substitution(new Word('axe'), new Word('axes'));
@@ -9,12 +9,12 @@ use Doctrine\Inflector\Rules\Ruleset;
final class InflectorFactory extends GenericLanguageInflectorFactory final class InflectorFactory extends GenericLanguageInflectorFactory
{ {
protected function getSingularRuleset() : Ruleset protected function getSingularRuleset(): Ruleset
{ {
return Rules::getSingularRuleset(); return Rules::getSingularRuleset();
} }
protected function getPluralRuleset() : Ruleset protected function getPluralRuleset(): Ruleset
{ {
return Rules::getPluralRuleset(); return Rules::getPluralRuleset();
} }
@@ -11,7 +11,7 @@ use Doctrine\Inflector\Rules\Transformations;
final class Rules final class Rules
{ {
public static function getSingularRuleset() : Ruleset public static function getSingularRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getSingular()), new Transformations(...Inflectible::getSingular()),
@@ -20,7 +20,7 @@ final class Rules
); );
} }
public static function getPluralRuleset() : Ruleset public static function getPluralRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getPlural()), new Transformations(...Inflectible::getPlural()),
@@ -11,7 +11,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
@@ -33,7 +33,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
@@ -46,7 +46,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
private static function getDefault() : iterable private static function getDefault(): iterable
{ {
yield new Pattern('\w+media'); yield new Pattern('\w+media');
yield new Pattern('advice'); yield new Pattern('advice');
@@ -14,7 +14,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)aux$/'), '\1ail'); yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)aux$/'), '\1ail');
yield new Transformation(new Pattern('/ails$/'), 'ail'); yield new Transformation(new Pattern('/ails$/'), 'ail');
@@ -26,21 +26,22 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield new Transformation(new Pattern('/(s|x|z)$/'), '\1'); yield new Transformation(new Pattern('/(s|x|z)$/'), '\1');
yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)ail$/'), '\1aux'); yield new Transformation(new Pattern('/(b|cor|ém|gemm|soupir|trav|vant|vitr)ail$/'), '\1aux');
yield new Transformation(new Pattern('/ail$/'), 'ails'); yield new Transformation(new Pattern('/ail$/'), 'ails');
yield new Transformation(new Pattern('/(chacal|carnaval|festival|récital)$/'), '\1s');
yield new Transformation(new Pattern('/al$/'), 'aux'); yield new Transformation(new Pattern('/al$/'), 'aux');
yield new Transformation(new Pattern('/(bleu|émeu|landau|lieu|pneu|sarrau)$/'), '\1s'); yield new Transformation(new Pattern('/(bleu|émeu|landau|pneu|sarrau)$/'), '\1s');
yield new Transformation(new Pattern('/(bijou|caillou|chou|genou|hibou|joujou|pou|au|eu|eau)$/'), '\1x'); yield new Transformation(new Pattern('/(bijou|caillou|chou|genou|hibou|joujou|lieu|pou|au|eu|eau)$/'), '\1x');
yield new Transformation(new Pattern('/$/'), 's'); yield new Transformation(new Pattern('/$/'), 's');
} }
/** /**
* @return Substitution[] * @return Substitution[]
*/ */
public static function getIrregular() : iterable public static function getIrregular(): iterable
{ {
yield new Substitution(new Word('monsieur'), new Word('messieurs')); yield new Substitution(new Word('monsieur'), new Word('messieurs'));
yield new Substitution(new Word('madame'), new Word('mesdames')); yield new Substitution(new Word('madame'), new Word('mesdames'));
@@ -9,12 +9,12 @@ use Doctrine\Inflector\Rules\Ruleset;
final class InflectorFactory extends GenericLanguageInflectorFactory final class InflectorFactory extends GenericLanguageInflectorFactory
{ {
protected function getSingularRuleset() : Ruleset protected function getSingularRuleset(): Ruleset
{ {
return Rules::getSingularRuleset(); return Rules::getSingularRuleset();
} }
protected function getPluralRuleset() : Ruleset protected function getPluralRuleset(): Ruleset
{ {
return Rules::getPluralRuleset(); return Rules::getPluralRuleset();
} }
@@ -11,7 +11,7 @@ use Doctrine\Inflector\Rules\Transformations;
final class Rules final class Rules
{ {
public static function getSingularRuleset() : Ruleset public static function getSingularRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getSingular()), new Transformations(...Inflectible::getSingular()),
@@ -20,7 +20,7 @@ final class Rules
); );
} }
public static function getPluralRuleset() : Ruleset public static function getPluralRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getPlural()), new Transformations(...Inflectible::getPlural()),
@@ -11,7 +11,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
} }
@@ -19,7 +19,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
} }
@@ -27,7 +27,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
private static function getDefault() : iterable private static function getDefault(): iterable
{ {
yield new Pattern(''); yield new Pattern('');
} }
@@ -14,7 +14,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield new Transformation(new Pattern('/re$/i'), 'r'); yield new Transformation(new Pattern('/re$/i'), 'r');
yield new Transformation(new Pattern('/er$/i'), ''); yield new Transformation(new Pattern('/er$/i'), '');
@@ -23,7 +23,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield new Transformation(new Pattern('/e$/i'), 'er'); yield new Transformation(new Pattern('/e$/i'), 'er');
yield new Transformation(new Pattern('/r$/i'), 're'); yield new Transformation(new Pattern('/r$/i'), 're');
@@ -33,7 +33,7 @@ class Inflectible
/** /**
* @return Substitution[] * @return Substitution[]
*/ */
public static function getIrregular() : iterable public static function getIrregular(): iterable
{ {
yield new Substitution(new Word('konto'), new Word('konti')); yield new Substitution(new Word('konto'), new Word('konti'));
} }
@@ -9,12 +9,12 @@ use Doctrine\Inflector\Rules\Ruleset;
final class InflectorFactory extends GenericLanguageInflectorFactory final class InflectorFactory extends GenericLanguageInflectorFactory
{ {
protected function getSingularRuleset() : Ruleset protected function getSingularRuleset(): Ruleset
{ {
return Rules::getSingularRuleset(); return Rules::getSingularRuleset();
} }
protected function getPluralRuleset() : Ruleset protected function getPluralRuleset(): Ruleset
{ {
return Rules::getPluralRuleset(); return Rules::getPluralRuleset();
} }
@@ -11,7 +11,7 @@ use Doctrine\Inflector\Rules\Transformations;
final class Rules final class Rules
{ {
public static function getSingularRuleset() : Ruleset public static function getSingularRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getSingular()), new Transformations(...Inflectible::getSingular()),
@@ -20,7 +20,7 @@ final class Rules
); );
} }
public static function getPluralRuleset() : Ruleset public static function getPluralRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getPlural()), new Transformations(...Inflectible::getPlural()),
@@ -11,7 +11,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
} }
@@ -19,7 +19,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
} }
@@ -27,7 +27,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
private static function getDefault() : iterable private static function getDefault(): iterable
{ {
yield new Pattern('barn'); yield new Pattern('barn');
yield new Pattern('fjell'); yield new Pattern('fjell');
@@ -25,17 +25,17 @@ final class Pattern
} }
} }
public function getPattern() : string public function getPattern(): string
{ {
return $this->pattern; return $this->pattern;
} }
public function getRegex() : string public function getRegex(): string
{ {
return $this->regex; return $this->regex;
} }
public function matches(string $word) : bool public function matches(string $word): bool
{ {
return preg_match($this->getRegex(), $word) === 1; return preg_match($this->getRegex(), $word) === 1;
} }
@@ -20,14 +20,14 @@ class Patterns
{ {
$this->patterns = $patterns; $this->patterns = $patterns;
$patterns = array_map(static function (Pattern $pattern) : string { $patterns = array_map(static function (Pattern $pattern): string {
return $pattern->getPattern(); return $pattern->getPattern();
}, $this->patterns); }, $this->patterns);
$this->regex = '/^(?:' . implode('|', $patterns) . ')$/i'; $this->regex = '/^(?:' . implode('|', $patterns) . ')$/i';
} }
public function matches(string $word) : bool public function matches(string $word): bool
{ {
return preg_match($this->regex, $word, $regs) === 1; return preg_match($this->regex, $word, $regs) === 1;
} }
@@ -14,7 +14,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield new Transformation(new Pattern('/^(g|)ases$/i'), '\1ás'); yield new Transformation(new Pattern('/^(g|)ases$/i'), '\1ás');
yield new Transformation(new Pattern('/(japon|escoc|ingl|dinamarqu|fregu|portugu)eses$/i'), '\1ês'); yield new Transformation(new Pattern('/(japon|escoc|ingl|dinamarqu|fregu|portugu)eses$/i'), '\1ês');
@@ -37,7 +37,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield new Transformation(new Pattern('/^(alem|c|p)ao$/i'), '\1aes'); yield new Transformation(new Pattern('/^(alem|c|p)ao$/i'), '\1aes');
yield new Transformation(new Pattern('/^(irm|m)ao$/i'), '\1aos'); yield new Transformation(new Pattern('/^(irm|m)ao$/i'), '\1aos');
@@ -61,7 +61,7 @@ class Inflectible
/** /**
* @return Substitution[] * @return Substitution[]
*/ */
public static function getIrregular() : iterable public static function getIrregular(): iterable
{ {
yield new Substitution(new Word('abdomen'), new Word('abdomens')); yield new Substitution(new Word('abdomen'), new Word('abdomens'));
yield new Substitution(new Word('alemão'), new Word('alemães')); yield new Substitution(new Word('alemão'), new Word('alemães'));
@@ -9,12 +9,12 @@ use Doctrine\Inflector\Rules\Ruleset;
final class InflectorFactory extends GenericLanguageInflectorFactory final class InflectorFactory extends GenericLanguageInflectorFactory
{ {
protected function getSingularRuleset() : Ruleset protected function getSingularRuleset(): Ruleset
{ {
return Rules::getSingularRuleset(); return Rules::getSingularRuleset();
} }
protected function getPluralRuleset() : Ruleset protected function getPluralRuleset(): Ruleset
{ {
return Rules::getPluralRuleset(); return Rules::getPluralRuleset();
} }
@@ -11,7 +11,7 @@ use Doctrine\Inflector\Rules\Transformations;
final class Rules final class Rules
{ {
public static function getSingularRuleset() : Ruleset public static function getSingularRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getSingular()), new Transformations(...Inflectible::getSingular()),
@@ -20,7 +20,7 @@ final class Rules
); );
} }
public static function getPluralRuleset() : Ruleset public static function getPluralRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getPlural()), new Transformations(...Inflectible::getPlural()),
@@ -11,7 +11,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
} }
@@ -19,7 +19,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
} }
@@ -27,7 +27,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
private static function getDefault() : iterable private static function getDefault(): iterable
{ {
yield new Pattern('tórax'); yield new Pattern('tórax');
yield new Pattern('tênis'); yield new Pattern('tênis');
@@ -22,17 +22,17 @@ class Ruleset
$this->irregular = $irregular; $this->irregular = $irregular;
} }
public function getRegular() : Transformations public function getRegular(): Transformations
{ {
return $this->regular; return $this->regular;
} }
public function getUninflected() : Patterns public function getUninflected(): Patterns
{ {
return $this->uninflected; return $this->uninflected;
} }
public function getIrregular() : Substitutions public function getIrregular(): Substitutions
{ {
return $this->irregular; return $this->irregular;
} }
@@ -14,7 +14,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield new Transformation(new Pattern('/ereses$/'), 'erés'); yield new Transformation(new Pattern('/ereses$/'), 'erés');
yield new Transformation(new Pattern('/iones$/'), 'ión'); yield new Transformation(new Pattern('/iones$/'), 'ión');
@@ -26,7 +26,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield new Transformation(new Pattern('/ú([sn])$/i'), 'u\1es'); yield new Transformation(new Pattern('/ú([sn])$/i'), 'u\1es');
yield new Transformation(new Pattern('/ó([sn])$/i'), 'o\1es'); yield new Transformation(new Pattern('/ó([sn])$/i'), 'o\1es');
@@ -42,7 +42,7 @@ class Inflectible
/** /**
* @return Substitution[] * @return Substitution[]
*/ */
public static function getIrregular() : iterable public static function getIrregular(): iterable
{ {
yield new Substitution(new Word('el'), new Word('los')); yield new Substitution(new Word('el'), new Word('los'));
yield new Substitution(new Word('papá'), new Word('papás')); yield new Substitution(new Word('papá'), new Word('papás'));
@@ -9,12 +9,12 @@ use Doctrine\Inflector\Rules\Ruleset;
final class InflectorFactory extends GenericLanguageInflectorFactory final class InflectorFactory extends GenericLanguageInflectorFactory
{ {
protected function getSingularRuleset() : Ruleset protected function getSingularRuleset(): Ruleset
{ {
return Rules::getSingularRuleset(); return Rules::getSingularRuleset();
} }
protected function getPluralRuleset() : Ruleset protected function getPluralRuleset(): Ruleset
{ {
return Rules::getPluralRuleset(); return Rules::getPluralRuleset();
} }
@@ -11,7 +11,7 @@ use Doctrine\Inflector\Rules\Transformations;
final class Rules final class Rules
{ {
public static function getSingularRuleset() : Ruleset public static function getSingularRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getSingular()), new Transformations(...Inflectible::getSingular()),
@@ -20,7 +20,7 @@ final class Rules
); );
} }
public static function getPluralRuleset() : Ruleset public static function getPluralRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getPlural()), new Transformations(...Inflectible::getPlural()),
@@ -11,7 +11,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
} }
@@ -19,7 +19,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield from self::getDefault(); yield from self::getDefault();
} }
@@ -27,7 +27,7 @@ final class Uninflected
/** /**
* @return Pattern[] * @return Pattern[]
*/ */
private static function getDefault() : iterable private static function getDefault(): iterable
{ {
yield new Pattern('lunes'); yield new Pattern('lunes');
yield new Pattern('rompecabezas'); yield new Pattern('rompecabezas');
@@ -18,12 +18,12 @@ final class Substitution
$this->to = $to; $this->to = $to;
} }
public function getFrom() : Word public function getFrom(): Word
{ {
return $this->from; return $this->from;
} }
public function getTo() : Word public function getTo(): Word
{ {
return $this->to; return $this->to;
} }
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Doctrine\Inflector\Rules; namespace Doctrine\Inflector\Rules;
use Doctrine\Inflector\WordInflector; use Doctrine\Inflector\WordInflector;
use function strtolower; use function strtolower;
use function strtoupper; use function strtoupper;
use function substr; use function substr;
@@ -21,7 +22,7 @@ class Substitutions implements WordInflector
} }
} }
public function getFlippedSubstitutions() : Substitutions public function getFlippedSubstitutions(): Substitutions
{ {
$substitutions = []; $substitutions = [];
@@ -35,7 +36,7 @@ class Substitutions implements WordInflector
return new Substitutions(...$substitutions); return new Substitutions(...$substitutions);
} }
public function inflect(string $word) : string public function inflect(string $word): string
{ {
$lowerWord = strtolower($word); $lowerWord = strtolower($word);
@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace Doctrine\Inflector\Rules; namespace Doctrine\Inflector\Rules;
use Doctrine\Inflector\WordInflector; use Doctrine\Inflector\WordInflector;
use function preg_replace; use function preg_replace;
final class Transformation implements WordInflector final class Transformation implements WordInflector
@@ -21,17 +22,17 @@ final class Transformation implements WordInflector
$this->replacement = $replacement; $this->replacement = $replacement;
} }
public function getPattern() : Pattern public function getPattern(): Pattern
{ {
return $this->pattern; return $this->pattern;
} }
public function getReplacement() : string public function getReplacement(): string
{ {
return $this->replacement; return $this->replacement;
} }
public function inflect(string $word) : string public function inflect(string $word): string
{ {
return (string) preg_replace($this->pattern->getRegex(), $this->replacement, $word); return (string) preg_replace($this->pattern->getRegex(), $this->replacement, $word);
} }
@@ -16,7 +16,7 @@ class Transformations implements WordInflector
$this->transformations = $transformations; $this->transformations = $transformations;
} }
public function inflect(string $word) : string public function inflect(string $word): string
{ {
foreach ($this->transformations as $transformation) { foreach ($this->transformations as $transformation) {
if ($transformation->getPattern()->matches($word)) { if ($transformation->getPattern()->matches($word)) {
@@ -14,7 +14,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getSingular() : iterable public static function getSingular(): iterable
{ {
yield new Transformation(new Pattern('/l[ae]r$/i'), ''); yield new Transformation(new Pattern('/l[ae]r$/i'), '');
} }
@@ -22,7 +22,7 @@ class Inflectible
/** /**
* @return Transformation[] * @return Transformation[]
*/ */
public static function getPlural() : iterable public static function getPlural(): iterable
{ {
yield new Transformation(new Pattern('/([eöiü][^aoıueöiü]{0,6})$/u'), '\1ler'); yield new Transformation(new Pattern('/([eöiü][^aoıueöiü]{0,6})$/u'), '\1ler');
yield new Transformation(new Pattern('/([aoıu][^aoıueöiü]{0,6})$/u'), '\1lar'); yield new Transformation(new Pattern('/([aoıu][^aoıueöiü]{0,6})$/u'), '\1lar');
@@ -31,7 +31,7 @@ class Inflectible
/** /**
* @return Substitution[] * @return Substitution[]
*/ */
public static function getIrregular() : iterable public static function getIrregular(): iterable
{ {
yield new Substitution(new Word('ben'), new Word('biz')); yield new Substitution(new Word('ben'), new Word('biz'));
yield new Substitution(new Word('sen'), new Word('siz')); yield new Substitution(new Word('sen'), new Word('siz'));
@@ -9,12 +9,12 @@ use Doctrine\Inflector\Rules\Ruleset;
final class InflectorFactory extends GenericLanguageInflectorFactory final class InflectorFactory extends GenericLanguageInflectorFactory
{ {
protected function getSingularRuleset() : Ruleset protected function getSingularRuleset(): Ruleset
{ {
return Rules::getSingularRuleset(); return Rules::getSingularRuleset();
} }
protected function getPluralRuleset() : Ruleset protected function getPluralRuleset(): Ruleset
{ {
return Rules::getPluralRuleset(); return Rules::getPluralRuleset();
} }
@@ -11,7 +11,7 @@ use Doctrine\Inflector\Rules\Transformations;
final class Rules final class Rules
{ {
public static function getSingularRuleset() : Ruleset public static function getSingularRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getSingular()), new Transformations(...Inflectible::getSingular()),
@@ -20,7 +20,7 @@ final class Rules
); );
} }
public static function getPluralRuleset() : Ruleset public static function getPluralRuleset(): Ruleset
{ {
return new Ruleset( return new Ruleset(
new Transformations(...Inflectible::getPlural()), new Transformations(...Inflectible::getPlural()),

Some files were not shown because too many files have changed in this diff Show More