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": {
|
2023-05-29 10:43:12 +03:00
|
|
|
"php": "^8.2",
|
2022-09-17 14:45:09 +03:00
|
|
|
"ext-curl": "*",
|
|
|
|
"ext-gd": "*",
|
2018-08-11 00:14:45 +03:00
|
|
|
"ext-json": "*",
|
2024-05-22 19:09:40 +03:00
|
|
|
"ext-mbstring": "*",
|
2018-09-14 00:50:09 +03:00
|
|
|
"ext-pdo": "*",
|
2021-12-02 22:55:50 +03:00
|
|
|
"akrabat/ip-address-middleware": "^2.1",
|
2023-09-30 22:01:29 +03:00
|
|
|
"cakephp/chronos": "^3.0.2",
|
2024-02-29 21:17:10 +03:00
|
|
|
"doctrine/dbal": "^4.0",
|
2023-08-19 12:48:04 +03:00
|
|
|
"doctrine/migrations": "^3.6",
|
2024-02-17 12:21:36 +03:00
|
|
|
"doctrine/orm": "^3.0",
|
2024-02-18 21:58:19 +03:00
|
|
|
"endroid/qr-code": "^5.0",
|
2023-08-19 12:48:04 +03:00
|
|
|
"friendsofphp/proxy-manager-lts": "^1.0",
|
2023-12-06 23:48:54 +03:00
|
|
|
"geoip2/geoip2": "^3.0",
|
2022-10-12 09:49:58 +03:00
|
|
|
"guzzlehttp/guzzle": "^7.5",
|
2024-05-16 15:00:39 +03:00
|
|
|
"hidehalo/nanoid-php": "^1.1",
|
2023-08-19 12:48:04 +03:00
|
|
|
"jaybizzle/crawler-detect": "^1.2.116",
|
2023-02-09 11:32:38 +03:00
|
|
|
"laminas/laminas-config": "^3.8",
|
2024-05-12 13:49:53 +03:00
|
|
|
"laminas/laminas-config-aggregator": "^1.15",
|
2023-12-01 00:10:41 +03:00
|
|
|
"laminas/laminas-diactoros": "^3.3",
|
2023-08-19 12:48:04 +03:00
|
|
|
"laminas/laminas-inputfilter": "^2.27",
|
2023-07-05 10:58:51 +03:00
|
|
|
"laminas/laminas-servicemanager": "^3.21",
|
2023-08-19 12:48:04 +03:00
|
|
|
"laminas/laminas-stdlib": "^3.17",
|
2023-06-08 19:41:36 +03:00
|
|
|
"matomo/matomo-php-tracker": "^3.2",
|
2023-08-19 12:48:04 +03:00
|
|
|
"mezzio/mezzio": "^3.17",
|
2024-02-04 16:16:42 +03:00
|
|
|
"mezzio/mezzio-fastroute": "^3.11",
|
2023-11-08 20:51:03 +03:00
|
|
|
"mezzio/mezzio-problem-details": "^1.13",
|
2022-07-29 13:04:30 +03:00
|
|
|
"mlocati/ip-lib": "^1.18",
|
2023-11-23 13:22:23 +03:00
|
|
|
"mobiledetect/mobiledetectlib": "^4.8",
|
2023-08-19 12:48:04 +03:00
|
|
|
"pagerfanta/core": "^3.8",
|
2023-02-09 11:32:38 +03:00
|
|
|
"ramsey/uuid": "^4.7",
|
2024-02-17 12:21:36 +03:00
|
|
|
"shlinkio/doctrine-specification": "^2.1.1",
|
2024-04-14 09:40:52 +03:00
|
|
|
"shlinkio/shlink-common": "^6.1",
|
2024-03-03 20:50:23 +03:00
|
|
|
"shlinkio/shlink-config": "^3.0",
|
2024-04-14 09:40:52 +03:00
|
|
|
"shlinkio/shlink-event-dispatcher": "^4.1",
|
2024-04-12 23:28:13 +03:00
|
|
|
"shlinkio/shlink-importer": "^5.3.2",
|
2024-04-21 18:09:20 +03:00
|
|
|
"shlinkio/shlink-installer": "dev-develop#11e66d8 as 9.2",
|
2024-03-09 11:30:05 +03:00
|
|
|
"shlinkio/shlink-ip-geolocation": "^4.0",
|
2023-11-25 22:08:29 +03:00
|
|
|
"shlinkio/shlink-json": "^1.1",
|
2024-02-06 10:53:57 +03:00
|
|
|
"spiral/roadrunner": "^2023.3",
|
|
|
|
"spiral/roadrunner-cli": "^2.6",
|
|
|
|
"spiral/roadrunner-http": "^3.3",
|
|
|
|
"spiral/roadrunner-jobs": "^4.3",
|
2024-02-17 12:46:29 +03:00
|
|
|
"symfony/console": "^7.0",
|
|
|
|
"symfony/filesystem": "^7.0",
|
|
|
|
"symfony/lock": "^7.0",
|
|
|
|
"symfony/process": "^7.0",
|
|
|
|
"symfony/string": "^7.0"
|
2016-04-10 10:38:07 +03:00
|
|
|
},
|
|
|
|
"require-dev": {
|
2023-07-12 12:33:58 +03:00
|
|
|
"devizzent/cebe-php-openapi": "^1.0.1",
|
2020-12-22 11:30:35 +03:00
|
|
|
"devster/ubench": "^2.1",
|
2024-05-21 19:09:45 +03:00
|
|
|
"phpstan/phpstan": "^1.11",
|
|
|
|
"phpstan/phpstan-doctrine": "^1.4",
|
|
|
|
"phpstan/phpstan-phpunit": "^1.4",
|
|
|
|
"phpstan/phpstan-symfony": "^1.4",
|
2024-05-12 13:49:53 +03:00
|
|
|
"phpunit/php-code-coverage": "^11.0",
|
|
|
|
"phpunit/phpcov": "^10.0",
|
|
|
|
"phpunit/phpunit": "^11.1",
|
2019-02-04 21:43:21 +03:00
|
|
|
"roave/security-advisories": "dev-master",
|
2022-07-25 10:49:14 +03:00
|
|
|
"shlinkio/php-coding-standard": "~2.3.0",
|
2024-02-26 21:05:39 +03:00
|
|
|
"shlinkio/shlink-test-utils": "^4.1",
|
2024-02-17 12:46:29 +03:00
|
|
|
"symfony/var-dumper": "^7.0",
|
2023-11-05 12:30:40 +03:00
|
|
|
"veewee/composer-run-parallel": "^1.3"
|
2016-04-10 10:38:07 +03:00
|
|
|
},
|
2023-11-30 16:34:21 +03:00
|
|
|
"conflict": {
|
|
|
|
"symfony/var-exporter": ">=6.3.9,<=6.4.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": [
|
2021-09-26 12:20:29 +03:00
|
|
|
"config/constants.php",
|
2023-11-30 20:09:15 +03:00
|
|
|
"module/Core/functions/array-utils.php",
|
2019-10-11 10:35:09 +03:00
|
|
|
"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",
|
2022-02-13 14:20:02 +03:00
|
|
|
"ShlinkioCliTest\\Shlink\\CLI\\": "module/CLI/test-cli",
|
2016-07-19 17:50:02 +03:00
|
|
|
"ShlinkioTest\\Shlink\\Rest\\": "module/Rest/test",
|
2019-01-26 12:19:20 +03:00
|
|
|
"ShlinkioApiTest\\Shlink\\Rest\\": "module/Rest/test-api",
|
2022-09-11 13:18:04 +03:00
|
|
|
"ShlinkioDbTest\\Shlink\\Rest\\": "module/Rest/test-db",
|
2022-01-06 13:01:21 +03:00
|
|
|
"ShlinkioTest\\Shlink\\Core\\": "module/Core/test",
|
2023-01-21 13:15:38 +03:00
|
|
|
"ShlinkioDbTest\\Shlink\\Core\\": "module/Core/test-db",
|
|
|
|
"ShlinkioApiTest\\Shlink\\Core\\": "module/Core/test-api"
|
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": [
|
2024-02-21 00:16:09 +03:00
|
|
|
"@parallel cs stan swagger:validate test:unit:ci test:db:sqlite:ci test:db:postgres test:db:mysql test:db:maria test:db:ms",
|
|
|
|
"@parallel test:api:ci test:cli:ci"
|
2021-01-01 13:13:51 +03:00
|
|
|
],
|
2023-04-14 09:58:54 +03:00
|
|
|
"cs": "phpcs -s",
|
2018-09-30 10:04:00 +03:00
|
|
|
"cs:fix": "phpcbf",
|
2024-01-02 19:55:23 +03:00
|
|
|
"stan": "APP_ENV=test php vendor/bin/phpstan analyse module/*/src module/*/test* module/*/config module/*/migrations config docker/config --level=8",
|
2018-09-30 10:04:00 +03:00
|
|
|
"test": [
|
2022-08-12 19:10:45 +03:00
|
|
|
"@parallel test:unit test:db",
|
|
|
|
"@parallel test:api test:cli"
|
2018-11-03 12:58:46 +03:00
|
|
|
],
|
2024-04-13 21:56:59 +03:00
|
|
|
"test:unit": "COLUMNS=120 vendor/bin/phpunit --order-by=random --colors=always --testdox",
|
2024-02-21 00:16:09 +03:00
|
|
|
"test:unit:ci": "@test:unit --coverage-php=build/coverage-unit.cov",
|
2022-02-01 21:25:18 +03:00
|
|
|
"test:unit:pretty": "@test:unit --coverage-html build/coverage-unit/coverage-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",
|
2024-02-21 00:16:09 +03:00
|
|
|
"test:db:sqlite:ci": "@test:db:sqlite --coverage-php build/coverage-db.cov",
|
2024-03-29 11:35:54 +03:00
|
|
|
"test:db:mysql": "DB_DRIVER=mysql composer test:db:sqlite -- $*",
|
|
|
|
"test:db:maria": "DB_DRIVER=maria composer test:db:sqlite -- $*",
|
|
|
|
"test:db:postgres": "DB_DRIVER=postgres composer test:db:sqlite -- $*",
|
|
|
|
"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",
|
2024-03-29 11:35:54 +03:00
|
|
|
"test:api:sqlite": "DB_DRIVER=sqlite composer test:api -- $*",
|
|
|
|
"test:api:mysql": "DB_DRIVER=mysql composer test:api -- $*",
|
|
|
|
"test:api:maria": "DB_DRIVER=maria composer test:api -- $*",
|
|
|
|
"test:api:mssql": "DB_DRIVER=mssql composer test:api -- $*",
|
2024-02-21 00:16:09 +03:00
|
|
|
"test:api:ci": "GENERATE_COVERAGE=yes composer test:api && vendor/bin/phpcov merge build/coverage-api --php build/coverage-api.cov && rm build/coverage-api/*.cov",
|
2024-02-20 20:23:37 +03:00
|
|
|
"test:api:pretty": "GENERATE_COVERAGE=yes composer test:api && vendor/bin/phpcov merge build/coverage-api --html build/coverage-api/coverage-html && rm build/coverage-api/*.cov",
|
2024-02-21 00:16:09 +03:00
|
|
|
"test:cli": "APP_ENV=test DB_DRIVER=maria TEST_ENV=cli php vendor/bin/phpunit --order-by=random --colors=always --testdox -c phpunit-cli.xml",
|
|
|
|
"test:cli:ci": "GENERATE_COVERAGE=yes composer test:cli && vendor/bin/phpcov merge build/coverage-cli --php build/coverage-cli.cov && rm build/coverage-cli/*.cov",
|
2024-02-20 20:23:37 +03:00
|
|
|
"test:cli:pretty": "GENERATE_COVERAGE=yes composer test:cli && vendor/bin/phpcov merge build/coverage-cli --html build/coverage-cli/coverage-html && rm build/coverage-cli/*.cov",
|
2021-12-09 20:51:26 +03:00
|
|
|
"swagger:validate": "php-openapi validate docs/swagger/swagger.json",
|
|
|
|
"swagger:inline": "php-openapi inline docs/swagger/swagger.json docs/swagger/swagger-inlined.json",
|
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": {
|
2024-02-21 00:16:09 +03:00
|
|
|
"ci": "<fg=blue;options=bold>Alias for \"cs\", \"stan\", \"swagger:validate\" and \"test:ci\"</>",
|
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</>",
|
|
|
|
"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</>",
|
2021-12-11 12:33:00 +03:00
|
|
|
"test:unit:pretty": "<fg=blue;options=bold>Runs unit test suites and generates an HTML code coverage report</>",
|
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</>",
|
2022-05-31 05:38:36 +03:00
|
|
|
"test:db:ms": "<fg=blue;options=bold>Runs database test suites on a Microsoft SQL Server database</>",
|
2019-01-27 12:30:38 +03:00
|
|
|
"test:api": "<fg=blue;options=bold>Runs API test suites</>",
|
2022-08-12 19:10:45 +03:00
|
|
|
"test:api:ci": "<fg=blue;options=bold>Runs API test suites, and generates code coverage for CI</>",
|
|
|
|
"test:api:pretty": "<fg=blue;options=bold>Runs API test suites, and generates code coverage in HTML format</>",
|
|
|
|
"test:cli": "<fg=blue;options=bold>Runs CLI test suites</>",
|
|
|
|
"test:cli:ci": "<fg=blue;options=bold>Runs CLI test suites, and generates code coverage for CI</>",
|
|
|
|
"test:cli:pretty": "<fg=blue;options=bold>Runs CLI test suites, and generates code coverage in HTML format</>",
|
2021-12-09 20:51:26 +03:00
|
|
|
"swagger:validate": "<fg=blue;options=bold>Validates the swagger docs, making sure they fulfil the spec</>",
|
|
|
|
"swagger:inline": "<fg=blue;options=bold>Inlines swagger docs in a single file</>",
|
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,
|
2022-01-04 19:50:41 +03:00
|
|
|
"platform-check": false,
|
|
|
|
"allow-plugins": {
|
|
|
|
"composer/package-versions-deprecated": true,
|
|
|
|
"dealerdirect/phpcodesniffer-composer-installer": true,
|
|
|
|
"veewee/composer-run-parallel": true
|
|
|
|
}
|
2016-04-10 10:38:07 +03:00
|
|
|
}
|
|
|
|
}
|