composer.json 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. {
  2. "name": "shlinkio/shlink",
  3. "type": "project",
  4. "homepage": "https://shlink.io",
  5. "description": "A self-hosted and PHP-based URL shortener application with CLI and REST interfaces",
  6. "license": "MIT",
  7. "authors": [
  8. {
  9. "name": "Alejandro Celaya Alastrué",
  10. "homepage": "https://www.alejandrocelaya.com",
  11. "email": "alejandro@alejandrocelaya.com"
  12. }
  13. ],
  14. "require": {
  15. "php": "^7.2",
  16. "ext-json": "*",
  17. "ext-pdo": "*",
  18. "acelaya/ze-content-based-error-handler": "^3.0",
  19. "akrabat/ip-address-middleware": "^1.0",
  20. "cakephp/chronos": "^1.2",
  21. "cocur/slugify": "^3.0",
  22. "doctrine/cache": "^1.6",
  23. "doctrine/dbal": "^2.9",
  24. "doctrine/migrations": "^2.0",
  25. "doctrine/orm": "^2.5",
  26. "endroid/qr-code": "^1.7",
  27. "firebase/php-jwt": "^4.0",
  28. "geoip2/geoip2": "^2.9",
  29. "guzzlehttp/guzzle": "^6.3",
  30. "lstrojny/functional-php": "^1.9",
  31. "mikehaertl/phpwkhtmltopdf": "^2.2",
  32. "monolog/monolog": "^1.24",
  33. "ocramius/proxy-manager": "~2.2.2",
  34. "phly/phly-event-dispatcher": "^1.0",
  35. "predis/predis": "^1.1",
  36. "shlinkio/shlink-common": "^2.0",
  37. "shlinkio/shlink-event-dispatcher": "^1.0",
  38. "shlinkio/shlink-installer": "^2.0",
  39. "shlinkio/shlink-ip-geolocation": "^1.0",
  40. "symfony/console": "^4.3",
  41. "symfony/filesystem": "^4.3",
  42. "symfony/lock": "^4.3",
  43. "symfony/process": "^4.3",
  44. "theorchard/monolog-cascade": "^0.5",
  45. "zendframework/zend-config": "^3.3",
  46. "zendframework/zend-config-aggregator": "^1.1",
  47. "zendframework/zend-diactoros": "^2.1.3",
  48. "zendframework/zend-expressive": "^3.2",
  49. "zendframework/zend-expressive-fastroute": "^3.0",
  50. "zendframework/zend-expressive-helpers": "^5.3",
  51. "zendframework/zend-expressive-platesrenderer": "^2.1",
  52. "zendframework/zend-expressive-swoole": "^2.4",
  53. "zendframework/zend-inputfilter": "^2.10",
  54. "zendframework/zend-paginator": "^2.8",
  55. "zendframework/zend-servicemanager": "^3.4",
  56. "zendframework/zend-stdlib": "^3.2"
  57. },
  58. "require-dev": {
  59. "devster/ubench": "^2.0",
  60. "eaglewu/swoole-ide-helper": "dev-master",
  61. "filp/whoops": "^2.4",
  62. "infection/infection": "^0.13.4",
  63. "phpstan/phpstan": "^0.11.2",
  64. "phpunit/phpcov": "^6.0",
  65. "phpunit/phpunit": "^8.3",
  66. "roave/security-advisories": "dev-master",
  67. "shlinkio/php-coding-standard": "~2.0.0",
  68. "shlinkio/shlink-test-utils": "^1.0",
  69. "symfony/dotenv": "^4.3",
  70. "symfony/var-dumper": "^4.3",
  71. "zendframework/zend-component-installer": "^2.1",
  72. "zendframework/zend-expressive-tooling": "^1.2"
  73. },
  74. "autoload": {
  75. "psr-4": {
  76. "Shlinkio\\Shlink\\CLI\\": "module/CLI/src",
  77. "Shlinkio\\Shlink\\Rest\\": "module/Rest/src",
  78. "Shlinkio\\Shlink\\Core\\": "module/Core/src",
  79. "Shlinkio\\Shlink\\PreviewGenerator\\": "module/PreviewGenerator/src/"
  80. }
  81. },
  82. "autoload-dev": {
  83. "psr-4": {
  84. "ShlinkioTest\\Shlink\\CLI\\": "module/CLI/test",
  85. "ShlinkioTest\\Shlink\\Rest\\": "module/Rest/test",
  86. "ShlinkioApiTest\\Shlink\\Rest\\": "module/Rest/test-api",
  87. "ShlinkioTest\\Shlink\\Core\\": [
  88. "module/Core/test",
  89. "module/Core/test-db"
  90. ],
  91. "ShlinkioTest\\Shlink\\PreviewGenerator\\": "module/PreviewGenerator/test"
  92. }
  93. },
  94. "scripts": {
  95. "ci": [
  96. "@cs",
  97. "@stan",
  98. "@test:ci",
  99. "@infect:ci"
  100. ],
  101. "cs": "phpcs",
  102. "cs:fix": "phpcbf",
  103. "stan": "phpstan analyse module/*/src/ module/*/config config docker/config --level=5 -c phpstan.neon",
  104. "test": [
  105. "@test:unit",
  106. "@test:db",
  107. "@test:api"
  108. ],
  109. "test:ci": [
  110. "@test:unit:ci",
  111. "@test:db",
  112. "@test:api"
  113. ],
  114. "test:unit": "phpdbg -qrr vendor/bin/phpunit --order-by=random --colors=always --coverage-php build/coverage-unit.cov --testdox",
  115. "test:unit:ci": "phpdbg -qrr vendor/bin/phpunit --order-by=random --colors=always --coverage-php build/coverage-unit.cov --coverage-clover=build/clover.xml --coverage-xml=build/coverage-xml --log-junit=build/phpunit.junit.xml --testdox",
  116. "test:db": [
  117. "@test:db:sqlite",
  118. "@test:db:mysql",
  119. "@test:db:maria",
  120. "@test:db:postgres"
  121. ],
  122. "test:db:sqlite": "APP_ENV=test phpdbg -qrr vendor/bin/phpunit --order-by=random --colors=always -c phpunit-db.xml --coverage-php build/coverage-db.cov --testdox",
  123. "test:db:mysql": "DB_DRIVER=mysql composer test:db:sqlite",
  124. "test:db:maria": "DB_DRIVER=maria composer test:db:sqlite",
  125. "test:db:postgres": "DB_DRIVER=postgres composer test:db:sqlite",
  126. "test:api": "bin/test/run-api-tests.sh",
  127. "test:pretty": [
  128. "@test",
  129. "phpdbg -qrr vendor/bin/phpcov merge build --html build/html"
  130. ],
  131. "test:unit:pretty": "phpdbg -qrr vendor/bin/phpunit --order-by=random --colors=always --coverage-html build/coverage",
  132. "infect": "infection --threads=4 --min-msi=75 --log-verbosity=default --only-covered",
  133. "infect:ci": "infection --threads=4 --min-msi=75 --log-verbosity=default --only-covered --coverage=build",
  134. "infect:show": "infection --threads=4 --min-msi=75 --log-verbosity=default --only-covered --show-mutations",
  135. "infect:test": [
  136. "@test:unit:ci",
  137. "@infect:ci"
  138. ]
  139. },
  140. "scripts-descriptions": {
  141. "check": "<fg=blue;options=bold>Alias for \"cs\", \"stan\", \"test\" and \"infect\"</>",
  142. "ci": "<fg=blue;options=bold>Alias for \"cs\", \"stan\", \"test:ci\" and \"infect:ci\"</>",
  143. "cs": "<fg=blue;options=bold>Checks coding styles</>",
  144. "cs:fix": "<fg=blue;options=bold>Fixes coding styles, when possible</>",
  145. "stan": "<fg=blue;options=bold>Inspects code with phpstan</>",
  146. "test": "<fg=blue;options=bold>Runs all test suites</>",
  147. "test:ci": "<fg=blue;options=bold>Runs all test suites, generating all needed reports and logs for CI envs</>",
  148. "test:unit": "<fg=blue;options=bold>Runs unit test suites</>",
  149. "test:unit:ci": "<fg=blue;options=bold>Runs unit test suites, generating all needed reports and logs for CI envs</>",
  150. "test:db": "<fg=blue;options=bold>Runs database test suites on a SQLite, MySQL and PostgreSQL</>",
  151. "test:db:sqlite": "<fg=blue;options=bold>Runs database test suites on a SQLite database</>",
  152. "test:db:mysql": "<fg=blue;options=bold>Runs database test suites on a MySQL database</>",
  153. "test:db:postgres": "<fg=blue;options=bold>Runs database test suites on a PostgreSQL database</>",
  154. "test:api": "<fg=blue;options=bold>Runs API test suites</>",
  155. "test:pretty": "<fg=blue;options=bold>Runs all test suites and generates an HTML code coverage report</>",
  156. "test:unit:pretty": "<fg=blue;options=bold>Runs unit test suites and generates an HTML code coverage report</>",
  157. "infect": "<fg=blue;options=bold>Checks unit tests quality applying mutation testing</>",
  158. "infect:ci": "<fg=blue;options=bold>Checks unit tests quality applying mutation testing with existing reports and logs</>",
  159. "infect:show": "<fg=blue;options=bold>Checks unit tests quality applying mutation testing and shows applied mutators</>",
  160. "infect:test": "<fg=blue;options=bold>Checks unit tests quality applying mutation testing</>"
  161. },
  162. "config": {
  163. "sort-packages": true
  164. }
  165. }