2016-04-10 10:38:07 +03:00
|
|
|
{
|
2016-07-19 17:30:48 +03:00
|
|
|
"name": "shlinkio/shlink",
|
2016-04-10 10:38:07 +03:00
|
|
|
"type": "project",
|
2017-03-24 23:10:25 +03:00
|
|
|
"homepage": "https://shlink.io",
|
2016-07-31 17:42:19 +03:00
|
|
|
"description": "A self-hosted and PHP-based URL shortener application with CLI and REST interfaces",
|
2016-04-10 10:38:07 +03:00
|
|
|
"license": "MIT",
|
|
|
|
"authors": [
|
|
|
|
{
|
2016-07-31 17:42:19 +03:00
|
|
|
"name": "Alejandro Celaya Alastrué",
|
2017-03-24 23:10:25 +03:00
|
|
|
"homepage": "https://www.alejandrocelaya.com",
|
2016-04-10 10:38:07 +03:00
|
|
|
"email": "alejandro@alejandrocelaya.com"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"require": {
|
2021-05-23 12:57:31 +03:00
|
|
|
"php": "^8.0",
|
2018-08-11 00:14:45 +03:00
|
|
|
"ext-json": "*",
|
2018-09-14 00:50:09 +03:00
|
|
|
"ext-pdo": "*",
|
2020-12-11 23:42:40 +03:00
|
|
|
"akrabat/ip-address-middleware": "^2.0",
|
2021-08-04 14:22:16 +03:00
|
|
|
"cakephp/chronos": "^2.2",
|
2020-06-08 19:08:46 +03:00
|
|
|
"cocur/slugify": "^4.0",
|
2021-08-04 14:22:16 +03:00
|
|
|
"doctrine/migrations": "^3.2",
|
|
|
|
"doctrine/orm": "^2.9",
|
|
|
|
"endroid/qr-code": "^4.2",
|
|
|
|
"geoip2/geoip2": "^2.11",
|
2021-08-01 10:57:34 +03:00
|
|
|
"guzzlehttp/guzzle": "^7.3",
|
2021-02-26 22:01:16 +03:00
|
|
|
"happyr/doctrine-specification": "^2.0",
|
2021-05-22 16:09:14 +03:00
|
|
|
"jaybizzle/crawler-detect": "^1.2",
|
2021-08-01 10:57:34 +03:00
|
|
|
"laminas/laminas-config": "^3.5",
|
|
|
|
"laminas/laminas-config-aggregator": "^1.5",
|
|
|
|
"laminas/laminas-diactoros": "^2.6",
|
2021-08-04 14:22:16 +03:00
|
|
|
"laminas/laminas-inputfilter": "^2.12",
|
2021-08-01 10:57:34 +03:00
|
|
|
"laminas/laminas-servicemanager": "^3.7",
|
2021-08-04 14:22:16 +03:00
|
|
|
"laminas/laminas-stdlib": "^3.5",
|
|
|
|
"lcobucci/jwt": "^4.1",
|
|
|
|
"league/uri": "^6.4",
|
2021-03-14 10:49:38 +03:00
|
|
|
"lstrojny/functional-php": "^1.17",
|
2021-08-01 10:57:34 +03:00
|
|
|
"mezzio/mezzio": "^3.5",
|
|
|
|
"mezzio/mezzio-fastroute": "^3.2",
|
|
|
|
"mezzio/mezzio-problem-details": "^1.4",
|
2021-02-20 13:26:42 +03:00
|
|
|
"mezzio/mezzio-swoole": "^3.3",
|
2021-08-01 10:57:34 +03:00
|
|
|
"monolog/monolog": "^2.3",
|
2020-12-19 12:04:00 +03:00
|
|
|
"nikolaposa/monolog-factory": "^3.1",
|
2020-12-31 15:28:06 +03:00
|
|
|
"ocramius/proxy-manager": "^2.11",
|
2021-08-04 14:22:16 +03:00
|
|
|
"pagerfanta/core": "^2.7",
|
2020-12-11 23:42:40 +03:00
|
|
|
"php-middleware/request-id": "^4.1",
|
2019-08-07 15:17:15 +03:00
|
|
|
"predis/predis": "^1.1",
|
2020-12-01 00:33:42 +03:00
|
|
|
"pugx/shortid-php": "^0.7",
|
2020-02-19 20:58:22 +03:00
|
|
|
"ramsey/uuid": "^3.9",
|
2021-08-07 12:05:20 +03:00
|
|
|
"shlinkio/shlink-common": "dev-main#3eacc46 as 4.0",
|
2021-08-04 14:22:16 +03:00
|
|
|
"shlinkio/shlink-config": "^1.2",
|
2021-02-13 13:39:51 +03:00
|
|
|
"shlinkio/shlink-event-dispatcher": "^2.1",
|
2021-08-02 19:29:16 +03:00
|
|
|
"shlinkio/shlink-importer": "^2.3.1",
|
2021-08-04 14:22:16 +03:00
|
|
|
"shlinkio/shlink-installer": "^6.1",
|
2021-05-30 13:30:03 +03:00
|
|
|
"shlinkio/shlink-ip-geolocation": "^2.0",
|
2021-08-04 14:22:16 +03:00
|
|
|
"symfony/console": "^5.3",
|
|
|
|
"symfony/filesystem": "^5.3",
|
|
|
|
"symfony/lock": "^5.3",
|
|
|
|
"symfony/mercure": "^0.5.3",
|
|
|
|
"symfony/process": "^5.3",
|
|
|
|
"symfony/string": "^5.3"
|
2016-04-10 10:38:07 +03:00
|
|
|
},
|
|
|
|
"require-dev": {
|
2020-12-22 11:30:35 +03:00
|
|
|
"devster/ubench": "^2.1",
|
2021-07-20 14:41:55 +03:00
|
|
|
"dms/phpunit-arraysubset-asserts": "^0.3.0",
|
2019-07-19 20:54:39 +03:00
|
|
|
"eaglewu/swoole-ide-helper": "dev-master",
|
2021-08-01 10:57:34 +03:00
|
|
|
"infection/infection": "^0.24.0",
|
2020-11-02 13:50:19 +03:00
|
|
|
"phpspec/prophecy-phpunit": "^2.0",
|
2021-08-04 14:22:16 +03:00
|
|
|
"phpstan/phpstan": "^0.12.94",
|
2021-07-20 14:29:50 +03:00
|
|
|
"phpstan/phpstan-doctrine": "^0.12.42",
|
2021-07-19 20:59:41 +03:00
|
|
|
"phpstan/phpstan-symfony": "^0.12.41",
|
2020-11-02 13:50:19 +03:00
|
|
|
"phpunit/php-code-coverage": "^9.2",
|
2020-12-22 11:30:35 +03:00
|
|
|
"phpunit/phpunit": "^9.5",
|
2019-02-04 21:43:21 +03:00
|
|
|
"roave/security-advisories": "dev-master",
|
2021-08-05 20:47:17 +03:00
|
|
|
"shlinkio/php-coding-standard": "~2.2.0",
|
2021-08-04 12:11:00 +03:00
|
|
|
"shlinkio/shlink-test-utils": "^2.2",
|
2021-08-04 14:22:16 +03:00
|
|
|
"symfony/var-dumper": "^5.3",
|
2021-07-20 13:51:07 +03:00
|
|
|
"veewee/composer-run-parallel": "^1.0"
|
2016-04-10 10:38:07 +03:00
|
|
|
},
|
|
|
|
"autoload": {
|
|
|
|
"psr-4": {
|
2016-07-19 17:50:02 +03:00
|
|
|
"Shlinkio\\Shlink\\CLI\\": "module/CLI/src",
|
|
|
|
"Shlinkio\\Shlink\\Rest\\": "module/Rest/src",
|
2019-12-31 15:40:38 +03:00
|
|
|
"Shlinkio\\Shlink\\Core\\": "module/Core/src"
|
2019-10-11 10:35:09 +03:00
|
|
|
},
|
|
|
|
"files": [
|
|
|
|
"module/Core/functions/functions.php"
|
|
|
|
]
|
2016-04-10 10:38:07 +03:00
|
|
|
},
|
|
|
|
"autoload-dev": {
|
|
|
|
"psr-4": {
|
2016-07-19 17:50:02 +03:00
|
|
|
"ShlinkioTest\\Shlink\\CLI\\": "module/CLI/test",
|
|
|
|
"ShlinkioTest\\Shlink\\Rest\\": "module/Rest/test",
|
2019-01-26 12:19:20 +03:00
|
|
|
"ShlinkioApiTest\\Shlink\\Rest\\": "module/Rest/test-api",
|
2017-10-23 12:20:55 +03:00
|
|
|
"ShlinkioTest\\Shlink\\Core\\": [
|
|
|
|
"module/Core/test",
|
2019-01-20 23:49:07 +03:00
|
|
|
"module/Core/test-db"
|
2019-12-31 15:40:38 +03:00
|
|
|
]
|
2020-09-26 11:43:50 +03:00
|
|
|
},
|
|
|
|
"files": [
|
|
|
|
"config/test/constants.php"
|
|
|
|
]
|
2016-04-10 10:38:07 +03:00
|
|
|
},
|
|
|
|
"scripts": {
|
2019-01-20 23:49:07 +03:00
|
|
|
"ci": [
|
2018-11-03 12:58:46 +03:00
|
|
|
"@cs",
|
|
|
|
"@stan",
|
|
|
|
"@test:ci",
|
|
|
|
"@infect:ci"
|
|
|
|
],
|
2021-01-01 13:13:51 +03:00
|
|
|
"ci:parallel": [
|
|
|
|
"@parallel cs stan test:unit:ci test:db:sqlite:ci test:db:mysql test:db:maria test:db:postgres test:db:ms",
|
|
|
|
"@parallel test:api infect:ci:unit infect:ci:db"
|
|
|
|
],
|
2016-04-10 10:38:07 +03:00
|
|
|
"cs": "phpcs",
|
2018-09-30 10:04:00 +03:00
|
|
|
"cs:fix": "phpcbf",
|
2021-07-20 14:50:14 +03:00
|
|
|
"stan": "APP_ENV=test php vendor/bin/phpstan analyse module/*/src module/*/config config docker/config data/migrations --level=8",
|
2018-09-30 10:04:00 +03:00
|
|
|
"test": [
|
|
|
|
"@test:unit",
|
2019-01-28 12:52:05 +03:00
|
|
|
"@test:db",
|
|
|
|
"@test:api"
|
2018-09-30 10:04:00 +03:00
|
|
|
],
|
2018-11-03 12:58:46 +03:00
|
|
|
"test:ci": [
|
|
|
|
"@test:unit:ci",
|
2020-12-13 15:11:41 +03:00
|
|
|
"@test:db",
|
|
|
|
"@test:api"
|
2018-11-03 12:58:46 +03:00
|
|
|
],
|
2020-09-26 11:43:50 +03:00
|
|
|
"test:unit": "@php vendor/bin/phpunit --order-by=random --colors=always --coverage-php build/coverage-unit.cov --testdox",
|
|
|
|
"test:unit:ci": "@test:unit --coverage-xml=build/coverage-unit/coverage-xml --log-junit=build/coverage-unit/junit.xml",
|
2021-04-18 13:44:02 +03:00
|
|
|
"test:unit:pretty": "@php vendor/bin/phpunit --order-by=random --colors=always --coverage-html build/coverage-unit-html",
|
2021-01-02 19:14:42 +03:00
|
|
|
"test:db": "@parallel test:db:sqlite:ci test:db:mysql test:db:maria test:db:postgres test:db:ms",
|
2020-09-26 11:43:50 +03:00
|
|
|
"test:db:sqlite": "APP_ENV=test php vendor/bin/phpunit --order-by=random --colors=always --testdox -c phpunit-db.xml",
|
2020-06-07 12:23:32 +03:00
|
|
|
"test:db:sqlite:ci": "@test:db:sqlite --coverage-php build/coverage-db.cov --coverage-xml=build/coverage-db/coverage-xml --log-junit=build/coverage-db/junit.xml",
|
2019-07-23 23:17:49 +03:00
|
|
|
"test:db:mysql": "DB_DRIVER=mysql composer test:db:sqlite",
|
2019-10-06 12:21:41 +03:00
|
|
|
"test:db:maria": "DB_DRIVER=maria composer test:db:sqlite",
|
2019-07-23 23:17:49 +03:00
|
|
|
"test:db:postgres": "DB_DRIVER=postgres composer test:db:sqlite",
|
2020-02-03 23:20:40 +03:00
|
|
|
"test:db:ms": "DB_DRIVER=mssql composer test:db:sqlite",
|
2019-01-27 12:54:04 +03:00
|
|
|
"test:api": "bin/test/run-api-tests.sh",
|
2021-08-01 11:00:24 +03:00
|
|
|
"infect:ci:base": "infection --threads=4 --log-verbosity=default --only-covered --only-covering-test-cases --skip-initial-tests",
|
2021-01-03 18:41:44 +03:00
|
|
|
"infect:ci:unit": "@infect:ci:base --coverage=build/coverage-unit --min-msi=80",
|
|
|
|
"infect:ci:db": "@infect:ci:base --coverage=build/coverage-db --min-msi=95 --configuration=infection-db.json",
|
|
|
|
"infect:ci": "@parallel infect:ci:unit infect:ci:db",
|
2018-11-17 19:36:22 +03:00
|
|
|
"infect:test": [
|
2021-01-03 18:41:44 +03:00
|
|
|
"@parallel test:unit:ci test:db:sqlite:ci",
|
2018-11-17 19:36:22 +03:00
|
|
|
"@infect:ci"
|
2019-11-17 12:00:29 +03:00
|
|
|
],
|
|
|
|
"clean:dev": "rm -f data/database.sqlite && rm -f config/params/generated_config.php"
|
2018-09-30 10:04:00 +03:00
|
|
|
},
|
|
|
|
"scripts-descriptions": {
|
2018-11-03 12:58:46 +03:00
|
|
|
"ci": "<fg=blue;options=bold>Alias for \"cs\", \"stan\", \"test:ci\" and \"infect:ci\"</>",
|
2021-01-01 13:19:57 +03:00
|
|
|
"ci:parallel": "<fg=blue;options=bold>Same as \"ci\", but parallelizing tasks as much as possible</>",
|
2018-09-30 10:04:00 +03:00
|
|
|
"cs": "<fg=blue;options=bold>Checks coding styles</>",
|
|
|
|
"cs:fix": "<fg=blue;options=bold>Fixes coding styles, when possible</>",
|
|
|
|
"stan": "<fg=blue;options=bold>Inspects code with phpstan</>",
|
|
|
|
"test": "<fg=blue;options=bold>Runs all test suites</>",
|
2018-11-03 12:58:46 +03:00
|
|
|
"test:ci": "<fg=blue;options=bold>Runs all test suites, generating all needed reports and logs for CI envs</>",
|
2018-09-30 10:04:00 +03:00
|
|
|
"test:unit": "<fg=blue;options=bold>Runs unit test suites</>",
|
2018-11-03 12:58:46 +03:00
|
|
|
"test:unit:ci": "<fg=blue;options=bold>Runs unit test suites, generating all needed reports and logs for CI envs</>",
|
2020-05-04 20:55:03 +03:00
|
|
|
"test:db": "<fg=blue;options=bold>Runs database test suites on a SQLite, MySQL, MariaDB, PostgreSQL and MsSQL</>",
|
2019-07-23 23:17:49 +03:00
|
|
|
"test:db:sqlite": "<fg=blue;options=bold>Runs database test suites on a SQLite database</>",
|
2021-01-01 13:19:57 +03:00
|
|
|
"test:db:sqlite:ci": "<fg=blue;options=bold>Runs database test suites on a SQLite database, generating all needed reports and logs for CI envs</>",
|
2019-03-05 22:36:35 +03:00
|
|
|
"test:db:mysql": "<fg=blue;options=bold>Runs database test suites on a MySQL database</>",
|
2019-10-06 13:23:02 +03:00
|
|
|
"test:db:maria": "<fg=blue;options=bold>Runs database test suites on a MariaDB database</>",
|
2019-03-05 22:36:35 +03:00
|
|
|
"test:db:postgres": "<fg=blue;options=bold>Runs database test suites on a PostgreSQL database</>",
|
2021-01-01 13:19:57 +03:00
|
|
|
"test:db:ms": "<fg=blue;options=bold>Runs database test suites on a Miscrosoft SQL Server database</>",
|
2019-01-27 12:30:38 +03:00
|
|
|
"test:api": "<fg=blue;options=bold>Runs API test suites</>",
|
2018-09-30 10:04:00 +03:00
|
|
|
"test:unit:pretty": "<fg=blue;options=bold>Runs unit test suites and generates an HTML code coverage report</>",
|
2021-01-01 13:19:57 +03:00
|
|
|
"infect:ci": "<fg=blue;options=bold>Checks unit and db tests quality applying mutation testing with existing reports and logs</>",
|
|
|
|
"infect:ci:unit": "<fg=blue;options=bold>Checks unit tests quality applying mutation testing with existing reports and logs</>",
|
|
|
|
"infect:ci:db": "<fg=blue;options=bold>Checks db tests quality applying mutation testing with existing reports and logs</>",
|
|
|
|
"infect:test": "<fg=blue;options=bold>Runs unit and db tests, then checks tests quality applying mutation testing</>",
|
2019-11-17 12:00:29 +03:00
|
|
|
"clean:dev": "<fg=blue;options=bold>Deletes artifacts which are gitignored and could affect dev env</>"
|
2016-08-28 20:32:07 +03:00
|
|
|
},
|
|
|
|
"config": {
|
2020-10-29 19:24:12 +03:00
|
|
|
"sort-packages": true,
|
|
|
|
"platform-check": false
|
2016-04-10 10:38:07 +03:00
|
|
|
}
|
|
|
|
}
|